Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 136 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Safe Transfer Fr... | 20616736 | 88 days ago | IN | 0 ETH | 0.0000513 | ||||
Safe Transfer Fr... | 20495699 | 105 days ago | IN | 0 ETH | 0.00011127 | ||||
Set Approval For... | 20424295 | 115 days ago | IN | 0 ETH | 0.00010942 | ||||
Set Approval For... | 20163666 | 152 days ago | IN | 0 ETH | 0.00025919 | ||||
Safe Transfer Fr... | 20142470 | 155 days ago | IN | 0 ETH | 0.00025968 | ||||
Set Approval For... | 19941869 | 183 days ago | IN | 0 ETH | 0.00029244 | ||||
Safe Transfer Fr... | 19299681 | 273 days ago | IN | 0 ETH | 0.00257107 | ||||
Set Approval For... | 19164085 | 292 days ago | IN | 0 ETH | 0.00107217 | ||||
Set Approval For... | 18813719 | 341 days ago | IN | 0 ETH | 0.00495624 | ||||
Set Approval For... | 17953650 | 461 days ago | IN | 0 ETH | 0.00050746 | ||||
Set Approval For... | 17948441 | 462 days ago | IN | 0 ETH | 0.00060238 | ||||
Set Approval For... | 17489349 | 526 days ago | IN | 0 ETH | 0.00078857 | ||||
Set Approval For... | 17488437 | 527 days ago | IN | 0 ETH | 0.00067297 | ||||
Set Approval For... | 17437407 | 534 days ago | IN | 0 ETH | 0.00141363 | ||||
Set Approval For... | 17289024 | 555 days ago | IN | 0 ETH | 0.00219001 | ||||
Set Approval For... | 17258626 | 559 days ago | IN | 0 ETH | 0.00225163 | ||||
Safe Transfer Fr... | 17066718 | 586 days ago | IN | 0 ETH | 0.00202143 | ||||
Set Approval For... | 17018422 | 593 days ago | IN | 0 ETH | 0.00087458 | ||||
Set Approval For... | 16908162 | 608 days ago | IN | 0 ETH | 0.00060008 | ||||
Safe Transfer Fr... | 16679387 | 641 days ago | IN | 0 ETH | 0.00186632 | ||||
Set Approval For... | 16574953 | 655 days ago | IN | 0 ETH | 0.00084043 | ||||
Set Approval For... | 16514245 | 664 days ago | IN | 0 ETH | 0.00086937 | ||||
Set Approval For... | 16511837 | 664 days ago | IN | 0 ETH | 0.00074929 | ||||
Set Approval For... | 16494418 | 667 days ago | IN | 0 ETH | 0.00084825 | ||||
Set Approval For... | 16481787 | 668 days ago | IN | 0 ETH | 0.0007375 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Lotus
Compiler Version
v0.8.10+commit.fc410830
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // .__ __ // | | _____/ |_ __ __ ______ // | | / _ \ __\ | \/ ___/ // | |_( <_> ) | | | /\___ \ // |____/\____/|__| |____//____ > // \/ pragma solidity ^0.8.10; import "erc721a/contracts/ERC721A.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "@openzeppelin/contracts/utils/Strings.sol"; contract Lotus is ERC721A, Ownable, ReentrancyGuard { using Strings for uint256; string private _baseTokenURI; constructor( uint16 _maxTokenCount, address _teamAddress, address[] memory _airdropAddresses, uint8[] memory _airdropQuantities ) ERC721A("Lotus", "LOTUS") { uint16 _totalAirdropped = 0; for (uint16 i = 0; i < _airdropAddresses.length; i++) { _safeMint(_airdropAddresses[i], _airdropQuantities[i]); _totalAirdropped += _airdropQuantities[i]; } require( _totalAirdropped < _maxTokenCount, "reserve cannot be greater than max token count" ); _safeMint(_teamAddress, _maxTokenCount - _totalAirdropped); } function _startTokenId() internal pure override returns (uint256) { return 1; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require( _exists(tokenId), "ERC721Metadata: URI query for nonexistent token" ); string memory currentBaseURI = _baseURI(); return bytes(currentBaseURI).length > 0 ? string( abi.encodePacked( currentBaseURI, tokenId.toString(), ".json" ) ) : ""; } function _baseURI() internal view virtual override returns (string memory) { return _baseTokenURI; } function setBaseURI(string calldata baseURI) external onlyOwner { _baseTokenURI = baseURI; } function getBalance() public view returns (uint256) { return address(this).balance; } function withdrawMoney() external onlyOwner nonReentrant { (bool callSuccess, ) = payable(msg.sender).call{ value: address(this).balance }(""); require(callSuccess, "Something went wrong."); } }
// SPDX-License-Identifier: MIT // ERC721A Contracts v4.2.2 // Creator: Chiru Labs pragma solidity ^0.8.4; import './IERC721A.sol'; /** * @dev Interface of ERC721 token receiver. */ interface ERC721A__IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } /** * @title ERC721A * * @dev Implementation of the [ERC721](https://eips.ethereum.org/EIPS/eip-721) * Non-Fungible Token Standard, including the Metadata extension. * Optimized for lower gas during batch mints. * * Token IDs are minted in sequential order (e.g. 0, 1, 2, 3, ...) * starting from `_startTokenId()`. * * Assumptions: * * - An owner cannot have more than 2**64 - 1 (max value of uint64) of supply. * - The maximum token ID cannot exceed 2**256 - 1 (max value of uint256). */ contract ERC721A is IERC721A { // Reference type for token approval. struct TokenApprovalRef { address value; } // ============================================================= // CONSTANTS // ============================================================= // Mask of an entry in packed address data. uint256 private constant _BITMASK_ADDRESS_DATA_ENTRY = (1 << 64) - 1; // The bit position of `numberMinted` in packed address data. uint256 private constant _BITPOS_NUMBER_MINTED = 64; // The bit position of `numberBurned` in packed address data. uint256 private constant _BITPOS_NUMBER_BURNED = 128; // The bit position of `aux` in packed address data. uint256 private constant _BITPOS_AUX = 192; // Mask of all 256 bits in packed address data except the 64 bits for `aux`. uint256 private constant _BITMASK_AUX_COMPLEMENT = (1 << 192) - 1; // The bit position of `startTimestamp` in packed ownership. uint256 private constant _BITPOS_START_TIMESTAMP = 160; // The bit mask of the `burned` bit in packed ownership. uint256 private constant _BITMASK_BURNED = 1 << 224; // The bit position of the `nextInitialized` bit in packed ownership. uint256 private constant _BITPOS_NEXT_INITIALIZED = 225; // The bit mask of the `nextInitialized` bit in packed ownership. uint256 private constant _BITMASK_NEXT_INITIALIZED = 1 << 225; // The bit position of `extraData` in packed ownership. uint256 private constant _BITPOS_EXTRA_DATA = 232; // Mask of all 256 bits in a packed ownership except the 24 bits for `extraData`. uint256 private constant _BITMASK_EXTRA_DATA_COMPLEMENT = (1 << 232) - 1; // The mask of the lower 160 bits for addresses. uint256 private constant _BITMASK_ADDRESS = (1 << 160) - 1; // The maximum `quantity` that can be minted with {_mintERC2309}. // This limit is to prevent overflows on the address data entries. // For a limit of 5000, a total of 3.689e15 calls to {_mintERC2309} // is required to cause an overflow, which is unrealistic. uint256 private constant _MAX_MINT_ERC2309_QUANTITY_LIMIT = 5000; // The `Transfer` event signature is given by: // `keccak256(bytes("Transfer(address,address,uint256)"))`. bytes32 private constant _TRANSFER_EVENT_SIGNATURE = 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef; // ============================================================= // STORAGE // ============================================================= // The next token ID to be minted. uint256 private _currentIndex; // The number of tokens burned. uint256 private _burnCounter; // Token name string private _name; // Token symbol string private _symbol; // Mapping from token ID to ownership details // An empty struct value does not necessarily mean the token is unowned. // See {_packedOwnershipOf} implementation for details. // // Bits Layout: // - [0..159] `addr` // - [160..223] `startTimestamp` // - [224] `burned` // - [225] `nextInitialized` // - [232..255] `extraData` mapping(uint256 => uint256) private _packedOwnerships; // Mapping owner address to address data. // // Bits Layout: // - [0..63] `balance` // - [64..127] `numberMinted` // - [128..191] `numberBurned` // - [192..255] `aux` mapping(address => uint256) private _packedAddressData; // Mapping from token ID to approved address. mapping(uint256 => TokenApprovalRef) private _tokenApprovals; // Mapping from owner to operator approvals mapping(address => mapping(address => bool)) private _operatorApprovals; // ============================================================= // CONSTRUCTOR // ============================================================= constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _currentIndex = _startTokenId(); } // ============================================================= // TOKEN COUNTING OPERATIONS // ============================================================= /** * @dev Returns the starting token ID. * To change the starting token ID, please override this function. */ function _startTokenId() internal view virtual returns (uint256) { return 0; } /** * @dev Returns the next token ID to be minted. */ function _nextTokenId() internal view virtual returns (uint256) { return _currentIndex; } /** * @dev Returns the total number of tokens in existence. * Burned tokens will reduce the count. * To get the total number of tokens minted, please see {_totalMinted}. */ function totalSupply() public view virtual override returns (uint256) { // Counter underflow is impossible as _burnCounter cannot be incremented // more than `_currentIndex - _startTokenId()` times. unchecked { return _currentIndex - _burnCounter - _startTokenId(); } } /** * @dev Returns the total amount of tokens minted in the contract. */ function _totalMinted() internal view virtual returns (uint256) { // Counter underflow is impossible as `_currentIndex` does not decrement, // and it is initialized to `_startTokenId()`. unchecked { return _currentIndex - _startTokenId(); } } /** * @dev Returns the total number of tokens burned. */ function _totalBurned() internal view virtual returns (uint256) { return _burnCounter; } // ============================================================= // ADDRESS DATA OPERATIONS // ============================================================= /** * @dev Returns the number of tokens in `owner`'s account. */ function balanceOf(address owner) public view virtual override returns (uint256) { if (owner == address(0)) revert BalanceQueryForZeroAddress(); return _packedAddressData[owner] & _BITMASK_ADDRESS_DATA_ENTRY; } /** * Returns the number of tokens minted by `owner`. */ function _numberMinted(address owner) internal view returns (uint256) { return (_packedAddressData[owner] >> _BITPOS_NUMBER_MINTED) & _BITMASK_ADDRESS_DATA_ENTRY; } /** * Returns the number of tokens burned by or on behalf of `owner`. */ function _numberBurned(address owner) internal view returns (uint256) { return (_packedAddressData[owner] >> _BITPOS_NUMBER_BURNED) & _BITMASK_ADDRESS_DATA_ENTRY; } /** * Returns the auxiliary data for `owner`. (e.g. number of whitelist mint slots used). */ function _getAux(address owner) internal view returns (uint64) { return uint64(_packedAddressData[owner] >> _BITPOS_AUX); } /** * Sets the auxiliary data for `owner`. (e.g. number of whitelist mint slots used). * If there are multiple variables, please pack them into a uint64. */ function _setAux(address owner, uint64 aux) internal virtual { uint256 packed = _packedAddressData[owner]; uint256 auxCasted; // Cast `aux` with assembly to avoid redundant masking. assembly { auxCasted := aux } packed = (packed & _BITMASK_AUX_COMPLEMENT) | (auxCasted << _BITPOS_AUX); _packedAddressData[owner] = packed; } // ============================================================= // IERC165 // ============================================================= /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) * to learn more about how these ids are created. * * This function call must use less than 30000 gas. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { // The interface IDs are constants representing the first 4 bytes // of the XOR of all function selectors in the interface. // See: [ERC165](https://eips.ethereum.org/EIPS/eip-165) // (e.g. `bytes4(i.functionA.selector ^ i.functionB.selector ^ ...)`) return interfaceId == 0x01ffc9a7 || // ERC165 interface ID for ERC165. interfaceId == 0x80ac58cd || // ERC165 interface ID for ERC721. interfaceId == 0x5b5e139f; // ERC165 interface ID for ERC721Metadata. } // ============================================================= // IERC721Metadata // ============================================================= /** * @dev Returns the token collection name. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the token collection symbol. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { if (!_exists(tokenId)) revert URIQueryForNonexistentToken(); string memory baseURI = _baseURI(); return bytes(baseURI).length != 0 ? string(abi.encodePacked(baseURI, _toString(tokenId))) : ''; } /** * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each * token will be the concatenation of the `baseURI` and the `tokenId`. Empty * by default, it can be overridden in child contracts. */ function _baseURI() internal view virtual returns (string memory) { return ''; } // ============================================================= // OWNERSHIPS OPERATIONS // ============================================================= /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) public view virtual override returns (address) { return address(uint160(_packedOwnershipOf(tokenId))); } /** * @dev Gas spent here starts off proportional to the maximum mint batch size. * It gradually moves to O(1) as tokens get transferred around over time. */ function _ownershipOf(uint256 tokenId) internal view virtual returns (TokenOwnership memory) { return _unpackedOwnership(_packedOwnershipOf(tokenId)); } /** * @dev Returns the unpacked `TokenOwnership` struct at `index`. */ function _ownershipAt(uint256 index) internal view virtual returns (TokenOwnership memory) { return _unpackedOwnership(_packedOwnerships[index]); } /** * @dev Initializes the ownership slot minted at `index` for efficiency purposes. */ function _initializeOwnershipAt(uint256 index) internal virtual { if (_packedOwnerships[index] == 0) { _packedOwnerships[index] = _packedOwnershipOf(index); } } /** * Returns the packed ownership data of `tokenId`. */ function _packedOwnershipOf(uint256 tokenId) private view returns (uint256) { uint256 curr = tokenId; unchecked { if (_startTokenId() <= curr) if (curr < _currentIndex) { uint256 packed = _packedOwnerships[curr]; // If not burned. if (packed & _BITMASK_BURNED == 0) { // Invariant: // There will always be an initialized ownership slot // (i.e. `ownership.addr != address(0) && ownership.burned == false`) // before an unintialized ownership slot // (i.e. `ownership.addr == address(0) && ownership.burned == false`) // Hence, `curr` will not underflow. // // We can directly compare the packed value. // If the address is zero, packed will be zero. while (packed == 0) { packed = _packedOwnerships[--curr]; } return packed; } } } revert OwnerQueryForNonexistentToken(); } /** * @dev Returns the unpacked `TokenOwnership` struct from `packed`. */ function _unpackedOwnership(uint256 packed) private pure returns (TokenOwnership memory ownership) { ownership.addr = address(uint160(packed)); ownership.startTimestamp = uint64(packed >> _BITPOS_START_TIMESTAMP); ownership.burned = packed & _BITMASK_BURNED != 0; ownership.extraData = uint24(packed >> _BITPOS_EXTRA_DATA); } /** * @dev Packs ownership data into a single uint256. */ function _packOwnershipData(address owner, uint256 flags) private view returns (uint256 result) { assembly { // Mask `owner` to the lower 160 bits, in case the upper bits somehow aren't clean. owner := and(owner, _BITMASK_ADDRESS) // `owner | (block.timestamp << _BITPOS_START_TIMESTAMP) | flags`. result := or(owner, or(shl(_BITPOS_START_TIMESTAMP, timestamp()), flags)) } } /** * @dev Returns the `nextInitialized` flag set if `quantity` equals 1. */ function _nextInitializedFlag(uint256 quantity) private pure returns (uint256 result) { // For branchless setting of the `nextInitialized` flag. assembly { // `(quantity == 1) << _BITPOS_NEXT_INITIALIZED`. result := shl(_BITPOS_NEXT_INITIALIZED, eq(quantity, 1)) } } // ============================================================= // APPROVAL OPERATIONS // ============================================================= /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the * zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) public virtual override { address owner = ownerOf(tokenId); if (_msgSenderERC721A() != owner) if (!isApprovedForAll(owner, _msgSenderERC721A())) { revert ApprovalCallerNotOwnerNorApproved(); } _tokenApprovals[tokenId].value = to; emit Approval(owner, to, tokenId); } /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) public view virtual override returns (address) { if (!_exists(tokenId)) revert ApprovalQueryForNonexistentToken(); return _tokenApprovals[tokenId].value; } /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} * for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool approved) public virtual override { if (operator == _msgSenderERC721A()) revert ApproveToCaller(); _operatorApprovals[_msgSenderERC721A()][operator] = approved; emit ApprovalForAll(_msgSenderERC721A(), operator, approved); } /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll}. */ function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } /** * @dev Returns whether `tokenId` exists. * * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}. * * Tokens start existing when they are minted. See {_mint}. */ function _exists(uint256 tokenId) internal view virtual returns (bool) { return _startTokenId() <= tokenId && tokenId < _currentIndex && // If within bounds, _packedOwnerships[tokenId] & _BITMASK_BURNED == 0; // and not burned. } /** * @dev Returns whether `msgSender` is equal to `approvedAddress` or `owner`. */ function _isSenderApprovedOrOwner( address approvedAddress, address owner, address msgSender ) private pure returns (bool result) { assembly { // Mask `owner` to the lower 160 bits, in case the upper bits somehow aren't clean. owner := and(owner, _BITMASK_ADDRESS) // Mask `msgSender` to the lower 160 bits, in case the upper bits somehow aren't clean. msgSender := and(msgSender, _BITMASK_ADDRESS) // `msgSender == owner || msgSender == approvedAddress`. result := or(eq(msgSender, owner), eq(msgSender, approvedAddress)) } } /** * @dev Returns the storage slot and value for the approved address of `tokenId`. */ function _getApprovedSlotAndAddress(uint256 tokenId) private view returns (uint256 approvedAddressSlot, address approvedAddress) { TokenApprovalRef storage tokenApproval = _tokenApprovals[tokenId]; // The following is equivalent to `approvedAddress = _tokenApprovals[tokenId]`. assembly { approvedAddressSlot := tokenApproval.slot approvedAddress := sload(approvedAddressSlot) } } // ============================================================= // TRANSFER OPERATIONS // ============================================================= /** * @dev Transfers `tokenId` from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token * by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) public virtual override { uint256 prevOwnershipPacked = _packedOwnershipOf(tokenId); if (address(uint160(prevOwnershipPacked)) != from) revert TransferFromIncorrectOwner(); (uint256 approvedAddressSlot, address approvedAddress) = _getApprovedSlotAndAddress(tokenId); // The nested ifs save around 20+ gas over a compound boolean condition. if (!_isSenderApprovedOrOwner(approvedAddress, from, _msgSenderERC721A())) if (!isApprovedForAll(from, _msgSenderERC721A())) revert TransferCallerNotOwnerNorApproved(); if (to == address(0)) revert TransferToZeroAddress(); _beforeTokenTransfers(from, to, tokenId, 1); // Clear approvals from the previous owner. assembly { if approvedAddress { // This is equivalent to `delete _tokenApprovals[tokenId]`. sstore(approvedAddressSlot, 0) } } // Underflow of the sender's balance is impossible because we check for // ownership above and the recipient's balance can't realistically overflow. // Counter overflow is incredibly unrealistic as `tokenId` would have to be 2**256. unchecked { // We can directly increment and decrement the balances. --_packedAddressData[from]; // Updates: `balance -= 1`. ++_packedAddressData[to]; // Updates: `balance += 1`. // Updates: // - `address` to the next owner. // - `startTimestamp` to the timestamp of transfering. // - `burned` to `false`. // - `nextInitialized` to `true`. _packedOwnerships[tokenId] = _packOwnershipData( to, _BITMASK_NEXT_INITIALIZED | _nextExtraData(from, to, prevOwnershipPacked) ); // If the next slot may not have been initialized (i.e. `nextInitialized == false`) . if (prevOwnershipPacked & _BITMASK_NEXT_INITIALIZED == 0) { uint256 nextTokenId = tokenId + 1; // If the next slot's address is zero and not burned (i.e. packed value is zero). if (_packedOwnerships[nextTokenId] == 0) { // If the next slot is within bounds. if (nextTokenId != _currentIndex) { // Initialize the next slot to maintain correctness for `ownerOf(tokenId + 1)`. _packedOwnerships[nextTokenId] = prevOwnershipPacked; } } } } emit Transfer(from, to, tokenId); _afterTokenTransfers(from, to, tokenId, 1); } /** * @dev Equivalent to `safeTransferFrom(from, to, tokenId, '')`. */ function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ''); } /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token * by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement * {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public virtual override { transferFrom(from, to, tokenId); if (to.code.length != 0) if (!_checkContractOnERC721Received(from, to, tokenId, _data)) { revert TransferToNonERC721ReceiverImplementer(); } } /** * @dev Hook that is called before a set of serially-ordered token IDs * are about to be transferred. This includes minting. * And also called before burning one token. * * `startTokenId` - the first token ID to be transferred. * `quantity` - the amount to be transferred. * * Calling conditions: * * - When `from` and `to` are both non-zero, `from`'s `tokenId` will be * transferred to `to`. * - When `from` is zero, `tokenId` will be minted for `to`. * - When `to` is zero, `tokenId` will be burned by `from`. * - `from` and `to` are never both zero. */ function _beforeTokenTransfers( address from, address to, uint256 startTokenId, uint256 quantity ) internal virtual {} /** * @dev Hook that is called after a set of serially-ordered token IDs * have been transferred. This includes minting. * And also called after one token has been burned. * * `startTokenId` - the first token ID to be transferred. * `quantity` - the amount to be transferred. * * Calling conditions: * * - When `from` and `to` are both non-zero, `from`'s `tokenId` has been * transferred to `to`. * - When `from` is zero, `tokenId` has been minted for `to`. * - When `to` is zero, `tokenId` has been burned by `from`. * - `from` and `to` are never both zero. */ function _afterTokenTransfers( address from, address to, uint256 startTokenId, uint256 quantity ) internal virtual {} /** * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target contract. * * `from` - Previous owner of the given token ID. * `to` - Target address that will receive the token. * `tokenId` - Token ID to be transferred. * `_data` - Optional data to send along with the call. * * Returns whether the call correctly returned the expected magic value. */ function _checkContractOnERC721Received( address from, address to, uint256 tokenId, bytes memory _data ) private returns (bool) { try ERC721A__IERC721Receiver(to).onERC721Received(_msgSenderERC721A(), from, tokenId, _data) returns ( bytes4 retval ) { return retval == ERC721A__IERC721Receiver(to).onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert TransferToNonERC721ReceiverImplementer(); } else { assembly { revert(add(32, reason), mload(reason)) } } } } // ============================================================= // MINT OPERATIONS // ============================================================= /** * @dev Mints `quantity` tokens and transfers them to `to`. * * Requirements: * * - `to` cannot be the zero address. * - `quantity` must be greater than 0. * * Emits a {Transfer} event for each mint. */ function _mint(address to, uint256 quantity) internal virtual { uint256 startTokenId = _currentIndex; if (quantity == 0) revert MintZeroQuantity(); _beforeTokenTransfers(address(0), to, startTokenId, quantity); // Overflows are incredibly unrealistic. // `balance` and `numberMinted` have a maximum limit of 2**64. // `tokenId` has a maximum limit of 2**256. unchecked { // Updates: // - `balance += quantity`. // - `numberMinted += quantity`. // // We can directly add to the `balance` and `numberMinted`. _packedAddressData[to] += quantity * ((1 << _BITPOS_NUMBER_MINTED) | 1); // Updates: // - `address` to the owner. // - `startTimestamp` to the timestamp of minting. // - `burned` to `false`. // - `nextInitialized` to `quantity == 1`. _packedOwnerships[startTokenId] = _packOwnershipData( to, _nextInitializedFlag(quantity) | _nextExtraData(address(0), to, 0) ); uint256 toMasked; uint256 end = startTokenId + quantity; // Use assembly to loop and emit the `Transfer` event for gas savings. assembly { // Mask `to` to the lower 160 bits, in case the upper bits somehow aren't clean. toMasked := and(to, _BITMASK_ADDRESS) // Emit the `Transfer` event. log4( 0, // Start of data (0, since no data). 0, // End of data (0, since no data). _TRANSFER_EVENT_SIGNATURE, // Signature. 0, // `address(0)`. toMasked, // `to`. startTokenId // `tokenId`. ) for { let tokenId := add(startTokenId, 1) } iszero(eq(tokenId, end)) { tokenId := add(tokenId, 1) } { // Emit the `Transfer` event. Similar to above. log4(0, 0, _TRANSFER_EVENT_SIGNATURE, 0, toMasked, tokenId) } } if (toMasked == 0) revert MintToZeroAddress(); _currentIndex = end; } _afterTokenTransfers(address(0), to, startTokenId, quantity); } /** * @dev Mints `quantity` tokens and transfers them to `to`. * * This function is intended for efficient minting only during contract creation. * * It emits only one {ConsecutiveTransfer} as defined in * [ERC2309](https://eips.ethereum.org/EIPS/eip-2309), * instead of a sequence of {Transfer} event(s). * * Calling this function outside of contract creation WILL make your contract * non-compliant with the ERC721 standard. * For full ERC721 compliance, substituting ERC721 {Transfer} event(s) with the ERC2309 * {ConsecutiveTransfer} event is only permissible during contract creation. * * Requirements: * * - `to` cannot be the zero address. * - `quantity` must be greater than 0. * * Emits a {ConsecutiveTransfer} event. */ function _mintERC2309(address to, uint256 quantity) internal virtual { uint256 startTokenId = _currentIndex; if (to == address(0)) revert MintToZeroAddress(); if (quantity == 0) revert MintZeroQuantity(); if (quantity > _MAX_MINT_ERC2309_QUANTITY_LIMIT) revert MintERC2309QuantityExceedsLimit(); _beforeTokenTransfers(address(0), to, startTokenId, quantity); // Overflows are unrealistic due to the above check for `quantity` to be below the limit. unchecked { // Updates: // - `balance += quantity`. // - `numberMinted += quantity`. // // We can directly add to the `balance` and `numberMinted`. _packedAddressData[to] += quantity * ((1 << _BITPOS_NUMBER_MINTED) | 1); // Updates: // - `address` to the owner. // - `startTimestamp` to the timestamp of minting. // - `burned` to `false`. // - `nextInitialized` to `quantity == 1`. _packedOwnerships[startTokenId] = _packOwnershipData( to, _nextInitializedFlag(quantity) | _nextExtraData(address(0), to, 0) ); emit ConsecutiveTransfer(startTokenId, startTokenId + quantity - 1, address(0), to); _currentIndex = startTokenId + quantity; } _afterTokenTransfers(address(0), to, startTokenId, quantity); } /** * @dev Safely mints `quantity` tokens and transfers them to `to`. * * Requirements: * * - If `to` refers to a smart contract, it must implement * {IERC721Receiver-onERC721Received}, which is called for each safe transfer. * - `quantity` must be greater than 0. * * See {_mint}. * * Emits a {Transfer} event for each mint. */ function _safeMint( address to, uint256 quantity, bytes memory _data ) internal virtual { _mint(to, quantity); unchecked { if (to.code.length != 0) { uint256 end = _currentIndex; uint256 index = end - quantity; do { if (!_checkContractOnERC721Received(address(0), to, index++, _data)) { revert TransferToNonERC721ReceiverImplementer(); } } while (index < end); // Reentrancy protection. if (_currentIndex != end) revert(); } } } /** * @dev Equivalent to `_safeMint(to, quantity, '')`. */ function _safeMint(address to, uint256 quantity) internal virtual { _safeMint(to, quantity, ''); } // ============================================================= // BURN OPERATIONS // ============================================================= /** * @dev Equivalent to `_burn(tokenId, false)`. */ function _burn(uint256 tokenId) internal virtual { _burn(tokenId, false); } /** * @dev Destroys `tokenId`. * The approval is cleared when the token is burned. * * Requirements: * * - `tokenId` must exist. * * Emits a {Transfer} event. */ function _burn(uint256 tokenId, bool approvalCheck) internal virtual { uint256 prevOwnershipPacked = _packedOwnershipOf(tokenId); address from = address(uint160(prevOwnershipPacked)); (uint256 approvedAddressSlot, address approvedAddress) = _getApprovedSlotAndAddress(tokenId); if (approvalCheck) { // The nested ifs save around 20+ gas over a compound boolean condition. if (!_isSenderApprovedOrOwner(approvedAddress, from, _msgSenderERC721A())) if (!isApprovedForAll(from, _msgSenderERC721A())) revert TransferCallerNotOwnerNorApproved(); } _beforeTokenTransfers(from, address(0), tokenId, 1); // Clear approvals from the previous owner. assembly { if approvedAddress { // This is equivalent to `delete _tokenApprovals[tokenId]`. sstore(approvedAddressSlot, 0) } } // Underflow of the sender's balance is impossible because we check for // ownership above and the recipient's balance can't realistically overflow. // Counter overflow is incredibly unrealistic as `tokenId` would have to be 2**256. unchecked { // Updates: // - `balance -= 1`. // - `numberBurned += 1`. // // We can directly decrement the balance, and increment the number burned. // This is equivalent to `packed -= 1; packed += 1 << _BITPOS_NUMBER_BURNED;`. _packedAddressData[from] += (1 << _BITPOS_NUMBER_BURNED) - 1; // Updates: // - `address` to the last owner. // - `startTimestamp` to the timestamp of burning. // - `burned` to `true`. // - `nextInitialized` to `true`. _packedOwnerships[tokenId] = _packOwnershipData( from, (_BITMASK_BURNED | _BITMASK_NEXT_INITIALIZED) | _nextExtraData(from, address(0), prevOwnershipPacked) ); // If the next slot may not have been initialized (i.e. `nextInitialized == false`) . if (prevOwnershipPacked & _BITMASK_NEXT_INITIALIZED == 0) { uint256 nextTokenId = tokenId + 1; // If the next slot's address is zero and not burned (i.e. packed value is zero). if (_packedOwnerships[nextTokenId] == 0) { // If the next slot is within bounds. if (nextTokenId != _currentIndex) { // Initialize the next slot to maintain correctness for `ownerOf(tokenId + 1)`. _packedOwnerships[nextTokenId] = prevOwnershipPacked; } } } } emit Transfer(from, address(0), tokenId); _afterTokenTransfers(from, address(0), tokenId, 1); // Overflow not possible, as _burnCounter cannot be exceed _currentIndex times. unchecked { _burnCounter++; } } // ============================================================= // EXTRA DATA OPERATIONS // ============================================================= /** * @dev Directly sets the extra data for the ownership data `index`. */ function _setExtraDataAt(uint256 index, uint24 extraData) internal virtual { uint256 packed = _packedOwnerships[index]; if (packed == 0) revert OwnershipNotInitializedForExtraData(); uint256 extraDataCasted; // Cast `extraData` with assembly to avoid redundant masking. assembly { extraDataCasted := extraData } packed = (packed & _BITMASK_EXTRA_DATA_COMPLEMENT) | (extraDataCasted << _BITPOS_EXTRA_DATA); _packedOwnerships[index] = packed; } /** * @dev Called during each token transfer to set the 24bit `extraData` field. * Intended to be overridden by the cosumer contract. * * `previousExtraData` - the value of `extraData` before transfer. * * Calling conditions: * * - When `from` and `to` are both non-zero, `from`'s `tokenId` will be * transferred to `to`. * - When `from` is zero, `tokenId` will be minted for `to`. * - When `to` is zero, `tokenId` will be burned by `from`. * - `from` and `to` are never both zero. */ function _extraData( address from, address to, uint24 previousExtraData ) internal view virtual returns (uint24) {} /** * @dev Returns the next extra data for the packed ownership data. * The returned result is shifted into position. */ function _nextExtraData( address from, address to, uint256 prevOwnershipPacked ) private view returns (uint256) { uint24 extraData = uint24(prevOwnershipPacked >> _BITPOS_EXTRA_DATA); return uint256(_extraData(from, to, extraData)) << _BITPOS_EXTRA_DATA; } // ============================================================= // OTHER OPERATIONS // ============================================================= /** * @dev Returns the message sender (defaults to `msg.sender`). * * If you are writing GSN compatible contracts, you need to override this function. */ function _msgSenderERC721A() internal view virtual returns (address) { return msg.sender; } /** * @dev Converts a uint256 to its ASCII string decimal representation. */ function _toString(uint256 value) internal pure virtual returns (string memory str) { assembly { // The maximum value of a uint256 contains 78 digits (1 byte per digit), // but we allocate 0x80 bytes to keep the free memory pointer 32-byte word aliged. // We will need 1 32-byte word to store the length, // and 3 32-byte words to store a maximum of 78 digits. Total: 0x20 + 3 * 0x20 = 0x80. str := add(mload(0x40), 0x80) // Update the free memory pointer to allocate. mstore(0x40, str) // Cache the end of the memory to calculate the length later. let end := str // We write the string from rightmost digit to leftmost digit. // The following is essentially a do-while loop that also handles the zero case. // prettier-ignore for { let temp := value } 1 {} { str := sub(str, 1) // Write the character to the pointer. // The ASCII index of the '0' character is 48. mstore8(str, add(48, mod(temp, 10))) // Keep dividing `temp` until zero. temp := div(temp, 10) // prettier-ignore if iszero(temp) { break } } let length := sub(end, str) // Move the pointer 32 bytes leftwards to make room for the length. str := sub(str, 0x20) // Store the length. mstore(str, length) } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/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 is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @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() == _msgSender(), "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 // OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; import "./IERC20.sol"; import "./extensions/IERC20Metadata.sol"; import "../../utils/Context.sol"; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol) pragma solidity ^0.8.0; /** * @dev String operations. */ library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; uint8 private constant _ADDRESS_LENGTH = 20; /** * @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); } /** * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation. */ function toHexString(address addr) internal pure returns (string memory) { return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH); } }
// SPDX-License-Identifier: MIT // ERC721A Contracts v4.2.2 // Creator: Chiru Labs pragma solidity ^0.8.4; /** * @dev Interface of ERC721A. */ interface IERC721A { /** * The caller must own the token or be an approved operator. */ error ApprovalCallerNotOwnerNorApproved(); /** * The token does not exist. */ error ApprovalQueryForNonexistentToken(); /** * The caller cannot approve to their own address. */ error ApproveToCaller(); /** * Cannot query the balance for the zero address. */ error BalanceQueryForZeroAddress(); /** * Cannot mint to the zero address. */ error MintToZeroAddress(); /** * The quantity of tokens minted must be more than zero. */ error MintZeroQuantity(); /** * The token does not exist. */ error OwnerQueryForNonexistentToken(); /** * The caller must own the token or be an approved operator. */ error TransferCallerNotOwnerNorApproved(); /** * The token must be owned by `from`. */ error TransferFromIncorrectOwner(); /** * Cannot safely transfer to a contract that does not implement the * ERC721Receiver interface. */ error TransferToNonERC721ReceiverImplementer(); /** * Cannot transfer to the zero address. */ error TransferToZeroAddress(); /** * The token does not exist. */ error URIQueryForNonexistentToken(); /** * The `quantity` minted with ERC2309 exceeds the safety limit. */ error MintERC2309QuantityExceedsLimit(); /** * The `extraData` cannot be set on an unintialized ownership slot. */ error OwnershipNotInitializedForExtraData(); // ============================================================= // STRUCTS // ============================================================= struct TokenOwnership { // The address of the owner. address addr; // Stores the start time of ownership with minimal overhead for tokenomics. uint64 startTimestamp; // Whether the token has been burned. bool burned; // Arbitrary data similar to `startTimestamp` that can be set via {_extraData}. uint24 extraData; } // ============================================================= // TOKEN COUNTERS // ============================================================= /** * @dev Returns the total number of tokens in existence. * Burned tokens will reduce the count. * To get the total number of tokens minted, please see {_totalMinted}. */ function totalSupply() external view returns (uint256); // ============================================================= // IERC165 // ============================================================= /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) * to learn more about how these ids are created. * * This function call must use less than 30000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); // ============================================================= // IERC721 // ============================================================= /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables * (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in `owner`'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, * checking first that contract recipients are aware of the ERC721 protocol * to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move * this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement * {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; /** * @dev Equivalent to `safeTransferFrom(from, to, tokenId, '')`. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} * whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token * by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the * zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} * for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll}. */ function isApprovedForAll(address owner, address operator) external view returns (bool); // ============================================================= // IERC721Metadata // ============================================================= /** * @dev Returns the token collection name. */ function name() external view returns (string memory); /** * @dev Returns the token collection symbol. */ function symbol() external view returns (string memory); /** * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ function tokenURI(uint256 tokenId) external view returns (string memory); // ============================================================= // IERC2309 // ============================================================= /** * @dev Emitted when tokens in `fromTokenId` to `toTokenId` * (inclusive) is transferred from `from` to `to`, as defined in the * [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. * * See {_mintERC2309} for more details. */ event ConsecutiveTransfer(uint256 indexed fromTokenId, uint256 toTokenId, address indexed from, address indexed to); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; import "../IERC20.sol"; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint16","name":"_maxTokenCount","type":"uint16"},{"internalType":"address","name":"_teamAddress","type":"address"},{"internalType":"address[]","name":"_airdropAddresses","type":"address[]"},{"internalType":"uint8[]","name":"_airdropQuantities","type":"uint8[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"ApproveToCaller","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","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":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"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":"baseURI","type":"string"}],"name":"setBaseURI","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":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawMoney","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620034fd380380620034fd833981810160405281019062000037919062000bb6565b6040518060400160405280600581526020017f4c6f7475730000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4c4f5455530000000000000000000000000000000000000000000000000000008152508160029080519060200190620000bb929190620007c5565b508060039080519060200190620000d4929190620007c5565b50620000e56200024460201b60201c565b60008190555050506200010d620001016200024d60201b60201c565b6200025560201b60201c565b60016009819055506000805b83518161ffff161015620001c8576200017e848261ffff168151811062000145576200014462000c66565b5b6020026020010151848361ffff168151811062000167576200016662000c66565b5b602002602001015160ff166200031b60201b60201c565b828161ffff168151811062000198576200019762000c66565b5b602002602001015160ff1682620001b0919062000cc4565b91508080620001bf9062000d03565b91505062000119565b508461ffff168161ffff161062000216576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200020d9062000dba565b60405180910390fd5b6200023984828762000229919062000ddc565b61ffff166200031b60201b60201c565b50505050506200101e565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200033d8282604051806020016040528060008152506200034160201b60201c565b5050565b620003538383620003f260201b60201c565b60008373ffffffffffffffffffffffffffffffffffffffff163b14620003ed57600080549050600083820390505b6200039c6000868380600101945086620005db60201b60201c565b620003d3576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811062000381578160005414620003ea57600080fd5b50505b505050565b600080549050600082141562000434576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6200044960008483856200073d60201b60201c565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620004d883620004ba60008660006200074360201b60201c565b620004cb856200077360201b60201c565b176200078360201b60201c565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b8181146200057b57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001810190506200053e565b506000821415620005b8576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819055505050620005d66000848385620007ae60201b60201c565b505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0262000609620007b460201b60201c565b8786866040518563ffffffff1660e01b81526004016200062d949392919062000ed6565b6020604051808303816000875af19250505080156200066c57506040513d601f19601f8201168201806040525081019062000669919062000f87565b60015b620006ea573d80600081146200069f576040519150601f19603f3d011682016040523d82523d6000602084013e620006a4565b606091505b50600081511415620006e2576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b50505050565b60008060e883901c905060e862000762868684620007bc60201b60201c565b62ffffff16901b9150509392505050565b60006001821460e11b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b600033905090565b60009392505050565b828054620007d39062000fe8565b90600052602060002090601f016020900481019282620007f7576000855562000843565b82601f106200081257805160ff191683800117855562000843565b8280016001018555821562000843579182015b828111156200084257825182559160200191906001019062000825565b5b50905062000852919062000856565b5090565b5b808211156200087157600081600090555060010162000857565b5090565b6000604051905090565b600080fd5b600080fd5b600061ffff82169050919050565b620008a28162000889565b8114620008ae57600080fd5b50565b600081519050620008c28162000897565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008f582620008c8565b9050919050565b6200090781620008e8565b81146200091357600080fd5b50565b6000815190506200092781620008fc565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200097d8262000932565b810181811067ffffffffffffffff821117156200099f576200099e62000943565b5b80604052505050565b6000620009b462000875565b9050620009c2828262000972565b919050565b600067ffffffffffffffff821115620009e557620009e462000943565b5b602082029050602081019050919050565b600080fd5b600062000a1262000a0c84620009c7565b620009a8565b9050808382526020820190506020840283018581111562000a385762000a37620009f6565b5b835b8181101562000a65578062000a50888262000916565b84526020840193505060208101905062000a3a565b5050509392505050565b600082601f83011262000a875762000a866200092d565b5b815162000a99848260208601620009fb565b91505092915050565b600067ffffffffffffffff82111562000ac05762000abf62000943565b5b602082029050602081019050919050565b600060ff82169050919050565b62000ae98162000ad1565b811462000af557600080fd5b50565b60008151905062000b098162000ade565b92915050565b600062000b2662000b208462000aa2565b620009a8565b9050808382526020820190506020840283018581111562000b4c5762000b4b620009f6565b5b835b8181101562000b79578062000b64888262000af8565b84526020840193505060208101905062000b4e565b5050509392505050565b600082601f83011262000b9b5762000b9a6200092d565b5b815162000bad84826020860162000b0f565b91505092915050565b6000806000806080858703121562000bd35762000bd26200087f565b5b600062000be387828801620008b1565b945050602062000bf68782880162000916565b935050604085015167ffffffffffffffff81111562000c1a5762000c1962000884565b5b62000c288782880162000a6f565b925050606085015167ffffffffffffffff81111562000c4c5762000c4b62000884565b5b62000c5a8782880162000b83565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000cd18262000889565b915062000cde8362000889565b92508261ffff0382111562000cf85762000cf762000c95565b5b828201905092915050565b600062000d108262000889565b915061ffff82141562000d285762000d2762000c95565b5b600182019050919050565b600082825260208201905092915050565b7f726573657276652063616e6e6f742062652067726561746572207468616e206d60008201527f617820746f6b656e20636f756e74000000000000000000000000000000000000602082015250565b600062000da2602e8362000d33565b915062000daf8262000d44565b604082019050919050565b6000602082019050818103600083015262000dd58162000d93565b9050919050565b600062000de98262000889565b915062000df68362000889565b92508282101562000e0c5762000e0b62000c95565b5b828203905092915050565b62000e2281620008e8565b82525050565b6000819050919050565b62000e3d8162000e28565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000e7f57808201518184015260208101905062000e62565b8381111562000e8f576000848401525b50505050565b600062000ea28262000e43565b62000eae818562000e4e565b935062000ec081856020860162000e5f565b62000ecb8162000932565b840191505092915050565b600060808201905062000eed600083018762000e17565b62000efc602083018662000e17565b62000f0b604083018562000e32565b818103606083015262000f1f818462000e95565b905095945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b62000f618162000f2a565b811462000f6d57600080fd5b50565b60008151905062000f818162000f56565b92915050565b60006020828403121562000fa05762000f9f6200087f565b5b600062000fb08482850162000f70565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200100157607f821691505b6020821081141562001018576200101762000fb9565b5b50919050565b6124cf806200102e6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063ac44600211610071578063ac4460021461031d578063b88d4fde14610327578063c87b56dd14610343578063e985e9c514610373578063f2fde38b146103a35761012c565b806370a082311461028b578063715018a6146102bb5780638da5cb5b146102c557806395d89b41146102e3578063a22cb465146103015761012c565b806318160ddd116100f457806318160ddd146101e957806323b872dd1461020757806342842e0e1461022357806355f804b31461023f5780636352211e1461025b5761012c565b806301ffc9a71461013157806306fdde0314610161578063081812fc1461017f578063095ea7b3146101af57806312065fe0146101cb575b600080fd5b61014b6004803603810190610146919061182a565b6103bf565b6040516101589190611872565b60405180910390f35b610169610451565b6040516101769190611926565b60405180910390f35b6101996004803603810190610194919061197e565b6104e3565b6040516101a691906119ec565b60405180910390f35b6101c960048036038101906101c49190611a33565b610562565b005b6101d36106a6565b6040516101e09190611a82565b60405180910390f35b6101f16106ae565b6040516101fe9190611a82565b60405180910390f35b610221600480360381019061021c9190611a9d565b6106c5565b005b61023d60048036038101906102389190611a9d565b6109ea565b005b61025960048036038101906102549190611b55565b610a0a565b005b6102756004803603810190610270919061197e565b610a28565b60405161028291906119ec565b60405180910390f35b6102a560048036038101906102a09190611ba2565b610a3a565b6040516102b29190611a82565b60405180910390f35b6102c3610af3565b005b6102cd610b07565b6040516102da91906119ec565b60405180910390f35b6102eb610b31565b6040516102f89190611926565b60405180910390f35b61031b60048036038101906103169190611bfb565b610bc3565b005b610325610d3b565b005b610341600480360381019061033c9190611d6b565b610e48565b005b61035d6004803603810190610358919061197e565b610ebb565b60405161036a9190611926565b60405180910390f35b61038d60048036038101906103889190611dee565b610f62565b60405161039a9190611872565b60405180910390f35b6103bd60048036038101906103b89190611ba2565b610ff6565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061041a57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061044a5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606002805461046090611e5d565b80601f016020809104026020016040519081016040528092919081815260200182805461048c90611e5d565b80156104d95780601f106104ae576101008083540402835291602001916104d9565b820191906000526020600020905b8154815290600101906020018083116104bc57829003601f168201915b5050505050905090565b60006104ee8261107a565b610524576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061056d82610a28565b90508073ffffffffffffffffffffffffffffffffffffffff1661058e6110d9565b73ffffffffffffffffffffffffffffffffffffffff16146105f1576105ba816105b56110d9565b610f62565b6105f0576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600047905090565b60006106b86110e1565b6001546000540303905090565b60006106d0826110ea565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610737576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610743846111b8565b9150915061075981876107546110d9565b6111df565b6107a55761076e866107696110d9565b610f62565b6107a4576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561080c576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108198686866001611223565b801561082457600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506108f2856108ce888887611229565b7c020000000000000000000000000000000000000000000000000000000017611251565b600460008681526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008416141561097a576000600185019050600060046000838152602001908152602001600020541415610978576000548114610977578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46109e2868686600161127c565b505050505050565b610a0583838360405180602001604052806000815250610e48565b505050565b610a12611282565b8181600a9190610a2392919061171b565b505050565b6000610a33826110ea565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610aa2576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b610afb611282565b610b056000611300565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610b4090611e5d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6c90611e5d565b8015610bb95780601f10610b8e57610100808354040283529160200191610bb9565b820191906000526020600020905b815481529060010190602001808311610b9c57829003601f168201915b5050505050905090565b610bcb6110d9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c30576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000610c3d6110d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610cea6110d9565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d2f9190611872565b60405180910390a35050565b610d43611282565b60026009541415610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8090611edb565b60405180910390fd5b600260098190555060003373ffffffffffffffffffffffffffffffffffffffff1647604051610db790611f2c565b60006040518083038185875af1925050503d8060008114610df4576040519150601f19603f3d011682016040523d82523d6000602084013e610df9565b606091505b5050905080610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490611f8d565b60405180910390fd5b506001600981905550565b610e538484846106c5565b60008373ffffffffffffffffffffffffffffffffffffffff163b14610eb557610e7e848484846113c6565b610eb4576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6060610ec68261107a565b610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc9061201f565b60405180910390fd5b6000610f0f611517565b90506000815111610f2f5760405180602001604052806000815250610f5a565b80610f39846115a9565b604051602001610f4a9291906120c7565b6040516020818303038152906040525b915050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610ffe611282565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561106e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106590612168565b60405180910390fd5b61107781611300565b50565b6000816110856110e1565b11158015611094575060005482105b80156110d2575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b600080829050806110f96110e1565b11611181576000548110156111805760006004600083815260200190815260200160002054905060007c01000000000000000000000000000000000000000000000000000000008216141561117e575b6000811415611174576004600083600190039350838152602001908152602001600020549050611149565b80925050506111b3565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e861124086868461170a565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b61128a611713565b73ffffffffffffffffffffffffffffffffffffffff166112a8610b07565b73ffffffffffffffffffffffffffffffffffffffff16146112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f5906121d4565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026113ec6110d9565b8786866040518563ffffffff1660e01b815260040161140e9493929190612249565b6020604051808303816000875af192505050801561144a57506040513d601f19601f8201168201806040525081019061144791906122aa565b60015b6114c4573d806000811461147a576040519150601f19603f3d011682016040523d82523d6000602084013e61147f565b606091505b506000815114156114bc576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600a805461152690611e5d565b80601f016020809104026020016040519081016040528092919081815260200182805461155290611e5d565b801561159f5780601f106115745761010080835404028352916020019161159f565b820191906000526020600020905b81548152906001019060200180831161158257829003601f168201915b5050505050905090565b606060008214156115f1576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611705565b600082905060005b6000821461162357808061160c90612306565b915050600a8261161c919061237e565b91506115f9565b60008167ffffffffffffffff81111561163f5761163e611c40565b5b6040519080825280601f01601f1916602001820160405280156116715781602001600182028036833780820191505090505b5090505b600085146116fe5760018261168a91906123af565b9150600a8561169991906123e3565b60306116a59190612414565b60f81b8183815181106116bb576116ba61246a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856116f7919061237e565b9450611675565b8093505050505b919050565b60009392505050565b600033905090565b82805461172790611e5d565b90600052602060002090601f0160209004810192826117495760008555611790565b82601f1061176257803560ff1916838001178555611790565b82800160010185558215611790579182015b8281111561178f578235825591602001919060010190611774565b5b50905061179d91906117a1565b5090565b5b808211156117ba5760008160009055506001016117a2565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611807816117d2565b811461181257600080fd5b50565b600081359050611824816117fe565b92915050565b6000602082840312156118405761183f6117c8565b5b600061184e84828501611815565b91505092915050565b60008115159050919050565b61186c81611857565b82525050565b60006020820190506118876000830184611863565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156118c75780820151818401526020810190506118ac565b838111156118d6576000848401525b50505050565b6000601f19601f8301169050919050565b60006118f88261188d565b6119028185611898565b93506119128185602086016118a9565b61191b816118dc565b840191505092915050565b6000602082019050818103600083015261194081846118ed565b905092915050565b6000819050919050565b61195b81611948565b811461196657600080fd5b50565b60008135905061197881611952565b92915050565b600060208284031215611994576119936117c8565b5b60006119a284828501611969565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119d6826119ab565b9050919050565b6119e6816119cb565b82525050565b6000602082019050611a0160008301846119dd565b92915050565b611a10816119cb565b8114611a1b57600080fd5b50565b600081359050611a2d81611a07565b92915050565b60008060408385031215611a4a57611a496117c8565b5b6000611a5885828601611a1e565b9250506020611a6985828601611969565b9150509250929050565b611a7c81611948565b82525050565b6000602082019050611a976000830184611a73565b92915050565b600080600060608486031215611ab657611ab56117c8565b5b6000611ac486828701611a1e565b9350506020611ad586828701611a1e565b9250506040611ae686828701611969565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112611b1557611b14611af0565b5b8235905067ffffffffffffffff811115611b3257611b31611af5565b5b602083019150836001820283011115611b4e57611b4d611afa565b5b9250929050565b60008060208385031215611b6c57611b6b6117c8565b5b600083013567ffffffffffffffff811115611b8a57611b896117cd565b5b611b9685828601611aff565b92509250509250929050565b600060208284031215611bb857611bb76117c8565b5b6000611bc684828501611a1e565b91505092915050565b611bd881611857565b8114611be357600080fd5b50565b600081359050611bf581611bcf565b92915050565b60008060408385031215611c1257611c116117c8565b5b6000611c2085828601611a1e565b9250506020611c3185828601611be6565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611c78826118dc565b810181811067ffffffffffffffff82111715611c9757611c96611c40565b5b80604052505050565b6000611caa6117be565b9050611cb68282611c6f565b919050565b600067ffffffffffffffff821115611cd657611cd5611c40565b5b611cdf826118dc565b9050602081019050919050565b82818337600083830152505050565b6000611d0e611d0984611cbb565b611ca0565b905082815260208101848484011115611d2a57611d29611c3b565b5b611d35848285611cec565b509392505050565b600082601f830112611d5257611d51611af0565b5b8135611d62848260208601611cfb565b91505092915050565b60008060008060808587031215611d8557611d846117c8565b5b6000611d9387828801611a1e565b9450506020611da487828801611a1e565b9350506040611db587828801611969565b925050606085013567ffffffffffffffff811115611dd657611dd56117cd565b5b611de287828801611d3d565b91505092959194509250565b60008060408385031215611e0557611e046117c8565b5b6000611e1385828601611a1e565b9250506020611e2485828601611a1e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e7557607f821691505b60208210811415611e8957611e88611e2e565b5b50919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000611ec5601f83611898565b9150611ed082611e8f565b602082019050919050565b60006020820190508181036000830152611ef481611eb8565b9050919050565b600081905092915050565b50565b6000611f16600083611efb565b9150611f2182611f06565b600082019050919050565b6000611f3782611f09565b9150819050919050565b7f536f6d657468696e672077656e742077726f6e672e0000000000000000000000600082015250565b6000611f77601583611898565b9150611f8282611f41565b602082019050919050565b60006020820190508181036000830152611fa681611f6a565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000612009602f83611898565b915061201482611fad565b604082019050919050565b6000602082019050818103600083015261203881611ffc565b9050919050565b600081905092915050565b60006120558261188d565b61205f818561203f565b935061206f8185602086016118a9565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b60006120b160058361203f565b91506120bc8261207b565b600582019050919050565b60006120d3828561204a565b91506120df828461204a565b91506120ea826120a4565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612152602683611898565b915061215d826120f6565b604082019050919050565b6000602082019050818103600083015261218181612145565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006121be602083611898565b91506121c982612188565b602082019050919050565b600060208201905081810360008301526121ed816121b1565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061221b826121f4565b61222581856121ff565b93506122358185602086016118a9565b61223e816118dc565b840191505092915050565b600060808201905061225e60008301876119dd565b61226b60208301866119dd565b6122786040830185611a73565b818103606083015261228a8184612210565b905095945050505050565b6000815190506122a4816117fe565b92915050565b6000602082840312156122c0576122bf6117c8565b5b60006122ce84828501612295565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061231182611948565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612344576123436122d7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061238982611948565b915061239483611948565b9250826123a4576123a361234f565b5b828204905092915050565b60006123ba82611948565b91506123c583611948565b9250828210156123d8576123d76122d7565b5b828203905092915050565b60006123ee82611948565b91506123f983611948565b9250826124095761240861234f565b5b828206905092915050565b600061241f82611948565b915061242a83611948565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561245f5761245e6122d7565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122077fefe4fd44d22ff61c38bd6e4c7a697d75f52019c08d44d1c0b624664e3ff5964736f6c634300080a003300000000000000000000000000000000000000000000000000000000000009c4000000000000000000000000d42e7a0ec95b8c8834498e133101509bf351e94600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000012b0000000000000000000000008efef6b061bda1a1712db316e059cbc8ebdcae4d000000000000000000000000ff959b44e0723cf6d6bc3ea43b3b95b3a30286020000000000000000000000002df9f95a578dd13dd21f4c3475f02302f411c89b0000000000000000000000000c2e9a64c9382bc2f99b092b3d0c3164375536d3000000000000000000000000314265d73fd7927b8ce18efc701647ff6e5fe21b000000000000000000000000929f31deb8b911012c4c0529d002e2628ae949300000000000000000000000000485102ac39cb10314e01d0aad367394bfff2fe4000000000000000000000000290420874bf65691b98b67d042c06bbc31f85f1100000000000000000000000055cf34223929a9d893c1ea402735a3a6fc6e5f7400000000000000000000000094a468fcb53a043bf5cd95ef21892e02c71134be000000000000000000000000bec7c25ac192fa0f0263e6edcb7c559df35c1bee00000000000000000000000032cc2ec897f21a77a704e9a7313af6a640c47bb500000000000000000000000038e54e010ddb1028357fd3d765dbdee02df185650000000000000000000000000aaef7bbc21c627f14cad904e283e199ca2b72cc000000000000000000000000c5e114e271c0fd3b731614694babee826fa90c4e000000000000000000000000cf2d4fcabc3d2e11447780a9599be211a5d2cd3b0000000000000000000000000212f36c40fbf116be992b7026317ed38affef81000000000000000000000000201b5abfd44a8f9b75f0fe1bae74cdac7675e54b0000000000000000000000002873423f30fafb91e65eef97920f41847e95bed1000000000000000000000000469adaf766fb35f1a3c2569fe8c57a50f4b39131000000000000000000000000b339b6def201696c8758ac2361d20e4054552fa4000000000000000000000000d42d272b1523afd7448086275aa29de130d3acdf000000000000000000000000dafbed6fc9a5783983994aa7748ff79729caf1e9000000000000000000000000de597cf592e12f59e8625efad865aee5d9c30360000000000000000000000000e4557ccb67fa0af800acd4faf2aee6c4816440d5000000000000000000000000e72eb31b59f85b19499a0f3b3260011894fa0d65000000000000000000000000fb9d2eb56e88607ee2a77797e35b4ebed934b791000000000000000000000000316e9e1ed1c76058ab43287f29466c90cd20846700000000000000000000000052edd9fe27a2efdd6233c9073068a51c2b0cf352000000000000000000000000605be8cbfeecd13b1f154d54d1887116f7a8c8fc00000000000000000000000047ee413fc9b0f73eb7089cb9a8709de90505b33300000000000000000000000097f7beb12bfb27eeb01f6159c4e05439dc9f1b75000000000000000000000000a0d031e3106967194be9f2f897407659b423cb7c000000000000000000000000b483fadd74d8de95802a5013bdff98f0cf696b36000000000000000000000000c6c8aecb1d9ca59a09d691cda8539992655dbfb30000000000000000000000002ec4904997c7193f8f3ec803682224e97598ce0700000000000000000000000005258e865f382b33e3d45bcd0fef58458611bda90000000000000000000000001bc2c46d6a3c1a1dee9b623fca10d72987dc639f00000000000000000000000096236adb640ec620a85898378375cedf03ca21ff000000000000000000000000aad06a4385f4797c69633bd2d16e0bd31dd7232e000000000000000000000000126b1c5a59fbef04fc8e094a69dc8586babb3752000000000000000000000000b728184cd1eeffe41561ef0824f5a6ae9a42debf0000000000000000000000000d0b3b531cdbb38f854613969d83334cd73dc7cb0000000000000000000000003b69be4932bb76255672c7b07f33b5b4aa35a3be000000000000000000000000dc7033d8d0848611f1a7e2c9a17353d59c278d33000000000000000000000000e19f312305551e7a1e86f664b6b3a215a34e894a0000000000000000000000001c57fbfe1aa0db3bf086577456b6e209bf199572000000000000000000000000fd4ae564e8ec836c4c61903ddf9acc9529000170000000000000000000000000003f35595dce3187b4fff2b5a2c4303f7158208a00000000000000000000000003757f2b37e67481f33b24c12cfe60e77347286900000000000000000000000003f46e8834bf9191ee4584ae5e80a094376d7c70000000000000000000000000043c91573014f46f58f73ddfab865a2536532e810000000000000000000000000471a2d6564cdfa3d99f4585c04cdb0f5708d294000000000000000000000000066460c76c656613e11d11ea59007567c68b84110000000000000000000000000e5e906d99dc9b4467940e8e3d2d69a8c4ed7fdd0000000000000000000000000f692f4a862679008bbf48cc0a7abdff12908f7900000000000000000000000010fdbba4f63895799c566689635e27e352d01b64000000000000000000000000134121fa5b8be6b99c5c8fb2d8b86d6f6b23c18b00000000000000000000000015edb8cfa5623edf45d9eac3a6c96373e649817a000000000000000000000000227f9567667f864a9399afb892e83203975b7a2e00000000000000000000000029178f8e65d94ec3695310df36cffd5730efc9c90000000000000000000000002b423d79ea405083f2a552a71e424e9d15fe1f8c0000000000000000000000005f93bba7fcd8255671c3e13cbf9064e8a353fbe400000000000000000000000061751bc401f4eabe10a238661b4a60ba849100590000000000000000000000006f8c8a287a80fd59b621489e3951b705516f75b5000000000000000000000000732d0583e04929c1f76b3eb0666053a218ae8f7100000000000000000000000075e1a9485582da07aca2f5ae9fc4044a44e6a08f0000000000000000000000007f26d2edbe7ed3bc6e86f6981ef35fb421376dbd000000000000000000000000810e096dda9ae3ae2b55a9c45068f9fe8eeea6db0000000000000000000000009375d8a1951798bddf5347041fa2d9b2f0e1ee62000000000000000000000000a21fed132341f41c7f96cd9a5cdb3965bc0b74b0000000000000000000000000a91b27a8d3abe910808fd52a1e3b689899880f16000000000000000000000000ab91a2449ff8e2836c02ca03a496bcef69d99f88000000000000000000000000b0c4a240581db36e455e29356fcaba6490503b00000000000000000000000000b26024bf80d3f9b16b6308d152b5a2f90fa353fa000000000000000000000000b6ab9ea5e00c6ea7dbe73dafa68a89882b543730000000000000000000000000d38ba8a34f81b5a3221225900484125e1cb0196b000000000000000000000000dad3c0edda148c4bb8c4871c300801efae28fc40000000000000000000000000e699025cdceb9a1c0c97a64ec0e1151077301611000000000000000000000000ea310c966d3ff5e09c65487f1763b21361eb71ef000000000000000000000000f9107317b0ff77ed5b7adea15e50514a3564002b000000000000000000000000f9dceb45b278484afe2544272db78f560b910acc000000000000000000000000f9e393fdeed8810ac47f0b5ca787360cd55988d30000000000000000000000002c93110efae04bca88295f033eef0b5a4673020f0000000000000000000000004411da72127a132a3c997db26d69c600107ecda50000000000000000000000007cbac57a524c6ca9a6f08a57efc3b417245b64c5000000000000000000000000e54ffbd968f803a704e74b983bf448f2c76902a6000000000000000000000000f2a0b113615ef56fabefd0c7c1cf7438f41558e3000000000000000000000000ab51bc7aa8636328e91bcc1b6bf701998fd3c581000000000000000000000000219386877be4694ffc1aedc6bef2022fa7b46dd8000000000000000000000000490f5f3905b65fc725c9454094deeed477d145a3000000000000000000000000feafad2a1e88c1e54a27f460ea72b60259e412850000000000000000000000007e6fb2e33267405fba0af166c4193f1789687396000000000000000000000000cffe08bdf20918007f8ab268c32f8756494fc8d800000000000000000000000008ad45ba090f2c75da7a22a2e03562dbe6fb795c000000000000000000000000678115b9b47a41632135e8bdfd2dc6e5f1568c68000000000000000000000000b71451db0b569259622651e9f5c3854a07f11d8800000000000000000000000003a64ad3b7147bb1ecbf778f435afb969316fdf40000000000000000000000002342b8412558605acbba5f98963c996726535b8700000000000000000000000059805102076b29b3289d1ff168209b81779500d7000000000000000000000000d446b0ba201b3c944346ecaa422d2d92e9968f8d0000000000000000000000007a17d7661ed48322a03ab16cd7cca97aa28c2e99000000000000000000000000006c259c4350eeccf5a4dd6662f4fca3a1ae82600000000000000000000000000f66e03c6e12b8fcc52eb479ad8ed44aeac72e110000000000000000000000001886de8ba8469e81c4bb4e0afb7dcae5c15e42bc0000000000000000000000001ab5288284ea26b1b4a61887ee9b4a16c460de9f0000000000000000000000001ac08405e96e3561893eef86f194acdb9a24d38d00000000000000000000000031b9084568783fd9d47c733f3799567379015e6d00000000000000000000000037ea0e8a72dd9b6c1f250b151921bb3aa083a2ab00000000000000000000000052349a2c4ea4e4b94ada3d75c9d3a318c024706f0000000000000000000000005262d30655918586dace80f944787230d3e01e6d0000000000000000000000005bb96c35a68cba037d0f261c67477416db137f030000000000000000000000005eb67a3b141f3036899ee77822a41277166c540e00000000000000000000000060c0ce0943115aea52f1979719a9cca43ed104ee0000000000000000000000006101b6839073c24e77ef7e2d11d010b511052d2d0000000000000000000000007499fb8bc7bf63c654c435aeffc33e17c686387f0000000000000000000000008286c183d1ac2356cfe1f82716edf360dd93ebf80000000000000000000000008b016fd72dd551db067147f73128c14bdda0d390000000000000000000000000a2dcb52f5cf34a84a2ebfb7d937f7051ae4c697b000000000000000000000000a5f158e596d0e4051e70631d5d72a8ee9d5a3b8a000000000000000000000000ace9c83441712359402d0eac940343826310784f000000000000000000000000b193ba2a0eef6acfff18391c550f0cffcf36dc27000000000000000000000000b2199dcff7a814c4ecf650924991f16c1de3871b000000000000000000000000b4d6df1c1559a943e802cecfc704c4847fd18da1000000000000000000000000c245801013184f446583c2663d6382396e79b297000000000000000000000000d91414e9af9775a09b826da8fc23240fbf0004ff000000000000000000000000db10453283d1f1aa7fca16039fdc3b068b75ea38000000000000000000000000db1ff7681c8d1d0afd71d5a63a99fc48b9c07c20000000000000000000000000dffb14163565bc3c88f93743e93172640f607cbf000000000000000000000000f2ac53ea4a2ddfdf9eda00698280dcd42ba21810000000000000000000000000ffdbd851939736c208f77c085c97c76397f2900400000000000000000000000085deb652b5a35f5957335b6b6e426bdc34570f580000000000000000000000003d16451a4b73e778bfec126025ba79716a17e32d000000000000000000000000fcb5bb06386ff9bb13e33827f0278529bce958180000000000000000000000003b6011e49a629edbfdc5e9708861ff4d5979507c000000000000000000000000ca300a25d2f9b7a31e1addbf043ee52489fce9560000000000000000000000000cd6271bccb5f72dd4b6954b52b469f280b86320000000000000000000000000400098a4b394c54be8b03891356e9fbdf507ddbc0000000000000000000000008df3e0b89ceff88af367c17423e4ef2f3543a8d40000000000000000000000004a9dddac266dcce0e6923f0298267909f2ff761d000000000000000000000000ca348568420fde7b328aedbf7e1acaf43b5a2679000000000000000000000000017ddd63d60394acf55c59069dcd058b86c573b000000000000000000000000070c47f7b8e1f6055ba0a4f0d40d5a69154e5e2290000000000000000000000002bbbdd004556521a49021934c6fe8a137ee6e078000000000000000000000000843d8c261421fbbb4f8e1d76e8ea02124f61ef1a0000000000000000000000006d156f3ba4304ac239acc9a1d6e4d0bc8b6253cb0000000000000000000000008e3eeaa5c95273c43bad8ff95569bd0732296acd00000000000000000000000019b5f8eba01e8e24b21f01588767aa34a0ace2480000000000000000000000002535314106f7a3e8390b847a918cc5d38d046f970000000000000000000000007036571da80dd49b43163aa5674578252cfbf9910000000000000000000000007eec54ba858a2bdd9f1317ed9074f13d07f8a4e600000000000000000000000081489f5063c4c82f8acf8bd8a52b694d4a6fa2fc0000000000000000000000009f93dbbc5ace2e0fac0647ee55497f9e994d2450000000000000000000000000ac9b83ce5ea61f32a79208c9d412033564e68ca8000000000000000000000000e67a540125f4db0599f9f8551243dc4517c6a7f3000000000000000000000000f6a39754ab1a18d19d2cf01dd1941c4b0d2bcf15000000000000000000000000eb5fe4fc79ce1784800d6391fa1c3777009bb32b0000000000000000000000002bfac2d8d79d13d45862ea64ce0f25c5d34e9ca80000000000000000000000002d659cf31b33d5ffcea8ec7666ca916a363cf6d000000000000000000000000030fc0e81e0f7a1e150f81439a5d2fce7231debd600000000000000000000000035a79cf0e934c5156dd198f4005ef5382e7d282b0000000000000000000000004508903aa9b834d1caffa79ce7f74d7f0b283f4a0000000000000000000000004688b6f3c384c3cffe95c92f599213de4a9fa9ca000000000000000000000000589d8fdeb64ec9f12e64ce99a7043cb460fd8d230000000000000000000000005c70052919c4cb622e0dffd774ed6a31ad43a22b0000000000000000000000007b131b2634ab3e2bbbb4cca2b24cd5eebfc13e9e00000000000000000000000083839be4bfe8ea3ce0a19f1434555ac4d4eab9770000000000000000000000008df4da8138605320e8eab55fa994fb8ee4529049000000000000000000000000c62ecaa7d6c01ba35cc5ecca0b2467ee95e1fdb1000000000000000000000000d19506cb5dbc5914a4851d4a359187b2405b6d30000000000000000000000000d66e64d1a52e93e67b1dbcd4383ca61975ca3ec1000000000000000000000000f24ac66d2975163332edcbb37b3f3a7f789dd08f000000000000000000000000f503c4cac2b5a27f68eee197efb94e6fdeaa48d100000000000000000000000002ccb7255011030e499d97d34c96b6aa561a01b00000000000000000000000005ddab38fa49a3febbe24db9bd785384736b53efc0000000000000000000000002cb11d4b522d74db43cd440604a1fd65b26c1b3e000000000000000000000000cb0c66913aa173c8923524d73c7cd173a674d41d0000000000000000000000000708d525ceffbae66f45ac4253f53585a37e3e6d0000000000000000000000000b9dfd38542cc9f69a69c65cada77ac24dbcfab00000000000000000000000002239ff85f256b0ad09502e6b757ad4c0a747a8990000000000000000000000002b1684ae7d9106a2245423448f3994e7fcd49c5c0000000000000000000000002c8131f56f44a10fe811f596f37bd58ab397f8a50000000000000000000000003502ded00d52ac9f91d658095f81a2ae4719beea0000000000000000000000003df3e7a8bd19cc8a7e375b41d0365a400d91b1910000000000000000000000003ff66e83e8d0219363cb27aaad8ee34b93bf757a00000000000000000000000048e9e2f211371bd2462e44af3d2d1aa610437f820000000000000000000000004a57be05d29dd966f0739efa3b47cad9725ecdc10000000000000000000000005fbf0e11696421f4a8945bb8db634cbb1cd71b7e000000000000000000000000a1f39f1a900a44ddfc702f9071808a07b841f377000000000000000000000000a9e37368004605e856991a0a21ac766703429bd5000000000000000000000000abb937635b824cb95eeee1863b2a879afcc62976000000000000000000000000b3dab9f560e32da2e91d2e114a16c727fa24abc1000000000000000000000000b618aacb9dcdc21ca69d310a6fc04674d293a193000000000000000000000000ba20d8bfa6cdbcfec7f0e59ed748edce184b08f0000000000000000000000000c83e607dd670e9e9a98585af27f0b9affec28ea8000000000000000000000000d002ed5d24fa4d0d8bc9af8ccc330a2a40cea686000000000000000000000000d2e39bfe299634b4269cba0b273c0ba207128b4f000000000000000000000000dcf3b04605886d8f6fa943e50aba8db4d0728795000000000000000000000000dffef5d853e5e1dad3b909e37ba2dae94087c3cc000000000000000000000000e48fe6012f97b6a13c0ce5cef314caf66e972deb000000000000000000000000e86debe8875fb7a974ac522c2795532d86027b9c000000000000000000000000eae9c2a2c803becbc81f3a485a7cda9d03e33165000000000000000000000000f26cc9a801342c743e6147424349bbbfe3e7f6a6000000000000000000000000203cbabcfe15108dd247af72eb87abcab67c2b3a00000000000000000000000054ffc3349fdf92d0315634b0e10869548bf0ec5f0000000000000000000000001a2b73207c883ce8e51653d6a9cc8a022740cca400000000000000000000000027dcb67fe978cc420f8ac470dc22a0699d90da2900000000000000000000000036de990133d36d7e3df9a820aa3ede5a2320de7100000000000000000000000037c4e233e3767b79984de780660deef15ffb7762000000000000000000000000453d2c7d86ae150c18f5486586040f1770059e7d00000000000000000000000047baba9b83c7cd484297e771d99076e90464751100000000000000000000000059f915cb592f1c43b2058d9ec9c5d032b6c457290000000000000000000000005dae86a4ee3c7f0c724ec1b8e4d492455bbd452e0000000000000000000000008924317b4c1f2c6842dbf373860b341f77f7aac3000000000000000000000000a946c445bf7f1675309fcd3a968da4da4e3a107a000000000000000000000000cbc49344c8802a532b8dbfdb5d9b9980d7e30702000000000000000000000000e0dcb88c0e57348e5276d48669142d13485666cf000000000000000000000000bb6712a513c2d7f3e17a40d095a773c5d98574b2000000000000000000000000e6b110575d589420d445abfa679065f4bbfbb368000000000000000000000000edce73173048562bbf29d6d9554effac6f9ad963000000000000000000000000847a457740507f4fdfbd9eb979deec01ea6e6d2f000000000000000000000000caed59f6740723d1998e3bbba464ce8bd9c167020000000000000000000000007d5fffdb3f5844998d5d2752969f63d664b6b36e000000000000000000000000c4d7a84a49d9deb0118363d4d02df784d896141d0000000000000000000000004b1fb74346e86071981c61c4596bf898262c2852000000000000000000000000b3737ca13007942513901813030e263fd0d3a484000000000000000000000000e5d0d69e7f18c1ea2effa13670708ddb2d1fdbd700000000000000000000000072703b554a7089f93ff1fc6cc6c0e623900a7b80000000000000000000000000222a7aa6d4f7ba245ef26b5bcd047bdef8163fdb000000000000000000000000b1d5b98408ea7b5a6122458400202681aa67e51000000000000000000000000002e3f540be055029cd072a46899e61eb0d8566e80000000000000000000000000b6f74acca7f645248203ad0408ba8e29820f7eb0000000000000000000000000c3f713890eda64c55db1d32d6a08e4876ad3ac20000000000000000000000000d7f4c479c8057eef1e1d3a73b142d416595e7510000000000000000000000000e1ca0c78c85457e04dd6f256b290f6c31b7629a0000000000000000000000001552fde02335e156468e5c6b6ff20e123bcbdb85000000000000000000000000164054859641a56bf767713f983777ab1278cac40000000000000000000000001b78b453ab685e7a29f454772ca190dce3f17a950000000000000000000000001e0b16d340ed938a71467998e997e995110ed5960000000000000000000000001f5906946f8ce835e479cf7390f26ef8f62115d900000000000000000000000026f755132d69da9e2c2b27cf80e65ae0fa79bf1500000000000000000000000028907f54a11f73414fcd906a1823f8f71cd869330000000000000000000000002a7eb39856d77360279aa6a132fbe9a86a3f5c9c0000000000000000000000004065a1d266b93001e7df796735c68070e2154fa400000000000000000000000054de228f913ded9e34949a91995d099d7676c837000000000000000000000000580a5b2f32bd14af9da1e01ef41feb754f78c350000000000000000000000000581ff9e785500c19230184afdb0c84987cd9bad6000000000000000000000000593bee91ebe3a42e809d07189fcebf9ca041444700000000000000000000000059591576d0ae8c1bf05c02b9f0b7eeca7156378e0000000000000000000000005ad9952330353215a1e4ff58929d7f0d1432c1140000000000000000000000006a2cf9ce3ce67fd55d6ce2c45621bc2a32a3b1af00000000000000000000000073e4a2b60cf48e8baf2b777e175a5b1e4d0c2d8f00000000000000000000000076d92cad8625eb61fb2044047f0ce1edac1abf4800000000000000000000000079fba65f42731e4a4db8472f0b2a5b48d0b4e7f90000000000000000000000007c3db7eee60fad212d6bbcd256fac8782a21b5ff0000000000000000000000008b74cf87b17c1d57bb7c72af7b1f8663bb70f1fc0000000000000000000000008b9d59477894587560ff8983c3d36b801ea3eba60000000000000000000000008d4daba34c92e581f928fca40e018382f7a0282a0000000000000000000000008e5e01dca1706f9df683c53a6fc9d4bb8d237153000000000000000000000000957c1ffc3c17424b4d458199b29606a0fea73c0a00000000000000000000000099e011894390611d7c2b271f77977848257c41150000000000000000000000009a950be24c6f7075d271ba4ff09dca3f7c24fec1000000000000000000000000a4578bce8ce1c94f88d312ac6b97287b25b24114000000000000000000000000a53c56ee83b2f0cf3d00b360ff79ead4d7a3a663000000000000000000000000a8d6b42a88bd1aeb61e6b7dce475c964bd72eb18000000000000000000000000ae2c6dcf7892e0c9780fcf0c04b68c286236f8d8000000000000000000000000b1c2b19d112dca00fa37c8fe71073d100902c88c000000000000000000000000bf8641831d15c2701ba122981c3d7a6a2533ea48000000000000000000000000c3dcce675288f2a80e7833a84093a85c21582c05000000000000000000000000c9be9069f1fd43b82145fa8709050d52d803e81a000000000000000000000000d606424168d1f6da0e51f7e27d719208dd75fe47000000000000000000000000d6b8a1d5cc24346fd3d043af8e16bd35040f1fd6000000000000000000000000d7ce4706f31606981dc35255c8ce27934f9a7624000000000000000000000000ee82395f70353f272d277b40d063efc5d9a1f1d2000000000000000000000000f0cb943e5b2d2eabafcfae9dd404913fdb11a2d2000000000000000000000000f682d204cb48232a43e00a87e0f9bdf08c0faad1000000000000000000000000f817554cc4ca4fe435dbf43bd1bacf0d7b0f38d7000000000000000000000000fcc5ba7c5a2dc4ef495f64064bc6c9491bb78bcd0000000000000000000000005931e57f470e05fe7d9b1ee900e148cdcacc4d220000000000000000000000005bc3104e29bd75da3dfbed25c1c0235c692794dc0000000000000000000000003a9c626cbe9057f208782a16de682ebecd12ae6b000000000000000000000000418a99aa87f227e7b5ae66d30e7660dd136c7b970000000000000000000000004ed48645d5dcd12328124207ff400aa73771a08d000000000000000000000000768e52ad00332b521280bb9dbd6332c3d00120b900000000000000000000000085adc135fcd883bd2cea58404d7b8d97df8ae45a000000000000000000000000a0d38fa34e563e69dabf78b29c43652b3f851e34000000000000000000000000b11f38078c2b018641b8bb80a2c1655133e6bd70000000000000000000000000f556f7297ee2d0d09b53961ce68ad586e3351f3b0000000000000000000000006027ce478cab8f98883d6c4e0634e690e0869be10000000000000000000000004482c03fdfd1169083876376c71218da3700ba22000000000000000000000000dbf83c15f894b235b961e35a3b0d4d3f74c5118a00000000000000000000000027f8396e2f221fb7b6f6d28f2e6fe32d9d6977560000000000000000000000004b8b2b1973fc869ade4ee4251ed5558cb1a408b9000000000000000000000000c016ec26e13ffc46d2dd66fc9a492108b5c14bec000000000000000000000000d7fe3d06e67d61b9d528f07a9250f36e704b2e3f0000000000000000000000004154e928069939b19c0ae1dc163d1eea2e3c678a000000000000000000000000f36a255d105dd1ed51593751ae66f99fc1a6c3c60000000000000000000000005f77e229fcd9af5bfd279fd7b8332e2cb2fcb8df000000000000000000000000b0ce8a66ff791aff312ac869be7f85f892a45b4d000000000000000000000000000000000000000000000000000000000000012b000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000033000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000002b00000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002300000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000001900000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063ac44600211610071578063ac4460021461031d578063b88d4fde14610327578063c87b56dd14610343578063e985e9c514610373578063f2fde38b146103a35761012c565b806370a082311461028b578063715018a6146102bb5780638da5cb5b146102c557806395d89b41146102e3578063a22cb465146103015761012c565b806318160ddd116100f457806318160ddd146101e957806323b872dd1461020757806342842e0e1461022357806355f804b31461023f5780636352211e1461025b5761012c565b806301ffc9a71461013157806306fdde0314610161578063081812fc1461017f578063095ea7b3146101af57806312065fe0146101cb575b600080fd5b61014b6004803603810190610146919061182a565b6103bf565b6040516101589190611872565b60405180910390f35b610169610451565b6040516101769190611926565b60405180910390f35b6101996004803603810190610194919061197e565b6104e3565b6040516101a691906119ec565b60405180910390f35b6101c960048036038101906101c49190611a33565b610562565b005b6101d36106a6565b6040516101e09190611a82565b60405180910390f35b6101f16106ae565b6040516101fe9190611a82565b60405180910390f35b610221600480360381019061021c9190611a9d565b6106c5565b005b61023d60048036038101906102389190611a9d565b6109ea565b005b61025960048036038101906102549190611b55565b610a0a565b005b6102756004803603810190610270919061197e565b610a28565b60405161028291906119ec565b60405180910390f35b6102a560048036038101906102a09190611ba2565b610a3a565b6040516102b29190611a82565b60405180910390f35b6102c3610af3565b005b6102cd610b07565b6040516102da91906119ec565b60405180910390f35b6102eb610b31565b6040516102f89190611926565b60405180910390f35b61031b60048036038101906103169190611bfb565b610bc3565b005b610325610d3b565b005b610341600480360381019061033c9190611d6b565b610e48565b005b61035d6004803603810190610358919061197e565b610ebb565b60405161036a9190611926565b60405180910390f35b61038d60048036038101906103889190611dee565b610f62565b60405161039a9190611872565b60405180910390f35b6103bd60048036038101906103b89190611ba2565b610ff6565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061041a57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061044a5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606002805461046090611e5d565b80601f016020809104026020016040519081016040528092919081815260200182805461048c90611e5d565b80156104d95780601f106104ae576101008083540402835291602001916104d9565b820191906000526020600020905b8154815290600101906020018083116104bc57829003601f168201915b5050505050905090565b60006104ee8261107a565b610524576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061056d82610a28565b90508073ffffffffffffffffffffffffffffffffffffffff1661058e6110d9565b73ffffffffffffffffffffffffffffffffffffffff16146105f1576105ba816105b56110d9565b610f62565b6105f0576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600047905090565b60006106b86110e1565b6001546000540303905090565b60006106d0826110ea565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610737576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610743846111b8565b9150915061075981876107546110d9565b6111df565b6107a55761076e866107696110d9565b610f62565b6107a4576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561080c576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108198686866001611223565b801561082457600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506108f2856108ce888887611229565b7c020000000000000000000000000000000000000000000000000000000017611251565b600460008681526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008416141561097a576000600185019050600060046000838152602001908152602001600020541415610978576000548114610977578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46109e2868686600161127c565b505050505050565b610a0583838360405180602001604052806000815250610e48565b505050565b610a12611282565b8181600a9190610a2392919061171b565b505050565b6000610a33826110ea565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610aa2576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b610afb611282565b610b056000611300565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610b4090611e5d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6c90611e5d565b8015610bb95780601f10610b8e57610100808354040283529160200191610bb9565b820191906000526020600020905b815481529060010190602001808311610b9c57829003601f168201915b5050505050905090565b610bcb6110d9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c30576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000610c3d6110d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610cea6110d9565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d2f9190611872565b60405180910390a35050565b610d43611282565b60026009541415610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8090611edb565b60405180910390fd5b600260098190555060003373ffffffffffffffffffffffffffffffffffffffff1647604051610db790611f2c565b60006040518083038185875af1925050503d8060008114610df4576040519150601f19603f3d011682016040523d82523d6000602084013e610df9565b606091505b5050905080610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490611f8d565b60405180910390fd5b506001600981905550565b610e538484846106c5565b60008373ffffffffffffffffffffffffffffffffffffffff163b14610eb557610e7e848484846113c6565b610eb4576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6060610ec68261107a565b610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc9061201f565b60405180910390fd5b6000610f0f611517565b90506000815111610f2f5760405180602001604052806000815250610f5a565b80610f39846115a9565b604051602001610f4a9291906120c7565b6040516020818303038152906040525b915050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610ffe611282565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561106e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106590612168565b60405180910390fd5b61107781611300565b50565b6000816110856110e1565b11158015611094575060005482105b80156110d2575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b600080829050806110f96110e1565b11611181576000548110156111805760006004600083815260200190815260200160002054905060007c01000000000000000000000000000000000000000000000000000000008216141561117e575b6000811415611174576004600083600190039350838152602001908152602001600020549050611149565b80925050506111b3565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e861124086868461170a565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b61128a611713565b73ffffffffffffffffffffffffffffffffffffffff166112a8610b07565b73ffffffffffffffffffffffffffffffffffffffff16146112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f5906121d4565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026113ec6110d9565b8786866040518563ffffffff1660e01b815260040161140e9493929190612249565b6020604051808303816000875af192505050801561144a57506040513d601f19601f8201168201806040525081019061144791906122aa565b60015b6114c4573d806000811461147a576040519150601f19603f3d011682016040523d82523d6000602084013e61147f565b606091505b506000815114156114bc576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600a805461152690611e5d565b80601f016020809104026020016040519081016040528092919081815260200182805461155290611e5d565b801561159f5780601f106115745761010080835404028352916020019161159f565b820191906000526020600020905b81548152906001019060200180831161158257829003601f168201915b5050505050905090565b606060008214156115f1576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611705565b600082905060005b6000821461162357808061160c90612306565b915050600a8261161c919061237e565b91506115f9565b60008167ffffffffffffffff81111561163f5761163e611c40565b5b6040519080825280601f01601f1916602001820160405280156116715781602001600182028036833780820191505090505b5090505b600085146116fe5760018261168a91906123af565b9150600a8561169991906123e3565b60306116a59190612414565b60f81b8183815181106116bb576116ba61246a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856116f7919061237e565b9450611675565b8093505050505b919050565b60009392505050565b600033905090565b82805461172790611e5d565b90600052602060002090601f0160209004810192826117495760008555611790565b82601f1061176257803560ff1916838001178555611790565b82800160010185558215611790579182015b8281111561178f578235825591602001919060010190611774565b5b50905061179d91906117a1565b5090565b5b808211156117ba5760008160009055506001016117a2565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611807816117d2565b811461181257600080fd5b50565b600081359050611824816117fe565b92915050565b6000602082840312156118405761183f6117c8565b5b600061184e84828501611815565b91505092915050565b60008115159050919050565b61186c81611857565b82525050565b60006020820190506118876000830184611863565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156118c75780820151818401526020810190506118ac565b838111156118d6576000848401525b50505050565b6000601f19601f8301169050919050565b60006118f88261188d565b6119028185611898565b93506119128185602086016118a9565b61191b816118dc565b840191505092915050565b6000602082019050818103600083015261194081846118ed565b905092915050565b6000819050919050565b61195b81611948565b811461196657600080fd5b50565b60008135905061197881611952565b92915050565b600060208284031215611994576119936117c8565b5b60006119a284828501611969565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119d6826119ab565b9050919050565b6119e6816119cb565b82525050565b6000602082019050611a0160008301846119dd565b92915050565b611a10816119cb565b8114611a1b57600080fd5b50565b600081359050611a2d81611a07565b92915050565b60008060408385031215611a4a57611a496117c8565b5b6000611a5885828601611a1e565b9250506020611a6985828601611969565b9150509250929050565b611a7c81611948565b82525050565b6000602082019050611a976000830184611a73565b92915050565b600080600060608486031215611ab657611ab56117c8565b5b6000611ac486828701611a1e565b9350506020611ad586828701611a1e565b9250506040611ae686828701611969565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112611b1557611b14611af0565b5b8235905067ffffffffffffffff811115611b3257611b31611af5565b5b602083019150836001820283011115611b4e57611b4d611afa565b5b9250929050565b60008060208385031215611b6c57611b6b6117c8565b5b600083013567ffffffffffffffff811115611b8a57611b896117cd565b5b611b9685828601611aff565b92509250509250929050565b600060208284031215611bb857611bb76117c8565b5b6000611bc684828501611a1e565b91505092915050565b611bd881611857565b8114611be357600080fd5b50565b600081359050611bf581611bcf565b92915050565b60008060408385031215611c1257611c116117c8565b5b6000611c2085828601611a1e565b9250506020611c3185828601611be6565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611c78826118dc565b810181811067ffffffffffffffff82111715611c9757611c96611c40565b5b80604052505050565b6000611caa6117be565b9050611cb68282611c6f565b919050565b600067ffffffffffffffff821115611cd657611cd5611c40565b5b611cdf826118dc565b9050602081019050919050565b82818337600083830152505050565b6000611d0e611d0984611cbb565b611ca0565b905082815260208101848484011115611d2a57611d29611c3b565b5b611d35848285611cec565b509392505050565b600082601f830112611d5257611d51611af0565b5b8135611d62848260208601611cfb565b91505092915050565b60008060008060808587031215611d8557611d846117c8565b5b6000611d9387828801611a1e565b9450506020611da487828801611a1e565b9350506040611db587828801611969565b925050606085013567ffffffffffffffff811115611dd657611dd56117cd565b5b611de287828801611d3d565b91505092959194509250565b60008060408385031215611e0557611e046117c8565b5b6000611e1385828601611a1e565b9250506020611e2485828601611a1e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e7557607f821691505b60208210811415611e8957611e88611e2e565b5b50919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000611ec5601f83611898565b9150611ed082611e8f565b602082019050919050565b60006020820190508181036000830152611ef481611eb8565b9050919050565b600081905092915050565b50565b6000611f16600083611efb565b9150611f2182611f06565b600082019050919050565b6000611f3782611f09565b9150819050919050565b7f536f6d657468696e672077656e742077726f6e672e0000000000000000000000600082015250565b6000611f77601583611898565b9150611f8282611f41565b602082019050919050565b60006020820190508181036000830152611fa681611f6a565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000612009602f83611898565b915061201482611fad565b604082019050919050565b6000602082019050818103600083015261203881611ffc565b9050919050565b600081905092915050565b60006120558261188d565b61205f818561203f565b935061206f8185602086016118a9565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b60006120b160058361203f565b91506120bc8261207b565b600582019050919050565b60006120d3828561204a565b91506120df828461204a565b91506120ea826120a4565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612152602683611898565b915061215d826120f6565b604082019050919050565b6000602082019050818103600083015261218181612145565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006121be602083611898565b91506121c982612188565b602082019050919050565b600060208201905081810360008301526121ed816121b1565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061221b826121f4565b61222581856121ff565b93506122358185602086016118a9565b61223e816118dc565b840191505092915050565b600060808201905061225e60008301876119dd565b61226b60208301866119dd565b6122786040830185611a73565b818103606083015261228a8184612210565b905095945050505050565b6000815190506122a4816117fe565b92915050565b6000602082840312156122c0576122bf6117c8565b5b60006122ce84828501612295565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061231182611948565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612344576123436122d7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061238982611948565b915061239483611948565b9250826123a4576123a361234f565b5b828204905092915050565b60006123ba82611948565b91506123c583611948565b9250828210156123d8576123d76122d7565b5b828203905092915050565b60006123ee82611948565b91506123f983611948565b9250826124095761240861234f565b5b828206905092915050565b600061241f82611948565b915061242a83611948565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561245f5761245e6122d7565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122077fefe4fd44d22ff61c38bd6e4c7a697d75f52019c08d44d1c0b624664e3ff5964736f6c634300080a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000009c4000000000000000000000000d42e7a0ec95b8c8834498e133101509bf351e94600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000012b0000000000000000000000008efef6b061bda1a1712db316e059cbc8ebdcae4d000000000000000000000000ff959b44e0723cf6d6bc3ea43b3b95b3a30286020000000000000000000000002df9f95a578dd13dd21f4c3475f02302f411c89b0000000000000000000000000c2e9a64c9382bc2f99b092b3d0c3164375536d3000000000000000000000000314265d73fd7927b8ce18efc701647ff6e5fe21b000000000000000000000000929f31deb8b911012c4c0529d002e2628ae949300000000000000000000000000485102ac39cb10314e01d0aad367394bfff2fe4000000000000000000000000290420874bf65691b98b67d042c06bbc31f85f1100000000000000000000000055cf34223929a9d893c1ea402735a3a6fc6e5f7400000000000000000000000094a468fcb53a043bf5cd95ef21892e02c71134be000000000000000000000000bec7c25ac192fa0f0263e6edcb7c559df35c1bee00000000000000000000000032cc2ec897f21a77a704e9a7313af6a640c47bb500000000000000000000000038e54e010ddb1028357fd3d765dbdee02df185650000000000000000000000000aaef7bbc21c627f14cad904e283e199ca2b72cc000000000000000000000000c5e114e271c0fd3b731614694babee826fa90c4e000000000000000000000000cf2d4fcabc3d2e11447780a9599be211a5d2cd3b0000000000000000000000000212f36c40fbf116be992b7026317ed38affef81000000000000000000000000201b5abfd44a8f9b75f0fe1bae74cdac7675e54b0000000000000000000000002873423f30fafb91e65eef97920f41847e95bed1000000000000000000000000469adaf766fb35f1a3c2569fe8c57a50f4b39131000000000000000000000000b339b6def201696c8758ac2361d20e4054552fa4000000000000000000000000d42d272b1523afd7448086275aa29de130d3acdf000000000000000000000000dafbed6fc9a5783983994aa7748ff79729caf1e9000000000000000000000000de597cf592e12f59e8625efad865aee5d9c30360000000000000000000000000e4557ccb67fa0af800acd4faf2aee6c4816440d5000000000000000000000000e72eb31b59f85b19499a0f3b3260011894fa0d65000000000000000000000000fb9d2eb56e88607ee2a77797e35b4ebed934b791000000000000000000000000316e9e1ed1c76058ab43287f29466c90cd20846700000000000000000000000052edd9fe27a2efdd6233c9073068a51c2b0cf352000000000000000000000000605be8cbfeecd13b1f154d54d1887116f7a8c8fc00000000000000000000000047ee413fc9b0f73eb7089cb9a8709de90505b33300000000000000000000000097f7beb12bfb27eeb01f6159c4e05439dc9f1b75000000000000000000000000a0d031e3106967194be9f2f897407659b423cb7c000000000000000000000000b483fadd74d8de95802a5013bdff98f0cf696b36000000000000000000000000c6c8aecb1d9ca59a09d691cda8539992655dbfb30000000000000000000000002ec4904997c7193f8f3ec803682224e97598ce0700000000000000000000000005258e865f382b33e3d45bcd0fef58458611bda90000000000000000000000001bc2c46d6a3c1a1dee9b623fca10d72987dc639f00000000000000000000000096236adb640ec620a85898378375cedf03ca21ff000000000000000000000000aad06a4385f4797c69633bd2d16e0bd31dd7232e000000000000000000000000126b1c5a59fbef04fc8e094a69dc8586babb3752000000000000000000000000b728184cd1eeffe41561ef0824f5a6ae9a42debf0000000000000000000000000d0b3b531cdbb38f854613969d83334cd73dc7cb0000000000000000000000003b69be4932bb76255672c7b07f33b5b4aa35a3be000000000000000000000000dc7033d8d0848611f1a7e2c9a17353d59c278d33000000000000000000000000e19f312305551e7a1e86f664b6b3a215a34e894a0000000000000000000000001c57fbfe1aa0db3bf086577456b6e209bf199572000000000000000000000000fd4ae564e8ec836c4c61903ddf9acc9529000170000000000000000000000000003f35595dce3187b4fff2b5a2c4303f7158208a00000000000000000000000003757f2b37e67481f33b24c12cfe60e77347286900000000000000000000000003f46e8834bf9191ee4584ae5e80a094376d7c70000000000000000000000000043c91573014f46f58f73ddfab865a2536532e810000000000000000000000000471a2d6564cdfa3d99f4585c04cdb0f5708d294000000000000000000000000066460c76c656613e11d11ea59007567c68b84110000000000000000000000000e5e906d99dc9b4467940e8e3d2d69a8c4ed7fdd0000000000000000000000000f692f4a862679008bbf48cc0a7abdff12908f7900000000000000000000000010fdbba4f63895799c566689635e27e352d01b64000000000000000000000000134121fa5b8be6b99c5c8fb2d8b86d6f6b23c18b00000000000000000000000015edb8cfa5623edf45d9eac3a6c96373e649817a000000000000000000000000227f9567667f864a9399afb892e83203975b7a2e00000000000000000000000029178f8e65d94ec3695310df36cffd5730efc9c90000000000000000000000002b423d79ea405083f2a552a71e424e9d15fe1f8c0000000000000000000000005f93bba7fcd8255671c3e13cbf9064e8a353fbe400000000000000000000000061751bc401f4eabe10a238661b4a60ba849100590000000000000000000000006f8c8a287a80fd59b621489e3951b705516f75b5000000000000000000000000732d0583e04929c1f76b3eb0666053a218ae8f7100000000000000000000000075e1a9485582da07aca2f5ae9fc4044a44e6a08f0000000000000000000000007f26d2edbe7ed3bc6e86f6981ef35fb421376dbd000000000000000000000000810e096dda9ae3ae2b55a9c45068f9fe8eeea6db0000000000000000000000009375d8a1951798bddf5347041fa2d9b2f0e1ee62000000000000000000000000a21fed132341f41c7f96cd9a5cdb3965bc0b74b0000000000000000000000000a91b27a8d3abe910808fd52a1e3b689899880f16000000000000000000000000ab91a2449ff8e2836c02ca03a496bcef69d99f88000000000000000000000000b0c4a240581db36e455e29356fcaba6490503b00000000000000000000000000b26024bf80d3f9b16b6308d152b5a2f90fa353fa000000000000000000000000b6ab9ea5e00c6ea7dbe73dafa68a89882b543730000000000000000000000000d38ba8a34f81b5a3221225900484125e1cb0196b000000000000000000000000dad3c0edda148c4bb8c4871c300801efae28fc40000000000000000000000000e699025cdceb9a1c0c97a64ec0e1151077301611000000000000000000000000ea310c966d3ff5e09c65487f1763b21361eb71ef000000000000000000000000f9107317b0ff77ed5b7adea15e50514a3564002b000000000000000000000000f9dceb45b278484afe2544272db78f560b910acc000000000000000000000000f9e393fdeed8810ac47f0b5ca787360cd55988d30000000000000000000000002c93110efae04bca88295f033eef0b5a4673020f0000000000000000000000004411da72127a132a3c997db26d69c600107ecda50000000000000000000000007cbac57a524c6ca9a6f08a57efc3b417245b64c5000000000000000000000000e54ffbd968f803a704e74b983bf448f2c76902a6000000000000000000000000f2a0b113615ef56fabefd0c7c1cf7438f41558e3000000000000000000000000ab51bc7aa8636328e91bcc1b6bf701998fd3c581000000000000000000000000219386877be4694ffc1aedc6bef2022fa7b46dd8000000000000000000000000490f5f3905b65fc725c9454094deeed477d145a3000000000000000000000000feafad2a1e88c1e54a27f460ea72b60259e412850000000000000000000000007e6fb2e33267405fba0af166c4193f1789687396000000000000000000000000cffe08bdf20918007f8ab268c32f8756494fc8d800000000000000000000000008ad45ba090f2c75da7a22a2e03562dbe6fb795c000000000000000000000000678115b9b47a41632135e8bdfd2dc6e5f1568c68000000000000000000000000b71451db0b569259622651e9f5c3854a07f11d8800000000000000000000000003a64ad3b7147bb1ecbf778f435afb969316fdf40000000000000000000000002342b8412558605acbba5f98963c996726535b8700000000000000000000000059805102076b29b3289d1ff168209b81779500d7000000000000000000000000d446b0ba201b3c944346ecaa422d2d92e9968f8d0000000000000000000000007a17d7661ed48322a03ab16cd7cca97aa28c2e99000000000000000000000000006c259c4350eeccf5a4dd6662f4fca3a1ae82600000000000000000000000000f66e03c6e12b8fcc52eb479ad8ed44aeac72e110000000000000000000000001886de8ba8469e81c4bb4e0afb7dcae5c15e42bc0000000000000000000000001ab5288284ea26b1b4a61887ee9b4a16c460de9f0000000000000000000000001ac08405e96e3561893eef86f194acdb9a24d38d00000000000000000000000031b9084568783fd9d47c733f3799567379015e6d00000000000000000000000037ea0e8a72dd9b6c1f250b151921bb3aa083a2ab00000000000000000000000052349a2c4ea4e4b94ada3d75c9d3a318c024706f0000000000000000000000005262d30655918586dace80f944787230d3e01e6d0000000000000000000000005bb96c35a68cba037d0f261c67477416db137f030000000000000000000000005eb67a3b141f3036899ee77822a41277166c540e00000000000000000000000060c0ce0943115aea52f1979719a9cca43ed104ee0000000000000000000000006101b6839073c24e77ef7e2d11d010b511052d2d0000000000000000000000007499fb8bc7bf63c654c435aeffc33e17c686387f0000000000000000000000008286c183d1ac2356cfe1f82716edf360dd93ebf80000000000000000000000008b016fd72dd551db067147f73128c14bdda0d390000000000000000000000000a2dcb52f5cf34a84a2ebfb7d937f7051ae4c697b000000000000000000000000a5f158e596d0e4051e70631d5d72a8ee9d5a3b8a000000000000000000000000ace9c83441712359402d0eac940343826310784f000000000000000000000000b193ba2a0eef6acfff18391c550f0cffcf36dc27000000000000000000000000b2199dcff7a814c4ecf650924991f16c1de3871b000000000000000000000000b4d6df1c1559a943e802cecfc704c4847fd18da1000000000000000000000000c245801013184f446583c2663d6382396e79b297000000000000000000000000d91414e9af9775a09b826da8fc23240fbf0004ff000000000000000000000000db10453283d1f1aa7fca16039fdc3b068b75ea38000000000000000000000000db1ff7681c8d1d0afd71d5a63a99fc48b9c07c20000000000000000000000000dffb14163565bc3c88f93743e93172640f607cbf000000000000000000000000f2ac53ea4a2ddfdf9eda00698280dcd42ba21810000000000000000000000000ffdbd851939736c208f77c085c97c76397f2900400000000000000000000000085deb652b5a35f5957335b6b6e426bdc34570f580000000000000000000000003d16451a4b73e778bfec126025ba79716a17e32d000000000000000000000000fcb5bb06386ff9bb13e33827f0278529bce958180000000000000000000000003b6011e49a629edbfdc5e9708861ff4d5979507c000000000000000000000000ca300a25d2f9b7a31e1addbf043ee52489fce9560000000000000000000000000cd6271bccb5f72dd4b6954b52b469f280b86320000000000000000000000000400098a4b394c54be8b03891356e9fbdf507ddbc0000000000000000000000008df3e0b89ceff88af367c17423e4ef2f3543a8d40000000000000000000000004a9dddac266dcce0e6923f0298267909f2ff761d000000000000000000000000ca348568420fde7b328aedbf7e1acaf43b5a2679000000000000000000000000017ddd63d60394acf55c59069dcd058b86c573b000000000000000000000000070c47f7b8e1f6055ba0a4f0d40d5a69154e5e2290000000000000000000000002bbbdd004556521a49021934c6fe8a137ee6e078000000000000000000000000843d8c261421fbbb4f8e1d76e8ea02124f61ef1a0000000000000000000000006d156f3ba4304ac239acc9a1d6e4d0bc8b6253cb0000000000000000000000008e3eeaa5c95273c43bad8ff95569bd0732296acd00000000000000000000000019b5f8eba01e8e24b21f01588767aa34a0ace2480000000000000000000000002535314106f7a3e8390b847a918cc5d38d046f970000000000000000000000007036571da80dd49b43163aa5674578252cfbf9910000000000000000000000007eec54ba858a2bdd9f1317ed9074f13d07f8a4e600000000000000000000000081489f5063c4c82f8acf8bd8a52b694d4a6fa2fc0000000000000000000000009f93dbbc5ace2e0fac0647ee55497f9e994d2450000000000000000000000000ac9b83ce5ea61f32a79208c9d412033564e68ca8000000000000000000000000e67a540125f4db0599f9f8551243dc4517c6a7f3000000000000000000000000f6a39754ab1a18d19d2cf01dd1941c4b0d2bcf15000000000000000000000000eb5fe4fc79ce1784800d6391fa1c3777009bb32b0000000000000000000000002bfac2d8d79d13d45862ea64ce0f25c5d34e9ca80000000000000000000000002d659cf31b33d5ffcea8ec7666ca916a363cf6d000000000000000000000000030fc0e81e0f7a1e150f81439a5d2fce7231debd600000000000000000000000035a79cf0e934c5156dd198f4005ef5382e7d282b0000000000000000000000004508903aa9b834d1caffa79ce7f74d7f0b283f4a0000000000000000000000004688b6f3c384c3cffe95c92f599213de4a9fa9ca000000000000000000000000589d8fdeb64ec9f12e64ce99a7043cb460fd8d230000000000000000000000005c70052919c4cb622e0dffd774ed6a31ad43a22b0000000000000000000000007b131b2634ab3e2bbbb4cca2b24cd5eebfc13e9e00000000000000000000000083839be4bfe8ea3ce0a19f1434555ac4d4eab9770000000000000000000000008df4da8138605320e8eab55fa994fb8ee4529049000000000000000000000000c62ecaa7d6c01ba35cc5ecca0b2467ee95e1fdb1000000000000000000000000d19506cb5dbc5914a4851d4a359187b2405b6d30000000000000000000000000d66e64d1a52e93e67b1dbcd4383ca61975ca3ec1000000000000000000000000f24ac66d2975163332edcbb37b3f3a7f789dd08f000000000000000000000000f503c4cac2b5a27f68eee197efb94e6fdeaa48d100000000000000000000000002ccb7255011030e499d97d34c96b6aa561a01b00000000000000000000000005ddab38fa49a3febbe24db9bd785384736b53efc0000000000000000000000002cb11d4b522d74db43cd440604a1fd65b26c1b3e000000000000000000000000cb0c66913aa173c8923524d73c7cd173a674d41d0000000000000000000000000708d525ceffbae66f45ac4253f53585a37e3e6d0000000000000000000000000b9dfd38542cc9f69a69c65cada77ac24dbcfab00000000000000000000000002239ff85f256b0ad09502e6b757ad4c0a747a8990000000000000000000000002b1684ae7d9106a2245423448f3994e7fcd49c5c0000000000000000000000002c8131f56f44a10fe811f596f37bd58ab397f8a50000000000000000000000003502ded00d52ac9f91d658095f81a2ae4719beea0000000000000000000000003df3e7a8bd19cc8a7e375b41d0365a400d91b1910000000000000000000000003ff66e83e8d0219363cb27aaad8ee34b93bf757a00000000000000000000000048e9e2f211371bd2462e44af3d2d1aa610437f820000000000000000000000004a57be05d29dd966f0739efa3b47cad9725ecdc10000000000000000000000005fbf0e11696421f4a8945bb8db634cbb1cd71b7e000000000000000000000000a1f39f1a900a44ddfc702f9071808a07b841f377000000000000000000000000a9e37368004605e856991a0a21ac766703429bd5000000000000000000000000abb937635b824cb95eeee1863b2a879afcc62976000000000000000000000000b3dab9f560e32da2e91d2e114a16c727fa24abc1000000000000000000000000b618aacb9dcdc21ca69d310a6fc04674d293a193000000000000000000000000ba20d8bfa6cdbcfec7f0e59ed748edce184b08f0000000000000000000000000c83e607dd670e9e9a98585af27f0b9affec28ea8000000000000000000000000d002ed5d24fa4d0d8bc9af8ccc330a2a40cea686000000000000000000000000d2e39bfe299634b4269cba0b273c0ba207128b4f000000000000000000000000dcf3b04605886d8f6fa943e50aba8db4d0728795000000000000000000000000dffef5d853e5e1dad3b909e37ba2dae94087c3cc000000000000000000000000e48fe6012f97b6a13c0ce5cef314caf66e972deb000000000000000000000000e86debe8875fb7a974ac522c2795532d86027b9c000000000000000000000000eae9c2a2c803becbc81f3a485a7cda9d03e33165000000000000000000000000f26cc9a801342c743e6147424349bbbfe3e7f6a6000000000000000000000000203cbabcfe15108dd247af72eb87abcab67c2b3a00000000000000000000000054ffc3349fdf92d0315634b0e10869548bf0ec5f0000000000000000000000001a2b73207c883ce8e51653d6a9cc8a022740cca400000000000000000000000027dcb67fe978cc420f8ac470dc22a0699d90da2900000000000000000000000036de990133d36d7e3df9a820aa3ede5a2320de7100000000000000000000000037c4e233e3767b79984de780660deef15ffb7762000000000000000000000000453d2c7d86ae150c18f5486586040f1770059e7d00000000000000000000000047baba9b83c7cd484297e771d99076e90464751100000000000000000000000059f915cb592f1c43b2058d9ec9c5d032b6c457290000000000000000000000005dae86a4ee3c7f0c724ec1b8e4d492455bbd452e0000000000000000000000008924317b4c1f2c6842dbf373860b341f77f7aac3000000000000000000000000a946c445bf7f1675309fcd3a968da4da4e3a107a000000000000000000000000cbc49344c8802a532b8dbfdb5d9b9980d7e30702000000000000000000000000e0dcb88c0e57348e5276d48669142d13485666cf000000000000000000000000bb6712a513c2d7f3e17a40d095a773c5d98574b2000000000000000000000000e6b110575d589420d445abfa679065f4bbfbb368000000000000000000000000edce73173048562bbf29d6d9554effac6f9ad963000000000000000000000000847a457740507f4fdfbd9eb979deec01ea6e6d2f000000000000000000000000caed59f6740723d1998e3bbba464ce8bd9c167020000000000000000000000007d5fffdb3f5844998d5d2752969f63d664b6b36e000000000000000000000000c4d7a84a49d9deb0118363d4d02df784d896141d0000000000000000000000004b1fb74346e86071981c61c4596bf898262c2852000000000000000000000000b3737ca13007942513901813030e263fd0d3a484000000000000000000000000e5d0d69e7f18c1ea2effa13670708ddb2d1fdbd700000000000000000000000072703b554a7089f93ff1fc6cc6c0e623900a7b80000000000000000000000000222a7aa6d4f7ba245ef26b5bcd047bdef8163fdb000000000000000000000000b1d5b98408ea7b5a6122458400202681aa67e51000000000000000000000000002e3f540be055029cd072a46899e61eb0d8566e80000000000000000000000000b6f74acca7f645248203ad0408ba8e29820f7eb0000000000000000000000000c3f713890eda64c55db1d32d6a08e4876ad3ac20000000000000000000000000d7f4c479c8057eef1e1d3a73b142d416595e7510000000000000000000000000e1ca0c78c85457e04dd6f256b290f6c31b7629a0000000000000000000000001552fde02335e156468e5c6b6ff20e123bcbdb85000000000000000000000000164054859641a56bf767713f983777ab1278cac40000000000000000000000001b78b453ab685e7a29f454772ca190dce3f17a950000000000000000000000001e0b16d340ed938a71467998e997e995110ed5960000000000000000000000001f5906946f8ce835e479cf7390f26ef8f62115d900000000000000000000000026f755132d69da9e2c2b27cf80e65ae0fa79bf1500000000000000000000000028907f54a11f73414fcd906a1823f8f71cd869330000000000000000000000002a7eb39856d77360279aa6a132fbe9a86a3f5c9c0000000000000000000000004065a1d266b93001e7df796735c68070e2154fa400000000000000000000000054de228f913ded9e34949a91995d099d7676c837000000000000000000000000580a5b2f32bd14af9da1e01ef41feb754f78c350000000000000000000000000581ff9e785500c19230184afdb0c84987cd9bad6000000000000000000000000593bee91ebe3a42e809d07189fcebf9ca041444700000000000000000000000059591576d0ae8c1bf05c02b9f0b7eeca7156378e0000000000000000000000005ad9952330353215a1e4ff58929d7f0d1432c1140000000000000000000000006a2cf9ce3ce67fd55d6ce2c45621bc2a32a3b1af00000000000000000000000073e4a2b60cf48e8baf2b777e175a5b1e4d0c2d8f00000000000000000000000076d92cad8625eb61fb2044047f0ce1edac1abf4800000000000000000000000079fba65f42731e4a4db8472f0b2a5b48d0b4e7f90000000000000000000000007c3db7eee60fad212d6bbcd256fac8782a21b5ff0000000000000000000000008b74cf87b17c1d57bb7c72af7b1f8663bb70f1fc0000000000000000000000008b9d59477894587560ff8983c3d36b801ea3eba60000000000000000000000008d4daba34c92e581f928fca40e018382f7a0282a0000000000000000000000008e5e01dca1706f9df683c53a6fc9d4bb8d237153000000000000000000000000957c1ffc3c17424b4d458199b29606a0fea73c0a00000000000000000000000099e011894390611d7c2b271f77977848257c41150000000000000000000000009a950be24c6f7075d271ba4ff09dca3f7c24fec1000000000000000000000000a4578bce8ce1c94f88d312ac6b97287b25b24114000000000000000000000000a53c56ee83b2f0cf3d00b360ff79ead4d7a3a663000000000000000000000000a8d6b42a88bd1aeb61e6b7dce475c964bd72eb18000000000000000000000000ae2c6dcf7892e0c9780fcf0c04b68c286236f8d8000000000000000000000000b1c2b19d112dca00fa37c8fe71073d100902c88c000000000000000000000000bf8641831d15c2701ba122981c3d7a6a2533ea48000000000000000000000000c3dcce675288f2a80e7833a84093a85c21582c05000000000000000000000000c9be9069f1fd43b82145fa8709050d52d803e81a000000000000000000000000d606424168d1f6da0e51f7e27d719208dd75fe47000000000000000000000000d6b8a1d5cc24346fd3d043af8e16bd35040f1fd6000000000000000000000000d7ce4706f31606981dc35255c8ce27934f9a7624000000000000000000000000ee82395f70353f272d277b40d063efc5d9a1f1d2000000000000000000000000f0cb943e5b2d2eabafcfae9dd404913fdb11a2d2000000000000000000000000f682d204cb48232a43e00a87e0f9bdf08c0faad1000000000000000000000000f817554cc4ca4fe435dbf43bd1bacf0d7b0f38d7000000000000000000000000fcc5ba7c5a2dc4ef495f64064bc6c9491bb78bcd0000000000000000000000005931e57f470e05fe7d9b1ee900e148cdcacc4d220000000000000000000000005bc3104e29bd75da3dfbed25c1c0235c692794dc0000000000000000000000003a9c626cbe9057f208782a16de682ebecd12ae6b000000000000000000000000418a99aa87f227e7b5ae66d30e7660dd136c7b970000000000000000000000004ed48645d5dcd12328124207ff400aa73771a08d000000000000000000000000768e52ad00332b521280bb9dbd6332c3d00120b900000000000000000000000085adc135fcd883bd2cea58404d7b8d97df8ae45a000000000000000000000000a0d38fa34e563e69dabf78b29c43652b3f851e34000000000000000000000000b11f38078c2b018641b8bb80a2c1655133e6bd70000000000000000000000000f556f7297ee2d0d09b53961ce68ad586e3351f3b0000000000000000000000006027ce478cab8f98883d6c4e0634e690e0869be10000000000000000000000004482c03fdfd1169083876376c71218da3700ba22000000000000000000000000dbf83c15f894b235b961e35a3b0d4d3f74c5118a00000000000000000000000027f8396e2f221fb7b6f6d28f2e6fe32d9d6977560000000000000000000000004b8b2b1973fc869ade4ee4251ed5558cb1a408b9000000000000000000000000c016ec26e13ffc46d2dd66fc9a492108b5c14bec000000000000000000000000d7fe3d06e67d61b9d528f07a9250f36e704b2e3f0000000000000000000000004154e928069939b19c0ae1dc163d1eea2e3c678a000000000000000000000000f36a255d105dd1ed51593751ae66f99fc1a6c3c60000000000000000000000005f77e229fcd9af5bfd279fd7b8332e2cb2fcb8df000000000000000000000000b0ce8a66ff791aff312ac869be7f85f892a45b4d000000000000000000000000000000000000000000000000000000000000012b000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000033000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000002b00000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002300000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000001900000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001
-----Decoded View---------------
Arg [0] : _maxTokenCount (uint16): 2500
Arg [1] : _teamAddress (address): 0xd42E7a0eC95b8c8834498E133101509Bf351E946
Arg [2] : _airdropAddresses (address[]): 0x8EFef6B061bdA1a1712DB316E059CBc8eBDCAE4D,0xFF959b44E0723cf6D6Bc3EA43B3B95B3A3028602,0x2Df9F95a578DD13dd21f4C3475f02302f411C89B,0x0c2E9A64c9382BC2f99b092B3D0c3164375536D3,0x314265D73fD7927b8Ce18Efc701647ff6e5fE21b,0x929f31Deb8B911012c4c0529d002E2628AE94930,0x0485102aC39CB10314e01d0aaD367394bFFf2FE4,0x290420874BF65691b98B67D042c06bBC31f85f11,0x55Cf34223929A9D893C1EA402735a3a6FC6e5F74,0x94A468FCB53A043Bf5Cd95EF21892E02C71134Be,0xbec7c25ac192fA0f0263e6EDCb7C559Df35c1BEe,0x32Cc2EC897F21a77A704e9a7313af6a640c47BB5,0x38e54E010Ddb1028357Fd3d765dbdeE02dF18565,0x0aAeF7BbC21c627f14caD904E283e199cA2b72cC,0xC5E114E271c0FD3b731614694baBee826Fa90c4e,0xCF2D4FcabC3D2E11447780a9599BE211A5d2cd3b,0x0212F36c40FBF116be992B7026317ED38AFfeF81,0x201b5Abfd44A8F9b75F0fE1BaE74CDaC7675E54B,0x2873423F30FAfb91E65eEF97920F41847E95bED1,0x469Adaf766fb35F1a3c2569FE8C57a50F4B39131,0xb339B6deF201696C8758AC2361d20E4054552fa4,0xD42d272b1523afd7448086275aa29De130d3ACdF,0xDAfBED6Fc9A5783983994Aa7748ff79729caf1E9,0xdE597CF592e12F59E8625eFad865AeE5D9C30360,0xe4557cCB67fa0aF800ACd4faF2aeE6c4816440D5,0xE72EB31b59F85b19499A0F3b3260011894FA0d65,0xfb9d2EB56e88607Ee2A77797E35B4eBEd934b791,0x316E9e1ED1C76058ab43287F29466c90cD208467,0x52eDD9FE27a2Efdd6233c9073068A51C2B0cf352,0x605BE8CbFeecd13B1f154D54D1887116f7a8c8fc,0x47Ee413fc9b0f73EB7089CB9a8709DE90505b333,0x97F7BEb12Bfb27eeb01F6159c4e05439dc9F1b75,0xA0D031E3106967194BE9F2F897407659b423cb7C,0xB483faDD74D8De95802a5013BDFF98F0cF696B36,0xc6C8AeCb1d9cA59A09d691cDa8539992655dbfB3,0x2Ec4904997c7193f8f3eC803682224e97598ce07,0x05258E865f382B33E3d45BCD0FEF58458611bDA9,0x1Bc2C46d6A3c1A1DEE9B623FCA10d72987DC639f,0x96236aDB640eC620A85898378375cEDf03ca21ff,0xAAD06a4385f4797C69633bD2d16e0Bd31dd7232e,0x126b1c5A59fBef04fc8e094A69Dc8586bABb3752,0xB728184Cd1eEfFe41561EF0824f5a6AE9a42Debf,0x0D0b3B531cDBB38F854613969d83334cD73dC7CB,0x3B69BE4932bb76255672C7b07f33B5B4Aa35a3Be,0xDC7033D8d0848611F1a7E2C9A17353d59C278d33,0xE19F312305551E7A1e86f664b6b3A215A34E894A,0x1c57fBfe1Aa0dB3BF086577456B6e209bF199572,0xfd4AE564E8eC836C4c61903DdF9aCC9529000170,0x003F35595dce3187B4Fff2B5A2c4303f7158208a,0x03757f2b37e67481f33b24C12cfE60e773472869,0x03f46e8834bf9191EE4584ae5E80A094376d7c70,0x043C91573014f46f58F73dDfaB865a2536532E81,0x0471A2D6564cdFa3D99f4585C04cDB0f5708d294,0x066460c76C656613E11D11EA59007567C68b8411,0x0e5e906d99dC9B4467940E8e3d2D69A8C4eD7FDD,0x0f692f4a862679008BbF48CC0A7AbDFF12908f79,0x10FdbBA4F63895799c566689635e27E352D01B64,0x134121fA5b8bE6b99c5c8fb2d8B86D6f6b23C18b,0x15eDB8Cfa5623EDf45D9eAc3a6C96373e649817A,0x227f9567667F864A9399AFB892E83203975b7a2E,0x29178f8E65D94ec3695310df36cfFd5730efC9C9,0x2b423d79ea405083f2A552a71e424E9D15FE1f8C,0x5F93BBa7FCD8255671c3E13Cbf9064E8a353FBE4,0x61751BC401f4EABe10A238661B4A60ba84910059,0x6F8C8a287A80Fd59B621489e3951B705516F75B5,0x732d0583E04929c1f76b3EB0666053a218Ae8F71,0x75E1A9485582DA07ACa2F5aE9Fc4044a44E6a08f,0x7F26d2eDbE7eD3BC6e86F6981ef35fb421376dBD,0x810E096DDa9ae3Ae2b55a9c45068F9FE8eeea6db,0x9375d8A1951798bddF5347041fA2d9B2f0E1EE62,0xa21FeD132341f41c7f96Cd9A5CDb3965bc0b74B0,0xA91B27a8d3aBE910808FD52a1E3B689899880F16,0xab91A2449FF8e2836C02ca03a496BCEf69D99f88,0xb0C4a240581Db36e455e29356fCaBa6490503b00,0xB26024BF80D3f9b16B6308D152b5a2f90FA353fA,0xb6ab9Ea5E00c6EA7dBE73Dafa68a89882B543730,0xd38Ba8A34F81b5A3221225900484125e1CB0196B,0xdAD3C0eddA148c4bB8c4871c300801EFAe28Fc40,0xE699025CDCeb9A1C0C97a64EC0E1151077301611,0xeA310C966D3Ff5E09c65487f1763B21361Eb71eF,0xF9107317B0fF77eD5b7ADea15e50514A3564002B,0xF9dCeB45b278484AFE2544272DB78f560b910aCC,0xF9e393FDeED8810AC47f0b5cA787360Cd55988d3,0x2c93110EFAE04bcA88295f033eEF0b5A4673020f,0x4411Da72127a132a3C997DB26d69C600107EcDa5,0x7CBaC57a524c6cA9A6f08a57eFC3B417245b64C5,0xE54FfbD968f803a704e74b983bF448F2C76902a6,0xF2A0b113615ef56faBEFd0C7c1Cf7438f41558E3,0xAB51Bc7aa8636328E91bCC1B6bf701998fD3C581,0x219386877BE4694Ffc1AedC6Bef2022fa7b46Dd8,0x490F5F3905b65Fc725C9454094deeED477d145a3,0xFEaFAd2a1E88c1E54a27f460Ea72b60259E41285,0x7e6fB2E33267405fBa0af166C4193f1789687396,0xCFFE08BDf20918007f8Ab268C32f8756494fC8D8,0x08ad45BA090f2c75Da7a22A2e03562dBe6fb795c,0x678115B9B47a41632135e8bdfd2DC6E5F1568C68,0xb71451dB0b569259622651e9F5c3854A07F11D88,0x03a64Ad3b7147Bb1ecBF778f435afb969316FDf4,0x2342B8412558605AcbbA5f98963c996726535b87,0x59805102076B29B3289d1FF168209B81779500D7,0xD446b0bA201b3C944346ECaA422d2d92e9968f8d,0x7a17d7661ed48322A03ab16Cd7CCa97aa28C2e99,0x006C259C4350EECcf5a4dd6662F4FcA3A1AE8260,0x0F66e03c6E12b8fCC52Eb479ad8ed44AEAc72e11,0x1886dE8ba8469E81c4BB4E0AFB7dCAe5C15e42BC,0x1Ab5288284Ea26B1b4A61887EE9B4A16c460DE9F,0x1AC08405E96E3561893eef86F194acDB9A24D38D,0x31b9084568783Fd9D47c733F3799567379015e6D,0x37Ea0E8A72dD9B6c1F250b151921bb3aA083a2aB,0x52349a2C4eA4e4B94ada3D75C9d3A318C024706f,0x5262D30655918586DAce80F944787230D3E01E6D,0x5bb96c35a68Cba037D0F261C67477416db137F03,0x5Eb67a3b141f3036899EE77822A41277166c540e,0x60c0cE0943115aea52f1979719A9cCA43ED104EE,0x6101b6839073C24E77EF7e2D11d010b511052d2D,0x7499Fb8bc7Bf63c654c435AEFFC33e17c686387f,0x8286C183d1AC2356cFE1F82716eDf360Dd93ebF8,0x8b016fd72dD551db067147f73128c14bdda0d390,0xA2dCB52F5cF34a84A2eBFb7D937f7051ae4C697B,0xA5F158e596D0e4051e70631D5d72a8Ee9d5A3B8A,0xACe9C83441712359402d0eAc940343826310784F,0xb193bA2A0eeF6acFff18391c550F0cFFcf36dc27,0xB2199DCff7A814c4eCF650924991F16C1dE3871B,0xB4d6dF1c1559A943E802CECFc704c4847fd18DA1,0xC245801013184f446583C2663d6382396E79B297,0xD91414E9aF9775A09B826Da8fc23240fBF0004fF,0xdb10453283D1F1Aa7FCa16039fdC3B068b75ea38,0xdB1ff7681C8d1d0AFD71D5A63A99fc48B9C07C20,0xdfFB14163565BC3c88F93743e93172640F607cbf,0xF2aC53Ea4A2ddfDf9EDA00698280dcd42ba21810,0xFfDBD851939736c208f77C085C97c76397f29004,0x85DeB652B5a35F5957335b6b6E426BDC34570F58,0x3D16451A4B73e778BFEC126025bA79716a17E32d,0xfCB5Bb06386FF9Bb13e33827F0278529bCE95818,0x3B6011e49A629edBFDC5E9708861ff4d5979507c,0xCa300A25D2f9b7a31E1aDdbF043EE52489fce956,0x0Cd6271Bccb5F72DD4B6954B52B469F280B86320,0x400098A4B394C54BE8b03891356E9FBDf507DDBC,0x8df3e0B89ceFF88af367c17423E4ef2f3543A8D4,0x4a9DddAc266DcCe0E6923F0298267909F2FF761d,0xCA348568420fDE7b328AEdBf7e1AcaF43B5A2679,0x017dDd63d60394aCF55C59069DcD058b86c573b0,0x70C47F7B8E1f6055BA0a4F0D40D5A69154E5e229,0x2BBBdD004556521A49021934C6FE8A137Ee6E078,0x843D8c261421FBBB4F8e1d76E8eA02124f61eF1a,0x6D156F3BA4304Ac239ACc9A1D6e4d0bC8b6253CB,0x8e3eEAa5c95273c43bAD8ff95569Bd0732296aCD,0x19b5f8eBa01e8e24B21f01588767Aa34A0ace248,0x2535314106f7A3E8390B847a918Cc5D38d046f97,0x7036571da80DD49B43163AA5674578252CfBf991,0x7eEc54Ba858A2Bdd9f1317eD9074F13D07F8a4e6,0x81489F5063c4C82F8ACf8bD8a52b694d4a6FA2fc,0x9f93DbbC5acE2E0Fac0647EE55497F9E994D2450,0xAC9B83CE5EA61F32A79208C9D412033564E68Ca8,0xe67a540125F4DB0599f9f8551243Dc4517C6a7F3,0xf6a39754ab1a18D19d2cF01dd1941c4b0D2bCF15,0xeb5FE4Fc79CE1784800d6391fA1c3777009BB32b,0x2bFaC2D8D79D13D45862EA64ce0f25C5D34e9cA8,0x2d659Cf31B33d5FfCeA8eC7666cA916A363cf6d0,0x30fc0E81e0f7A1e150f81439a5d2fCE7231DEbD6,0x35A79Cf0e934c5156Dd198f4005eF5382E7d282B,0x4508903aa9B834d1CAFFa79CE7f74d7F0B283F4A,0x4688b6f3C384C3CFFE95c92f599213De4a9fA9cA,0x589d8FdEb64ec9F12e64cE99A7043cb460FD8D23,0x5c70052919c4CB622e0dFFd774eD6A31AD43A22B,0x7B131B2634Ab3e2BbBb4CCA2B24cd5EeBfC13E9E,0x83839be4BFe8eA3ce0a19f1434555Ac4D4eaB977,0x8DF4dA8138605320e8EaB55fa994fb8Ee4529049,0xc62EcAA7d6C01bA35cc5ecCa0b2467Ee95e1fDb1,0xd19506Cb5DBc5914a4851D4a359187B2405B6D30,0xD66e64d1A52E93e67B1DBcD4383Ca61975Ca3Ec1,0xf24aC66d2975163332EDcBb37B3f3A7F789DD08f,0xF503c4CAc2b5A27f68eeE197eFB94e6fDeAa48d1,0x02CCB7255011030E499D97D34C96b6AA561a01B0,0x5ddAB38Fa49A3FeBBe24DB9bd785384736B53eFc,0x2cB11D4b522D74dB43cD440604a1Fd65b26c1B3e,0xcB0c66913aa173C8923524D73C7cd173a674D41d,0x0708D525cEffBae66f45aC4253f53585a37E3E6D,0x0B9dFd38542cc9f69A69c65cADa77AC24DbCFAB0,0x2239fF85F256B0Ad09502e6B757AD4c0a747a899,0x2b1684ae7D9106A2245423448f3994e7fCD49c5c,0x2c8131F56f44a10fe811f596f37bd58Ab397F8A5,0x3502dED00d52aC9f91d658095f81A2AE4719BEEa,0x3DF3e7A8bD19Cc8a7e375B41D0365a400d91B191,0x3fF66e83e8D0219363cB27AaAD8ee34b93BF757A,0x48e9E2F211371bD2462e44Af3d2d1aA610437f82,0x4a57bE05D29dd966F0739EfA3b47Cad9725eCDc1,0x5FBF0e11696421f4A8945Bb8dB634CbB1cD71B7E,0xa1F39F1a900A44DDFC702f9071808a07B841f377,0xA9E37368004605E856991a0A21ac766703429BD5,0xabb937635b824cb95EEee1863B2A879AFcC62976,0xB3dAB9F560e32DA2e91D2e114a16c727Fa24ABC1,0xB618aaCb9DcDc21Ca69D310A6fC04674D293A193,0xbA20D8bfA6cdBcFec7f0e59Ed748EDCE184B08f0,0xC83E607dd670E9E9a98585Af27F0B9aFfec28EA8,0xd002Ed5D24FA4D0d8BC9aF8cCC330a2A40cea686,0xD2e39bFE299634b4269cBA0b273c0bA207128B4f,0xDcF3B04605886d8F6Fa943E50abA8Db4D0728795,0xdfFEF5d853E5E1DaD3B909E37Ba2DAE94087c3cC,0xe48fE6012f97b6A13C0Ce5cEF314cAF66E972deB,0xe86DebE8875fb7a974Ac522C2795532D86027b9c,0xEae9C2A2C803BEcbC81F3A485a7cdA9D03E33165,0xf26CC9A801342C743e6147424349bbBFe3e7F6A6,0x203cbAbcFE15108Dd247Af72eb87aBcAB67C2b3a,0x54ffC3349FDF92d0315634b0E10869548bF0eC5f,0x1A2B73207C883Ce8E51653d6A9cC8a022740cCA4,0x27dcB67fe978CC420F8aC470dC22A0699d90da29,0x36de990133D36d7E3DF9a820aA3eDE5a2320De71,0x37C4E233E3767b79984de780660DeEF15fFB7762,0x453D2c7d86Ae150C18F5486586040F1770059E7D,0x47baba9b83c7Cd484297e771d99076e904647511,0x59f915cb592F1c43b2058D9ec9c5d032b6C45729,0x5Dae86a4eE3c7f0c724eC1B8E4d492455Bbd452e,0x8924317b4c1F2C6842dbf373860B341f77F7aAC3,0xa946c445Bf7F1675309FCd3A968Da4dA4E3A107a,0xcBC49344c8802a532B8DbFDB5d9B9980D7e30702,0xE0DCb88C0e57348E5276d48669142D13485666cF,0xbb6712A513C2d7F3E17A40d095a773c5d98574B2,0xe6B110575D589420d445AbFa679065F4BbFBb368,0xEDCE73173048562BBF29d6D9554eFfAC6f9ad963,0x847a457740507F4FdFbd9eb979DeEc01Ea6e6D2f,0xCaEd59F6740723D1998E3bbbA464Ce8Bd9c16702,0x7d5FFfDb3f5844998d5D2752969F63d664B6B36E,0xC4D7a84A49d9Deb0118363D4D02Df784d896141D,0x4b1fB74346E86071981C61c4596bF898262C2852,0xB3737ca13007942513901813030E263FD0d3a484,0xE5d0D69e7f18C1EA2EffA13670708ddb2D1FDbD7,0x72703B554A7089F93Ff1fC6CC6c0e623900a7b80,0x222a7aa6D4F7ba245EF26b5bcd047bdEF8163FDB,0xb1D5B98408EA7b5a6122458400202681AA67e510,0x02E3f540bE055029cD072a46899e61eB0D8566E8,0x0B6f74aCCA7F645248203aD0408ba8e29820f7Eb,0x0c3F713890EDA64c55DB1d32d6A08e4876ad3AC2,0x0D7F4c479C8057EeF1e1D3A73b142d416595e751,0x0E1ca0c78C85457e04DD6F256b290f6c31B7629A,0x1552Fde02335E156468E5c6b6Ff20e123bcBDb85,0x164054859641A56bf767713F983777ab1278cAc4,0x1B78B453AB685E7a29F454772CA190dce3F17a95,0x1E0b16d340eD938A71467998e997e995110eD596,0x1f5906946F8ce835e479cF7390F26eF8f62115d9,0x26f755132D69dA9e2C2B27cF80e65aE0fa79Bf15,0x28907f54a11f73414Fcd906a1823f8F71cD86933,0x2a7EB39856D77360279aa6a132FBE9A86a3f5C9c,0x4065a1D266B93001E7DF796735C68070E2154fa4,0x54De228F913ded9E34949A91995D099d7676c837,0x580A5b2f32bD14af9da1e01ef41fEB754f78c350,0x581ff9E785500c19230184AfDB0c84987cD9BAD6,0x593bee91EBe3A42e809d07189FCEbf9ca0414447,0x59591576D0ae8C1Bf05c02b9F0B7eeCA7156378E,0x5Ad9952330353215a1e4fF58929d7f0D1432c114,0x6A2CF9ce3Ce67fD55D6ce2C45621BC2A32A3B1aF,0x73E4a2B60Cf48E8BaF2B777E175a5B1E4D0C2d8f,0x76D92Cad8625eb61fB2044047F0ce1Edac1abF48,0x79FBa65F42731E4a4dB8472f0B2A5b48d0b4E7F9,0x7C3db7eeE60FAD212D6BBcd256FAC8782a21b5fF,0x8B74cf87b17c1D57bB7c72af7b1f8663bB70F1Fc,0x8B9D59477894587560fF8983C3D36b801ea3eba6,0x8d4dAbA34C92E581F928fCA40e018382f7A0282a,0x8e5e01DCa1706F9Df683c53a6Fc9D4bb8D237153,0x957C1ffc3C17424B4d458199b29606A0Fea73C0A,0x99e011894390611d7C2b271f77977848257c4115,0x9a950bE24C6f7075d271BA4ff09DCa3F7C24Fec1,0xa4578BcE8CE1C94f88d312Ac6b97287B25B24114,0xa53c56EE83B2f0Cf3D00B360FF79eAd4d7A3a663,0xA8D6b42a88Bd1AeB61E6b7dCE475c964BD72eB18,0xAE2C6dcf7892e0c9780FcF0c04B68c286236F8D8,0xb1c2B19d112DcA00Fa37c8FE71073D100902c88c,0xBF8641831D15c2701BA122981C3D7A6A2533ea48,0xC3dccE675288F2A80e7833a84093A85c21582C05,0xc9be9069F1fD43b82145Fa8709050D52d803E81a,0xd606424168D1F6da0E51F7E27d719208dD75fe47,0xD6B8A1D5CC24346fD3d043af8E16Bd35040f1fd6,0xD7cE4706F31606981dC35255C8cE27934f9a7624,0xEe82395f70353F272D277b40d063EFc5d9A1f1D2,0xF0cb943e5B2d2eaBAfcFAe9dD404913FdB11a2D2,0xF682d204cB48232A43e00A87E0F9bdF08C0fAAD1,0xF817554Cc4Ca4Fe435dbF43BD1bACF0d7B0f38d7,0xfcc5bA7C5a2dC4eF495F64064BC6C9491bb78bcD,0x5931E57F470e05Fe7D9b1Ee900E148cDCAcC4d22,0x5Bc3104E29Bd75Da3DfbEd25C1c0235c692794DC,0x3A9c626CbE9057F208782A16dE682eBEcd12aE6B,0x418A99aa87f227E7b5Ae66d30e7660dD136c7B97,0x4eD48645d5dcD12328124207ff400aA73771a08D,0x768e52aD00332B521280bB9DBD6332c3D00120b9,0x85Adc135fcd883bd2cEa58404d7B8d97df8ae45A,0xA0D38fa34e563E69dabF78b29C43652b3F851E34,0xB11F38078C2b018641b8BB80a2c1655133e6bd70,0xF556f7297ee2D0d09b53961ce68AD586E3351f3b,0x6027CE478caB8f98883d6C4e0634e690E0869Be1,0x4482C03fDfD1169083876376C71218da3700BA22,0xDBF83c15F894B235B961E35a3b0D4D3F74C5118A,0x27F8396e2f221fb7b6f6D28F2e6fE32d9D697756,0x4B8B2B1973fC869adE4ee4251ED5558cB1A408B9,0xC016ec26E13fFc46D2DD66fC9a492108B5c14bec,0xd7FE3d06E67d61B9d528f07a9250f36e704B2E3F,0x4154e928069939b19C0Ae1dc163D1eeA2E3C678A,0xf36A255d105dd1ed51593751AE66F99fc1a6C3C6,0x5F77E229fcd9Af5bFD279FD7B8332e2cB2fCb8Df,0xb0CE8A66FF791AfF312aC869be7f85f892a45b4d
Arg [3] : _airdropQuantities (uint8[]): 60,58,51,50,50,50,43,40,40,35,35,34,30,25,25,25,20,20,20,20,20,20,20,20,20,20,20,18,18,16,15,15,15,15,15,14,13,12,12,12,12,12,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,8,8,8,8,7,7,7,7,7,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-----Encoded View---------------
604 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000009c4
Arg [1] : 000000000000000000000000d42e7a0ec95b8c8834498e133101509bf351e946
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [3] : 0000000000000000000000000000000000000000000000000000000000002600
Arg [4] : 000000000000000000000000000000000000000000000000000000000000012b
Arg [5] : 0000000000000000000000008efef6b061bda1a1712db316e059cbc8ebdcae4d
Arg [6] : 000000000000000000000000ff959b44e0723cf6d6bc3ea43b3b95b3a3028602
Arg [7] : 0000000000000000000000002df9f95a578dd13dd21f4c3475f02302f411c89b
Arg [8] : 0000000000000000000000000c2e9a64c9382bc2f99b092b3d0c3164375536d3
Arg [9] : 000000000000000000000000314265d73fd7927b8ce18efc701647ff6e5fe21b
Arg [10] : 000000000000000000000000929f31deb8b911012c4c0529d002e2628ae94930
Arg [11] : 0000000000000000000000000485102ac39cb10314e01d0aad367394bfff2fe4
Arg [12] : 000000000000000000000000290420874bf65691b98b67d042c06bbc31f85f11
Arg [13] : 00000000000000000000000055cf34223929a9d893c1ea402735a3a6fc6e5f74
Arg [14] : 00000000000000000000000094a468fcb53a043bf5cd95ef21892e02c71134be
Arg [15] : 000000000000000000000000bec7c25ac192fa0f0263e6edcb7c559df35c1bee
Arg [16] : 00000000000000000000000032cc2ec897f21a77a704e9a7313af6a640c47bb5
Arg [17] : 00000000000000000000000038e54e010ddb1028357fd3d765dbdee02df18565
Arg [18] : 0000000000000000000000000aaef7bbc21c627f14cad904e283e199ca2b72cc
Arg [19] : 000000000000000000000000c5e114e271c0fd3b731614694babee826fa90c4e
Arg [20] : 000000000000000000000000cf2d4fcabc3d2e11447780a9599be211a5d2cd3b
Arg [21] : 0000000000000000000000000212f36c40fbf116be992b7026317ed38affef81
Arg [22] : 000000000000000000000000201b5abfd44a8f9b75f0fe1bae74cdac7675e54b
Arg [23] : 0000000000000000000000002873423f30fafb91e65eef97920f41847e95bed1
Arg [24] : 000000000000000000000000469adaf766fb35f1a3c2569fe8c57a50f4b39131
Arg [25] : 000000000000000000000000b339b6def201696c8758ac2361d20e4054552fa4
Arg [26] : 000000000000000000000000d42d272b1523afd7448086275aa29de130d3acdf
Arg [27] : 000000000000000000000000dafbed6fc9a5783983994aa7748ff79729caf1e9
Arg [28] : 000000000000000000000000de597cf592e12f59e8625efad865aee5d9c30360
Arg [29] : 000000000000000000000000e4557ccb67fa0af800acd4faf2aee6c4816440d5
Arg [30] : 000000000000000000000000e72eb31b59f85b19499a0f3b3260011894fa0d65
Arg [31] : 000000000000000000000000fb9d2eb56e88607ee2a77797e35b4ebed934b791
Arg [32] : 000000000000000000000000316e9e1ed1c76058ab43287f29466c90cd208467
Arg [33] : 00000000000000000000000052edd9fe27a2efdd6233c9073068a51c2b0cf352
Arg [34] : 000000000000000000000000605be8cbfeecd13b1f154d54d1887116f7a8c8fc
Arg [35] : 00000000000000000000000047ee413fc9b0f73eb7089cb9a8709de90505b333
Arg [36] : 00000000000000000000000097f7beb12bfb27eeb01f6159c4e05439dc9f1b75
Arg [37] : 000000000000000000000000a0d031e3106967194be9f2f897407659b423cb7c
Arg [38] : 000000000000000000000000b483fadd74d8de95802a5013bdff98f0cf696b36
Arg [39] : 000000000000000000000000c6c8aecb1d9ca59a09d691cda8539992655dbfb3
Arg [40] : 0000000000000000000000002ec4904997c7193f8f3ec803682224e97598ce07
Arg [41] : 00000000000000000000000005258e865f382b33e3d45bcd0fef58458611bda9
Arg [42] : 0000000000000000000000001bc2c46d6a3c1a1dee9b623fca10d72987dc639f
Arg [43] : 00000000000000000000000096236adb640ec620a85898378375cedf03ca21ff
Arg [44] : 000000000000000000000000aad06a4385f4797c69633bd2d16e0bd31dd7232e
Arg [45] : 000000000000000000000000126b1c5a59fbef04fc8e094a69dc8586babb3752
Arg [46] : 000000000000000000000000b728184cd1eeffe41561ef0824f5a6ae9a42debf
Arg [47] : 0000000000000000000000000d0b3b531cdbb38f854613969d83334cd73dc7cb
Arg [48] : 0000000000000000000000003b69be4932bb76255672c7b07f33b5b4aa35a3be
Arg [49] : 000000000000000000000000dc7033d8d0848611f1a7e2c9a17353d59c278d33
Arg [50] : 000000000000000000000000e19f312305551e7a1e86f664b6b3a215a34e894a
Arg [51] : 0000000000000000000000001c57fbfe1aa0db3bf086577456b6e209bf199572
Arg [52] : 000000000000000000000000fd4ae564e8ec836c4c61903ddf9acc9529000170
Arg [53] : 000000000000000000000000003f35595dce3187b4fff2b5a2c4303f7158208a
Arg [54] : 00000000000000000000000003757f2b37e67481f33b24c12cfe60e773472869
Arg [55] : 00000000000000000000000003f46e8834bf9191ee4584ae5e80a094376d7c70
Arg [56] : 000000000000000000000000043c91573014f46f58f73ddfab865a2536532e81
Arg [57] : 0000000000000000000000000471a2d6564cdfa3d99f4585c04cdb0f5708d294
Arg [58] : 000000000000000000000000066460c76c656613e11d11ea59007567c68b8411
Arg [59] : 0000000000000000000000000e5e906d99dc9b4467940e8e3d2d69a8c4ed7fdd
Arg [60] : 0000000000000000000000000f692f4a862679008bbf48cc0a7abdff12908f79
Arg [61] : 00000000000000000000000010fdbba4f63895799c566689635e27e352d01b64
Arg [62] : 000000000000000000000000134121fa5b8be6b99c5c8fb2d8b86d6f6b23c18b
Arg [63] : 00000000000000000000000015edb8cfa5623edf45d9eac3a6c96373e649817a
Arg [64] : 000000000000000000000000227f9567667f864a9399afb892e83203975b7a2e
Arg [65] : 00000000000000000000000029178f8e65d94ec3695310df36cffd5730efc9c9
Arg [66] : 0000000000000000000000002b423d79ea405083f2a552a71e424e9d15fe1f8c
Arg [67] : 0000000000000000000000005f93bba7fcd8255671c3e13cbf9064e8a353fbe4
Arg [68] : 00000000000000000000000061751bc401f4eabe10a238661b4a60ba84910059
Arg [69] : 0000000000000000000000006f8c8a287a80fd59b621489e3951b705516f75b5
Arg [70] : 000000000000000000000000732d0583e04929c1f76b3eb0666053a218ae8f71
Arg [71] : 00000000000000000000000075e1a9485582da07aca2f5ae9fc4044a44e6a08f
Arg [72] : 0000000000000000000000007f26d2edbe7ed3bc6e86f6981ef35fb421376dbd
Arg [73] : 000000000000000000000000810e096dda9ae3ae2b55a9c45068f9fe8eeea6db
Arg [74] : 0000000000000000000000009375d8a1951798bddf5347041fa2d9b2f0e1ee62
Arg [75] : 000000000000000000000000a21fed132341f41c7f96cd9a5cdb3965bc0b74b0
Arg [76] : 000000000000000000000000a91b27a8d3abe910808fd52a1e3b689899880f16
Arg [77] : 000000000000000000000000ab91a2449ff8e2836c02ca03a496bcef69d99f88
Arg [78] : 000000000000000000000000b0c4a240581db36e455e29356fcaba6490503b00
Arg [79] : 000000000000000000000000b26024bf80d3f9b16b6308d152b5a2f90fa353fa
Arg [80] : 000000000000000000000000b6ab9ea5e00c6ea7dbe73dafa68a89882b543730
Arg [81] : 000000000000000000000000d38ba8a34f81b5a3221225900484125e1cb0196b
Arg [82] : 000000000000000000000000dad3c0edda148c4bb8c4871c300801efae28fc40
Arg [83] : 000000000000000000000000e699025cdceb9a1c0c97a64ec0e1151077301611
Arg [84] : 000000000000000000000000ea310c966d3ff5e09c65487f1763b21361eb71ef
Arg [85] : 000000000000000000000000f9107317b0ff77ed5b7adea15e50514a3564002b
Arg [86] : 000000000000000000000000f9dceb45b278484afe2544272db78f560b910acc
Arg [87] : 000000000000000000000000f9e393fdeed8810ac47f0b5ca787360cd55988d3
Arg [88] : 0000000000000000000000002c93110efae04bca88295f033eef0b5a4673020f
Arg [89] : 0000000000000000000000004411da72127a132a3c997db26d69c600107ecda5
Arg [90] : 0000000000000000000000007cbac57a524c6ca9a6f08a57efc3b417245b64c5
Arg [91] : 000000000000000000000000e54ffbd968f803a704e74b983bf448f2c76902a6
Arg [92] : 000000000000000000000000f2a0b113615ef56fabefd0c7c1cf7438f41558e3
Arg [93] : 000000000000000000000000ab51bc7aa8636328e91bcc1b6bf701998fd3c581
Arg [94] : 000000000000000000000000219386877be4694ffc1aedc6bef2022fa7b46dd8
Arg [95] : 000000000000000000000000490f5f3905b65fc725c9454094deeed477d145a3
Arg [96] : 000000000000000000000000feafad2a1e88c1e54a27f460ea72b60259e41285
Arg [97] : 0000000000000000000000007e6fb2e33267405fba0af166c4193f1789687396
Arg [98] : 000000000000000000000000cffe08bdf20918007f8ab268c32f8756494fc8d8
Arg [99] : 00000000000000000000000008ad45ba090f2c75da7a22a2e03562dbe6fb795c
Arg [100] : 000000000000000000000000678115b9b47a41632135e8bdfd2dc6e5f1568c68
Arg [101] : 000000000000000000000000b71451db0b569259622651e9f5c3854a07f11d88
Arg [102] : 00000000000000000000000003a64ad3b7147bb1ecbf778f435afb969316fdf4
Arg [103] : 0000000000000000000000002342b8412558605acbba5f98963c996726535b87
Arg [104] : 00000000000000000000000059805102076b29b3289d1ff168209b81779500d7
Arg [105] : 000000000000000000000000d446b0ba201b3c944346ecaa422d2d92e9968f8d
Arg [106] : 0000000000000000000000007a17d7661ed48322a03ab16cd7cca97aa28c2e99
Arg [107] : 000000000000000000000000006c259c4350eeccf5a4dd6662f4fca3a1ae8260
Arg [108] : 0000000000000000000000000f66e03c6e12b8fcc52eb479ad8ed44aeac72e11
Arg [109] : 0000000000000000000000001886de8ba8469e81c4bb4e0afb7dcae5c15e42bc
Arg [110] : 0000000000000000000000001ab5288284ea26b1b4a61887ee9b4a16c460de9f
Arg [111] : 0000000000000000000000001ac08405e96e3561893eef86f194acdb9a24d38d
Arg [112] : 00000000000000000000000031b9084568783fd9d47c733f3799567379015e6d
Arg [113] : 00000000000000000000000037ea0e8a72dd9b6c1f250b151921bb3aa083a2ab
Arg [114] : 00000000000000000000000052349a2c4ea4e4b94ada3d75c9d3a318c024706f
Arg [115] : 0000000000000000000000005262d30655918586dace80f944787230d3e01e6d
Arg [116] : 0000000000000000000000005bb96c35a68cba037d0f261c67477416db137f03
Arg [117] : 0000000000000000000000005eb67a3b141f3036899ee77822a41277166c540e
Arg [118] : 00000000000000000000000060c0ce0943115aea52f1979719a9cca43ed104ee
Arg [119] : 0000000000000000000000006101b6839073c24e77ef7e2d11d010b511052d2d
Arg [120] : 0000000000000000000000007499fb8bc7bf63c654c435aeffc33e17c686387f
Arg [121] : 0000000000000000000000008286c183d1ac2356cfe1f82716edf360dd93ebf8
Arg [122] : 0000000000000000000000008b016fd72dd551db067147f73128c14bdda0d390
Arg [123] : 000000000000000000000000a2dcb52f5cf34a84a2ebfb7d937f7051ae4c697b
Arg [124] : 000000000000000000000000a5f158e596d0e4051e70631d5d72a8ee9d5a3b8a
Arg [125] : 000000000000000000000000ace9c83441712359402d0eac940343826310784f
Arg [126] : 000000000000000000000000b193ba2a0eef6acfff18391c550f0cffcf36dc27
Arg [127] : 000000000000000000000000b2199dcff7a814c4ecf650924991f16c1de3871b
Arg [128] : 000000000000000000000000b4d6df1c1559a943e802cecfc704c4847fd18da1
Arg [129] : 000000000000000000000000c245801013184f446583c2663d6382396e79b297
Arg [130] : 000000000000000000000000d91414e9af9775a09b826da8fc23240fbf0004ff
Arg [131] : 000000000000000000000000db10453283d1f1aa7fca16039fdc3b068b75ea38
Arg [132] : 000000000000000000000000db1ff7681c8d1d0afd71d5a63a99fc48b9c07c20
Arg [133] : 000000000000000000000000dffb14163565bc3c88f93743e93172640f607cbf
Arg [134] : 000000000000000000000000f2ac53ea4a2ddfdf9eda00698280dcd42ba21810
Arg [135] : 000000000000000000000000ffdbd851939736c208f77c085c97c76397f29004
Arg [136] : 00000000000000000000000085deb652b5a35f5957335b6b6e426bdc34570f58
Arg [137] : 0000000000000000000000003d16451a4b73e778bfec126025ba79716a17e32d
Arg [138] : 000000000000000000000000fcb5bb06386ff9bb13e33827f0278529bce95818
Arg [139] : 0000000000000000000000003b6011e49a629edbfdc5e9708861ff4d5979507c
Arg [140] : 000000000000000000000000ca300a25d2f9b7a31e1addbf043ee52489fce956
Arg [141] : 0000000000000000000000000cd6271bccb5f72dd4b6954b52b469f280b86320
Arg [142] : 000000000000000000000000400098a4b394c54be8b03891356e9fbdf507ddbc
Arg [143] : 0000000000000000000000008df3e0b89ceff88af367c17423e4ef2f3543a8d4
Arg [144] : 0000000000000000000000004a9dddac266dcce0e6923f0298267909f2ff761d
Arg [145] : 000000000000000000000000ca348568420fde7b328aedbf7e1acaf43b5a2679
Arg [146] : 000000000000000000000000017ddd63d60394acf55c59069dcd058b86c573b0
Arg [147] : 00000000000000000000000070c47f7b8e1f6055ba0a4f0d40d5a69154e5e229
Arg [148] : 0000000000000000000000002bbbdd004556521a49021934c6fe8a137ee6e078
Arg [149] : 000000000000000000000000843d8c261421fbbb4f8e1d76e8ea02124f61ef1a
Arg [150] : 0000000000000000000000006d156f3ba4304ac239acc9a1d6e4d0bc8b6253cb
Arg [151] : 0000000000000000000000008e3eeaa5c95273c43bad8ff95569bd0732296acd
Arg [152] : 00000000000000000000000019b5f8eba01e8e24b21f01588767aa34a0ace248
Arg [153] : 0000000000000000000000002535314106f7a3e8390b847a918cc5d38d046f97
Arg [154] : 0000000000000000000000007036571da80dd49b43163aa5674578252cfbf991
Arg [155] : 0000000000000000000000007eec54ba858a2bdd9f1317ed9074f13d07f8a4e6
Arg [156] : 00000000000000000000000081489f5063c4c82f8acf8bd8a52b694d4a6fa2fc
Arg [157] : 0000000000000000000000009f93dbbc5ace2e0fac0647ee55497f9e994d2450
Arg [158] : 000000000000000000000000ac9b83ce5ea61f32a79208c9d412033564e68ca8
Arg [159] : 000000000000000000000000e67a540125f4db0599f9f8551243dc4517c6a7f3
Arg [160] : 000000000000000000000000f6a39754ab1a18d19d2cf01dd1941c4b0d2bcf15
Arg [161] : 000000000000000000000000eb5fe4fc79ce1784800d6391fa1c3777009bb32b
Arg [162] : 0000000000000000000000002bfac2d8d79d13d45862ea64ce0f25c5d34e9ca8
Arg [163] : 0000000000000000000000002d659cf31b33d5ffcea8ec7666ca916a363cf6d0
Arg [164] : 00000000000000000000000030fc0e81e0f7a1e150f81439a5d2fce7231debd6
Arg [165] : 00000000000000000000000035a79cf0e934c5156dd198f4005ef5382e7d282b
Arg [166] : 0000000000000000000000004508903aa9b834d1caffa79ce7f74d7f0b283f4a
Arg [167] : 0000000000000000000000004688b6f3c384c3cffe95c92f599213de4a9fa9ca
Arg [168] : 000000000000000000000000589d8fdeb64ec9f12e64ce99a7043cb460fd8d23
Arg [169] : 0000000000000000000000005c70052919c4cb622e0dffd774ed6a31ad43a22b
Arg [170] : 0000000000000000000000007b131b2634ab3e2bbbb4cca2b24cd5eebfc13e9e
Arg [171] : 00000000000000000000000083839be4bfe8ea3ce0a19f1434555ac4d4eab977
Arg [172] : 0000000000000000000000008df4da8138605320e8eab55fa994fb8ee4529049
Arg [173] : 000000000000000000000000c62ecaa7d6c01ba35cc5ecca0b2467ee95e1fdb1
Arg [174] : 000000000000000000000000d19506cb5dbc5914a4851d4a359187b2405b6d30
Arg [175] : 000000000000000000000000d66e64d1a52e93e67b1dbcd4383ca61975ca3ec1
Arg [176] : 000000000000000000000000f24ac66d2975163332edcbb37b3f3a7f789dd08f
Arg [177] : 000000000000000000000000f503c4cac2b5a27f68eee197efb94e6fdeaa48d1
Arg [178] : 00000000000000000000000002ccb7255011030e499d97d34c96b6aa561a01b0
Arg [179] : 0000000000000000000000005ddab38fa49a3febbe24db9bd785384736b53efc
Arg [180] : 0000000000000000000000002cb11d4b522d74db43cd440604a1fd65b26c1b3e
Arg [181] : 000000000000000000000000cb0c66913aa173c8923524d73c7cd173a674d41d
Arg [182] : 0000000000000000000000000708d525ceffbae66f45ac4253f53585a37e3e6d
Arg [183] : 0000000000000000000000000b9dfd38542cc9f69a69c65cada77ac24dbcfab0
Arg [184] : 0000000000000000000000002239ff85f256b0ad09502e6b757ad4c0a747a899
Arg [185] : 0000000000000000000000002b1684ae7d9106a2245423448f3994e7fcd49c5c
Arg [186] : 0000000000000000000000002c8131f56f44a10fe811f596f37bd58ab397f8a5
Arg [187] : 0000000000000000000000003502ded00d52ac9f91d658095f81a2ae4719beea
Arg [188] : 0000000000000000000000003df3e7a8bd19cc8a7e375b41d0365a400d91b191
Arg [189] : 0000000000000000000000003ff66e83e8d0219363cb27aaad8ee34b93bf757a
Arg [190] : 00000000000000000000000048e9e2f211371bd2462e44af3d2d1aa610437f82
Arg [191] : 0000000000000000000000004a57be05d29dd966f0739efa3b47cad9725ecdc1
Arg [192] : 0000000000000000000000005fbf0e11696421f4a8945bb8db634cbb1cd71b7e
Arg [193] : 000000000000000000000000a1f39f1a900a44ddfc702f9071808a07b841f377
Arg [194] : 000000000000000000000000a9e37368004605e856991a0a21ac766703429bd5
Arg [195] : 000000000000000000000000abb937635b824cb95eeee1863b2a879afcc62976
Arg [196] : 000000000000000000000000b3dab9f560e32da2e91d2e114a16c727fa24abc1
Arg [197] : 000000000000000000000000b618aacb9dcdc21ca69d310a6fc04674d293a193
Arg [198] : 000000000000000000000000ba20d8bfa6cdbcfec7f0e59ed748edce184b08f0
Arg [199] : 000000000000000000000000c83e607dd670e9e9a98585af27f0b9affec28ea8
Arg [200] : 000000000000000000000000d002ed5d24fa4d0d8bc9af8ccc330a2a40cea686
Arg [201] : 000000000000000000000000d2e39bfe299634b4269cba0b273c0ba207128b4f
Arg [202] : 000000000000000000000000dcf3b04605886d8f6fa943e50aba8db4d0728795
Arg [203] : 000000000000000000000000dffef5d853e5e1dad3b909e37ba2dae94087c3cc
Arg [204] : 000000000000000000000000e48fe6012f97b6a13c0ce5cef314caf66e972deb
Arg [205] : 000000000000000000000000e86debe8875fb7a974ac522c2795532d86027b9c
Arg [206] : 000000000000000000000000eae9c2a2c803becbc81f3a485a7cda9d03e33165
Arg [207] : 000000000000000000000000f26cc9a801342c743e6147424349bbbfe3e7f6a6
Arg [208] : 000000000000000000000000203cbabcfe15108dd247af72eb87abcab67c2b3a
Arg [209] : 00000000000000000000000054ffc3349fdf92d0315634b0e10869548bf0ec5f
Arg [210] : 0000000000000000000000001a2b73207c883ce8e51653d6a9cc8a022740cca4
Arg [211] : 00000000000000000000000027dcb67fe978cc420f8ac470dc22a0699d90da29
Arg [212] : 00000000000000000000000036de990133d36d7e3df9a820aa3ede5a2320de71
Arg [213] : 00000000000000000000000037c4e233e3767b79984de780660deef15ffb7762
Arg [214] : 000000000000000000000000453d2c7d86ae150c18f5486586040f1770059e7d
Arg [215] : 00000000000000000000000047baba9b83c7cd484297e771d99076e904647511
Arg [216] : 00000000000000000000000059f915cb592f1c43b2058d9ec9c5d032b6c45729
Arg [217] : 0000000000000000000000005dae86a4ee3c7f0c724ec1b8e4d492455bbd452e
Arg [218] : 0000000000000000000000008924317b4c1f2c6842dbf373860b341f77f7aac3
Arg [219] : 000000000000000000000000a946c445bf7f1675309fcd3a968da4da4e3a107a
Arg [220] : 000000000000000000000000cbc49344c8802a532b8dbfdb5d9b9980d7e30702
Arg [221] : 000000000000000000000000e0dcb88c0e57348e5276d48669142d13485666cf
Arg [222] : 000000000000000000000000bb6712a513c2d7f3e17a40d095a773c5d98574b2
Arg [223] : 000000000000000000000000e6b110575d589420d445abfa679065f4bbfbb368
Arg [224] : 000000000000000000000000edce73173048562bbf29d6d9554effac6f9ad963
Arg [225] : 000000000000000000000000847a457740507f4fdfbd9eb979deec01ea6e6d2f
Arg [226] : 000000000000000000000000caed59f6740723d1998e3bbba464ce8bd9c16702
Arg [227] : 0000000000000000000000007d5fffdb3f5844998d5d2752969f63d664b6b36e
Arg [228] : 000000000000000000000000c4d7a84a49d9deb0118363d4d02df784d896141d
Arg [229] : 0000000000000000000000004b1fb74346e86071981c61c4596bf898262c2852
Arg [230] : 000000000000000000000000b3737ca13007942513901813030e263fd0d3a484
Arg [231] : 000000000000000000000000e5d0d69e7f18c1ea2effa13670708ddb2d1fdbd7
Arg [232] : 00000000000000000000000072703b554a7089f93ff1fc6cc6c0e623900a7b80
Arg [233] : 000000000000000000000000222a7aa6d4f7ba245ef26b5bcd047bdef8163fdb
Arg [234] : 000000000000000000000000b1d5b98408ea7b5a6122458400202681aa67e510
Arg [235] : 00000000000000000000000002e3f540be055029cd072a46899e61eb0d8566e8
Arg [236] : 0000000000000000000000000b6f74acca7f645248203ad0408ba8e29820f7eb
Arg [237] : 0000000000000000000000000c3f713890eda64c55db1d32d6a08e4876ad3ac2
Arg [238] : 0000000000000000000000000d7f4c479c8057eef1e1d3a73b142d416595e751
Arg [239] : 0000000000000000000000000e1ca0c78c85457e04dd6f256b290f6c31b7629a
Arg [240] : 0000000000000000000000001552fde02335e156468e5c6b6ff20e123bcbdb85
Arg [241] : 000000000000000000000000164054859641a56bf767713f983777ab1278cac4
Arg [242] : 0000000000000000000000001b78b453ab685e7a29f454772ca190dce3f17a95
Arg [243] : 0000000000000000000000001e0b16d340ed938a71467998e997e995110ed596
Arg [244] : 0000000000000000000000001f5906946f8ce835e479cf7390f26ef8f62115d9
Arg [245] : 00000000000000000000000026f755132d69da9e2c2b27cf80e65ae0fa79bf15
Arg [246] : 00000000000000000000000028907f54a11f73414fcd906a1823f8f71cd86933
Arg [247] : 0000000000000000000000002a7eb39856d77360279aa6a132fbe9a86a3f5c9c
Arg [248] : 0000000000000000000000004065a1d266b93001e7df796735c68070e2154fa4
Arg [249] : 00000000000000000000000054de228f913ded9e34949a91995d099d7676c837
Arg [250] : 000000000000000000000000580a5b2f32bd14af9da1e01ef41feb754f78c350
Arg [251] : 000000000000000000000000581ff9e785500c19230184afdb0c84987cd9bad6
Arg [252] : 000000000000000000000000593bee91ebe3a42e809d07189fcebf9ca0414447
Arg [253] : 00000000000000000000000059591576d0ae8c1bf05c02b9f0b7eeca7156378e
Arg [254] : 0000000000000000000000005ad9952330353215a1e4ff58929d7f0d1432c114
Arg [255] : 0000000000000000000000006a2cf9ce3ce67fd55d6ce2c45621bc2a32a3b1af
Arg [256] : 00000000000000000000000073e4a2b60cf48e8baf2b777e175a5b1e4d0c2d8f
Arg [257] : 00000000000000000000000076d92cad8625eb61fb2044047f0ce1edac1abf48
Arg [258] : 00000000000000000000000079fba65f42731e4a4db8472f0b2a5b48d0b4e7f9
Arg [259] : 0000000000000000000000007c3db7eee60fad212d6bbcd256fac8782a21b5ff
Arg [260] : 0000000000000000000000008b74cf87b17c1d57bb7c72af7b1f8663bb70f1fc
Arg [261] : 0000000000000000000000008b9d59477894587560ff8983c3d36b801ea3eba6
Arg [262] : 0000000000000000000000008d4daba34c92e581f928fca40e018382f7a0282a
Arg [263] : 0000000000000000000000008e5e01dca1706f9df683c53a6fc9d4bb8d237153
Arg [264] : 000000000000000000000000957c1ffc3c17424b4d458199b29606a0fea73c0a
Arg [265] : 00000000000000000000000099e011894390611d7c2b271f77977848257c4115
Arg [266] : 0000000000000000000000009a950be24c6f7075d271ba4ff09dca3f7c24fec1
Arg [267] : 000000000000000000000000a4578bce8ce1c94f88d312ac6b97287b25b24114
Arg [268] : 000000000000000000000000a53c56ee83b2f0cf3d00b360ff79ead4d7a3a663
Arg [269] : 000000000000000000000000a8d6b42a88bd1aeb61e6b7dce475c964bd72eb18
Arg [270] : 000000000000000000000000ae2c6dcf7892e0c9780fcf0c04b68c286236f8d8
Arg [271] : 000000000000000000000000b1c2b19d112dca00fa37c8fe71073d100902c88c
Arg [272] : 000000000000000000000000bf8641831d15c2701ba122981c3d7a6a2533ea48
Arg [273] : 000000000000000000000000c3dcce675288f2a80e7833a84093a85c21582c05
Arg [274] : 000000000000000000000000c9be9069f1fd43b82145fa8709050d52d803e81a
Arg [275] : 000000000000000000000000d606424168d1f6da0e51f7e27d719208dd75fe47
Arg [276] : 000000000000000000000000d6b8a1d5cc24346fd3d043af8e16bd35040f1fd6
Arg [277] : 000000000000000000000000d7ce4706f31606981dc35255c8ce27934f9a7624
Arg [278] : 000000000000000000000000ee82395f70353f272d277b40d063efc5d9a1f1d2
Arg [279] : 000000000000000000000000f0cb943e5b2d2eabafcfae9dd404913fdb11a2d2
Arg [280] : 000000000000000000000000f682d204cb48232a43e00a87e0f9bdf08c0faad1
Arg [281] : 000000000000000000000000f817554cc4ca4fe435dbf43bd1bacf0d7b0f38d7
Arg [282] : 000000000000000000000000fcc5ba7c5a2dc4ef495f64064bc6c9491bb78bcd
Arg [283] : 0000000000000000000000005931e57f470e05fe7d9b1ee900e148cdcacc4d22
Arg [284] : 0000000000000000000000005bc3104e29bd75da3dfbed25c1c0235c692794dc
Arg [285] : 0000000000000000000000003a9c626cbe9057f208782a16de682ebecd12ae6b
Arg [286] : 000000000000000000000000418a99aa87f227e7b5ae66d30e7660dd136c7b97
Arg [287] : 0000000000000000000000004ed48645d5dcd12328124207ff400aa73771a08d
Arg [288] : 000000000000000000000000768e52ad00332b521280bb9dbd6332c3d00120b9
Arg [289] : 00000000000000000000000085adc135fcd883bd2cea58404d7b8d97df8ae45a
Arg [290] : 000000000000000000000000a0d38fa34e563e69dabf78b29c43652b3f851e34
Arg [291] : 000000000000000000000000b11f38078c2b018641b8bb80a2c1655133e6bd70
Arg [292] : 000000000000000000000000f556f7297ee2d0d09b53961ce68ad586e3351f3b
Arg [293] : 0000000000000000000000006027ce478cab8f98883d6c4e0634e690e0869be1
Arg [294] : 0000000000000000000000004482c03fdfd1169083876376c71218da3700ba22
Arg [295] : 000000000000000000000000dbf83c15f894b235b961e35a3b0d4d3f74c5118a
Arg [296] : 00000000000000000000000027f8396e2f221fb7b6f6d28f2e6fe32d9d697756
Arg [297] : 0000000000000000000000004b8b2b1973fc869ade4ee4251ed5558cb1a408b9
Arg [298] : 000000000000000000000000c016ec26e13ffc46d2dd66fc9a492108b5c14bec
Arg [299] : 000000000000000000000000d7fe3d06e67d61b9d528f07a9250f36e704b2e3f
Arg [300] : 0000000000000000000000004154e928069939b19c0ae1dc163d1eea2e3c678a
Arg [301] : 000000000000000000000000f36a255d105dd1ed51593751ae66f99fc1a6c3c6
Arg [302] : 0000000000000000000000005f77e229fcd9af5bfd279fd7b8332e2cb2fcb8df
Arg [303] : 000000000000000000000000b0ce8a66ff791aff312ac869be7f85f892a45b4d
Arg [304] : 000000000000000000000000000000000000000000000000000000000000012b
Arg [305] : 000000000000000000000000000000000000000000000000000000000000003c
Arg [306] : 000000000000000000000000000000000000000000000000000000000000003a
Arg [307] : 0000000000000000000000000000000000000000000000000000000000000033
Arg [308] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [309] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [310] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [311] : 000000000000000000000000000000000000000000000000000000000000002b
Arg [312] : 0000000000000000000000000000000000000000000000000000000000000028
Arg [313] : 0000000000000000000000000000000000000000000000000000000000000028
Arg [314] : 0000000000000000000000000000000000000000000000000000000000000023
Arg [315] : 0000000000000000000000000000000000000000000000000000000000000023
Arg [316] : 0000000000000000000000000000000000000000000000000000000000000022
Arg [317] : 000000000000000000000000000000000000000000000000000000000000001e
Arg [318] : 0000000000000000000000000000000000000000000000000000000000000019
Arg [319] : 0000000000000000000000000000000000000000000000000000000000000019
Arg [320] : 0000000000000000000000000000000000000000000000000000000000000019
Arg [321] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [322] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [323] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [324] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [325] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [326] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [327] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [328] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [329] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [330] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [331] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [332] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [333] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [334] : 0000000000000000000000000000000000000000000000000000000000000010
Arg [335] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [336] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [337] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [338] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [339] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [340] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [341] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [342] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [343] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [344] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [345] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [346] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [347] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [348] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [349] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [350] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [351] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [352] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [353] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [354] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [355] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [356] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [357] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [358] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [359] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [360] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [361] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [362] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [363] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [364] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [365] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [366] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [367] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [368] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [369] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [370] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [371] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [372] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [373] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [374] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [375] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [376] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [377] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [378] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [379] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [380] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [381] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [382] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [383] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [384] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [385] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [386] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [387] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [388] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [389] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [390] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [391] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [392] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [393] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [394] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [395] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [396] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [397] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [398] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [399] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [400] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [401] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [402] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [403] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [404] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [405] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [406] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [407] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [408] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [409] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [410] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [411] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [412] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [413] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [414] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [415] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [416] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [417] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [418] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [419] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [420] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [421] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [422] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [423] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [424] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [425] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [426] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [427] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [428] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [429] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [430] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [431] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [432] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [433] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [434] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [435] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [436] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [437] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [438] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [439] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [440] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [441] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [442] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [443] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [444] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [445] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [446] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [447] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [448] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [449] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [450] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [451] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [452] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [453] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [454] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [455] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [456] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [457] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [458] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [459] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [460] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [461] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [462] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [463] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [464] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [465] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [466] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [467] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [468] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [469] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [470] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [471] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [472] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [473] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [474] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [475] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [476] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [477] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [478] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [479] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [480] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [481] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [482] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [483] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [484] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [485] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [486] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [487] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [488] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [489] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [490] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [491] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [492] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [493] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [494] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [495] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [496] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [497] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [498] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [499] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [500] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [501] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [502] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [503] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [504] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [505] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [506] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [507] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [508] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [509] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [510] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [511] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [512] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [513] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [514] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [515] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [516] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [517] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [518] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [519] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [520] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [521] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [522] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [523] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [524] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [525] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [526] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [527] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [528] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [529] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [530] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [531] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [532] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [533] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [534] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [535] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [536] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [537] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [538] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [539] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [540] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [541] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [542] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [543] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [544] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [545] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [546] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [547] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [548] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [549] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [550] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [551] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [552] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [553] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [554] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [555] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [556] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [557] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [558] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [559] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [560] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [561] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [562] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [563] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [564] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [565] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [566] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [567] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [568] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [569] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [570] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [571] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [572] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [573] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [574] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [575] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [576] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [577] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [578] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [579] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [580] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [581] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [582] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [583] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [584] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [585] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [586] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [587] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [588] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [589] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [590] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [591] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [592] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [593] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [594] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [595] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [596] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [597] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [598] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [599] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [600] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [601] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [602] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [603] : 0000000000000000000000000000000000000000000000000000000000000001
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.