Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
CBZ_token
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT // Simple ERC1155 Smart Contract made for CBZ tokens. pragma solidity ^0.8.12; import "./ERC1155.sol"; import "./Ownable.sol"; import "./Strings.sol"; /** * @title CBZ_token * CBZ_token - ERC1155 contract that whitelists an Proxy address, has mint functionality, * and supports useful standards from OpenZeppelin, * like _exists(), name(), symbol(), and totalSupply() */ contract CBZ_token is ERC1155, Ownable { //using Strings for string; address private Proxy; uint256 private _currentTokenID = 0; // Contract name string public name; // Contract symbol string public symbol; string private cbzToken = "CBZ Token: "; uint256 _totaltoken = 0; mapping (uint256 => uint256) public tokenSupply; modifier onlyProxy { require(msg.sender == Proxy, string.concat(cbzToken, "Only Proxy Function")); _; } constructor( string memory _name, string memory _symbol ) ERC1155("https://cornerboyz.club/metadata?token=") { name = _name; symbol = _symbol; } function uri( uint256 _id ) override public view returns (string memory) { require(_exists(_id), string.concat(cbzToken, "NONEXISTENT_TOKEN")); return string.concat(_uri,name,"&id=",Strings.toString(_id) ); } /** * @dev Returns the total quantity for a token ID * @return amount of token in existence */ function totalSupply() public view returns (uint256) { return _totaltoken; } /** * @dev Will update the base URL of token's URI * @param _newBaseMetadataURI New base URL of token's URI */ function setBaseMetadataURI( string memory _newBaseMetadataURI ) public onlyOwner { _setURI(_newBaseMetadataURI); } function setProxy(address _proxy) public onlyOwner { Proxy = _proxy; } /** * @dev Mints some amount of tokens to an address * @param _to Address of the future owner of the token * @param _quantity Amount of tokens to mint */ function mint( address _to, uint256 _quantity ) public onlyProxy { _mint(_to, _currentTokenID, _quantity, ""); tokenSupply[_currentTokenID] += _quantity; if(tokenlist[_currentTokenID] == 0){ tokenlist[_currentTokenID] = 1; _totaltoken += 1; } if(isApprovedForAll(_to,address(this)) == false && _to != Proxy){ _setApprovalForAll(_to, Proxy, true); } } function setTokenID(uint256 _newValue) public onlyProxy { _currentTokenID = _newValue; } function burn(address from, uint256 amount) public onlyProxy { _burn(from, _currentTokenID, amount); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./ERC165.sol"; import "./IERC1155.sol"; import "./IERC1155Receiver.sol"; import "./IERC1155MetadataURI.sol"; /** * @dev Implementation of the basic standard multi-token. * See https://eips.ethereum.org/EIPS/eip-1155 * Originally based on code by Enjin: https://github.com/enjin/erc-1155 * * _Available since v3.1._ */ contract ERC1155 is ERC165, IERC1155, IERC1155MetadataURI { // 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 => uint8) internal tokenlist; // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json string internal _uri; /** * @dev See {_setURI}. */ constructor(string memory uri_) { _uri = uri_; } /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC1155).interfaceId || interfaceId == type(IERC1155MetadataURI).interfaceId || super.supportsInterface(interfaceId); } /** * @dev See {IERC1155MetadataURI-uri}. * * This implementation returns the same URI for *all* token types. It relies * on the token type ID substitution mechanism * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. * * Clients calling this function must replace the `\{id\}` substring with the * actual token type ID. */ function uri(uint256) public view virtual override returns (string memory) { return _uri; } /** * @dev See {IERC1155-balanceOf}. * * Requirements: * * - `account` cannot be the zero address. */ function balanceOf(address account, uint256 id) public view virtual override returns (uint256) { require(account != address(0), "ERC1155: address zero is not a valid owner"); return _balances[id][account]; } /** * @dev See {IERC1155-balanceOfBatch}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch(address[] memory accounts, uint256[] memory ids) public view virtual 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; } /** * @dev See {IERC1155-setApprovalForAll}. */ function setApprovalForAll(address operator, bool approved) public virtual override { _setApprovalForAll(msg.sender, operator, approved); } /** * @dev See {IERC1155-isApprovedForAll}. */ function isApprovedForAll(address account, address operator) public view virtual override returns (bool) { return _operatorApprovals[account][operator]; } /** * @dev Returns whether the specified token exists by checking to see if it has a creator * @param _id uint256 ID of the token to query the existence of * @return bool whether the token exists */ function _exists( uint256 _id ) internal view returns (bool) { return tokenlist[_id] == 1; } /** * @dev See {IERC1155-safeTransferFrom}. */ function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data ) public virtual override { require( from == msg.sender || isApprovedForAll(from, msg.sender), "ERC1155: caller is not token owner or approved" ); _safeTransferFrom(from, to, id, amount, data); } /** * @dev See {IERC1155-safeBatchTransferFrom}. */ 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: caller is not token owner or approved" ); _safeBatchTransferFrom(from, to, ids, amounts, data); } /** * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - `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 memory data ) internal virtual { require(to != address(0), "ERC1155: transfer to the zero address"); address operator = msg.sender; uint256[] memory ids = _asSingletonArray(id); uint256[] memory amounts = _asSingletonArray(amount); _beforeTokenTransfer(operator, from, to, ids, amounts, data); 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(operator, from, to, id, amount); _afterTokenTransfer(operator, from, to, ids, amounts, data); _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data); } /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}. * * Emits a {TransferBatch} event. * * Requirements: * * - 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[] 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"); address operator = msg.sender; _beforeTokenTransfer(operator, from, to, ids, amounts, data); 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(operator, from, to, ids, amounts); _afterTokenTransfer(operator, from, to, ids, amounts, data); _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data); } /** * @dev Sets a new URI for all token types, by relying on the token type ID * substitution mechanism * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. * * By this mechanism, any occurrence of the `\{id\}` substring in either the * URI or any of the amounts in the JSON file at said URI will be replaced by * clients with the token type ID. * * For example, the `https://token-cdn-domain/\{id\}.json` URI would be * interpreted by clients as * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json` * for token type ID 0x4cce0. * * See {uri}. * * Because these URIs cannot be meaningfully represented by the {URI} event, * this function emits no events. */ function _setURI(string memory newuri) internal virtual { _uri = newuri; } /** * @dev Creates `amount` tokens of token type `id`, and assigns them to `to`. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ function _mint( address to, uint256 id, uint256 amount, bytes memory data ) internal virtual { require(to != address(0), "ERC1155: mint to the zero address"); address operator = msg.sender; uint256[] memory ids = _asSingletonArray(id); uint256[] memory amounts = _asSingletonArray(amount); _beforeTokenTransfer(operator, address(0), to, ids, amounts, data); _balances[id][to] += amount; emit TransferSingle(operator, address(0), to, id, amount); _afterTokenTransfer(operator, address(0), to, ids, amounts, data); _doSafeTransferAcceptanceCheck(operator, address(0), to, id, amount, data); } /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}. * * 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 _mintBatch( address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) internal virtual { require(to != address(0), "ERC1155: mint to the zero address"); require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); address operator = msg.sender; _beforeTokenTransfer(operator, address(0), to, ids, amounts, data); for (uint256 i = 0; i < ids.length; i++) { _balances[ids[i]][to] += amounts[i]; } emit TransferBatch(operator, address(0), to, ids, amounts); _afterTokenTransfer(operator, address(0), to, ids, amounts, data); _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data); } /** * @dev Destroys `amount` tokens of token type `id` from `from` * * Emits a {TransferSingle} event. * * Requirements: * * - `from` cannot be the zero address. * - `from` must have at least `amount` tokens of token type `id`. */ function _burn( address from, uint256 id, uint256 amount ) internal virtual { require(from != address(0), "ERC1155: burn from the zero address"); address operator = msg.sender; uint256[] memory ids = _asSingletonArray(id); uint256[] memory amounts = _asSingletonArray(amount); _beforeTokenTransfer(operator, from, address(0), ids, amounts, ""); uint256 fromBalance = _balances[id][from]; require(fromBalance >= amount, "ERC1155: burn amount exceeds balance"); unchecked { _balances[id][from] = fromBalance - amount; } emit TransferSingle(operator, from, address(0), id, amount); _afterTokenTransfer(operator, from, address(0), ids, amounts, ""); } /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}. * * Emits a {TransferBatch} event. * * Requirements: * * - `ids` and `amounts` must have the same length. */ function _burnBatch( address from, uint256[] memory ids, uint256[] memory amounts ) internal virtual { require(from != address(0), "ERC1155: burn from the zero address"); require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); address operator = msg.sender; _beforeTokenTransfer(operator, from, address(0), ids, amounts, ""); 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: burn amount exceeds balance"); unchecked { _balances[id][from] = fromBalance - amount; } } emit TransferBatch(operator, from, address(0), ids, amounts); _afterTokenTransfer(operator, from, address(0), ids, amounts, ""); } /** * @dev Approve `operator` to operate on all of `owner` tokens * * Emits an {ApprovalForAll} event. */ function _setApprovalForAll( address owner, address operator, bool approved ) internal virtual { if(owner == operator) {} else { _operatorApprovals[owner][operator] = approved; emit ApprovalForAll(owner, operator, approved); } } /** * @dev Hook that is called before any token transfer. This includes minting * and burning, as well as batched variants. * * The same hook is called on both single and batched variants. For single * transfers, the length of the `ids` and `amounts` arrays will be 1. * * Calling conditions (for each `id` and `amount` pair): * * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens * of token type `id` will be transferred to `to`. * - When `from` is zero, `amount` tokens of token type `id` will be minted * for `to`. * - when `to` is zero, `amount` of ``from``'s tokens of token type `id` * will be burned. * - `from` and `to` are never both zero. * - `ids` and `amounts` have the same, non-zero length. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address operator, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) internal virtual {} /** * @dev Hook that is called after any token transfer. This includes minting * and burning, as well as batched variants. * * The same hook is called on both single and batched variants. For single * transfers, the length of the `id` and `amount` arrays will be 1. * * Calling conditions (for each `id` and `amount` pair): * * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens * of token type `id` will be transferred to `to`. * - When `from` is zero, `amount` tokens of token type `id` will be minted * for `to`. * - when `to` is zero, `amount` of ``from``'s tokens of token type `id` * will be burned. * - `from` and `to` are never both zero. * - `ids` and `amounts` have the same, non-zero length. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address operator, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) internal virtual {} function _doSafeTransferAcceptanceCheck( address operator, address from, address to, uint256 id, uint256 amount, bytes memory data ) private { if (to.code.length > 0) { // isContract try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) { if (response != IERC1155Receiver.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.code.length > 0) { // isContract try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns ( bytes4 response ) { if (response != IERC1155Receiver.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; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` * * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC1155/IERC1155.sol) pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @dev Required interface of an ERC1155 compliant contract, as defined in the * https://eips.ethereum.org/EIPS/eip-1155[EIP]. * * _Available since v3.1._ */ 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 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; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC1155/extensions/IERC1155MetadataURI.sol) pragma solidity ^0.8.0; import "./IERC1155.sol"; /** * @dev Interface of the optional ERC1155MetadataExtension interface, as defined * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP]. * * _Available since v3.1._ */ 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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol) pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @dev _Available since v3.1._ */ 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. * * NOTE: 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. * * NOTE: 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); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ 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); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; //import "./Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable { address internal _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(msg.sender); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == msg.sender, "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev String operations. */ library Strings { bytes16 private constant _HEX_SYMBOLS = "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] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"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":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","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":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseMetadataURI","type":"string"}],"name":"setBaseMetadataURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proxy","type":"address"}],"name":"setProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newValue","type":"uint256"}],"name":"setTokenID","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":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
600060065560c0604052600b60808190526a021a12d102a37b5b2b71d160ad1b60a09081526200003391600991906200012c565b506000600a553480156200004657600080fd5b50604051620023d7380380620023d783398101604081905262000069916200029f565b604051806060016040528060278152602001620023b0602791398051620000989060039060208401906200012c565b50620000a6905033620000da565b8151620000bb9060079060208501906200012c565b508051620000d19060089060208401906200012c565b50505062000346565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200013a9062000309565b90600052602060002090601f0160209004810192826200015e5760008555620001a9565b82601f106200017957805160ff1916838001178555620001a9565b82800160010185558215620001a9579182015b82811115620001a95782518255916020019190600101906200018c565b50620001b7929150620001bb565b5090565b5b80821115620001b75760008155600101620001bc565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001fa57600080fd5b81516001600160401b0380821115620002175762000217620001d2565b604051601f8301601f19908116603f01168101908282118183101715620002425762000242620001d2565b816040528381526020925086838588010111156200025f57600080fd5b600091505b8382101562000283578582018301518183018401529082019062000264565b83821115620002955760008385830101525b9695505050505050565b60008060408385031215620002b357600080fd5b82516001600160401b0380821115620002cb57600080fd5b620002d986838701620001e8565b93506020850151915080821115620002f057600080fd5b50620002ff85828601620001e8565b9150509250929050565b600181811c908216806200031e57607f821691505b602082108114156200034057634e487b7160e01b600052602260045260246000fd5b50919050565b61205a80620003566000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c80637e518ec8116100ad5780639dc29fac116100715780639dc29fac14610275578063a22cb46514610288578063e985e9c51461029b578063f242432a146102d7578063f2fde38b146102ea57600080fd5b80637e518ec8146102195780638da5cb5b1461022c5780638ee252671461024757806395d89b411461025a57806397107d6d1461026257600080fd5b80632693ebf2116100f45780632693ebf2146101a95780632eb2c2d6146101c957806340c10f19146101de5780634e1273f4146101f1578063715018a61461021157600080fd5b8062fdd58e1461013057806301ffc9a71461015657806306fdde03146101795780630e89341c1461018e57806318160ddd146101a1575b600080fd5b61014361013e36600461171b565b6102fd565b6040519081526020015b60405180910390f35b61016961016436600461175b565b610393565b604051901515815260200161014d565b6101816103e5565b60405161014d91906117db565b61018161019c3660046117ee565b610473565b600a54610143565b6101436101b73660046117ee565b600b6020526000908152604090205481565b6101dc6101d736600461195d565b610506565b005b6101dc6101ec36600461171b565b6105b7565b6102046101ff366004611a07565b610700565b60405161014d9190611b0d565b6101dc61082a565b6101dc610227366004611b20565b61083e565b6004546040516001600160a01b03909116815260200161014d565b6101dc6102553660046117ee565b610852565b6101816108a8565b6101dc610270366004611b69565b6108b5565b6101dc61028336600461171b565b6108df565b6101dc610296366004611b84565b61093d565b6101696102a9366004611bc0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6101dc6102e5366004611bf3565b610948565b6101dc6102f8366004611b69565b6109f2565b60006001600160a01b03831661036d5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b14806103c457506001600160e01b031982166303a24d0760e21b145b806103df57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600780546103f290611c58565b80601f016020809104026020016040519081016040528092919081815260200182805461041e90611c58565b801561046b5780601f106104405761010080835404028352916020019161046b565b820191906000526020600020905b81548152906001019060200180831161044e57829003601f168201915b505050505081565b60606104918260009081526002602052604090205460ff1660011490565b60096040516020016104a39190611d2d565b604051602081830303815290604052906104d05760405162461bcd60e51b815260040161036491906117db565b50600360076104de84610a68565b6040516020016104f093929190611d66565b6040516020818303038152906040529050919050565b6001600160a01b03851633148061054057506001600160a01b038516600090815260016020908152604080832033845290915290205460ff165b6105a35760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201526d195c881bdc88185c1c1c9bdd995960921b6064820152608401610364565b6105b08585858585610b86565b5050505050565b6005546040516001600160a01b039091163314906105da90600990602001611da5565b604051602081830303815290604052906106075760405162461bcd60e51b815260040161036491906117db565b50610625826006548360405180602001604052806000815250610de4565b6006546000908152600b602052604081208054839290610646908490611df4565b909155505060065460009081526002602052604090205460ff1661069c576006546000908152600260205260408120805460ff19166001908117909155600a805491929091610696908490611df4565b90915550505b6001600160a01b038216600090815260016020908152604080832030845290915290205460ff161580156106de57506005546001600160a01b03838116911614155b156106fc576005546106fc9083906001600160a01b03166001610ef8565b5050565b606081518351146107655760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610364565b6000835167ffffffffffffffff81111561078157610781611807565b6040519080825280602002602001820160405280156107aa578160200160208202803683370190505b50905060005b8451811015610822576107f58582815181106107ce576107ce611e0c565b60200260200101518583815181106107e8576107e8611e0c565b60200260200101516102fd565b82828151811061080757610807611e0c565b602090810291909101015261081b81611e22565b90506107b0565b509392505050565b610832610f84565b61083c6000610fed565b565b610846610f84565b61084f8161103f565b50565b6005546040516001600160a01b0390911633149061087590600990602001611da5565b604051602081830303815290604052906108a25760405162461bcd60e51b815260040161036491906117db565b50600655565b600880546103f290611c58565b6108bd610f84565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546040516001600160a01b0390911633149061090290600990602001611da5565b6040516020818303038152906040529061092f5760405162461bcd60e51b815260040161036491906117db565b506106fc8260065483611052565b6106fc338383610ef8565b6001600160a01b03851633148061098257506001600160a01b038516600090815260016020908152604080832033845290915290205460ff165b6109e55760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201526d195c881bdc88185c1c1c9bdd995960921b6064820152608401610364565b6105b085858585856111ce565b6109fa610f84565b6001600160a01b038116610a5f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610364565b61084f81610fed565b606081610a8c5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610ab65780610aa081611e22565b9150610aaf9050600a83611e53565b9150610a90565b60008167ffffffffffffffff811115610ad157610ad1611807565b6040519080825280601f01601f191660200182016040528015610afb576020820181803683370190505b5090505b8415610b7e57610b10600183611e67565b9150610b1d600a86611e7e565b610b28906030611df4565b60f81b818381518110610b3d57610b3d611e0c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610b77600a86611e53565b9450610aff565b949350505050565b8151835114610be85760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610364565b6001600160a01b038416610c4c5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610364565b3360005b8451811015610d76576000858281518110610c6d57610c6d611e0c565b602002602001015190506000858381518110610c8b57610c8b611e0c565b602090810291909101810151600084815280835260408082206001600160a01b038e168352909352919091205490915081811015610d1e5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610364565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610d5b908490611df4565b9250508190555050505080610d6f90611e22565b9050610c50565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610dc6929190611e92565b60405180910390a4610ddc818787878787611379565b505050505050565b6001600160a01b038416610e445760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610364565b336000610e508561151f565b90506000610e5d8561151f565b90506000868152602081815260408083206001600160a01b038b16845290915281208054879290610e8f908490611df4565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610eef8360008989898961156a565b50505050505050565b816001600160a01b0316836001600160a01b03161415610f1757505050565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b33610f976004546001600160a01b031690565b6001600160a01b03161461083c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610364565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516106fc906003906020840190611666565b6001600160a01b0383166110b45760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610364565b3360006110c08461151f565b905060006110cd8461151f565b60408051602080820183526000918290528882528181528282206001600160a01b038b16835290522054909150848110156111565760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610364565b6000868152602081815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052610eef565b6001600160a01b0384166112325760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610364565b33600061123e8561151f565b9050600061124b8561151f565b90506000868152602081815260408083206001600160a01b038c168452909152902054858110156112d15760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610364565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061130e908490611df4565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461136e848a8a8a8a8a61156a565b505050505050505050565b6001600160a01b0384163b15610ddc5760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906113bd9089908990889088908890600401611ec0565b6020604051808303816000875af19250505080156113f8575060408051601f3d908101601f191682019092526113f591810190611f1e565b60015b6114ae57611404611f3b565b806308c379a0141561143e5750611419611f57565b806114245750611440565b8060405162461bcd60e51b815260040161036491906117db565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560448201527f526563656976657220696d706c656d656e7465720000000000000000000000006064820152608401610364565b6001600160e01b0319811663bc197c8160e01b14610eef5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610364565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061155957611559611e0c565b602090810291909101015292915050565b6001600160a01b0384163b15610ddc5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906115ae9089908990889088908890600401611fe1565b6020604051808303816000875af19250505080156115e9575060408051601f3d908101601f191682019092526115e691810190611f1e565b60015b6115f557611404611f3b565b6001600160e01b0319811663f23a6e6160e01b14610eef5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610364565b82805461167290611c58565b90600052602060002090601f01602090048101928261169457600085556116da565b82601f106116ad57805160ff19168380011785556116da565b828001600101855582156116da579182015b828111156116da5782518255916020019190600101906116bf565b506116e69291506116ea565b5090565b5b808211156116e657600081556001016116eb565b80356001600160a01b038116811461171657600080fd5b919050565b6000806040838503121561172e57600080fd5b611737836116ff565b946020939093013593505050565b6001600160e01b03198116811461084f57600080fd5b60006020828403121561176d57600080fd5b813561177881611745565b9392505050565b60005b8381101561179a578181015183820152602001611782565b838111156117a9576000848401525b50505050565b600081518084526117c781602086016020860161177f565b601f01601f19169290920160200192915050565b60208152600061177860208301846117af565b60006020828403121561180057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff8111828210171561184357611843611807565b6040525050565b600067ffffffffffffffff82111561186457611864611807565b5060051b60200190565b600082601f83011261187f57600080fd5b8135602061188c8261184a565b604051611899828261181d565b83815260059390931b85018201928281019150868411156118b957600080fd5b8286015b848110156118d457803583529183019183016118bd565b509695505050505050565b600067ffffffffffffffff8311156118f9576118f9611807565b604051611910601f8501601f19166020018261181d565b80915083815284848401111561192557600080fd5b83836020830137600060208583010152509392505050565b600082601f83011261194e57600080fd5b611778838335602085016118df565b600080600080600060a0868803121561197557600080fd5b61197e866116ff565b945061198c602087016116ff565b9350604086013567ffffffffffffffff808211156119a957600080fd5b6119b589838a0161186e565b945060608801359150808211156119cb57600080fd5b6119d789838a0161186e565b935060808801359150808211156119ed57600080fd5b506119fa8882890161193d565b9150509295509295909350565b60008060408385031215611a1a57600080fd5b823567ffffffffffffffff80821115611a3257600080fd5b818501915085601f830112611a4657600080fd5b81356020611a538261184a565b604051611a60828261181d565b83815260059390931b8501820192828101915089841115611a8057600080fd5b948201945b83861015611aa557611a96866116ff565b82529482019490820190611a85565b96505086013592505080821115611abb57600080fd5b50611ac88582860161186e565b9150509250929050565b600081518084526020808501945080840160005b83811015611b0257815187529582019590820190600101611ae6565b509495945050505050565b6020815260006117786020830184611ad2565b600060208284031215611b3257600080fd5b813567ffffffffffffffff811115611b4957600080fd5b8201601f81018413611b5a57600080fd5b610b7e848235602084016118df565b600060208284031215611b7b57600080fd5b611778826116ff565b60008060408385031215611b9757600080fd5b611ba0836116ff565b915060208301358015158114611bb557600080fd5b809150509250929050565b60008060408385031215611bd357600080fd5b611bdc836116ff565b9150611bea602084016116ff565b90509250929050565b600080600080600060a08688031215611c0b57600080fd5b611c14866116ff565b9450611c22602087016116ff565b93506040860135925060608601359150608086013567ffffffffffffffff811115611c4c57600080fd5b6119fa8882890161193d565b600181811c90821680611c6c57607f821691505b60208210811415611c8d57634e487b7160e01b600052602260045260246000fd5b50919050565b8054600090600181811c9080831680611cad57607f831692505b6020808410821415611ccf57634e487b7160e01b600052602260045260246000fd5b818015611ce35760018114611cf457611d21565b60ff19861689528489019650611d21565b60008881526020902060005b86811015611d195781548b820152908501908301611d00565b505084890196505b50505050505092915050565b6000611d398284611c93565b7f4e4f4e4558495354454e545f544f4b454e00000000000000000000000000000081526011019392505050565b6000611d7b611d758387611c93565b85611c93565b632669643d60e01b81528351611d9881600484016020880161177f565b0160040195945050505050565b6000611db18284611c93565b7f4f6e6c792050726f78792046756e6374696f6e0000000000000000000000000081526013019392505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611e0757611e07611dde565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611e3657611e36611dde565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611e6257611e62611e3d565b500490565b600082821015611e7957611e79611dde565b500390565b600082611e8d57611e8d611e3d565b500690565b604081526000611ea56040830185611ad2565b8281036020840152611eb78185611ad2565b95945050505050565b60006001600160a01b03808816835280871660208401525060a06040830152611eec60a0830186611ad2565b8281036060840152611efe8186611ad2565b90508281036080840152611f1281856117af565b98975050505050505050565b600060208284031215611f3057600080fd5b815161177881611745565b600060033d1115611f545760046000803e5060005160e01c5b90565b600060443d1015611f655790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715611f9557505050505090565b8285019150815181811115611fad5750505050505090565b843d8701016020828501011115611fc75750505050505090565b611fd66020828601018761181d565b509095945050505050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261201960a08301846117af565b97965050505050505056fea264697066735822122058c6ae862f30a98d8ba2136cfbf496789276f9950af8125e2590302834779bc564736f6c634300080c003368747470733a2f2f636f726e6572626f797a2e636c75622f6d657461646174613f746f6b656e3d00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000b43427a20466c6f77657224000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b43427a20466c6f77657224000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012b5760003560e01c80637e518ec8116100ad5780639dc29fac116100715780639dc29fac14610275578063a22cb46514610288578063e985e9c51461029b578063f242432a146102d7578063f2fde38b146102ea57600080fd5b80637e518ec8146102195780638da5cb5b1461022c5780638ee252671461024757806395d89b411461025a57806397107d6d1461026257600080fd5b80632693ebf2116100f45780632693ebf2146101a95780632eb2c2d6146101c957806340c10f19146101de5780634e1273f4146101f1578063715018a61461021157600080fd5b8062fdd58e1461013057806301ffc9a71461015657806306fdde03146101795780630e89341c1461018e57806318160ddd146101a1575b600080fd5b61014361013e36600461171b565b6102fd565b6040519081526020015b60405180910390f35b61016961016436600461175b565b610393565b604051901515815260200161014d565b6101816103e5565b60405161014d91906117db565b61018161019c3660046117ee565b610473565b600a54610143565b6101436101b73660046117ee565b600b6020526000908152604090205481565b6101dc6101d736600461195d565b610506565b005b6101dc6101ec36600461171b565b6105b7565b6102046101ff366004611a07565b610700565b60405161014d9190611b0d565b6101dc61082a565b6101dc610227366004611b20565b61083e565b6004546040516001600160a01b03909116815260200161014d565b6101dc6102553660046117ee565b610852565b6101816108a8565b6101dc610270366004611b69565b6108b5565b6101dc61028336600461171b565b6108df565b6101dc610296366004611b84565b61093d565b6101696102a9366004611bc0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6101dc6102e5366004611bf3565b610948565b6101dc6102f8366004611b69565b6109f2565b60006001600160a01b03831661036d5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b14806103c457506001600160e01b031982166303a24d0760e21b145b806103df57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600780546103f290611c58565b80601f016020809104026020016040519081016040528092919081815260200182805461041e90611c58565b801561046b5780601f106104405761010080835404028352916020019161046b565b820191906000526020600020905b81548152906001019060200180831161044e57829003601f168201915b505050505081565b60606104918260009081526002602052604090205460ff1660011490565b60096040516020016104a39190611d2d565b604051602081830303815290604052906104d05760405162461bcd60e51b815260040161036491906117db565b50600360076104de84610a68565b6040516020016104f093929190611d66565b6040516020818303038152906040529050919050565b6001600160a01b03851633148061054057506001600160a01b038516600090815260016020908152604080832033845290915290205460ff165b6105a35760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201526d195c881bdc88185c1c1c9bdd995960921b6064820152608401610364565b6105b08585858585610b86565b5050505050565b6005546040516001600160a01b039091163314906105da90600990602001611da5565b604051602081830303815290604052906106075760405162461bcd60e51b815260040161036491906117db565b50610625826006548360405180602001604052806000815250610de4565b6006546000908152600b602052604081208054839290610646908490611df4565b909155505060065460009081526002602052604090205460ff1661069c576006546000908152600260205260408120805460ff19166001908117909155600a805491929091610696908490611df4565b90915550505b6001600160a01b038216600090815260016020908152604080832030845290915290205460ff161580156106de57506005546001600160a01b03838116911614155b156106fc576005546106fc9083906001600160a01b03166001610ef8565b5050565b606081518351146107655760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610364565b6000835167ffffffffffffffff81111561078157610781611807565b6040519080825280602002602001820160405280156107aa578160200160208202803683370190505b50905060005b8451811015610822576107f58582815181106107ce576107ce611e0c565b60200260200101518583815181106107e8576107e8611e0c565b60200260200101516102fd565b82828151811061080757610807611e0c565b602090810291909101015261081b81611e22565b90506107b0565b509392505050565b610832610f84565b61083c6000610fed565b565b610846610f84565b61084f8161103f565b50565b6005546040516001600160a01b0390911633149061087590600990602001611da5565b604051602081830303815290604052906108a25760405162461bcd60e51b815260040161036491906117db565b50600655565b600880546103f290611c58565b6108bd610f84565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546040516001600160a01b0390911633149061090290600990602001611da5565b6040516020818303038152906040529061092f5760405162461bcd60e51b815260040161036491906117db565b506106fc8260065483611052565b6106fc338383610ef8565b6001600160a01b03851633148061098257506001600160a01b038516600090815260016020908152604080832033845290915290205460ff165b6109e55760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201526d195c881bdc88185c1c1c9bdd995960921b6064820152608401610364565b6105b085858585856111ce565b6109fa610f84565b6001600160a01b038116610a5f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610364565b61084f81610fed565b606081610a8c5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610ab65780610aa081611e22565b9150610aaf9050600a83611e53565b9150610a90565b60008167ffffffffffffffff811115610ad157610ad1611807565b6040519080825280601f01601f191660200182016040528015610afb576020820181803683370190505b5090505b8415610b7e57610b10600183611e67565b9150610b1d600a86611e7e565b610b28906030611df4565b60f81b818381518110610b3d57610b3d611e0c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610b77600a86611e53565b9450610aff565b949350505050565b8151835114610be85760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610364565b6001600160a01b038416610c4c5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610364565b3360005b8451811015610d76576000858281518110610c6d57610c6d611e0c565b602002602001015190506000858381518110610c8b57610c8b611e0c565b602090810291909101810151600084815280835260408082206001600160a01b038e168352909352919091205490915081811015610d1e5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610364565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610d5b908490611df4565b9250508190555050505080610d6f90611e22565b9050610c50565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610dc6929190611e92565b60405180910390a4610ddc818787878787611379565b505050505050565b6001600160a01b038416610e445760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610364565b336000610e508561151f565b90506000610e5d8561151f565b90506000868152602081815260408083206001600160a01b038b16845290915281208054879290610e8f908490611df4565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610eef8360008989898961156a565b50505050505050565b816001600160a01b0316836001600160a01b03161415610f1757505050565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b33610f976004546001600160a01b031690565b6001600160a01b03161461083c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610364565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516106fc906003906020840190611666565b6001600160a01b0383166110b45760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610364565b3360006110c08461151f565b905060006110cd8461151f565b60408051602080820183526000918290528882528181528282206001600160a01b038b16835290522054909150848110156111565760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610364565b6000868152602081815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052610eef565b6001600160a01b0384166112325760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610364565b33600061123e8561151f565b9050600061124b8561151f565b90506000868152602081815260408083206001600160a01b038c168452909152902054858110156112d15760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610364565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061130e908490611df4565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461136e848a8a8a8a8a61156a565b505050505050505050565b6001600160a01b0384163b15610ddc5760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906113bd9089908990889088908890600401611ec0565b6020604051808303816000875af19250505080156113f8575060408051601f3d908101601f191682019092526113f591810190611f1e565b60015b6114ae57611404611f3b565b806308c379a0141561143e5750611419611f57565b806114245750611440565b8060405162461bcd60e51b815260040161036491906117db565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560448201527f526563656976657220696d706c656d656e7465720000000000000000000000006064820152608401610364565b6001600160e01b0319811663bc197c8160e01b14610eef5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610364565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061155957611559611e0c565b602090810291909101015292915050565b6001600160a01b0384163b15610ddc5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906115ae9089908990889088908890600401611fe1565b6020604051808303816000875af19250505080156115e9575060408051601f3d908101601f191682019092526115e691810190611f1e565b60015b6115f557611404611f3b565b6001600160e01b0319811663f23a6e6160e01b14610eef5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610364565b82805461167290611c58565b90600052602060002090601f01602090048101928261169457600085556116da565b82601f106116ad57805160ff19168380011785556116da565b828001600101855582156116da579182015b828111156116da5782518255916020019190600101906116bf565b506116e69291506116ea565b5090565b5b808211156116e657600081556001016116eb565b80356001600160a01b038116811461171657600080fd5b919050565b6000806040838503121561172e57600080fd5b611737836116ff565b946020939093013593505050565b6001600160e01b03198116811461084f57600080fd5b60006020828403121561176d57600080fd5b813561177881611745565b9392505050565b60005b8381101561179a578181015183820152602001611782565b838111156117a9576000848401525b50505050565b600081518084526117c781602086016020860161177f565b601f01601f19169290920160200192915050565b60208152600061177860208301846117af565b60006020828403121561180057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff8111828210171561184357611843611807565b6040525050565b600067ffffffffffffffff82111561186457611864611807565b5060051b60200190565b600082601f83011261187f57600080fd5b8135602061188c8261184a565b604051611899828261181d565b83815260059390931b85018201928281019150868411156118b957600080fd5b8286015b848110156118d457803583529183019183016118bd565b509695505050505050565b600067ffffffffffffffff8311156118f9576118f9611807565b604051611910601f8501601f19166020018261181d565b80915083815284848401111561192557600080fd5b83836020830137600060208583010152509392505050565b600082601f83011261194e57600080fd5b611778838335602085016118df565b600080600080600060a0868803121561197557600080fd5b61197e866116ff565b945061198c602087016116ff565b9350604086013567ffffffffffffffff808211156119a957600080fd5b6119b589838a0161186e565b945060608801359150808211156119cb57600080fd5b6119d789838a0161186e565b935060808801359150808211156119ed57600080fd5b506119fa8882890161193d565b9150509295509295909350565b60008060408385031215611a1a57600080fd5b823567ffffffffffffffff80821115611a3257600080fd5b818501915085601f830112611a4657600080fd5b81356020611a538261184a565b604051611a60828261181d565b83815260059390931b8501820192828101915089841115611a8057600080fd5b948201945b83861015611aa557611a96866116ff565b82529482019490820190611a85565b96505086013592505080821115611abb57600080fd5b50611ac88582860161186e565b9150509250929050565b600081518084526020808501945080840160005b83811015611b0257815187529582019590820190600101611ae6565b509495945050505050565b6020815260006117786020830184611ad2565b600060208284031215611b3257600080fd5b813567ffffffffffffffff811115611b4957600080fd5b8201601f81018413611b5a57600080fd5b610b7e848235602084016118df565b600060208284031215611b7b57600080fd5b611778826116ff565b60008060408385031215611b9757600080fd5b611ba0836116ff565b915060208301358015158114611bb557600080fd5b809150509250929050565b60008060408385031215611bd357600080fd5b611bdc836116ff565b9150611bea602084016116ff565b90509250929050565b600080600080600060a08688031215611c0b57600080fd5b611c14866116ff565b9450611c22602087016116ff565b93506040860135925060608601359150608086013567ffffffffffffffff811115611c4c57600080fd5b6119fa8882890161193d565b600181811c90821680611c6c57607f821691505b60208210811415611c8d57634e487b7160e01b600052602260045260246000fd5b50919050565b8054600090600181811c9080831680611cad57607f831692505b6020808410821415611ccf57634e487b7160e01b600052602260045260246000fd5b818015611ce35760018114611cf457611d21565b60ff19861689528489019650611d21565b60008881526020902060005b86811015611d195781548b820152908501908301611d00565b505084890196505b50505050505092915050565b6000611d398284611c93565b7f4e4f4e4558495354454e545f544f4b454e00000000000000000000000000000081526011019392505050565b6000611d7b611d758387611c93565b85611c93565b632669643d60e01b81528351611d9881600484016020880161177f565b0160040195945050505050565b6000611db18284611c93565b7f4f6e6c792050726f78792046756e6374696f6e0000000000000000000000000081526013019392505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611e0757611e07611dde565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611e3657611e36611dde565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611e6257611e62611e3d565b500490565b600082821015611e7957611e79611dde565b500390565b600082611e8d57611e8d611e3d565b500690565b604081526000611ea56040830185611ad2565b8281036020840152611eb78185611ad2565b95945050505050565b60006001600160a01b03808816835280871660208401525060a06040830152611eec60a0830186611ad2565b8281036060840152611efe8186611ad2565b90508281036080840152611f1281856117af565b98975050505050505050565b600060208284031215611f3057600080fd5b815161177881611745565b600060033d1115611f545760046000803e5060005160e01c5b90565b600060443d1015611f655790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715611f9557505050505090565b8285019150815181811115611fad5750505050505090565b843d8701016020828501011115611fc75750505050505090565b611fd66020828601018761181d565b509095945050505050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261201960a08301846117af565b97965050505050505056fea264697066735822122058c6ae862f30a98d8ba2136cfbf496789276f9950af8125e2590302834779bc564736f6c634300080c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000b43427a20466c6f77657224000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b43427a20466c6f77657224000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): CBz Flower$
Arg [1] : _symbol (string): CBz Flower$
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [3] : 43427a20466c6f77657224000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [5] : 43427a20466c6f77657224000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
426:2296:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2081:230:1;;;;;;:::i;:::-;;:::i;:::-;;;620:25:9;;;608:2;593:18;2081:230:1;;;;;;;;1104:310;;;;;;:::i;:::-;;:::i;:::-;;;1207:14:9;;1200:22;1182:41;;1170:2;1155:18;1104:310:1;1042:187:9;595:18:0;;;:::i;:::-;;;;;;;:::i;1095:234::-;;;;;;:::i;:::-;;:::i;1448:84::-;1515:11;;1448:84;;743:47;;;;;;:::i;:::-;;;;;;;;;;;;;;4370:434:1;;;;;;:::i;:::-;;:::i;:::-;;2074:423:0;;;;;;:::i;:::-;;:::i;2477:524:1:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1800:103:7:-;;;:::i;1664:131:0:-;;;;;;:::i;:::-;;:::i;1154:87:7:-;1227:6;;1154:87;;-1:-1:-1;;;;;1227:6:7;;;7639:74:9;;7627:2;7612:18;1154:87:7;7493:226:9;2503:98:0;;;;;;:::i;:::-;;:::i;640:20::-;;;:::i;1801:78::-;;;;;;:::i;:::-;;:::i;2607:110::-;;;;;;:::i;:::-;;:::i;3074:153:1:-;;;;;;:::i;:::-;;:::i;3299:168::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3422:27:1;;;3398:4;3422:27;;;:18;:27;;;;;;;;:37;;;;;;;;;;;;;;;3299:168;3891:402;;;;;;:::i;:::-;;:::i;2058:201:7:-;;;;;;:::i;:::-;;:::i;2081:230:1:-;2167:7;-1:-1:-1;;;;;2195:21:1;;2187:76;;;;-1:-1:-1;;;2187:76:1;;9345:2:9;2187:76:1;;;9327:21:9;9384:2;9364:18;;;9357:30;9423:34;9403:18;;;9396:62;-1:-1:-1;;;9474:18:9;;;9467:40;9524:19;;2187:76:1;;;;;;;;;-1:-1:-1;2281:9:1;:13;;;;;;;;;;;-1:-1:-1;;;;;2281:22:1;;;;;;;;;;;;2081:230::o;1104:310::-;1206:4;-1:-1:-1;;;;;;1243:41:1;;-1:-1:-1;;;1243:41:1;;:110;;-1:-1:-1;;;;;;;1301:52:1;;-1:-1:-1;;;1301:52:1;1243:110;:163;;;-1:-1:-1;;;;;;;;;;896:40:2;;;1370:36:1;1223:183;1104:310;-1:-1:-1;;1104:310:1:o;595:18:0:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1095:234::-;1161:13;1191:12;1199:3;3768:4:1;3792:14;;;:9;:14;;;;;;;;;:19;;3699:120;1191:12:0;1219:8;1205:44;;;;;;;;:::i;:::-;;;;;;;;;;;;;1183:67;;;;;-1:-1:-1;;;1183:67:0;;;;;;;;:::i;:::-;;1278:4;1283;1295:21;1312:3;1295:16;:21::i;:::-;1264:59;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1257:66;;1095:234;;;:::o;4370:434:1:-;-1:-1:-1;;;;;4603:18:1;;4611:10;4603:18;;:56;;-1:-1:-1;;;;;;3422:27:1;;3398:4;3422:27;;;:18;:27;;;;;;;;4648:10;3422:37;;;;;;;;;;4625:34;4581:152;;;;-1:-1:-1;;;4581:152:1;;12223:2:9;4581:152:1;;;12205:21:9;12262:2;12242:18;;;12235:30;12301:34;12281:18;;;12274:62;-1:-1:-1;;;12352:18:9;;;12345:44;12406:19;;4581:152:1;12021:410:9;4581:152:1;4744:52;4767:4;4773:2;4777:3;4782:7;4791:4;4744:22;:52::i;:::-;4370:434;;;;;:::o;2074:423:0:-;845:5;;852:46;;-1:-1:-1;;;;;845:5:0;;;831:10;:19;;852:46;;866:8;;852:46;;;:::i;:::-;;;;;;;;;;;;;823:76;;;;;-1:-1:-1;;;823:76:0;;;;;;;;:::i;:::-;;2159:42:::1;2165:3;2170:15;;2187:9;2159:42;;;;;;;;;;;::::0;:5:::1;:42::i;:::-;2220:15;::::0;2208:28:::1;::::0;;;:11:::1;:28;::::0;;;;:41;;2240:9;;2208:28;:41:::1;::::0;2240:9;;2208:41:::1;:::i;:::-;::::0;;;-1:-1:-1;;2269:15:0::1;::::0;2259:26:::1;::::0;;;:9:::1;:26;::::0;;;;;::::1;;2256:111;;2312:15;::::0;2302:26:::1;::::0;;;:9:::1;:26;::::0;;;;:30;;-1:-1:-1;;2302:30:0::1;2331:1;2302:30:::0;;::::1;::::0;;;2343:11:::1;:16:::0;;2331:1;;2343:11;;:16:::1;::::0;2331:1;;2343:16:::1;:::i;:::-;::::0;;;-1:-1:-1;;2256:111:0::1;-1:-1:-1::0;;;;;3422:27:1;;3398:4;3422:27;;;:18;:27;;;;;;;;2405:4:0::1;3422:37:1::0;;;;;;;;;;2376:44:0::1;::::0;::::1;:60;;-1:-1:-1::0;2431:5:0::1;::::0;-1:-1:-1;;;;;2424:12:0;;::::1;2431:5:::0;::::1;2424:12;;2376:60;2373:119;;;2472:5;::::0;2448:36:::1;::::0;2467:3;;-1:-1:-1;;;;;2472:5:0::1;::::0;2448:18:::1;:36::i;:::-;2074:423:::0;;:::o;2477:524:1:-;2633:16;2694:3;:10;2675:8;:15;:29;2667:83;;;;-1:-1:-1;;;2667:83:1;;13277:2:9;2667:83:1;;;13259:21:9;13316:2;13296:18;;;13289:30;13355:34;13335:18;;;13328:62;-1:-1:-1;;;13406:18:9;;;13399:39;13455:19;;2667:83:1;13075:405:9;2667:83:1;2763:30;2810:8;:15;2796:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2796:30:1;;2763:63;;2844:9;2839:122;2863:8;:15;2859:1;:19;2839:122;;;2919:30;2929:8;2938:1;2929:11;;;;;;;;:::i;:::-;;;;;;;2942:3;2946:1;2942:6;;;;;;;;:::i;:::-;;;;;;;2919:9;:30::i;:::-;2900:13;2914:1;2900:16;;;;;;;;:::i;:::-;;;;;;;;;;:49;2880:3;;;:::i;:::-;;;2839:122;;;-1:-1:-1;2980:13:1;2477:524;-1:-1:-1;;;2477:524:1:o;1800:103:7:-;1040:13;:11;:13::i;:::-;1865:30:::1;1892:1;1865:18;:30::i;:::-;1800:103::o:0;1664:131:0:-;1040:13:7;:11;:13::i;:::-;1761:28:0::1;1769:19;1761:7;:28::i;:::-;1664:131:::0;:::o;2503:98::-;845:5;;852:46;;-1:-1:-1;;;;;845:5:0;;;831:10;:19;;852:46;;866:8;;852:46;;;:::i;:::-;;;;;;;;;;;;;823:76;;;;;-1:-1:-1;;;823:76:0;;;;;;;;:::i;:::-;-1:-1:-1;2568:15:0::1;:27:::0;2503:98::o;640:20::-;;;;;;;:::i;1801:78::-;1040:13:7;:11;:13::i;:::-;1859:5:0::1;:14:::0;;-1:-1:-1;;;;;;1859:14:0::1;-1:-1:-1::0;;;;;1859:14:0;;;::::1;::::0;;;::::1;::::0;;1801:78::o;2607:110::-;845:5;;852:46;;-1:-1:-1;;;;;845:5:0;;;831:10;:19;;852:46;;866:8;;852:46;;;:::i;:::-;;;;;;;;;;;;;823:76;;;;;-1:-1:-1;;;823:76:0;;;;;;;;:::i;:::-;;2675:36:::1;2681:4;2687:15;;2704:6;2675:5;:36::i;3074:153:1:-:0;3169:50;3188:10;3200:8;3210;3169:18;:50::i;3891:402::-;-1:-1:-1;;;;;4099:18:1;;4107:10;4099:18;;:56;;-1:-1:-1;;;;;;3422:27:1;;3398:4;3422:27;;;:18;:27;;;;;;;;4144:10;3422:37;;;;;;;;;;4121:34;4077:152;;;;-1:-1:-1;;;4077:152:1;;12223:2:9;4077:152:1;;;12205:21:9;12262:2;12242:18;;;12235:30;12301:34;12281:18;;;12274:62;-1:-1:-1;;;12352:18:9;;;12345:44;12406:19;;4077:152:1;12021:410:9;4077:152:1;4240:45;4258:4;4264:2;4268;4272:6;4280:4;4240:17;:45::i;2058:201:7:-;1040:13;:11;:13::i;:::-;-1:-1:-1;;;;;2147:22:7;::::1;2139:73;;;::::0;-1:-1:-1;;;2139:73:7;;13959:2:9;2139:73:7::1;::::0;::::1;13941:21:9::0;13998:2;13978:18;;;13971:30;14037:34;14017:18;;;14010:62;-1:-1:-1;;;14088:18:9;;;14081:36;14134:19;;2139:73:7::1;13757:402:9::0;2139:73:7::1;2223:28;2242:8;2223:18;:28::i;288:723:8:-:0;344:13;565:10;561:53;;-1:-1:-1;;592:10:8;;;;;;;;;;;;-1:-1:-1;;;592:10:8;;;;;288:723::o;561:53::-;639:5;624:12;680:78;687:9;;680:78;;713:8;;;;:::i;:::-;;-1:-1:-1;736:10:8;;-1:-1:-1;744:2:8;736:10;;:::i;:::-;;;680:78;;;768:19;800:6;790:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;790:17:8;;768:39;;818:154;825:10;;818:154;;852:11;862:1;852:11;;:::i;:::-;;-1:-1:-1;921:10:8;929:2;921:5;:10;:::i;:::-;908:24;;:2;:24;:::i;:::-;895:39;;878:6;885;878:14;;;;;;;;:::i;:::-;;;;:56;;;;;;;;;;-1:-1:-1;949:11:8;958:2;949:11;;:::i;:::-;;;818:154;;;996:6;288:723;-1:-1:-1;;;;288:723:8:o;6598:1144:1:-;6825:7;:14;6811:3;:10;:28;6803:81;;;;-1:-1:-1;;;6803:81:1;;14870:2:9;6803:81:1;;;14852:21:9;14909:2;14889:18;;;14882:30;14948:34;14928:18;;;14921:62;-1:-1:-1;;;14999:18:9;;;14992:38;15047:19;;6803:81:1;14668:404:9;6803:81:1;-1:-1:-1;;;;;6903:16:1;;6895:66;;;;-1:-1:-1;;;6895:66:1;;15279:2:9;6895:66:1;;;15261:21:9;15318:2;15298:18;;;15291:30;15357:34;15337:18;;;15330:62;-1:-1:-1;;;15408:18:9;;;15401:35;15453:19;;6895:66:1;15077:401:9;6895:66:1;6993:10;7094:9;7089:421;7113:3;:10;7109:1;:14;7089:421;;;7145:10;7158:3;7162:1;7158:6;;;;;;;;:::i;:::-;;;;;;;7145:19;;7179:14;7196:7;7204:1;7196:10;;;;;;;;:::i;:::-;;;;;;;;;;;;7223:19;7245:13;;;;;;;;;;-1:-1:-1;;;;;7245:19:1;;;;;;;;;;;;7196:10;;-1:-1:-1;7287:21:1;;;;7279:76;;;;-1:-1:-1;;;7279:76:1;;15685:2:9;7279:76:1;;;15667:21:9;15724:2;15704:18;;;15697:30;15763:34;15743:18;;;15736:62;-1:-1:-1;;;15814:18:9;;;15807:40;15864:19;;7279:76:1;15483:406:9;7279:76:1;7399:9;:13;;;;;;;;;;;-1:-1:-1;;;;;7399:19:1;;;;;;;;;;7421:20;;;7399:42;;7471:17;;;;;;;:27;;7421:20;;7399:9;7471:27;;7421:20;;7471:27;:::i;:::-;;;;;;;;7130:380;;;7125:3;;;;:::i;:::-;;;7089:421;;;;7557:2;-1:-1:-1;;;;;7527:47:1;7551:4;-1:-1:-1;;;;;7527:47:1;7541:8;-1:-1:-1;;;;;7527:47:1;;7561:3;7566:7;7527:47;;;;;;;:::i;:::-;;;;;;;;7659:75;7695:8;7705:4;7711:2;7715:3;7720:7;7729:4;7659:35;:75::i;:::-;6792:950;6598:1144;;;;;:::o;9060:727::-;-1:-1:-1;;;;;9213:16:1;;9205:62;;;;-1:-1:-1;;;9205:62:1;;16566:2:9;9205:62:1;;;16548:21:9;16605:2;16585:18;;;16578:30;16644:34;16624:18;;;16617:62;-1:-1:-1;;;16695:18:9;;;16688:31;16736:19;;9205:62:1;16364:397:9;9205:62:1;9299:10;9280:16;9343:21;9361:2;9343:17;:21::i;:::-;9320:44;;9375:24;9402:25;9420:6;9402:17;:25::i;:::-;9375:52;;9519:9;:13;;;;;;;;;;;-1:-1:-1;;;;;9519:17:1;;;;;;;;;:27;;9540:6;;9519:9;:27;;9540:6;;9519:27;:::i;:::-;;;;-1:-1:-1;;9562:52:1;;;16940:25:9;;;16996:2;16981:18;;16974:34;;;-1:-1:-1;;;;;9562:52:1;;;;9595:1;;9562:52;;;;;;16913:18:9;9562:52:1;;;;;;;9705:74;9736:8;9754:1;9758:2;9762;9766:6;9774:4;9705:30;:74::i;:::-;9194:593;;;9060:727;;;;:::o;13465:309::-;13615:8;-1:-1:-1;;;;;13606:17:1;:5;-1:-1:-1;;;;;13606:17:1;;13603:164;;;13465:309;;;:::o;13603:164::-;-1:-1:-1;;;;;13648:25:1;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13648:46:1;;;;;;;;;;13714:41;;1182::9;;;13714::1;;1155:18:9;13714:41:1;;;;;;;13465:309;;;:::o;1319:130:7:-;1394:10;1383:7;1227:6;;-1:-1:-1;;;;;1227:6:7;;1154:87;1383:7;-1:-1:-1;;;;;1383:21:7;;1375:66;;;;-1:-1:-1;;;1375:66:7;;17221:2:9;1375:66:7;;;17203:21:9;;;17240:18;;;17233:30;17299:34;17279:18;;;17272:62;17351:18;;1375:66:7;17019:356:9;2419:191:7;2512:6;;;-1:-1:-1;;;;;2529:17:7;;;-1:-1:-1;;;;;;2529:17:7;;;;;;;2562:40;;2512:6;;;2529:17;2512:6;;2562:40;;2493:16;;2562:40;2482:128;2419:191;:::o;8586:88:1:-;8653:13;;;;:4;;:13;;;;;:::i;11299:806::-;-1:-1:-1;;;;;11426:18:1;;11418:66;;;;-1:-1:-1;;;11418:66:1;;17582:2:9;11418:66:1;;;17564:21:9;17621:2;17601:18;;;17594:30;17660:34;17640:18;;;17633:62;-1:-1:-1;;;17711:18:9;;;17704:33;17754:19;;11418:66:1;17380:399:9;11418:66:1;11516:10;11497:16;11560:21;11578:2;11560:17;:21::i;:::-;11537:44;;11592:24;11619:25;11637:6;11619:17;:25::i;:::-;11657:66;;;;;;;;;-1:-1:-1;11657:66:1;;;;11758:13;;;;;;;;;-1:-1:-1;;;;;11758:19:1;;;;;;;;11592:52;;-1:-1:-1;11796:21:1;;;;11788:70;;;;-1:-1:-1;;;11788:70:1;;17986:2:9;11788:70:1;;;17968:21:9;18025:2;18005:18;;;17998:30;18064:34;18044:18;;;18037:62;-1:-1:-1;;;18115:18:9;;;18108:34;18159:19;;11788:70:1;17784:400:9;11788:70:1;11894:9;:13;;;;;;;;;;;-1:-1:-1;;;;;11894:19:1;;;;;;;;;;;;11916:20;;;11894:42;;11965:54;;16940:25:9;;;16981:18;;;16974:34;;;11894:19:1;;11965:54;;;;;;16913:18:9;11965:54:1;;;;;;;12032:65;;;;;;;;;12076:1;12032:65;;;6598:1144;5268:972;-1:-1:-1;;;;;5456:16:1;;5448:66;;;;-1:-1:-1;;;5448:66:1;;15279:2:9;5448:66:1;;;15261:21:9;15318:2;15298:18;;;15291:30;15357:34;15337:18;;;15330:62;-1:-1:-1;;;15408:18:9;;;15401:35;15453:19;;5448:66:1;15077:401:9;5448:66:1;5546:10;5527:16;5590:21;5608:2;5590:17;:21::i;:::-;5567:44;;5622:24;5649:25;5667:6;5649:17;:25::i;:::-;5622:52;;5760:19;5782:13;;;;;;;;;;;-1:-1:-1;;;;;5782:19:1;;;;;;;;;;5820:21;;;;5812:76;;;;-1:-1:-1;;;5812:76:1;;15685:2:9;5812:76:1;;;15667:21:9;15724:2;15704:18;;;15697:30;15763:34;15743:18;;;15736:62;-1:-1:-1;;;15814:18:9;;;15807:40;15864:19;;5812:76:1;15483:406:9;5812:76:1;5924:9;:13;;;;;;;;;;;-1:-1:-1;;;;;5924:19:1;;;;;;;;;;5946:20;;;5924:42;;5988:17;;;;;;;:27;;5946:20;;5924:9;5988:27;;5946:20;;5988:27;:::i;:::-;;;;-1:-1:-1;;6033:46:1;;;16940:25:9;;;16996:2;16981:18;;16974:34;;;-1:-1:-1;;;;;6033:46:1;;;;;;;;;;;;;;16913:18:9;6033:46:1;;;;;;;6164:68;6195:8;6205:4;6211:2;6215;6219:6;6227:4;6164:30;:68::i;:::-;5437:803;;;;5268:972;;;;;:::o;16905:830::-;-1:-1:-1;;;;;17145:14:1;;;:18;17141:587;;17198:79;;-1:-1:-1;;;17198:79:1;;-1:-1:-1;;;;;17198:43:1;;;;;:79;;17242:8;;17252:4;;17258:3;;17263:7;;17272:4;;17198:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17198:79:1;;;;;;;;-1:-1:-1;;17198:79:1;;;;;;;;;;;;:::i;:::-;;;17194:523;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;17590:6;17583:14;;-1:-1:-1;;;17583:14:1;;;;;;;;:::i;17194:523::-;;;17639:62;;-1:-1:-1;;;17639:62:1;;20360:2:9;17639:62:1;;;20342:21:9;20399:2;20379:18;;;20372:30;20438:34;20418:18;;;20411:62;20509:22;20489:18;;;20482:50;20549:19;;17639:62:1;20158:416:9;17194:523:1;-1:-1:-1;;;;;;17359:60:1;;-1:-1:-1;;;17359:60:1;17355:159;;17444:50;;-1:-1:-1;;;17444:50:1;;20781:2:9;17444:50:1;;;20763:21:9;20820:2;20800:18;;;20793:30;20859:34;20839:18;;;20832:62;-1:-1:-1;;;20910:18:9;;;20903:38;20958:19;;17444:50:1;20579:404:9;17743:198:1;17863:16;;;17877:1;17863:16;;;;;;;;;17809;;17838:22;;17863:16;;;;;;;;;;;;-1:-1:-1;17863:16:1;17838:41;;17901:7;17890:5;17896:1;17890:8;;;;;;;;:::i;:::-;;;;;;;;;;:18;17928:5;17743:198;-1:-1:-1;;17743:198:1:o;16136:761::-;-1:-1:-1;;;;;16351:14:1;;;:18;16347:543;;16404:72;;-1:-1:-1;;;16404:72:1;;-1:-1:-1;;;;;16404:38:1;;;;;:72;;16443:8;;16453:4;;16459:2;;16463:6;;16471:4;;16404:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16404:72:1;;;;;;;;-1:-1:-1;;16404:72:1;;;;;;;;;;;;:::i;:::-;;;16400:479;;;;:::i;:::-;-1:-1:-1;;;;;;16526:55:1;;-1:-1:-1;;;16526:55:1;16522:154;;16606:50;;-1:-1:-1;;;16606:50:1;;20781:2:9;16606:50:1;;;20763:21:9;20820:2;20800:18;;;20793:30;20859:34;20839:18;;;20832:62;-1:-1:-1;;;20910:18:9;;;20903:38;20958:19;;16606:50:1;20579:404:9;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:196:9;82:20;;-1:-1:-1;;;;;131:54:9;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:254::-;283:6;291;344:2;332:9;323:7;319:23;315:32;312:52;;;360:1;357;350:12;312:52;383:29;402:9;383:29;:::i;:::-;373:39;459:2;444:18;;;;431:32;;-1:-1:-1;;;215:254:9:o;656:131::-;-1:-1:-1;;;;;;730:32:9;;720:43;;710:71;;777:1;774;767:12;792:245;850:6;903:2;891:9;882:7;878:23;874:32;871:52;;;919:1;916;909:12;871:52;958:9;945:23;977:30;1001:5;977:30;:::i;:::-;1026:5;792:245;-1:-1:-1;;;792:245:9:o;1234:258::-;1306:1;1316:113;1330:6;1327:1;1324:13;1316:113;;;1406:11;;;1400:18;1387:11;;;1380:39;1352:2;1345:10;1316:113;;;1447:6;1444:1;1441:13;1438:48;;;1482:1;1473:6;1468:3;1464:16;1457:27;1438:48;;1234:258;;;:::o;1497:::-;1539:3;1577:5;1571:12;1604:6;1599:3;1592:19;1620:63;1676:6;1669:4;1664:3;1660:14;1653:4;1646:5;1642:16;1620:63;:::i;:::-;1737:2;1716:15;-1:-1:-1;;1712:29:9;1703:39;;;;1744:4;1699:50;;1497:258;-1:-1:-1;;1497:258:9:o;1760:220::-;1909:2;1898:9;1891:21;1872:4;1929:45;1970:2;1959:9;1955:18;1947:6;1929:45;:::i;1985:180::-;2044:6;2097:2;2085:9;2076:7;2072:23;2068:32;2065:52;;;2113:1;2110;2103:12;2065:52;-1:-1:-1;2136:23:9;;1985:180;-1:-1:-1;1985:180:9:o;2170:127::-;2231:10;2226:3;2222:20;2219:1;2212:31;2262:4;2259:1;2252:15;2286:4;2283:1;2276:15;2302:249;2412:2;2393:13;;-1:-1:-1;;2389:27:9;2377:40;;2447:18;2432:34;;2468:22;;;2429:62;2426:88;;;2494:18;;:::i;:::-;2530:2;2523:22;-1:-1:-1;;2302:249:9:o;2556:183::-;2616:4;2649:18;2641:6;2638:30;2635:56;;;2671:18;;:::i;:::-;-1:-1:-1;2716:1:9;2712:14;2728:4;2708:25;;2556:183::o;2744:724::-;2798:5;2851:3;2844:4;2836:6;2832:17;2828:27;2818:55;;2869:1;2866;2859:12;2818:55;2905:6;2892:20;2931:4;2954:43;2994:2;2954:43;:::i;:::-;3026:2;3020:9;3038:31;3066:2;3058:6;3038:31;:::i;:::-;3104:18;;;3196:1;3192:10;;;;3180:23;;3176:32;;;3138:15;;;;-1:-1:-1;3220:15:9;;;3217:35;;;3248:1;3245;3238:12;3217:35;3284:2;3276:6;3272:15;3296:142;3312:6;3307:3;3304:15;3296:142;;;3378:17;;3366:30;;3416:12;;;;3329;;3296:142;;;-1:-1:-1;3456:6:9;2744:724;-1:-1:-1;;;;;;2744:724:9:o;3473:468::-;3537:5;3571:18;3563:6;3560:30;3557:56;;;3593:18;;:::i;:::-;3642:2;3636:9;3654:69;3711:2;3690:15;;-1:-1:-1;;3686:29:9;3717:4;3682:40;3636:9;3654:69;:::i;:::-;3741:6;3732:15;;3771:6;3763;3756:22;3811:3;3802:6;3797:3;3793:16;3790:25;3787:45;;;3828:1;3825;3818:12;3787:45;3878:6;3873:3;3866:4;3858:6;3854:17;3841:44;3933:1;3926:4;3917:6;3909;3905:19;3901:30;3894:41;;3473:468;;;;;:::o;3946:220::-;3988:5;4041:3;4034:4;4026:6;4022:17;4018:27;4008:55;;4059:1;4056;4049:12;4008:55;4081:79;4156:3;4147:6;4134:20;4127:4;4119:6;4115:17;4081:79;:::i;4171:943::-;4325:6;4333;4341;4349;4357;4410:3;4398:9;4389:7;4385:23;4381:33;4378:53;;;4427:1;4424;4417:12;4378:53;4450:29;4469:9;4450:29;:::i;:::-;4440:39;;4498:38;4532:2;4521:9;4517:18;4498:38;:::i;:::-;4488:48;;4587:2;4576:9;4572:18;4559:32;4610:18;4651:2;4643:6;4640:14;4637:34;;;4667:1;4664;4657:12;4637:34;4690:61;4743:7;4734:6;4723:9;4719:22;4690:61;:::i;:::-;4680:71;;4804:2;4793:9;4789:18;4776:32;4760:48;;4833:2;4823:8;4820:16;4817:36;;;4849:1;4846;4839:12;4817:36;4872:63;4927:7;4916:8;4905:9;4901:24;4872:63;:::i;:::-;4862:73;;4988:3;4977:9;4973:19;4960:33;4944:49;;5018:2;5008:8;5005:16;5002:36;;;5034:1;5031;5024:12;5002:36;;5057:51;5100:7;5089:8;5078:9;5074:24;5057:51;:::i;:::-;5047:61;;;4171:943;;;;;;;;:::o;5119:1208::-;5237:6;5245;5298:2;5286:9;5277:7;5273:23;5269:32;5266:52;;;5314:1;5311;5304:12;5266:52;5354:9;5341:23;5383:18;5424:2;5416:6;5413:14;5410:34;;;5440:1;5437;5430:12;5410:34;5478:6;5467:9;5463:22;5453:32;;5523:7;5516:4;5512:2;5508:13;5504:27;5494:55;;5545:1;5542;5535:12;5494:55;5581:2;5568:16;5603:4;5626:43;5666:2;5626:43;:::i;:::-;5698:2;5692:9;5710:31;5738:2;5730:6;5710:31;:::i;:::-;5776:18;;;5864:1;5860:10;;;;5852:19;;5848:28;;;5810:15;;;;-1:-1:-1;5888:19:9;;;5885:39;;;5920:1;5917;5910:12;5885:39;5944:11;;;;5964:148;5980:6;5975:3;5972:15;5964:148;;;6046:23;6065:3;6046:23;:::i;:::-;6034:36;;5997:12;;;;6090;;;;5964:148;;;6131:6;-1:-1:-1;;6175:18:9;;6162:32;;-1:-1:-1;;6206:16:9;;;6203:36;;;6235:1;6232;6225:12;6203:36;;6258:63;6313:7;6302:8;6291:9;6287:24;6258:63;:::i;:::-;6248:73;;;5119:1208;;;;;:::o;6332:435::-;6385:3;6423:5;6417:12;6450:6;6445:3;6438:19;6476:4;6505:2;6500:3;6496:12;6489:19;;6542:2;6535:5;6531:14;6563:1;6573:169;6587:6;6584:1;6581:13;6573:169;;;6648:13;;6636:26;;6682:12;;;;6717:15;;;;6609:1;6602:9;6573:169;;;-1:-1:-1;6758:3:9;;6332:435;-1:-1:-1;;;;;6332:435:9:o;6772:261::-;6951:2;6940:9;6933:21;6914:4;6971:56;7023:2;7012:9;7008:18;7000:6;6971:56;:::i;7038:450::-;7107:6;7160:2;7148:9;7139:7;7135:23;7131:32;7128:52;;;7176:1;7173;7166:12;7128:52;7216:9;7203:23;7249:18;7241:6;7238:30;7235:50;;;7281:1;7278;7271:12;7235:50;7304:22;;7357:4;7349:13;;7345:27;-1:-1:-1;7335:55:9;;7386:1;7383;7376:12;7335:55;7409:73;7474:7;7469:2;7456:16;7451:2;7447;7443:11;7409:73;:::i;7724:186::-;7783:6;7836:2;7824:9;7815:7;7811:23;7807:32;7804:52;;;7852:1;7849;7842:12;7804:52;7875:29;7894:9;7875:29;:::i;7915:347::-;7980:6;7988;8041:2;8029:9;8020:7;8016:23;8012:32;8009:52;;;8057:1;8054;8047:12;8009:52;8080:29;8099:9;8080:29;:::i;:::-;8070:39;;8159:2;8148:9;8144:18;8131:32;8206:5;8199:13;8192:21;8185:5;8182:32;8172:60;;8228:1;8225;8218:12;8172:60;8251:5;8241:15;;;7915:347;;;;;:::o;8267:260::-;8335:6;8343;8396:2;8384:9;8375:7;8371:23;8367:32;8364:52;;;8412:1;8409;8402:12;8364:52;8435:29;8454:9;8435:29;:::i;:::-;8425:39;;8483:38;8517:2;8506:9;8502:18;8483:38;:::i;:::-;8473:48;;8267:260;;;;;:::o;8532:606::-;8636:6;8644;8652;8660;8668;8721:3;8709:9;8700:7;8696:23;8692:33;8689:53;;;8738:1;8735;8728:12;8689:53;8761:29;8780:9;8761:29;:::i;:::-;8751:39;;8809:38;8843:2;8832:9;8828:18;8809:38;:::i;:::-;8799:48;;8894:2;8883:9;8879:18;8866:32;8856:42;;8945:2;8934:9;8930:18;8917:32;8907:42;;9000:3;8989:9;8985:19;8972:33;9028:18;9020:6;9017:30;9014:50;;;9060:1;9057;9050:12;9014:50;9083:49;9124:7;9115:6;9104:9;9100:22;9083:49;:::i;9554:380::-;9633:1;9629:12;;;;9676;;;9697:61;;9751:4;9743:6;9739:17;9729:27;;9697:61;9804:2;9796:6;9793:14;9773:18;9770:38;9767:161;;;9850:10;9845:3;9841:20;9838:1;9831:31;9885:4;9882:1;9875:15;9913:4;9910:1;9903:15;9767:161;;9554:380;;;:::o;10065:973::-;10150:12;;10115:3;;10205:1;10225:18;;;;10278;;;;10305:61;;10359:4;10351:6;10347:17;10337:27;;10305:61;10385:2;10433;10425:6;10422:14;10402:18;10399:38;10396:161;;;10479:10;10474:3;10470:20;10467:1;10460:31;10514:4;10511:1;10504:15;10542:4;10539:1;10532:15;10396:161;10573:18;10600:104;;;;10718:1;10713:319;;;;10566:466;;10600:104;-1:-1:-1;;10633:24:9;;10621:37;;10678:16;;;;-1:-1:-1;10600:104:9;;10713:319;10012:1;10005:14;;;10049:4;10036:18;;10807:1;10821:165;10835:6;10832:1;10829:13;10821:165;;;10913:14;;10900:11;;;10893:35;10956:16;;;;10850:10;;10821:165;;;10825:3;;11015:6;11010:3;11006:16;10999:23;;10566:466;;;;;;;10065:973;;;;:::o;11043:367::-;11262:3;11293:38;11327:3;11319:6;11293:38;:::i;:::-;11354:19;11340:34;;11401:2;11390:14;;11043:367;-1:-1:-1;;;11043:367:9:o;11415:601::-;11726:3;11757:73;11791:38;11825:3;11817:6;11791:38;:::i;:::-;11783:6;11757:73;:::i;:::-;-1:-1:-1;;;11846:5:9;11839:21;11889:6;11883:13;11905:63;11961:6;11957:1;11950:5;11946:13;11939:4;11931:6;11927:17;11905:63;:::i;:::-;11988:18;12008:1;11984:26;;11415:601;-1:-1:-1;;;;;11415:601:9:o;12436:369::-;12655:3;12686:38;12720:3;12712:6;12686:38;:::i;:::-;12747:21;12733:36;;12796:2;12785:14;;12436:369;-1:-1:-1;;;12436:369:9:o;12810:127::-;12871:10;12866:3;12862:20;12859:1;12852:31;12902:4;12899:1;12892:15;12926:4;12923:1;12916:15;12942:128;12982:3;13013:1;13009:6;13006:1;13003:13;13000:39;;;13019:18;;:::i;:::-;-1:-1:-1;13055:9:9;;12942:128::o;13485:127::-;13546:10;13541:3;13537:20;13534:1;13527:31;13577:4;13574:1;13567:15;13601:4;13598:1;13591:15;13617:135;13656:3;-1:-1:-1;;13677:17:9;;13674:43;;;13697:18;;:::i;:::-;-1:-1:-1;13744:1:9;13733:13;;13617:135::o;14164:127::-;14225:10;14220:3;14216:20;14213:1;14206:31;14256:4;14253:1;14246:15;14280:4;14277:1;14270:15;14296:120;14336:1;14362;14352:35;;14367:18;;:::i;:::-;-1:-1:-1;14401:9:9;;14296:120::o;14421:125::-;14461:4;14489:1;14486;14483:8;14480:34;;;14494:18;;:::i;:::-;-1:-1:-1;14531:9:9;;14421:125::o;14551:112::-;14583:1;14609;14599:35;;14614:18;;:::i;:::-;-1:-1:-1;14648:9:9;;14551:112::o;15894:465::-;16151:2;16140:9;16133:21;16114:4;16177:56;16229:2;16218:9;16214:18;16206:6;16177:56;:::i;:::-;16281:9;16273:6;16269:22;16264:2;16253:9;16249:18;16242:50;16309:44;16346:6;16338;16309:44;:::i;:::-;16301:52;15894:465;-1:-1:-1;;;;;15894:465:9:o;18189:850::-;18511:4;-1:-1:-1;;;;;18621:2:9;18613:6;18609:15;18598:9;18591:34;18673:2;18665:6;18661:15;18656:2;18645:9;18641:18;18634:43;;18713:3;18708:2;18697:9;18693:18;18686:31;18740:57;18792:3;18781:9;18777:19;18769:6;18740:57;:::i;:::-;18845:9;18837:6;18833:22;18828:2;18817:9;18813:18;18806:50;18879:44;18916:6;18908;18879:44;:::i;:::-;18865:58;;18972:9;18964:6;18960:22;18954:3;18943:9;18939:19;18932:51;19000:33;19026:6;19018;19000:33;:::i;:::-;18992:41;18189:850;-1:-1:-1;;;;;;;;18189:850:9:o;19044:249::-;19113:6;19166:2;19154:9;19145:7;19141:23;19137:32;19134:52;;;19182:1;19179;19172:12;19134:52;19214:9;19208:16;19233:30;19257:5;19233:30;:::i;19298:179::-;19333:3;19375:1;19357:16;19354:23;19351:120;;;19421:1;19418;19415;19400:23;-1:-1:-1;19458:1:9;19452:8;19447:3;19443:18;19351:120;19298:179;:::o;19482:671::-;19521:3;19563:4;19545:16;19542:26;19539:39;;;19482:671;:::o;19539:39::-;19605:2;19599:9;-1:-1:-1;;19670:16:9;19666:25;;19663:1;19599:9;19642:50;19721:4;19715:11;19745:16;19780:18;19851:2;19844:4;19836:6;19832:17;19829:25;19824:2;19816:6;19813:14;19810:45;19807:58;;;19858:5;;;;;19482:671;:::o;19807:58::-;19895:6;19889:4;19885:17;19874:28;;19931:3;19925:10;19958:2;19950:6;19947:14;19944:27;;;19964:5;;;;;;19482:671;:::o;19944:27::-;20048:2;20029:16;20023:4;20019:27;20015:36;20008:4;19999:6;19994:3;19990:16;19986:27;19983:69;19980:82;;;20055:5;;;;;;19482:671;:::o;19980:82::-;20071:57;20122:4;20113:6;20105;20101:19;20097:30;20091:4;20071:57;:::i;:::-;-1:-1:-1;20144:3:9;;19482:671;-1:-1:-1;;;;;19482:671:9:o;20988:584::-;21210:4;-1:-1:-1;;;;;21320:2:9;21312:6;21308:15;21297:9;21290:34;21372:2;21364:6;21360:15;21355:2;21344:9;21340:18;21333:43;;21412:6;21407:2;21396:9;21392:18;21385:34;21455:6;21450:2;21439:9;21435:18;21428:34;21499:3;21493;21482:9;21478:19;21471:32;21520:46;21561:3;21550:9;21546:19;21538:6;21520:46;:::i;:::-;21512:54;20988:584;-1:-1:-1;;;;;;;20988:584:9:o
Swarm Source
ipfs://58c6ae862f30a98d8ba2136cfbf496789276f9950af8125e2590302834779bc5
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.