ERC-1155
Overview
Max Total Supply
666
Holders
324
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ERC1155
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-10-13 */ /** *Submitted for verification at Etherscan.io on 2021-10-01 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } interface IERC1155 is IERC165 { /** * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. */ event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); /** * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all * transfers. */ event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values ); /** * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to * `approved`. */ event ApprovalForAll(address indexed account, address indexed operator, bool approved); /** * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. * * If an {URI} event was emitted for `id`, the standard * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value * returned by {IERC1155MetadataURI-uri}. */ event URI(string value, uint256 indexed id); /** * @dev Returns the amount of tokens of token type `id` owned by `account`. * * Requirements: * * - `account` cannot be the zero address. */ function balanceOf(address account, uint256 id) external view returns (uint256); /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) external view returns (uint256[] memory); /** * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, * * Emits an {ApprovalForAll} event. * * Requirements: * * - `operator` cannot be the caller. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. * * See {setApprovalForAll}. */ function isApprovedForAll(address account, address operator) external view returns (bool); /** * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. * - `from` must have a balance of tokens of type `id` of at least `amount`. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) external; /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. * * Emits a {TransferBatch} event. * * Requirements: * * - `ids` and `amounts` must have the same length. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the * acceptance magic value. */ function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) external; } interface IERC1155Receiver is IERC165 { /** @dev Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` (i.e. 0xf23a6e61, or its own function selector). @param operator The address which initiated the transfer (i.e. msg.sender) @param from The address which previously owned the token @param id The ID of the token being transferred @param value The amount of tokens being transferred @param data Additional data with no specified format @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed */ function onERC1155Received( address operator, address from, uint256 id, uint256 value, bytes calldata data ) external returns (bytes4); /** @dev Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` (i.e. 0xbc197c81, or its own function selector). @param operator The address which initiated the batch transfer (i.e. msg.sender) @param from The address which previously owned the token @param ids An array containing ids of each token being transferred (order and length must match values array) @param values An array containing amounts of each token being transferred (order and length must match ids array) @param data Additional data with no specified format @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed */ function onERC1155BatchReceived( address operator, address from, uint256[] calldata ids, uint256[] calldata values, bytes calldata data ) external returns (bytes4); } interface IERC1155MetadataURI is IERC1155 { /** * @dev Returns the URI for token type `id`. * * If the `\{id\}` substring is present in the URI, it must be replaced by * clients with the actual token type ID. */ function uri(uint256 id) external view returns (string memory); } abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) private pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } library Strings { bytes16 private constant alphabet = "0123456789abcdef"; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = alphabet[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } contract ERC1155 is ERC165, IERC1155, IERC1155MetadataURI { using Address for address; using Strings for uint256; address payable _owner1; address payable _owner2; uint256 private _price = 950000000000000000; uint256 private _maxMints = 10; uint256 private _episode = 0; // Mapping from token ID to account balances mapping(uint256 => mapping(address => uint256)) private _balances; // Mapping from account to operator approvals mapping(address => mapping(address => bool)) private _operatorApprovals; mapping(uint256 => mapping(address => uint256)) private _mints; mapping(uint256 => uint256) private _totalMints; // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json mapping(uint256 => string) private _uri; function owner() external view returns (address) { return _owner1; } function webData(address user) external view returns(uint256 maxMint, uint256 episode, uint256 leftNFT, uint256 userMints, uint256 price) { maxMint = _maxMints; episode = _episode; leftNFT = 333 - _totalMints[_episode]; userMints = _mints[episode][user]; price = _price; } function changeOwner1(address payable owner) external { require(msg.sender == _owner1); _owner1 = owner; } function changeOwner2(address payable owner) external { require(msg.sender == _owner2); _owner2 = owner; } function changePrice(uint256 newPrice) external { require(msg.sender == _owner1 || msg.sender == _owner2); _price = newPrice; } function changeMintLimit(uint256 newLimit) external { require(msg.sender == _owner1 || msg.sender == _owner2); _maxMints = newLimit; } constructor(address payable owner1, address payable owner2) { _owner1 = owner1; _owner2 = owner2; _balances[0][owner1] += 8; _balances[0][owner2] += 8; _totalMints[0] = 16; emit TransferSingle(msg.sender, address(0), owner1, 0, 8); emit TransferSingle(msg.sender, address(0), owner2, 0, 8); } function concat(string memory _base, string memory _value) pure internal returns (string memory) { bytes memory _baseBytes = bytes(_base); bytes memory _valueBytes = bytes(_value); string memory _tmpValue = new string(_baseBytes.length + _valueBytes.length); bytes memory _newValue = bytes(_tmpValue); uint i; uint j; for(i=0;i<_baseBytes.length;i++) { _newValue[j++] = _baseBytes[i]; } for(i=0;i<_valueBytes.length;i++) { _newValue[j++] = _valueBytes[i]; } return string(_newValue); } function uri(uint256 id) external view override returns (string memory) { return _uri[id]; } function setUri(uint256 id, string calldata uri) external { require(msg.sender == _owner1 || msg.sender == _owner2); _uri[id] = uri; } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC1155).interfaceId || interfaceId == type(IERC1155MetadataURI).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address account, uint256 id) public view override returns (uint256) { require(account != address(0), "ERC1155: balance query for the zero address"); return _balances[id][account]; } function balanceOfBatch(address[] memory accounts, uint256[] memory ids) external view override returns (uint256[] memory) { require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch"); uint256[] memory batchBalances = new uint256[](accounts.length); for (uint256 i = 0; i < accounts.length; ++i) { batchBalances[i] = balanceOf(accounts[i], ids[i]); } return batchBalances; } function setApprovalForAll(address operator, bool approved) external override { require(msg.sender != operator, "ERC1155: setting approval status for self"); _operatorApprovals[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function isApprovedForAll(address account, address operator) public view override returns (bool) { return _operatorApprovals[account][operator]; } function safeTransferFrom(address from,address to,uint256 id,uint256 amount,bytes memory data) external override { require( from == msg.sender || isApprovedForAll(from, msg.sender), "ERC1155: caller is not owner nor approved" ); _safeTransferFrom(from, to, id, amount, data); } function safeBatchTransferFrom(address from,address to,uint256[] memory ids,uint256[] memory amounts,bytes memory data) public virtual override { require( from == msg.sender || isApprovedForAll(from, msg.sender), "ERC1155: transfer caller is not owner nor approved" ); _safeBatchTransferFrom(from, to, ids, amounts, data); } function _safeTransferFrom(address from,address to,uint256 id,uint256 amount,bytes memory data) internal virtual { require(to != address(0), "ERC1155: transfer to the zero address"); uint256 fromBalance = _balances[id][from]; require(fromBalance >= amount, "ERC1155: insufficient balance for transfer"); unchecked { _balances[id][from] = fromBalance - amount; } _balances[id][to] += amount; emit TransferSingle(msg.sender, from, to, id, amount); _doSafeTransferAcceptanceCheck(msg.sender, from, to, id, amount, data); } function _safeBatchTransferFrom(address from,address to,uint256[] memory ids,uint256[] memory amounts,bytes memory data) internal virtual { require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); require(to != address(0), "ERC1155: transfer to the zero address"); for (uint256 i = 0; i < ids.length; ++i) { uint256 id = ids[i]; uint256 amount = amounts[i]; uint256 fromBalance = _balances[id][from]; require(fromBalance >= amount, "ERC1155: insufficient balance for transfer"); unchecked { _balances[id][from] = fromBalance - amount; } _balances[id][to] += amount; } emit TransferBatch(msg.sender, from, to, ids, amounts); _doSafeBatchTransferAcceptanceCheck(msg.sender, from, to, ids, amounts, data); } function adminMint(address account, uint256 amount) external { require(msg.sender == _owner1 || msg.sender == _owner2); uint256 id = _episode; require(account != address(0), "ERC1155: mint to the zero address"); require(_totalMints[id] + amount <= 333, "TheRedApeFamily: Insufficient NFTs for minting"); _totalMints[id] += amount; _balances[id][account] += amount; emit TransferSingle(msg.sender, address(0), account, id, amount); } function _mint(address account, uint256 amount) external payable { uint256 id = _episode; require(msg.value == _price * amount, "TheRedApeFamily: Insufficient balance"); require(account != address(0), "ERC1155: mint to the zero address"); require(_mints[id][msg.sender] + amount <= _maxMints, "TheRedApeFamily: Max mints reached"); require(_totalMints[id] + amount <= 333, "TheRedApeFamily: Insufficient NFTs for minting"); _totalMints[id] += amount; _mints[id][msg.sender] += amount; _balances[id][account] += amount; emit TransferSingle(msg.sender, address(0), account, id, amount); } function distributeEth() external { _owner1.transfer(address(this).balance / 2); _owner2.transfer(address(this).balance); } function nextEpisode() external { require(msg.sender == _owner1 || msg.sender == _owner2); uint256 episode = ++_episode; _balances[episode][_owner1] += 8; _balances[episode][_owner2] += 8; emit TransferSingle(msg.sender, address(0), _owner1, episode, 8); emit TransferSingle(msg.sender, address(0), _owner2, episode, 8); _totalMints[episode] = 16; } function _doSafeTransferAcceptanceCheck(address operator, address from, address to, uint256 id, uint256 amount, bytes memory data) private { if (to.isContract()) { try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) { if (response != IERC1155Receiver(to).onERC1155Received.selector) { revert("ERC1155: ERC1155Receiver rejected tokens"); } } catch Error(string memory reason) { revert(reason); } catch { revert("ERC1155: transfer to non ERC1155Receiver implementer"); } } } function _doSafeBatchTransferAcceptanceCheck(address operator, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) private { if (to.isContract()) { try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns ( bytes4 response ) { if (response != IERC1155Receiver(to).onERC1155BatchReceived.selector) { revert("ERC1155: ERC1155Receiver rejected tokens"); } } catch Error(string memory reason) { revert(reason); } catch { revert("ERC1155: transfer to non ERC1155Receiver implementer"); } } } function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) { uint256[] memory array = new uint256[](1); array[0] = element; return array; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"owner1","type":"address"},{"internalType":"address payable","name":"owner2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"adminMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeMintLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"owner","type":"address"}],"name":"changeOwner1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"owner","type":"address"}],"name":"changeOwner2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"changePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributeEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEpisode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"uri","type":"string"}],"name":"setUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"webData","outputs":[{"internalType":"uint256","name":"maxMint","type":"uint256"},{"internalType":"uint256","name":"episode","type":"uint256"},{"internalType":"uint256","name":"leftNFT","type":"uint256"},{"internalType":"uint256","name":"userMints","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052670d2f13f7789f0000600255600a60035560006004553480156200002757600080fd5b50604051620040203803806200402083398181016040528101906200004d9190620002e0565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060086005600080815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000131919062000376565b9250508190555060086005600080815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200019b919062000376565b92505081905550601060086000808152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62600060086040516200023692919062000349565b60405180910390a48073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6260006008604051620002b992919062000349565b60405180910390a4505062000487565b600081519050620002da816200046d565b92915050565b60008060408385031215620002fa57620002f962000468565b5b60006200030a85828601620002c9565b92505060206200031d85828601620002c9565b9150509250929050565b620003328162000411565b82525050565b620003438162000425565b82525050565b600060408201905062000360600083018562000327565b6200036f602083018462000338565b9392505050565b6000620003838262000407565b9150620003908362000407565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003c857620003c762000439565b5b828201905092915050565b6000620003e082620003e7565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200041e8262000407565b9050919050565b6000620004328262000407565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6200047881620003d3565b81146200048457600080fd5b50565b613b8980620004976000396000f3fe6080604052600436106101135760003560e01c8063840a1128116100a0578063c16e76b211610064578063c16e76b2146103a1578063dbc938d8146103ca578063e58306f9146103e1578063e985e9c51461040a578063f242432a1461044757610113565b8063840a1128146102ba5780638da5cb5b146102e3578063a22cb4651461030e578063a2b40d1914610337578063af0087b01461036057610113565b806334259b5c116100e757806334259b5c146101f85780634e1273f4146102215780634e6ec2471461025e5780637633b4ed1461027a578063782f08ae1461029157610113565b8062fdd58e1461011857806301ffc9a7146101555780630e89341c146101925780632eb2c2d6146101cf575b600080fd5b34801561012457600080fd5b5061013f600480360381019061013a9190612846565b610470565b60405161014c9190613035565b60405180910390f35b34801561016157600080fd5b5061017c600480360381019061017791906128fe565b61053a565b6040516101899190612e38565b60405180910390f35b34801561019e57600080fd5b506101b960048036038101906101b49190612958565b61061c565b6040516101c69190612e53565b60405180910390f35b3480156101db57600080fd5b506101f660048036038101906101f191906126a0565b6106c1565b005b34801561020457600080fd5b5061021f600480360381019061021a9190612958565b610754565b005b34801561022d57600080fd5b5061024860048036038101906102439190612886565b61080e565b6040516102559190612ddf565b60405180910390f35b61027860048036038101906102739190612846565b610927565b005b34801561028657600080fd5b5061028f610c6c565b005b34801561029d57600080fd5b506102b860048036038101906102b39190612985565b610fa6565b005b3480156102c657600080fd5b506102e160048036038101906102dc9190612633565b61107e565b005b3480156102ef57600080fd5b506102f8611119565b6040516103059190612d02565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190612806565b611142565b005b34801561034357600080fd5b5061035e60048036038101906103599190612958565b6112ae565b005b34801561036c57600080fd5b5061038760048036038101906103829190612606565b611368565b6040516103989594939291906130a2565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190612633565b611400565b005b3480156103d657600080fd5b506103df61149e565b005b3480156103ed57600080fd5b5061040860048036038101906104039190612846565b61157c565b005b34801561041657600080fd5b50610431600480360381019061042c9190612660565b61181b565b60405161043e9190612e38565b60405180910390f35b34801561045357600080fd5b5061046e6004803603810190610469919061276f565b6118af565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156104e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d890612eb5565b60405180910390fd5b6005600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061060557507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610615575061061482611942565b5b9050919050565b606060096000838152602001908152602001600020805461063c90613403565b80601f016020809104026020016040519081016040528092919081815260200182805461066890613403565b80156106b55780601f1061068a576101008083540402835291602001916106b5565b820191906000526020600020905b81548152906001019060200180831161069857829003601f168201915b50505050509050919050565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806107015750610700853361181b565b5b610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790612f35565b60405180910390fd5b61074d85858585856119ac565b5050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806107fb5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61080457600080fd5b8060038190555050565b60608151835114610854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084b90612fb5565b60405180910390fd5b6000835167ffffffffffffffff8111156108715761087061356b565b5b60405190808252806020026020018201604052801561089f5781602001602082028036833780820191505090505b50905060005b845181101561091c576108ec8582815181106108c4576108c361353c565b5b60200260200101518583815181106108df576108de61353c565b5b6020026020010151610470565b8282815181106108ff576108fe61353c565b5b6020026020010181815250508061091590613466565b90506108a5565b508091505092915050565b600060045490508160025461093c919061329b565b341461097d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097490612ed5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e490612ff5565b60405180910390fd5b600354826007600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4c9190613214565b1115610a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8490613015565b60405180910390fd5b61014d826008600084815260200190815260200160002054610aaf9190613214565b1115610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae790612f75565b60405180910390fd5b81600860008381526020019081526020016000206000828254610b139190613214565b92505081905550816007600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b7a9190613214565b92505081905550816005600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610be19190613214565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628486604051610c5f929190613079565b60405180910390a4505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d135750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d1c57600080fd5b6000600460008154610d2d90613466565b919050819055905060086005600083815260200190815260200160002060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610db79190613214565b925050819055506008600560008381526020019081526020016000206000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e419190613214565b9250508190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62846008604051610ee0929190613050565b60405180910390a4600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62846008604051610f82929190613050565b60405180910390a46010600860008381526020019081526020016000208190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061104d5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61105657600080fd5b81816009600086815260200190815260200160002091906110789291906122e3565b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110d657600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612f95565b60405180910390fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516112a29190612e38565b60405180910390a35050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113555750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61135e57600080fd5b8060028190555050565b6000806000806000600354945060045493506008600060045481526020019081526020016000205461014d61139d91906132f5565b92506007600085815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600254905091939590929450565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461145a57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002476114e5919061326a565b9081150290604051600060405180830381858888f19350505050158015611510573d6000803e3d6000fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611579573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806116235750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61162c57600080fd5b60006004549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90612ff5565b60405180910390fd5b61014d8260086000848152602001908152602001600020546116c59190613214565b1115611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd90612f75565b60405180910390fd5b816008600083815260200190815260200160002060008282546117299190613214565b92505081905550816005600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117909190613214565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62848660405161180e929190613079565b60405180910390a4505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806118ef57506118ee853361181b565b5b61192e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192590612ef5565b60405180910390fd5b61193b8585858585611ca8565b5050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b81518351146119f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e790612fd5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5790612f15565b60405180910390fd5b60005b8351811015611c14576000848281518110611a8157611a8061353c565b5b602002602001015190506000848381518110611aa057611a9f61353c565b5b6020026020010151905060006005600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3990612f55565b60405180910390fd5b8181036005600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816005600085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bf99190613214565b9250508190555050505080611c0d90613466565b9050611a63565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611c8b929190612e01565b60405180910390a4611ca1338686868686611f02565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0f90612f15565b60405180910390fd5b60006005600085815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da790612f55565b60405180910390fd5b8281036005600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826005600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e679190613214565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051611ee4929190613079565b60405180910390a4611efa3387878787876120e9565b505050505050565b611f218473ffffffffffffffffffffffffffffffffffffffff166122d0565b156120e1578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611f67959493929190612d1d565b602060405180830381600087803b158015611f8157600080fd5b505af1925050508015611fb257506040513d601f19601f82011682018060405250810190611faf919061292b565b60015b61205857611fbe61359a565b806308c379a0141561201b5750611fd3613a4a565b80611fde575061201d565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120129190612e53565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f90612e75565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d690612e95565b60405180910390fd5b505b505050505050565b6121088473ffffffffffffffffffffffffffffffffffffffff166122d0565b156122c8578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161214e959493929190612d85565b602060405180830381600087803b15801561216857600080fd5b505af192505050801561219957506040513d601f19601f82011682018060405250810190612196919061292b565b60015b61223f576121a561359a565b806308c379a0141561220257506121ba613a4a565b806121c55750612204565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f99190612e53565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223690612e75565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146122c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bd90612e95565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b8280546122ef90613403565b90600052602060002090601f0160209004810192826123115760008555612358565b82601f1061232a57803560ff1916838001178555612358565b82800160010185558215612358579182015b8281111561235757823582559160200191906001019061233c565b5b5090506123659190612369565b5090565b5b8082111561238257600081600090555060010161236a565b5090565b60006123996123948461311a565b6130f5565b905080838252602082019050828560208602820111156123bc576123bb6135c6565b5b60005b858110156123ec57816123d288826124a8565b8452602084019350602083019250506001810190506123bf565b5050509392505050565b600061240961240484613146565b6130f5565b9050808382526020820190508285602086028201111561242c5761242b6135c6565b5b60005b8581101561245c578161244288826125f1565b84526020840193506020830192505060018101905061242f565b5050509392505050565b600061247961247484613172565b6130f5565b905082815260208101848484011115612495576124946135cb565b5b6124a08482856133c1565b509392505050565b6000813590506124b781613ae0565b92915050565b6000813590506124cc81613af7565b92915050565b600082601f8301126124e7576124e66135c1565b5b81356124f7848260208601612386565b91505092915050565b600082601f830112612515576125146135c1565b5b81356125258482602086016123f6565b91505092915050565b60008135905061253d81613b0e565b92915050565b60008135905061255281613b25565b92915050565b60008151905061256781613b25565b92915050565b600082601f830112612582576125816135c1565b5b8135612592848260208601612466565b91505092915050565b60008083601f8401126125b1576125b06135c1565b5b8235905067ffffffffffffffff8111156125ce576125cd6135bc565b5b6020830191508360018202830111156125ea576125e96135c6565b5b9250929050565b60008135905061260081613b3c565b92915050565b60006020828403121561261c5761261b6135d5565b5b600061262a848285016124a8565b91505092915050565b600060208284031215612649576126486135d5565b5b6000612657848285016124bd565b91505092915050565b60008060408385031215612677576126766135d5565b5b6000612685858286016124a8565b9250506020612696858286016124a8565b9150509250929050565b600080600080600060a086880312156126bc576126bb6135d5565b5b60006126ca888289016124a8565b95505060206126db888289016124a8565b945050604086013567ffffffffffffffff8111156126fc576126fb6135d0565b5b61270888828901612500565b935050606086013567ffffffffffffffff811115612729576127286135d0565b5b61273588828901612500565b925050608086013567ffffffffffffffff811115612756576127556135d0565b5b6127628882890161256d565b9150509295509295909350565b600080600080600060a0868803121561278b5761278a6135d5565b5b6000612799888289016124a8565b95505060206127aa888289016124a8565b94505060406127bb888289016125f1565b93505060606127cc888289016125f1565b925050608086013567ffffffffffffffff8111156127ed576127ec6135d0565b5b6127f98882890161256d565b9150509295509295909350565b6000806040838503121561281d5761281c6135d5565b5b600061282b858286016124a8565b925050602061283c8582860161252e565b9150509250929050565b6000806040838503121561285d5761285c6135d5565b5b600061286b858286016124a8565b925050602061287c858286016125f1565b9150509250929050565b6000806040838503121561289d5761289c6135d5565b5b600083013567ffffffffffffffff8111156128bb576128ba6135d0565b5b6128c7858286016124d2565b925050602083013567ffffffffffffffff8111156128e8576128e76135d0565b5b6128f485828601612500565b9150509250929050565b600060208284031215612914576129136135d5565b5b600061292284828501612543565b91505092915050565b600060208284031215612941576129406135d5565b5b600061294f84828501612558565b91505092915050565b60006020828403121561296e5761296d6135d5565b5b600061297c848285016125f1565b91505092915050565b60008060006040848603121561299e5761299d6135d5565b5b60006129ac868287016125f1565b935050602084013567ffffffffffffffff8111156129cd576129cc6135d0565b5b6129d98682870161259b565b92509250509250925092565b60006129f18383612ce4565b60208301905092915050565b612a0681613329565b82525050565b6000612a17826131b3565b612a2181856131e1565b9350612a2c836131a3565b8060005b83811015612a5d578151612a4488826129e5565b9750612a4f836131d4565b925050600181019050612a30565b5085935050505092915050565b612a738161334d565b82525050565b6000612a84826131be565b612a8e81856131f2565b9350612a9e8185602086016133d0565b612aa7816135da565b840191505092915050565b612abb816133af565b82525050565b6000612acc826131c9565b612ad68185613203565b9350612ae68185602086016133d0565b612aef816135da565b840191505092915050565b6000612b07603483613203565b9150612b12826135f8565b604082019050919050565b6000612b2a602883613203565b9150612b3582613647565b604082019050919050565b6000612b4d602b83613203565b9150612b5882613696565b604082019050919050565b6000612b70602583613203565b9150612b7b826136e5565b604082019050919050565b6000612b93602983613203565b9150612b9e82613734565b604082019050919050565b6000612bb6602583613203565b9150612bc182613783565b604082019050919050565b6000612bd9603283613203565b9150612be4826137d2565b604082019050919050565b6000612bfc602a83613203565b9150612c0782613821565b604082019050919050565b6000612c1f602e83613203565b9150612c2a82613870565b604082019050919050565b6000612c42602983613203565b9150612c4d826138bf565b604082019050919050565b6000612c65602983613203565b9150612c708261390e565b604082019050919050565b6000612c88602883613203565b9150612c938261395d565b604082019050919050565b6000612cab602183613203565b9150612cb6826139ac565b604082019050919050565b6000612cce602283613203565b9150612cd9826139fb565b604082019050919050565b612ced816133a5565b82525050565b612cfc816133a5565b82525050565b6000602082019050612d1760008301846129fd565b92915050565b600060a082019050612d3260008301886129fd565b612d3f60208301876129fd565b8181036040830152612d518186612a0c565b90508181036060830152612d658185612a0c565b90508181036080830152612d798184612a79565b90509695505050505050565b600060a082019050612d9a60008301886129fd565b612da760208301876129fd565b612db46040830186612cf3565b612dc16060830185612cf3565b8181036080830152612dd38184612a79565b90509695505050505050565b60006020820190508181036000830152612df98184612a0c565b905092915050565b60006040820190508181036000830152612e1b8185612a0c565b90508181036020830152612e2f8184612a0c565b90509392505050565b6000602082019050612e4d6000830184612a6a565b92915050565b60006020820190508181036000830152612e6d8184612ac1565b905092915050565b60006020820190508181036000830152612e8e81612afa565b9050919050565b60006020820190508181036000830152612eae81612b1d565b9050919050565b60006020820190508181036000830152612ece81612b40565b9050919050565b60006020820190508181036000830152612eee81612b63565b9050919050565b60006020820190508181036000830152612f0e81612b86565b9050919050565b60006020820190508181036000830152612f2e81612ba9565b9050919050565b60006020820190508181036000830152612f4e81612bcc565b9050919050565b60006020820190508181036000830152612f6e81612bef565b9050919050565b60006020820190508181036000830152612f8e81612c12565b9050919050565b60006020820190508181036000830152612fae81612c35565b9050919050565b60006020820190508181036000830152612fce81612c58565b9050919050565b60006020820190508181036000830152612fee81612c7b565b9050919050565b6000602082019050818103600083015261300e81612c9e565b9050919050565b6000602082019050818103600083015261302e81612cc1565b9050919050565b600060208201905061304a6000830184612cf3565b92915050565b60006040820190506130656000830185612cf3565b6130726020830184612ab2565b9392505050565b600060408201905061308e6000830185612cf3565b61309b6020830184612cf3565b9392505050565b600060a0820190506130b76000830188612cf3565b6130c46020830187612cf3565b6130d16040830186612cf3565b6130de6060830185612cf3565b6130eb6080830184612cf3565b9695505050505050565b60006130ff613110565b905061310b8282613435565b919050565b6000604051905090565b600067ffffffffffffffff8211156131355761313461356b565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156131615761316061356b565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561318d5761318c61356b565b5b613196826135da565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600061321f826133a5565b915061322a836133a5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561325f5761325e6134af565b5b828201905092915050565b6000613275826133a5565b9150613280836133a5565b9250826132905761328f6134de565b5b828204905092915050565b60006132a6826133a5565b91506132b1836133a5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132ea576132e96134af565b5b828202905092915050565b6000613300826133a5565b915061330b836133a5565b92508282101561331e5761331d6134af565b5b828203905092915050565b600061333482613385565b9050919050565b600061334682613385565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006133ba826133a5565b9050919050565b82818337600083830152505050565b60005b838110156133ee5780820151818401526020810190506133d3565b838111156133fd576000848401525b50505050565b6000600282049050600182168061341b57607f821691505b6020821081141561342f5761342e61350d565b5b50919050565b61343e826135da565b810181811067ffffffffffffffff8211171561345d5761345c61356b565b5b80604052505050565b6000613471826133a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134a4576134a36134af565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d11156135b95760046000803e6135b66000516135eb565b90505b90565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f54686552656441706546616d696c793a20496e73756666696369656e7420626160008201527f6c616e6365000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f54686552656441706546616d696c793a20496e73756666696369656e74204e4660008201527f547320666f72206d696e74696e67000000000000000000000000000000000000602082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f54686552656441706546616d696c793a204d6178206d696e747320726561636860008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d1015613a5a57613add565b613a62613110565b60043d036004823e80513d602482011167ffffffffffffffff82111715613a8a575050613add565b808201805167ffffffffffffffff811115613aa85750505050613add565b80602083010160043d038501811115613ac5575050505050613add565b613ad482602001850186613435565b82955050505050505b90565b613ae981613329565b8114613af457600080fd5b50565b613b008161333b565b8114613b0b57600080fd5b50565b613b178161334d565b8114613b2257600080fd5b50565b613b2e81613359565b8114613b3957600080fd5b50565b613b45816133a5565b8114613b5057600080fd5b5056fea26469706673582212200c2466bbe09edabcc548f2760d996d1e4fe0df987a969b843c4d98d70f21307264736f6c634300080700330000000000000000000000003aa599fb8003b94666c9d66db43d859ef5eea29f0000000000000000000000003aa599fb8003b94666c9d66db43d859ef5eea29f
Deployed Bytecode
0x6080604052600436106101135760003560e01c8063840a1128116100a0578063c16e76b211610064578063c16e76b2146103a1578063dbc938d8146103ca578063e58306f9146103e1578063e985e9c51461040a578063f242432a1461044757610113565b8063840a1128146102ba5780638da5cb5b146102e3578063a22cb4651461030e578063a2b40d1914610337578063af0087b01461036057610113565b806334259b5c116100e757806334259b5c146101f85780634e1273f4146102215780634e6ec2471461025e5780637633b4ed1461027a578063782f08ae1461029157610113565b8062fdd58e1461011857806301ffc9a7146101555780630e89341c146101925780632eb2c2d6146101cf575b600080fd5b34801561012457600080fd5b5061013f600480360381019061013a9190612846565b610470565b60405161014c9190613035565b60405180910390f35b34801561016157600080fd5b5061017c600480360381019061017791906128fe565b61053a565b6040516101899190612e38565b60405180910390f35b34801561019e57600080fd5b506101b960048036038101906101b49190612958565b61061c565b6040516101c69190612e53565b60405180910390f35b3480156101db57600080fd5b506101f660048036038101906101f191906126a0565b6106c1565b005b34801561020457600080fd5b5061021f600480360381019061021a9190612958565b610754565b005b34801561022d57600080fd5b5061024860048036038101906102439190612886565b61080e565b6040516102559190612ddf565b60405180910390f35b61027860048036038101906102739190612846565b610927565b005b34801561028657600080fd5b5061028f610c6c565b005b34801561029d57600080fd5b506102b860048036038101906102b39190612985565b610fa6565b005b3480156102c657600080fd5b506102e160048036038101906102dc9190612633565b61107e565b005b3480156102ef57600080fd5b506102f8611119565b6040516103059190612d02565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190612806565b611142565b005b34801561034357600080fd5b5061035e60048036038101906103599190612958565b6112ae565b005b34801561036c57600080fd5b5061038760048036038101906103829190612606565b611368565b6040516103989594939291906130a2565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190612633565b611400565b005b3480156103d657600080fd5b506103df61149e565b005b3480156103ed57600080fd5b5061040860048036038101906104039190612846565b61157c565b005b34801561041657600080fd5b50610431600480360381019061042c9190612660565b61181b565b60405161043e9190612e38565b60405180910390f35b34801561045357600080fd5b5061046e6004803603810190610469919061276f565b6118af565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156104e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d890612eb5565b60405180910390fd5b6005600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061060557507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610615575061061482611942565b5b9050919050565b606060096000838152602001908152602001600020805461063c90613403565b80601f016020809104026020016040519081016040528092919081815260200182805461066890613403565b80156106b55780601f1061068a576101008083540402835291602001916106b5565b820191906000526020600020905b81548152906001019060200180831161069857829003601f168201915b50505050509050919050565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806107015750610700853361181b565b5b610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790612f35565b60405180910390fd5b61074d85858585856119ac565b5050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806107fb5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61080457600080fd5b8060038190555050565b60608151835114610854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084b90612fb5565b60405180910390fd5b6000835167ffffffffffffffff8111156108715761087061356b565b5b60405190808252806020026020018201604052801561089f5781602001602082028036833780820191505090505b50905060005b845181101561091c576108ec8582815181106108c4576108c361353c565b5b60200260200101518583815181106108df576108de61353c565b5b6020026020010151610470565b8282815181106108ff576108fe61353c565b5b6020026020010181815250508061091590613466565b90506108a5565b508091505092915050565b600060045490508160025461093c919061329b565b341461097d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097490612ed5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e490612ff5565b60405180910390fd5b600354826007600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4c9190613214565b1115610a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8490613015565b60405180910390fd5b61014d826008600084815260200190815260200160002054610aaf9190613214565b1115610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae790612f75565b60405180910390fd5b81600860008381526020019081526020016000206000828254610b139190613214565b92505081905550816007600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b7a9190613214565b92505081905550816005600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610be19190613214565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628486604051610c5f929190613079565b60405180910390a4505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d135750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d1c57600080fd5b6000600460008154610d2d90613466565b919050819055905060086005600083815260200190815260200160002060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610db79190613214565b925050819055506008600560008381526020019081526020016000206000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e419190613214565b9250508190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62846008604051610ee0929190613050565b60405180910390a4600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62846008604051610f82929190613050565b60405180910390a46010600860008381526020019081526020016000208190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061104d5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61105657600080fd5b81816009600086815260200190815260200160002091906110789291906122e3565b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110d657600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612f95565b60405180910390fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516112a29190612e38565b60405180910390a35050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113555750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61135e57600080fd5b8060028190555050565b6000806000806000600354945060045493506008600060045481526020019081526020016000205461014d61139d91906132f5565b92506007600085815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600254905091939590929450565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461145a57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002476114e5919061326a565b9081150290604051600060405180830381858888f19350505050158015611510573d6000803e3d6000fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611579573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806116235750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61162c57600080fd5b60006004549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90612ff5565b60405180910390fd5b61014d8260086000848152602001908152602001600020546116c59190613214565b1115611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd90612f75565b60405180910390fd5b816008600083815260200190815260200160002060008282546117299190613214565b92505081905550816005600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117909190613214565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62848660405161180e929190613079565b60405180910390a4505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806118ef57506118ee853361181b565b5b61192e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192590612ef5565b60405180910390fd5b61193b8585858585611ca8565b5050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b81518351146119f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e790612fd5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5790612f15565b60405180910390fd5b60005b8351811015611c14576000848281518110611a8157611a8061353c565b5b602002602001015190506000848381518110611aa057611a9f61353c565b5b6020026020010151905060006005600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3990612f55565b60405180910390fd5b8181036005600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816005600085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bf99190613214565b9250508190555050505080611c0d90613466565b9050611a63565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611c8b929190612e01565b60405180910390a4611ca1338686868686611f02565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0f90612f15565b60405180910390fd5b60006005600085815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da790612f55565b60405180910390fd5b8281036005600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826005600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e679190613214565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051611ee4929190613079565b60405180910390a4611efa3387878787876120e9565b505050505050565b611f218473ffffffffffffffffffffffffffffffffffffffff166122d0565b156120e1578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611f67959493929190612d1d565b602060405180830381600087803b158015611f8157600080fd5b505af1925050508015611fb257506040513d601f19601f82011682018060405250810190611faf919061292b565b60015b61205857611fbe61359a565b806308c379a0141561201b5750611fd3613a4a565b80611fde575061201d565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120129190612e53565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f90612e75565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d690612e95565b60405180910390fd5b505b505050505050565b6121088473ffffffffffffffffffffffffffffffffffffffff166122d0565b156122c8578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161214e959493929190612d85565b602060405180830381600087803b15801561216857600080fd5b505af192505050801561219957506040513d601f19601f82011682018060405250810190612196919061292b565b60015b61223f576121a561359a565b806308c379a0141561220257506121ba613a4a565b806121c55750612204565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f99190612e53565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223690612e75565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146122c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bd90612e95565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b8280546122ef90613403565b90600052602060002090601f0160209004810192826123115760008555612358565b82601f1061232a57803560ff1916838001178555612358565b82800160010185558215612358579182015b8281111561235757823582559160200191906001019061233c565b5b5090506123659190612369565b5090565b5b8082111561238257600081600090555060010161236a565b5090565b60006123996123948461311a565b6130f5565b905080838252602082019050828560208602820111156123bc576123bb6135c6565b5b60005b858110156123ec57816123d288826124a8565b8452602084019350602083019250506001810190506123bf565b5050509392505050565b600061240961240484613146565b6130f5565b9050808382526020820190508285602086028201111561242c5761242b6135c6565b5b60005b8581101561245c578161244288826125f1565b84526020840193506020830192505060018101905061242f565b5050509392505050565b600061247961247484613172565b6130f5565b905082815260208101848484011115612495576124946135cb565b5b6124a08482856133c1565b509392505050565b6000813590506124b781613ae0565b92915050565b6000813590506124cc81613af7565b92915050565b600082601f8301126124e7576124e66135c1565b5b81356124f7848260208601612386565b91505092915050565b600082601f830112612515576125146135c1565b5b81356125258482602086016123f6565b91505092915050565b60008135905061253d81613b0e565b92915050565b60008135905061255281613b25565b92915050565b60008151905061256781613b25565b92915050565b600082601f830112612582576125816135c1565b5b8135612592848260208601612466565b91505092915050565b60008083601f8401126125b1576125b06135c1565b5b8235905067ffffffffffffffff8111156125ce576125cd6135bc565b5b6020830191508360018202830111156125ea576125e96135c6565b5b9250929050565b60008135905061260081613b3c565b92915050565b60006020828403121561261c5761261b6135d5565b5b600061262a848285016124a8565b91505092915050565b600060208284031215612649576126486135d5565b5b6000612657848285016124bd565b91505092915050565b60008060408385031215612677576126766135d5565b5b6000612685858286016124a8565b9250506020612696858286016124a8565b9150509250929050565b600080600080600060a086880312156126bc576126bb6135d5565b5b60006126ca888289016124a8565b95505060206126db888289016124a8565b945050604086013567ffffffffffffffff8111156126fc576126fb6135d0565b5b61270888828901612500565b935050606086013567ffffffffffffffff811115612729576127286135d0565b5b61273588828901612500565b925050608086013567ffffffffffffffff811115612756576127556135d0565b5b6127628882890161256d565b9150509295509295909350565b600080600080600060a0868803121561278b5761278a6135d5565b5b6000612799888289016124a8565b95505060206127aa888289016124a8565b94505060406127bb888289016125f1565b93505060606127cc888289016125f1565b925050608086013567ffffffffffffffff8111156127ed576127ec6135d0565b5b6127f98882890161256d565b9150509295509295909350565b6000806040838503121561281d5761281c6135d5565b5b600061282b858286016124a8565b925050602061283c8582860161252e565b9150509250929050565b6000806040838503121561285d5761285c6135d5565b5b600061286b858286016124a8565b925050602061287c858286016125f1565b9150509250929050565b6000806040838503121561289d5761289c6135d5565b5b600083013567ffffffffffffffff8111156128bb576128ba6135d0565b5b6128c7858286016124d2565b925050602083013567ffffffffffffffff8111156128e8576128e76135d0565b5b6128f485828601612500565b9150509250929050565b600060208284031215612914576129136135d5565b5b600061292284828501612543565b91505092915050565b600060208284031215612941576129406135d5565b5b600061294f84828501612558565b91505092915050565b60006020828403121561296e5761296d6135d5565b5b600061297c848285016125f1565b91505092915050565b60008060006040848603121561299e5761299d6135d5565b5b60006129ac868287016125f1565b935050602084013567ffffffffffffffff8111156129cd576129cc6135d0565b5b6129d98682870161259b565b92509250509250925092565b60006129f18383612ce4565b60208301905092915050565b612a0681613329565b82525050565b6000612a17826131b3565b612a2181856131e1565b9350612a2c836131a3565b8060005b83811015612a5d578151612a4488826129e5565b9750612a4f836131d4565b925050600181019050612a30565b5085935050505092915050565b612a738161334d565b82525050565b6000612a84826131be565b612a8e81856131f2565b9350612a9e8185602086016133d0565b612aa7816135da565b840191505092915050565b612abb816133af565b82525050565b6000612acc826131c9565b612ad68185613203565b9350612ae68185602086016133d0565b612aef816135da565b840191505092915050565b6000612b07603483613203565b9150612b12826135f8565b604082019050919050565b6000612b2a602883613203565b9150612b3582613647565b604082019050919050565b6000612b4d602b83613203565b9150612b5882613696565b604082019050919050565b6000612b70602583613203565b9150612b7b826136e5565b604082019050919050565b6000612b93602983613203565b9150612b9e82613734565b604082019050919050565b6000612bb6602583613203565b9150612bc182613783565b604082019050919050565b6000612bd9603283613203565b9150612be4826137d2565b604082019050919050565b6000612bfc602a83613203565b9150612c0782613821565b604082019050919050565b6000612c1f602e83613203565b9150612c2a82613870565b604082019050919050565b6000612c42602983613203565b9150612c4d826138bf565b604082019050919050565b6000612c65602983613203565b9150612c708261390e565b604082019050919050565b6000612c88602883613203565b9150612c938261395d565b604082019050919050565b6000612cab602183613203565b9150612cb6826139ac565b604082019050919050565b6000612cce602283613203565b9150612cd9826139fb565b604082019050919050565b612ced816133a5565b82525050565b612cfc816133a5565b82525050565b6000602082019050612d1760008301846129fd565b92915050565b600060a082019050612d3260008301886129fd565b612d3f60208301876129fd565b8181036040830152612d518186612a0c565b90508181036060830152612d658185612a0c565b90508181036080830152612d798184612a79565b90509695505050505050565b600060a082019050612d9a60008301886129fd565b612da760208301876129fd565b612db46040830186612cf3565b612dc16060830185612cf3565b8181036080830152612dd38184612a79565b90509695505050505050565b60006020820190508181036000830152612df98184612a0c565b905092915050565b60006040820190508181036000830152612e1b8185612a0c565b90508181036020830152612e2f8184612a0c565b90509392505050565b6000602082019050612e4d6000830184612a6a565b92915050565b60006020820190508181036000830152612e6d8184612ac1565b905092915050565b60006020820190508181036000830152612e8e81612afa565b9050919050565b60006020820190508181036000830152612eae81612b1d565b9050919050565b60006020820190508181036000830152612ece81612b40565b9050919050565b60006020820190508181036000830152612eee81612b63565b9050919050565b60006020820190508181036000830152612f0e81612b86565b9050919050565b60006020820190508181036000830152612f2e81612ba9565b9050919050565b60006020820190508181036000830152612f4e81612bcc565b9050919050565b60006020820190508181036000830152612f6e81612bef565b9050919050565b60006020820190508181036000830152612f8e81612c12565b9050919050565b60006020820190508181036000830152612fae81612c35565b9050919050565b60006020820190508181036000830152612fce81612c58565b9050919050565b60006020820190508181036000830152612fee81612c7b565b9050919050565b6000602082019050818103600083015261300e81612c9e565b9050919050565b6000602082019050818103600083015261302e81612cc1565b9050919050565b600060208201905061304a6000830184612cf3565b92915050565b60006040820190506130656000830185612cf3565b6130726020830184612ab2565b9392505050565b600060408201905061308e6000830185612cf3565b61309b6020830184612cf3565b9392505050565b600060a0820190506130b76000830188612cf3565b6130c46020830187612cf3565b6130d16040830186612cf3565b6130de6060830185612cf3565b6130eb6080830184612cf3565b9695505050505050565b60006130ff613110565b905061310b8282613435565b919050565b6000604051905090565b600067ffffffffffffffff8211156131355761313461356b565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156131615761316061356b565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561318d5761318c61356b565b5b613196826135da565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600061321f826133a5565b915061322a836133a5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561325f5761325e6134af565b5b828201905092915050565b6000613275826133a5565b9150613280836133a5565b9250826132905761328f6134de565b5b828204905092915050565b60006132a6826133a5565b91506132b1836133a5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132ea576132e96134af565b5b828202905092915050565b6000613300826133a5565b915061330b836133a5565b92508282101561331e5761331d6134af565b5b828203905092915050565b600061333482613385565b9050919050565b600061334682613385565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006133ba826133a5565b9050919050565b82818337600083830152505050565b60005b838110156133ee5780820151818401526020810190506133d3565b838111156133fd576000848401525b50505050565b6000600282049050600182168061341b57607f821691505b6020821081141561342f5761342e61350d565b5b50919050565b61343e826135da565b810181811067ffffffffffffffff8211171561345d5761345c61356b565b5b80604052505050565b6000613471826133a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134a4576134a36134af565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d11156135b95760046000803e6135b66000516135eb565b90505b90565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f54686552656441706546616d696c793a20496e73756666696369656e7420626160008201527f6c616e6365000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f54686552656441706546616d696c793a20496e73756666696369656e74204e4660008201527f547320666f72206d696e74696e67000000000000000000000000000000000000602082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f54686552656441706546616d696c793a204d6178206d696e747320726561636860008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d1015613a5a57613add565b613a62613110565b60043d036004823e80513d602482011167ffffffffffffffff82111715613a8a575050613add565b808201805167ffffffffffffffff811115613aa85750505050613add565b80602083010160043d038501811115613ac5575050505050613add565b613ad482602001850186613435565b82955050505050505b90565b613ae981613329565b8114613af457600080fd5b50565b613b008161333b565b8114613b0b57600080fd5b50565b613b178161334d565b8114613b2257600080fd5b50565b613b2e81613359565b8114613b3957600080fd5b50565b613b45816133a5565b8114613b5057600080fd5b5056fea26469706673582212200c2466bbe09edabcc548f2760d996d1e4fe0df987a969b843c4d98d70f21307264736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003aa599fb8003b94666c9d66db43d859ef5eea29f0000000000000000000000003aa599fb8003b94666c9d66db43d859ef5eea29f
-----Decoded View---------------
Arg [0] : owner1 (address): 0x3AA599FB8003B94666c9D66Db43D859ef5EEa29f
Arg [1] : owner2 (address): 0x3AA599FB8003B94666c9D66Db43D859ef5EEa29f
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000003aa599fb8003b94666c9d66db43d859ef5eea29f
Arg [1] : 0000000000000000000000003aa599fb8003b94666c9d66db43d859ef5eea29f
Deployed Bytecode Sourcemap
16981:10575:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20578:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20260:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19973:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22103:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18739:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20809:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24576:705;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25451:437;;;;;;;;;;;;;:::i;:::-;;20091:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18295:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17867:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21285:299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18577:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17961:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;18436:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25293:146;;;;;;;;;;;;;:::i;:::-;;24033:531;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21592:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21760:335;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20578:223;20656:7;20703:1;20684:21;;:7;:21;;;;20676:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;20771:9;:13;20781:2;20771:13;;;;;;;;;;;:22;20785:7;20771:22;;;;;;;;;;;;;;;;20764:29;;20578:223;;;;:::o;20260:310::-;20362:4;20414:26;20399:41;;;:11;:41;;;;:110;;;;20472:37;20457:52;;;:11;:52;;;;20399:110;:163;;;;20526:36;20550:11;20526:23;:36::i;:::-;20399:163;20379:183;;20260:310;;;:::o;19973:106::-;20030:13;20063:4;:8;20068:2;20063:8;;;;;;;;;;;20056:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19973:106;;;:::o;22103:382::-;22288:10;22280:18;;:4;:18;;;:56;;;;22302:34;22319:4;22325:10;22302:16;:34::i;:::-;22280:56;22258:156;;;;;;;;;;;;:::i;:::-;;;;;;;;;22425:52;22448:4;22454:2;22458:3;22463:7;22472:4;22425:22;:52::i;:::-;22103:382;;;;;:::o;18739:157::-;18824:7;;;;;;;;;;18810:21;;:10;:21;;;:46;;;;18849:7;;;;;;;;;;;18835:21;;:10;:21;;;18810:46;18802:55;;;;;;18880:8;18868:9;:20;;;;18739:157;:::o;20809:468::-;20914:16;20970:3;:10;20951:8;:15;:29;20943:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;21039:30;21086:8;:15;21072:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21039:63;;21120:9;21115:122;21139:8;:15;21135:1;:19;21115:122;;;21195:30;21205:8;21214:1;21205:11;;;;;;;;:::i;:::-;;;;;;;;21218:3;21222:1;21218:6;;;;;;;;:::i;:::-;;;;;;;;21195:9;:30::i;:::-;21176:13;21190:1;21176:16;;;;;;;;:::i;:::-;;;;;;;:49;;;;;21156:3;;;;:::i;:::-;;;21115:122;;;;21256:13;21249:20;;;20809:468;;;;:::o;24576:705::-;24652:10;24665:8;;24652:21;;24715:6;24706;;:15;;;;:::i;:::-;24693:9;:28;24685:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;24801:1;24782:21;;:7;:21;;;;24774:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24895:9;;24885:6;24860;:10;24867:2;24860:10;;;;;;;;;;;:22;24871:10;24860:22;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;:44;;24852:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;24990:3;24980:6;24962:11;:15;24974:2;24962:15;;;;;;;;;;;;:24;;;;:::i;:::-;:31;;24954:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;25084:6;25065:11;:15;25077:2;25065:15;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;25127:6;25101;:10;25108:2;25101:10;;;;;;;;;;;:22;25112:10;25101:22;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;25180:6;25154:9;:13;25164:2;25154:13;;;;;;;;;;;:22;25168:7;25154:22;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;25251:7;25212:59;;25247:1;25212:59;;25227:10;25212:59;;;25260:2;25264:6;25212:59;;;;;;;:::i;:::-;;;;;;;;24641:640;24576:705;;:::o;25451:437::-;25516:7;;;;;;;;;;25502:21;;:10;:21;;;:46;;;;25541:7;;;;;;;;;;;25527:21;;:10;:21;;;25502:46;25494:55;;;;;;25560:15;25580:8;;25578:10;;;;;:::i;:::-;;;;;;;25560:28;;25640:1;25609:9;:18;25619:7;25609:18;;;;;;;;;;;:27;25628:7;;;;;;;;;;;25609:27;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;25683:1;25652:9;:18;25662:7;25652:18;;;;;;;;;;;:27;25671:7;;;;;;;;;;;25652:27;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;25739:7;;;;;;;;;;25700:59;;25735:1;25700:59;;25715:10;25700:59;;;25748:7;25757:1;25700:59;;;;;;;:::i;:::-;;;;;;;;25814:7;;;;;;;;;;;25775:59;;25810:1;25775:59;;25790:10;25775:59;;;25823:7;25832:1;25775:59;;;;;;;:::i;:::-;;;;;;;;25868:2;25845:11;:20;25857:7;25845:20;;;;;;;;;;;:25;;;;25483:405;25451:437::o;20091:157::-;20182:7;;;;;;;;;;20168:21;;:10;:21;;;:46;;;;20207:7;;;;;;;;;;;20193:21;;:10;:21;;;20168:46;20160:55;;;;;;20237:3;;20226:4;:8;20231:2;20226:8;;;;;;;;;;;:14;;;;;;;:::i;:::-;;20091:157;;;:::o;18295:129::-;18382:7;;;;;;;;;;18368:21;;:10;:21;;;18360:30;;;;;;18411:5;18401:7;;:15;;;;;;;;;;;;;;;;;;18295:129;:::o;17867:82::-;17907:7;17934;;;;;;;;;;;17927:14;;17867:82;:::o;21285:299::-;21396:8;21382:22;;:10;:22;;;;21374:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;21506:8;21463:18;:30;21482:10;21463:30;;;;;;;;;;;;;;;:40;21494:8;21463:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;21557:8;21530:46;;21545:10;21530:46;;;21567:8;21530:46;;;;;;:::i;:::-;;;;;;;;21285:299;;:::o;18577:150::-;18658:7;;;;;;;;;;18644:21;;:10;:21;;;:46;;;;18683:7;;;;;;;;;;;18669:21;;:10;:21;;;18644:46;18636:55;;;;;;18711:8;18702:6;:17;;;;18577:150;:::o;17961:322::-;18014:15;18031;18048;18065:17;18084:13;18120:9;;18110:19;;18150:8;;18140:18;;18185:11;:21;18197:8;;18185:21;;;;;;;;;;;;18179:3;:27;;;;:::i;:::-;18169:37;;18229:6;:15;18236:7;18229:15;;;;;;;;;;;:21;18245:4;18229:21;;;;;;;;;;;;;;;;18217:33;;18269:6;;18261:14;;17961:322;;;;;;;:::o;18436:129::-;18523:7;;;;;;;;;;;18509:21;;:10;:21;;;18501:30;;;;;;18552:5;18542:7;;:15;;;;;;;;;;;;;;;;;;18436:129;:::o;25293:146::-;25338:7;;;;;;;;;;:16;;:43;25379:1;25355:21;:25;;;;:::i;:::-;25338:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25392:7;;;;;;;;;;;:16;;:39;25409:21;25392:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25293:146::o;24033:531::-;24127:7;;;;;;;;;;24113:21;;:10;:21;;;:46;;;;24152:7;;;;;;;;;;;24138:21;;:10;:21;;;24113:46;24105:55;;;;;;24171:10;24184:8;;24171:21;;24231:1;24212:21;;:7;:21;;;;24204:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24318:3;24308:6;24290:11;:15;24302:2;24290:15;;;;;;;;;;;;:24;;;;:::i;:::-;:31;;24282:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;24412:6;24393:11;:15;24405:2;24393:15;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;24465:6;24439:9;:13;24449:2;24439:13;;;;;;;;;;;:22;24453:7;24439:22;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;24536:7;24497:59;;24532:1;24497:59;;24512:10;24497:59;;;24545:2;24549:6;24497:59;;;;;;;:::i;:::-;;;;;;;;24094:470;24033:531;;:::o;21592:160::-;21683:4;21707:18;:27;21726:7;21707:27;;;;;;;;;;;;;;;:37;21735:8;21707:37;;;;;;;;;;;;;;;;;;;;;;;;;21700:44;;21592:160;;;;:::o;21760:335::-;21914:10;21906:18;;:4;:18;;;:56;;;;21928:34;21945:4;21951:10;21928:16;:34::i;:::-;21906:56;21884:147;;;;;;;;;;;;:::i;:::-;;;;;;;;;22042:45;22060:4;22066:2;22070;22074:6;22082:4;22042:17;:45::i;:::-;21760:335;;;;;:::o;7152:157::-;7237:4;7276:25;7261:40;;;:11;:40;;;;7254:47;;7152:157;;;:::o;23116:905::-;23287:7;:14;23273:3;:10;:28;23265:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;23379:1;23365:16;;:2;:16;;;;23357:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23441:9;23436:421;23460:3;:10;23456:1;:14;23436:421;;;23492:10;23505:3;23509:1;23505:6;;;;;;;;:::i;:::-;;;;;;;;23492:19;;23526:14;23543:7;23551:1;23543:10;;;;;;;;:::i;:::-;;;;;;;;23526:27;;23570:19;23592:9;:13;23602:2;23592:13;;;;;;;;;;;:19;23606:4;23592:19;;;;;;;;;;;;;;;;23570:41;;23649:6;23634:11;:21;;23626:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;23782:6;23768:11;:20;23746:9;:13;23756:2;23746:13;;;;;;;;;;;:19;23760:4;23746:19;;;;;;;;;;;;;;;:42;;;;23839:6;23818:9;:13;23828:2;23818:13;;;;;;;;;;;:17;23832:2;23818:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;23477:380;;;23472:3;;;;:::i;:::-;;;23436:421;;;;23906:2;23874:49;;23900:4;23874:49;;23888:10;23874:49;;;23910:3;23915:7;23874:49;;;;;;;:::i;:::-;;;;;;;;23936:77;23972:10;23984:4;23990:2;23994:3;23999:7;24008:4;23936:35;:77::i;:::-;23116:905;;;;;:::o;22493:615::-;22639:1;22625:16;;:2;:16;;;;22617:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;22696:19;22718:9;:13;22728:2;22718:13;;;;;;;;;;;:19;22732:4;22718:19;;;;;;;;;;;;;;;;22696:41;;22771:6;22756:11;:21;;22748:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;22896:6;22882:11;:20;22860:9;:13;22870:2;22860:13;;;;;;;;;;;:19;22874:4;22860:19;;;;;;;;;;;;;;;:42;;;;22945:6;22924:9;:13;22934:2;22924:13;;;;;;;;;;;:17;22938:2;22924:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;23002:2;22969:48;;22996:4;22969:48;;22984:10;22969:48;;;23006:2;23010:6;22969:48;;;;;;;:::i;:::-;;;;;;;;23030:70;23061:10;23073:4;23079:2;23083;23087:6;23095:4;23030:30;:70::i;:::-;22606:502;22493:615;;;;;:::o;26591:756::-;26770:15;:2;:13;;;:15::i;:::-;26766:574;;;26823:2;26806:43;;;26850:8;26860:4;26866:3;26871:7;26880:4;26806:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;26802:527;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;27202:6;27195:14;;;;;;;;;;;:::i;:::-;;;;;;;;26802:527;;;27251:62;;;;;;;;;;:::i;:::-;;;;;;;;26802:527;26979:52;;;26967:64;;;:8;:64;;;;26963:163;;27056:50;;;;;;;;;;:::i;:::-;;;;;;;;26963:163;26886:255;26766:574;26591:756;;;;;;:::o;25896:687::-;26050:15;:2;:13;;;:15::i;:::-;26046:530;;;26103:2;26086:38;;;26125:8;26135:4;26141:2;26145:6;26153:4;26086:72;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;26082:483;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;26438:6;26431:14;;;;;;;;;;;:::i;:::-;;;;;;;;26082:483;;;26487:62;;;;;;;;;;:::i;:::-;;;;;;;;26082:483;26220:47;;;26208:59;;;:8;:59;;;;26204:158;;26292:50;;;;;;;;;;:::i;:::-;;;;;;;;26204:158;26159:218;26046:530;25896:687;;;;;;:::o;7926:387::-;7986:4;8194:12;8261:7;8249:20;8241:28;;8304:1;8297:4;:8;8290:15;;;7926:387;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;769:::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:143;;;1149:79;;:::i;:::-;1095:143;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;769:722;;;;;:::o;1497:410::-;1574:5;1599:65;1615:48;1656:6;1615:48;:::i;:::-;1599:65;:::i;:::-;1590:74;;1687:6;1680:5;1673:21;1725:4;1718:5;1714:16;1763:3;1754:6;1749:3;1745:16;1742:25;1739:112;;;1770:79;;:::i;:::-;1739:112;1860:41;1894:6;1889:3;1884;1860:41;:::i;:::-;1580:327;1497:410;;;;;:::o;1913:139::-;1959:5;1997:6;1984:20;1975:29;;2013:33;2040:5;2013:33;:::i;:::-;1913:139;;;;:::o;2058:155::-;2112:5;2150:6;2137:20;2128:29;;2166:41;2201:5;2166:41;:::i;:::-;2058:155;;;;:::o;2236:370::-;2307:5;2356:3;2349:4;2341:6;2337:17;2333:27;2323:122;;2364:79;;:::i;:::-;2323:122;2481:6;2468:20;2506:94;2596:3;2588:6;2581:4;2573:6;2569:17;2506:94;:::i;:::-;2497:103;;2313:293;2236:370;;;;:::o;2629:::-;2700:5;2749:3;2742:4;2734:6;2730:17;2726:27;2716:122;;2757:79;;:::i;:::-;2716:122;2874:6;2861:20;2899:94;2989:3;2981:6;2974:4;2966:6;2962:17;2899:94;:::i;:::-;2890:103;;2706:293;2629:370;;;;:::o;3005:133::-;3048:5;3086:6;3073:20;3064:29;;3102:30;3126:5;3102:30;:::i;:::-;3005:133;;;;:::o;3144:137::-;3189:5;3227:6;3214:20;3205:29;;3243:32;3269:5;3243:32;:::i;:::-;3144:137;;;;:::o;3287:141::-;3343:5;3374:6;3368:13;3359:22;;3390:32;3416:5;3390:32;:::i;:::-;3287:141;;;;:::o;3447:338::-;3502:5;3551:3;3544:4;3536:6;3532:17;3528:27;3518:122;;3559:79;;:::i;:::-;3518:122;3676:6;3663:20;3701:78;3775:3;3767:6;3760:4;3752:6;3748:17;3701:78;:::i;:::-;3692:87;;3508:277;3447:338;;;;:::o;3805:553::-;3863:8;3873:6;3923:3;3916:4;3908:6;3904:17;3900:27;3890:122;;3931:79;;:::i;:::-;3890:122;4044:6;4031:20;4021:30;;4074:18;4066:6;4063:30;4060:117;;;4096:79;;:::i;:::-;4060:117;4210:4;4202:6;4198:17;4186:29;;4264:3;4256:4;4248:6;4244:17;4234:8;4230:32;4227:41;4224:128;;;4271:79;;:::i;:::-;4224:128;3805:553;;;;;:::o;4364:139::-;4410:5;4448:6;4435:20;4426:29;;4464:33;4491:5;4464:33;:::i;:::-;4364:139;;;;:::o;4509:329::-;4568:6;4617:2;4605:9;4596:7;4592:23;4588:32;4585:119;;;4623:79;;:::i;:::-;4585:119;4743:1;4768:53;4813:7;4804:6;4793:9;4789:22;4768:53;:::i;:::-;4758:63;;4714:117;4509:329;;;;:::o;4844:345::-;4911:6;4960:2;4948:9;4939:7;4935:23;4931:32;4928:119;;;4966:79;;:::i;:::-;4928:119;5086:1;5111:61;5164:7;5155:6;5144:9;5140:22;5111:61;:::i;:::-;5101:71;;5057:125;4844:345;;;;:::o;5195:474::-;5263:6;5271;5320:2;5308:9;5299:7;5295:23;5291:32;5288:119;;;5326:79;;:::i;:::-;5288:119;5446:1;5471:53;5516:7;5507:6;5496:9;5492:22;5471:53;:::i;:::-;5461:63;;5417:117;5573:2;5599:53;5644:7;5635:6;5624:9;5620:22;5599:53;:::i;:::-;5589:63;;5544:118;5195:474;;;;;:::o;5675:1509::-;5829:6;5837;5845;5853;5861;5910:3;5898:9;5889:7;5885:23;5881:33;5878:120;;;5917:79;;:::i;:::-;5878:120;6037:1;6062:53;6107:7;6098:6;6087:9;6083:22;6062:53;:::i;:::-;6052:63;;6008:117;6164:2;6190:53;6235:7;6226:6;6215:9;6211:22;6190:53;:::i;:::-;6180:63;;6135:118;6320:2;6309:9;6305:18;6292:32;6351:18;6343:6;6340:30;6337:117;;;6373:79;;:::i;:::-;6337:117;6478:78;6548:7;6539:6;6528:9;6524:22;6478:78;:::i;:::-;6468:88;;6263:303;6633:2;6622:9;6618:18;6605:32;6664:18;6656:6;6653:30;6650:117;;;6686:79;;:::i;:::-;6650:117;6791:78;6861:7;6852:6;6841:9;6837:22;6791:78;:::i;:::-;6781:88;;6576:303;6946:3;6935:9;6931:19;6918:33;6978:18;6970:6;6967:30;6964:117;;;7000:79;;:::i;:::-;6964:117;7105:62;7159:7;7150:6;7139:9;7135:22;7105:62;:::i;:::-;7095:72;;6889:288;5675:1509;;;;;;;;:::o;7190:1089::-;7294:6;7302;7310;7318;7326;7375:3;7363:9;7354:7;7350:23;7346:33;7343:120;;;7382:79;;:::i;:::-;7343:120;7502:1;7527:53;7572:7;7563:6;7552:9;7548:22;7527:53;:::i;:::-;7517:63;;7473:117;7629:2;7655:53;7700:7;7691:6;7680:9;7676:22;7655:53;:::i;:::-;7645:63;;7600:118;7757:2;7783:53;7828:7;7819:6;7808:9;7804:22;7783:53;:::i;:::-;7773:63;;7728:118;7885:2;7911:53;7956:7;7947:6;7936:9;7932:22;7911:53;:::i;:::-;7901:63;;7856:118;8041:3;8030:9;8026:19;8013:33;8073:18;8065:6;8062:30;8059:117;;;8095:79;;:::i;:::-;8059:117;8200:62;8254:7;8245:6;8234:9;8230:22;8200:62;:::i;:::-;8190:72;;7984:288;7190:1089;;;;;;;;:::o;8285:468::-;8350:6;8358;8407:2;8395:9;8386:7;8382:23;8378:32;8375:119;;;8413:79;;:::i;:::-;8375:119;8533:1;8558:53;8603:7;8594:6;8583:9;8579:22;8558:53;:::i;:::-;8548:63;;8504:117;8660:2;8686:50;8728:7;8719:6;8708:9;8704:22;8686:50;:::i;:::-;8676:60;;8631:115;8285:468;;;;;:::o;8759:474::-;8827:6;8835;8884:2;8872:9;8863:7;8859:23;8855:32;8852:119;;;8890:79;;:::i;:::-;8852:119;9010:1;9035:53;9080:7;9071:6;9060:9;9056:22;9035:53;:::i;:::-;9025:63;;8981:117;9137:2;9163:53;9208:7;9199:6;9188:9;9184:22;9163:53;:::i;:::-;9153:63;;9108:118;8759:474;;;;;:::o;9239:894::-;9357:6;9365;9414:2;9402:9;9393:7;9389:23;9385:32;9382:119;;;9420:79;;:::i;:::-;9382:119;9568:1;9557:9;9553:17;9540:31;9598:18;9590:6;9587:30;9584:117;;;9620:79;;:::i;:::-;9584:117;9725:78;9795:7;9786:6;9775:9;9771:22;9725:78;:::i;:::-;9715:88;;9511:302;9880:2;9869:9;9865:18;9852:32;9911:18;9903:6;9900:30;9897:117;;;9933:79;;:::i;:::-;9897:117;10038:78;10108:7;10099:6;10088:9;10084:22;10038:78;:::i;:::-;10028:88;;9823:303;9239:894;;;;;:::o;10139:327::-;10197:6;10246:2;10234:9;10225:7;10221:23;10217:32;10214:119;;;10252:79;;:::i;:::-;10214:119;10372:1;10397:52;10441:7;10432:6;10421:9;10417:22;10397:52;:::i;:::-;10387:62;;10343:116;10139:327;;;;:::o;10472:349::-;10541:6;10590:2;10578:9;10569:7;10565:23;10561:32;10558:119;;;10596:79;;:::i;:::-;10558:119;10716:1;10741:63;10796:7;10787:6;10776:9;10772:22;10741:63;:::i;:::-;10731:73;;10687:127;10472:349;;;;:::o;10827:329::-;10886:6;10935:2;10923:9;10914:7;10910:23;10906:32;10903:119;;;10941:79;;:::i;:::-;10903:119;11061:1;11086:53;11131:7;11122:6;11111:9;11107:22;11086:53;:::i;:::-;11076:63;;11032:117;10827:329;;;;:::o;11162:674::-;11242:6;11250;11258;11307:2;11295:9;11286:7;11282:23;11278:32;11275:119;;;11313:79;;:::i;:::-;11275:119;11433:1;11458:53;11503:7;11494:6;11483:9;11479:22;11458:53;:::i;:::-;11448:63;;11404:117;11588:2;11577:9;11573:18;11560:32;11619:18;11611:6;11608:30;11605:117;;;11641:79;;:::i;:::-;11605:117;11754:65;11811:7;11802:6;11791:9;11787:22;11754:65;:::i;:::-;11736:83;;;;11531:298;11162:674;;;;;:::o;11842:179::-;11911:10;11932:46;11974:3;11966:6;11932:46;:::i;:::-;12010:4;12005:3;12001:14;11987:28;;11842:179;;;;:::o;12027:118::-;12114:24;12132:5;12114:24;:::i;:::-;12109:3;12102:37;12027:118;;:::o;12181:732::-;12300:3;12329:54;12377:5;12329:54;:::i;:::-;12399:86;12478:6;12473:3;12399:86;:::i;:::-;12392:93;;12509:56;12559:5;12509:56;:::i;:::-;12588:7;12619:1;12604:284;12629:6;12626:1;12623:13;12604:284;;;12705:6;12699:13;12732:63;12791:3;12776:13;12732:63;:::i;:::-;12725:70;;12818:60;12871:6;12818:60;:::i;:::-;12808:70;;12664:224;12651:1;12648;12644:9;12639:14;;12604:284;;;12608:14;12904:3;12897:10;;12305:608;;;12181:732;;;;:::o;12919:109::-;13000:21;13015:5;13000:21;:::i;:::-;12995:3;12988:34;12919:109;;:::o;13034:360::-;13120:3;13148:38;13180:5;13148:38;:::i;:::-;13202:70;13265:6;13260:3;13202:70;:::i;:::-;13195:77;;13281:52;13326:6;13321:3;13314:4;13307:5;13303:16;13281:52;:::i;:::-;13358:29;13380:6;13358:29;:::i;:::-;13353:3;13349:39;13342:46;;13124:270;13034:360;;;;:::o;13400:147::-;13495:45;13534:5;13495:45;:::i;:::-;13490:3;13483:58;13400:147;;:::o;13553:364::-;13641:3;13669:39;13702:5;13669:39;:::i;:::-;13724:71;13788:6;13783:3;13724:71;:::i;:::-;13717:78;;13804:52;13849:6;13844:3;13837:4;13830:5;13826:16;13804:52;:::i;:::-;13881:29;13903:6;13881:29;:::i;:::-;13876:3;13872:39;13865:46;;13645:272;13553:364;;;;:::o;13923:366::-;14065:3;14086:67;14150:2;14145:3;14086:67;:::i;:::-;14079:74;;14162:93;14251:3;14162:93;:::i;:::-;14280:2;14275:3;14271:12;14264:19;;13923:366;;;:::o;14295:::-;14437:3;14458:67;14522:2;14517:3;14458:67;:::i;:::-;14451:74;;14534:93;14623:3;14534:93;:::i;:::-;14652:2;14647:3;14643:12;14636:19;;14295:366;;;:::o;14667:::-;14809:3;14830:67;14894:2;14889:3;14830:67;:::i;:::-;14823:74;;14906:93;14995:3;14906:93;:::i;:::-;15024:2;15019:3;15015:12;15008:19;;14667:366;;;:::o;15039:::-;15181:3;15202:67;15266:2;15261:3;15202:67;:::i;:::-;15195:74;;15278:93;15367:3;15278:93;:::i;:::-;15396:2;15391:3;15387:12;15380:19;;15039:366;;;:::o;15411:::-;15553:3;15574:67;15638:2;15633:3;15574:67;:::i;:::-;15567:74;;15650:93;15739:3;15650:93;:::i;:::-;15768:2;15763:3;15759:12;15752:19;;15411:366;;;:::o;15783:::-;15925:3;15946:67;16010:2;16005:3;15946:67;:::i;:::-;15939:74;;16022:93;16111:3;16022:93;:::i;:::-;16140:2;16135:3;16131:12;16124:19;;15783:366;;;:::o;16155:::-;16297:3;16318:67;16382:2;16377:3;16318:67;:::i;:::-;16311:74;;16394:93;16483:3;16394:93;:::i;:::-;16512:2;16507:3;16503:12;16496:19;;16155:366;;;:::o;16527:::-;16669:3;16690:67;16754:2;16749:3;16690:67;:::i;:::-;16683:74;;16766:93;16855:3;16766:93;:::i;:::-;16884:2;16879:3;16875:12;16868:19;;16527:366;;;:::o;16899:::-;17041:3;17062:67;17126:2;17121:3;17062:67;:::i;:::-;17055:74;;17138:93;17227:3;17138:93;:::i;:::-;17256:2;17251:3;17247:12;17240:19;;16899:366;;;:::o;17271:::-;17413:3;17434:67;17498:2;17493:3;17434:67;:::i;:::-;17427:74;;17510:93;17599:3;17510:93;:::i;:::-;17628:2;17623:3;17619:12;17612:19;;17271:366;;;:::o;17643:::-;17785:3;17806:67;17870:2;17865:3;17806:67;:::i;:::-;17799:74;;17882:93;17971:3;17882:93;:::i;:::-;18000:2;17995:3;17991:12;17984:19;;17643:366;;;:::o;18015:::-;18157:3;18178:67;18242:2;18237:3;18178:67;:::i;:::-;18171:74;;18254:93;18343:3;18254:93;:::i;:::-;18372:2;18367:3;18363:12;18356:19;;18015:366;;;:::o;18387:::-;18529:3;18550:67;18614:2;18609:3;18550:67;:::i;:::-;18543:74;;18626:93;18715:3;18626:93;:::i;:::-;18744:2;18739:3;18735:12;18728:19;;18387:366;;;:::o;18759:::-;18901:3;18922:67;18986:2;18981:3;18922:67;:::i;:::-;18915:74;;18998:93;19087:3;18998:93;:::i;:::-;19116:2;19111:3;19107:12;19100:19;;18759:366;;;:::o;19131:108::-;19208:24;19226:5;19208:24;:::i;:::-;19203:3;19196:37;19131:108;;:::o;19245:118::-;19332:24;19350:5;19332:24;:::i;:::-;19327:3;19320:37;19245:118;;:::o;19369:222::-;19462:4;19500:2;19489:9;19485:18;19477:26;;19513:71;19581:1;19570:9;19566:17;19557:6;19513:71;:::i;:::-;19369:222;;;;:::o;19597:1053::-;19920:4;19958:3;19947:9;19943:19;19935:27;;19972:71;20040:1;20029:9;20025:17;20016:6;19972:71;:::i;:::-;20053:72;20121:2;20110:9;20106:18;20097:6;20053:72;:::i;:::-;20172:9;20166:4;20162:20;20157:2;20146:9;20142:18;20135:48;20200:108;20303:4;20294:6;20200:108;:::i;:::-;20192:116;;20355:9;20349:4;20345:20;20340:2;20329:9;20325:18;20318:48;20383:108;20486:4;20477:6;20383:108;:::i;:::-;20375:116;;20539:9;20533:4;20529:20;20523:3;20512:9;20508:19;20501:49;20567:76;20638:4;20629:6;20567:76;:::i;:::-;20559:84;;19597:1053;;;;;;;;:::o;20656:751::-;20879:4;20917:3;20906:9;20902:19;20894:27;;20931:71;20999:1;20988:9;20984:17;20975:6;20931:71;:::i;:::-;21012:72;21080:2;21069:9;21065:18;21056:6;21012:72;:::i;:::-;21094;21162:2;21151:9;21147:18;21138:6;21094:72;:::i;:::-;21176;21244:2;21233:9;21229:18;21220:6;21176:72;:::i;:::-;21296:9;21290:4;21286:20;21280:3;21269:9;21265:19;21258:49;21324:76;21395:4;21386:6;21324:76;:::i;:::-;21316:84;;20656:751;;;;;;;;:::o;21413:373::-;21556:4;21594:2;21583:9;21579:18;21571:26;;21643:9;21637:4;21633:20;21629:1;21618:9;21614:17;21607:47;21671:108;21774:4;21765:6;21671:108;:::i;:::-;21663:116;;21413:373;;;;:::o;21792:634::-;22013:4;22051:2;22040:9;22036:18;22028:26;;22100:9;22094:4;22090:20;22086:1;22075:9;22071:17;22064:47;22128:108;22231:4;22222:6;22128:108;:::i;:::-;22120:116;;22283:9;22277:4;22273:20;22268:2;22257:9;22253:18;22246:48;22311:108;22414:4;22405:6;22311:108;:::i;:::-;22303:116;;21792:634;;;;;:::o;22432:210::-;22519:4;22557:2;22546:9;22542:18;22534:26;;22570:65;22632:1;22621:9;22617:17;22608:6;22570:65;:::i;:::-;22432:210;;;;:::o;22648:313::-;22761:4;22799:2;22788:9;22784:18;22776:26;;22848:9;22842:4;22838:20;22834:1;22823:9;22819:17;22812:47;22876:78;22949:4;22940:6;22876:78;:::i;:::-;22868:86;;22648:313;;;;:::o;22967:419::-;23133:4;23171:2;23160:9;23156:18;23148:26;;23220:9;23214:4;23210:20;23206:1;23195:9;23191:17;23184:47;23248:131;23374:4;23248:131;:::i;:::-;23240:139;;22967:419;;;:::o;23392:::-;23558:4;23596:2;23585:9;23581:18;23573:26;;23645:9;23639:4;23635:20;23631:1;23620:9;23616:17;23609:47;23673:131;23799:4;23673:131;:::i;:::-;23665:139;;23392:419;;;:::o;23817:::-;23983:4;24021:2;24010:9;24006:18;23998:26;;24070:9;24064:4;24060:20;24056:1;24045:9;24041:17;24034:47;24098:131;24224:4;24098:131;:::i;:::-;24090:139;;23817:419;;;:::o;24242:::-;24408:4;24446:2;24435:9;24431:18;24423:26;;24495:9;24489:4;24485:20;24481:1;24470:9;24466:17;24459:47;24523:131;24649:4;24523:131;:::i;:::-;24515:139;;24242:419;;;:::o;24667:::-;24833:4;24871:2;24860:9;24856:18;24848:26;;24920:9;24914:4;24910:20;24906:1;24895:9;24891:17;24884:47;24948:131;25074:4;24948:131;:::i;:::-;24940:139;;24667:419;;;:::o;25092:::-;25258:4;25296:2;25285:9;25281:18;25273:26;;25345:9;25339:4;25335:20;25331:1;25320:9;25316:17;25309:47;25373:131;25499:4;25373:131;:::i;:::-;25365:139;;25092:419;;;:::o;25517:::-;25683:4;25721:2;25710:9;25706:18;25698:26;;25770:9;25764:4;25760:20;25756:1;25745:9;25741:17;25734:47;25798:131;25924:4;25798:131;:::i;:::-;25790:139;;25517:419;;;:::o;25942:::-;26108:4;26146:2;26135:9;26131:18;26123:26;;26195:9;26189:4;26185:20;26181:1;26170:9;26166:17;26159:47;26223:131;26349:4;26223:131;:::i;:::-;26215:139;;25942:419;;;:::o;26367:::-;26533:4;26571:2;26560:9;26556:18;26548:26;;26620:9;26614:4;26610:20;26606:1;26595:9;26591:17;26584:47;26648:131;26774:4;26648:131;:::i;:::-;26640:139;;26367:419;;;:::o;26792:::-;26958:4;26996:2;26985:9;26981:18;26973:26;;27045:9;27039:4;27035:20;27031:1;27020:9;27016:17;27009:47;27073:131;27199:4;27073:131;:::i;:::-;27065:139;;26792:419;;;:::o;27217:::-;27383:4;27421:2;27410:9;27406:18;27398:26;;27470:9;27464:4;27460:20;27456:1;27445:9;27441:17;27434:47;27498:131;27624:4;27498:131;:::i;:::-;27490:139;;27217:419;;;:::o;27642:::-;27808:4;27846:2;27835:9;27831:18;27823:26;;27895:9;27889:4;27885:20;27881:1;27870:9;27866:17;27859:47;27923:131;28049:4;27923:131;:::i;:::-;27915:139;;27642:419;;;:::o;28067:::-;28233:4;28271:2;28260:9;28256:18;28248:26;;28320:9;28314:4;28310:20;28306:1;28295:9;28291:17;28284:47;28348:131;28474:4;28348:131;:::i;:::-;28340:139;;28067:419;;;:::o;28492:::-;28658:4;28696:2;28685:9;28681:18;28673:26;;28745:9;28739:4;28735:20;28731:1;28720:9;28716:17;28709:47;28773:131;28899:4;28773:131;:::i;:::-;28765:139;;28492:419;;;:::o;28917:222::-;29010:4;29048:2;29037:9;29033:18;29025:26;;29061:71;29129:1;29118:9;29114:17;29105:6;29061:71;:::i;:::-;28917:222;;;;:::o;29145:348::-;29274:4;29312:2;29301:9;29297:18;29289:26;;29325:71;29393:1;29382:9;29378:17;29369:6;29325:71;:::i;:::-;29406:80;29482:2;29471:9;29467:18;29458:6;29406:80;:::i;:::-;29145:348;;;;;:::o;29499:332::-;29620:4;29658:2;29647:9;29643:18;29635:26;;29671:71;29739:1;29728:9;29724:17;29715:6;29671:71;:::i;:::-;29752:72;29820:2;29809:9;29805:18;29796:6;29752:72;:::i;:::-;29499:332;;;;;:::o;29837:664::-;30042:4;30080:3;30069:9;30065:19;30057:27;;30094:71;30162:1;30151:9;30147:17;30138:6;30094:71;:::i;:::-;30175:72;30243:2;30232:9;30228:18;30219:6;30175:72;:::i;:::-;30257;30325:2;30314:9;30310:18;30301:6;30257:72;:::i;:::-;30339;30407:2;30396:9;30392:18;30383:6;30339:72;:::i;:::-;30421:73;30489:3;30478:9;30474:19;30465:6;30421:73;:::i;:::-;29837:664;;;;;;;;:::o;30507:129::-;30541:6;30568:20;;:::i;:::-;30558:30;;30597:33;30625:4;30617:6;30597:33;:::i;:::-;30507:129;;;:::o;30642:75::-;30675:6;30708:2;30702:9;30692:19;;30642:75;:::o;30723:311::-;30800:4;30890:18;30882:6;30879:30;30876:56;;;30912:18;;:::i;:::-;30876:56;30962:4;30954:6;30950:17;30942:25;;31022:4;31016;31012:15;31004:23;;30723:311;;;:::o;31040:::-;31117:4;31207:18;31199:6;31196:30;31193:56;;;31229:18;;:::i;:::-;31193:56;31279:4;31271:6;31267:17;31259:25;;31339:4;31333;31329:15;31321:23;;31040:311;;;:::o;31357:307::-;31418:4;31508:18;31500:6;31497:30;31494:56;;;31530:18;;:::i;:::-;31494:56;31568:29;31590:6;31568:29;:::i;:::-;31560:37;;31652:4;31646;31642:15;31634:23;;31357:307;;;:::o;31670:132::-;31737:4;31760:3;31752:11;;31790:4;31785:3;31781:14;31773:22;;31670:132;;;:::o;31808:114::-;31875:6;31909:5;31903:12;31893:22;;31808:114;;;:::o;31928:98::-;31979:6;32013:5;32007:12;31997:22;;31928:98;;;:::o;32032:99::-;32084:6;32118:5;32112:12;32102:22;;32032:99;;;:::o;32137:113::-;32207:4;32239;32234:3;32230:14;32222:22;;32137:113;;;:::o;32256:184::-;32355:11;32389:6;32384:3;32377:19;32429:4;32424:3;32420:14;32405:29;;32256:184;;;;:::o;32446:168::-;32529:11;32563:6;32558:3;32551:19;32603:4;32598:3;32594:14;32579:29;;32446:168;;;;:::o;32620:169::-;32704:11;32738:6;32733:3;32726:19;32778:4;32773:3;32769:14;32754:29;;32620:169;;;;:::o;32795:305::-;32835:3;32854:20;32872:1;32854:20;:::i;:::-;32849:25;;32888:20;32906:1;32888:20;:::i;:::-;32883:25;;33042:1;32974:66;32970:74;32967:1;32964:81;32961:107;;;33048:18;;:::i;:::-;32961:107;33092:1;33089;33085:9;33078:16;;32795:305;;;;:::o;33106:185::-;33146:1;33163:20;33181:1;33163:20;:::i;:::-;33158:25;;33197:20;33215:1;33197:20;:::i;:::-;33192:25;;33236:1;33226:35;;33241:18;;:::i;:::-;33226:35;33283:1;33280;33276:9;33271:14;;33106:185;;;;:::o;33297:348::-;33337:7;33360:20;33378:1;33360:20;:::i;:::-;33355:25;;33394:20;33412:1;33394:20;:::i;:::-;33389:25;;33582:1;33514:66;33510:74;33507:1;33504:81;33499:1;33492:9;33485:17;33481:105;33478:131;;;33589:18;;:::i;:::-;33478:131;33637:1;33634;33630:9;33619:20;;33297:348;;;;:::o;33651:191::-;33691:4;33711:20;33729:1;33711:20;:::i;:::-;33706:25;;33745:20;33763:1;33745:20;:::i;:::-;33740:25;;33784:1;33781;33778:8;33775:34;;;33789:18;;:::i;:::-;33775:34;33834:1;33831;33827:9;33819:17;;33651:191;;;;:::o;33848:96::-;33885:7;33914:24;33932:5;33914:24;:::i;:::-;33903:35;;33848:96;;;:::o;33950:104::-;33995:7;34024:24;34042:5;34024:24;:::i;:::-;34013:35;;33950:104;;;:::o;34060:90::-;34094:7;34137:5;34130:13;34123:21;34112:32;;34060:90;;;:::o;34156:149::-;34192:7;34232:66;34225:5;34221:78;34210:89;;34156:149;;;:::o;34311:126::-;34348:7;34388:42;34381:5;34377:54;34366:65;;34311:126;;;:::o;34443:77::-;34480:7;34509:5;34498:16;;34443:77;;;:::o;34526:121::-;34584:9;34617:24;34635:5;34617:24;:::i;:::-;34604:37;;34526:121;;;:::o;34653:154::-;34737:6;34732:3;34727;34714:30;34799:1;34790:6;34785:3;34781:16;34774:27;34653:154;;;:::o;34813:307::-;34881:1;34891:113;34905:6;34902:1;34899:13;34891:113;;;34990:1;34985:3;34981:11;34975:18;34971:1;34966:3;34962:11;34955:39;34927:2;34924:1;34920:10;34915:15;;34891:113;;;35022:6;35019:1;35016:13;35013:101;;;35102:1;35093:6;35088:3;35084:16;35077:27;35013:101;34862:258;34813:307;;;:::o;35126:320::-;35170:6;35207:1;35201:4;35197:12;35187:22;;35254:1;35248:4;35244:12;35275:18;35265:81;;35331:4;35323:6;35319:17;35309:27;;35265:81;35393:2;35385:6;35382:14;35362:18;35359:38;35356:84;;;35412:18;;:::i;:::-;35356:84;35177:269;35126:320;;;:::o;35452:281::-;35535:27;35557:4;35535:27;:::i;:::-;35527:6;35523:40;35665:6;35653:10;35650:22;35629:18;35617:10;35614:34;35611:62;35608:88;;;35676:18;;:::i;:::-;35608:88;35716:10;35712:2;35705:22;35495:238;35452:281;;:::o;35739:233::-;35778:3;35801:24;35819:5;35801:24;:::i;:::-;35792:33;;35847:66;35840:5;35837:77;35834:103;;;35917:18;;:::i;:::-;35834:103;35964:1;35957:5;35953:13;35946:20;;35739:233;;;:::o;35978:180::-;36026:77;36023:1;36016:88;36123:4;36120:1;36113:15;36147:4;36144:1;36137:15;36164:180;36212:77;36209:1;36202:88;36309:4;36306:1;36299:15;36333:4;36330:1;36323:15;36350:180;36398:77;36395:1;36388:88;36495:4;36492:1;36485:15;36519:4;36516:1;36509:15;36536:180;36584:77;36581:1;36574:88;36681:4;36678:1;36671:15;36705:4;36702:1;36695:15;36722:180;36770:77;36767:1;36760:88;36867:4;36864:1;36857:15;36891:4;36888:1;36881:15;36908:183;36943:3;36981:1;36963:16;36960:23;36957:128;;;37019:1;37016;37013;36998:23;37041:34;37072:1;37066:8;37041:34;:::i;:::-;37034:41;;36957:128;36908:183;:::o;37097:117::-;37206:1;37203;37196:12;37220:117;37329:1;37326;37319:12;37343:117;37452:1;37449;37442:12;37466:117;37575:1;37572;37565:12;37589:117;37698:1;37695;37688:12;37712:117;37821:1;37818;37811:12;37835:102;37876:6;37927:2;37923:7;37918:2;37911:5;37907:14;37903:28;37893:38;;37835:102;;;:::o;37943:106::-;37987:8;38036:5;38031:3;38027:15;38006:36;;37943:106;;;:::o;38055:239::-;38195:34;38191:1;38183:6;38179:14;38172:58;38264:22;38259:2;38251:6;38247:15;38240:47;38055:239;:::o;38300:227::-;38440:34;38436:1;38428:6;38424:14;38417:58;38509:10;38504:2;38496:6;38492:15;38485:35;38300:227;:::o;38533:230::-;38673:34;38669:1;38661:6;38657:14;38650:58;38742:13;38737:2;38729:6;38725:15;38718:38;38533:230;:::o;38769:224::-;38909:34;38905:1;38897:6;38893:14;38886:58;38978:7;38973:2;38965:6;38961:15;38954:32;38769:224;:::o;38999:228::-;39139:34;39135:1;39127:6;39123:14;39116:58;39208:11;39203:2;39195:6;39191:15;39184:36;38999:228;:::o;39233:224::-;39373:34;39369:1;39361:6;39357:14;39350:58;39442:7;39437:2;39429:6;39425:15;39418:32;39233:224;:::o;39463:237::-;39603:34;39599:1;39591:6;39587:14;39580:58;39672:20;39667:2;39659:6;39655:15;39648:45;39463:237;:::o;39706:229::-;39846:34;39842:1;39834:6;39830:14;39823:58;39915:12;39910:2;39902:6;39898:15;39891:37;39706:229;:::o;39941:233::-;40081:34;40077:1;40069:6;40065:14;40058:58;40150:16;40145:2;40137:6;40133:15;40126:41;39941:233;:::o;40180:228::-;40320:34;40316:1;40308:6;40304:14;40297:58;40389:11;40384:2;40376:6;40372:15;40365:36;40180:228;:::o;40414:::-;40554:34;40550:1;40542:6;40538:14;40531:58;40623:11;40618:2;40610:6;40606:15;40599:36;40414:228;:::o;40648:227::-;40788:34;40784:1;40776:6;40772:14;40765:58;40857:10;40852:2;40844:6;40840:15;40833:35;40648:227;:::o;40881:220::-;41021:34;41017:1;41009:6;41005:14;40998:58;41090:3;41085:2;41077:6;41073:15;41066:28;40881:220;:::o;41107:221::-;41247:34;41243:1;41235:6;41231:14;41224:58;41316:4;41311:2;41303:6;41299:15;41292:29;41107:221;:::o;41334:711::-;41373:3;41411:4;41393:16;41390:26;41387:39;;;41419:5;;41387:39;41448:20;;:::i;:::-;41523:1;41505:16;41501:24;41498:1;41492:4;41477:49;41556:4;41550:11;41655:16;41648:4;41640:6;41636:17;41633:39;41600:18;41592:6;41589:30;41573:113;41570:146;;;41701:5;;;;41570:146;41747:6;41741:4;41737:17;41783:3;41777:10;41810:18;41802:6;41799:30;41796:43;;;41832:5;;;;;;41796:43;41880:6;41873:4;41868:3;41864:14;41860:27;41939:1;41921:16;41917:24;41911:4;41907:35;41902:3;41899:44;41896:57;;;41946:5;;;;;;;41896:57;41963;42011:6;42005:4;42001:17;41993:6;41989:30;41983:4;41963:57;:::i;:::-;42036:3;42029:10;;41377:668;;;;;41334:711;;:::o;42051:122::-;42124:24;42142:5;42124:24;:::i;:::-;42117:5;42114:35;42104:63;;42163:1;42160;42153:12;42104:63;42051:122;:::o;42179:138::-;42260:32;42286:5;42260:32;:::i;:::-;42253:5;42250:43;42240:71;;42307:1;42304;42297:12;42240:71;42179:138;:::o;42323:116::-;42393:21;42408:5;42393:21;:::i;:::-;42386:5;42383:32;42373:60;;42429:1;42426;42419:12;42373:60;42323:116;:::o;42445:120::-;42517:23;42534:5;42517:23;:::i;:::-;42510:5;42507:34;42497:62;;42555:1;42552;42545:12;42497:62;42445:120;:::o;42571:122::-;42644:24;42662:5;42644:24;:::i;:::-;42637:5;42634:35;42624:63;;42683:1;42680;42673:12;42624:63;42571:122;:::o
Swarm Source
ipfs://0c2466bbe09edabcc548f2760d996d1e4fe0df987a969b843c4d98d70f213072
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.