More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 943 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 17921513 | 535 days ago | IN | 0 ETH | 0.00443248 | ||||
Claim Tokens | 17921511 | 535 days ago | IN | 0 ETH | 0.00252573 | ||||
Claim Tokens | 17122818 | 647 days ago | IN | 0 ETH | 0.00364082 | ||||
Claim Tokens | 16796414 | 693 days ago | IN | 0 ETH | 0.00163192 | ||||
Claim Tokens | 16529734 | 731 days ago | IN | 0 ETH | 0.00273417 | ||||
Withdraw | 16455883 | 741 days ago | IN | 0 ETH | 0.00223108 | ||||
Claim Tokens | 16436526 | 744 days ago | IN | 0 ETH | 0.00166102 | ||||
Claim Tokens | 16370245 | 753 days ago | IN | 0 ETH | 0.00296679 | ||||
Claim Tokens | 16340779 | 757 days ago | IN | 0 ETH | 0.00195444 | ||||
Withdraw | 16297565 | 763 days ago | IN | 0 ETH | 0.02784466 | ||||
Withdraw | 15722596 | 843 days ago | IN | 0 ETH | 0.00213164 | ||||
Claim Tokens | 15713941 | 844 days ago | IN | 0 ETH | 0.00275157 | ||||
Stake Batch | 15483187 | 878 days ago | IN | 0 ETH | 0.00332999 | ||||
Withdraw Selecte... | 15478728 | 879 days ago | IN | 0 ETH | 0.00138361 | ||||
Stake Batch | 15476289 | 879 days ago | IN | 0 ETH | 0.00164391 | ||||
Withdraw Selecte... | 15351667 | 899 days ago | IN | 0 ETH | 0.00076983 | ||||
Stake Batch | 15350609 | 899 days ago | IN | 0 ETH | 0.00260199 | ||||
Stake Batch | 15292646 | 908 days ago | IN | 0 ETH | 0.00203052 | ||||
Claim Tokens | 15275260 | 911 days ago | IN | 0 ETH | 0.00046547 | ||||
Withdraw | 15275260 | 911 days ago | IN | 0 ETH | 0.00205924 | ||||
Withdraw | 15235091 | 917 days ago | IN | 0 ETH | 0.0014217 | ||||
Withdraw | 15230273 | 918 days ago | IN | 0 ETH | 0.00154363 | ||||
Withdraw | 15190876 | 924 days ago | IN | 0 ETH | 0.00228619 | ||||
Claim Tokens | 15190865 | 924 days ago | IN | 0 ETH | 0.00101335 | ||||
Withdraw Selecte... | 15119336 | 935 days ago | IN | 0 ETH | 0.00109053 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
HeartbreakBearsNFTStaking
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-04 */ // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.0 (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; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts v4.4.0 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @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 Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { 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); } } // File: @openzeppelin/contracts/security/Pausable.sol // OpenZeppelin Contracts v4.4.0 (security/Pausable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount ) external returns (bool); /** * @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); } // File: @openzeppelin/contracts/utils/introspection/IERC165.sol // OpenZeppelin Contracts v4.4.0 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } // File: @openzeppelin/contracts/token/ERC1155/IERC1155.sol // OpenZeppelin Contracts v4.4.0 (token/ERC1155/IERC1155.sol) pragma solidity ^0.8.0; /** * @dev Required interface of an ERC1155 compliant contract, as defined in the * https://eips.ethereum.org/EIPS/eip-1155[EIP]. * * _Available since v3.1._ */ interface IERC1155 is IERC165 { /** * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. */ event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); /** * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all * transfers. */ event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values ); /** * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to * `approved`. */ event ApprovalForAll(address indexed account, address indexed operator, bool approved); /** * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. * * If an {URI} event was emitted for `id`, the standard * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value * returned by {IERC1155MetadataURI-uri}. */ event URI(string value, uint256 indexed id); /** * @dev Returns the amount of tokens of token type `id` owned by `account`. * * Requirements: * * - `account` cannot be the zero address. */ function balanceOf(address account, uint256 id) external view returns (uint256); /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) external view returns (uint256[] memory); /** * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, * * Emits an {ApprovalForAll} event. * * Requirements: * * - `operator` cannot be the caller. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. * * See {setApprovalForAll}. */ function isApprovedForAll(address account, address operator) external view returns (bool); /** * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. * - `from` must have a balance of tokens of type `id` of at least `amount`. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) external; /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. * * Emits a {TransferBatch} event. * * Requirements: * * - `ids` and `amounts` must have the same length. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the * acceptance magic value. */ function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) external; } // File: @openzeppelin/contracts/utils/introspection/ERC165.sol // OpenZeppelin Contracts v4.4.0 (utils/introspection/ERC165.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` * * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } // File: @openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol // OpenZeppelin Contracts v4.4.0 (token/ERC1155/IERC1155Receiver.sol) pragma solidity ^0.8.0; /** * @dev _Available since v3.1._ */ interface IERC1155Receiver is IERC165 { /** @dev Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` (i.e. 0xf23a6e61, or its own function selector). @param operator The address which initiated the transfer (i.e. msg.sender) @param from The address which previously owned the token @param id The ID of the token being transferred @param value The amount of tokens being transferred @param data Additional data with no specified format @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed */ function onERC1155Received( address operator, address from, uint256 id, uint256 value, bytes calldata data ) external returns (bytes4); /** @dev Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` (i.e. 0xbc197c81, or its own function selector). @param operator The address which initiated the batch transfer (i.e. msg.sender) @param from The address which previously owned the token @param ids An array containing ids of each token being transferred (order and length must match values array) @param values An array containing amounts of each token being transferred (order and length must match ids array) @param data Additional data with no specified format @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed */ function onERC1155BatchReceived( address operator, address from, uint256[] calldata ids, uint256[] calldata values, bytes calldata data ) external returns (bytes4); } // File: @openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol // OpenZeppelin Contracts v4.4.1 (token/ERC1155/utils/ERC1155Receiver.sol) pragma solidity ^0.8.0; /** * @dev _Available since v3.1._ */ abstract contract ERC1155Receiver is ERC165, IERC1155Receiver { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId); } } // File: @openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol // OpenZeppelin Contracts v4.4.1 (token/ERC1155/utils/ERC1155Holder.sol) pragma solidity ^0.8.0; /** * @dev _Available since v3.1._ */ contract ERC1155Holder is ERC1155Receiver { function onERC1155Received( address, address, uint256, uint256, bytes memory ) public virtual override returns (bytes4) { return this.onERC1155Received.selector; } function onERC1155BatchReceived( address, address, uint256[] memory, uint256[] memory, bytes memory ) public virtual override returns (bytes4) { return this.onERC1155BatchReceived.selector; } } // File: contracts/Updated HeartbreakBearsNFTStaking.sol pragma solidity ^0.8.2; // import "hardhat/console.sol"; // ONE ISSUE ----> CHANGING MINTING AWARD contract HeartbreakBearsNFTStaking is ERC1155Holder, Pausable, Ownable { IERC1155 private NFT; IERC20 private TOKEN; struct NftBundle { uint256[] tokenIds; uint256[] timestamps; uint256[] percentageBoost; bool isStaking; } mapping(address => NftBundle) private stakers; address[] private stakerList; uint256 public rate = 11574074074074; uint256 endTimestamp; bool hasEnded; constructor(address _nftAddress, address _tokenAddress) { NFT = IERC1155(_nftAddress); TOKEN = IERC20(_tokenAddress); } function percentageOf(uint256 pct, uint256 _number) public pure returns (uint256) { require(_number >= 10000, "Number is too small for calculation"); uint256 bp = pct * 100; return (_number * bp) / 10000; } function endStaking() public onlyOwner { hasEnded = true; endTimestamp = block.timestamp; } function stakeIds(address _staker) public view returns (uint256[] memory) { return stakers[_staker].tokenIds; } function bonusRewards(address _staker) public view returns (uint256[] memory) { return stakers[_staker].percentageBoost; } function stakeTimestamps(address _staker) public view returns (uint256[] memory) { return stakers[_staker].timestamps; } function allowance() public view returns (uint256) { return TOKEN.balanceOf(address(this)); } function stakeDuration(address _staker) public view returns (uint256) { uint256 startTime = stakers[_staker].timestamps[0]; if (startTime > 0) { return block.timestamp - startTime; } else { return 0; } } function tokensAwarded(address _staker) public view returns (uint256) { NftBundle memory staker = stakers[_staker]; uint256 totalReward; uint256 endTime; if (hasEnded) { endTime = endTimestamp; } else { endTime = block.timestamp; } for (uint256 i = 0; i < staker.tokenIds.length; i++) { uint256 _rate = rate + percentageOf(staker.percentageBoost[i], rate); totalReward += (_rate * (endTime - staker.timestamps[i])); } return totalReward; } function tokensRemaining() public view returns (uint256) { uint256 tokensSpent; for (uint256 i = 0; i < stakerList.length; i++) { tokensSpent += tokensAwarded(stakerList[i]); } return allowance() - tokensSpent; } function tokensAwardedForNFT(address _staker, uint256 tokenId) public view returns (uint256) { NftBundle memory staker = stakers[_staker]; uint256 endTime; if (hasEnded) { endTime = endTimestamp; } else { endTime = block.timestamp; } for (uint256 i = 0; i < staker.tokenIds.length; i++) { if (staker.tokenIds[i] == tokenId) { uint256 _rate = rate + percentageOf(staker.percentageBoost[i], rate); return (_rate * (endTime - staker.timestamps[i])); } } return 0; } function stakeBatch(uint256[] memory _tokenIds) public whenNotPaused { require(_tokenIds.length > 0, "Must stake at least 1 NFT"); require(hasEnded == false, "Staking has ended"); require(allowance() > 10 ether, "No more rewards left for staking"); if (!stakers[msg.sender].isStaking) { stakerList.push(msg.sender); } uint256[] memory _values = new uint256[](_tokenIds.length); for (uint256 i = 0; i < _tokenIds.length; i++) { _values[i] = 1; // _timestamps[i] = block.timestamp; stakers[msg.sender].tokenIds.push(_tokenIds[i]); stakers[msg.sender].timestamps.push(block.timestamp); uint256 pctBoost = 0; uint256 id = _tokenIds[i]; if (id >= 1 && id <= 1888) { pctBoost += 3; // Add 3% } if ( id == 1 || id == 5 || id == 9 || id == 13 || id == 17 || id == 23 || id == 24 || id == 25 || id == 26 || id == 71 || id == 532 || id == 777 || id == 1144 || id == 1707 || id == 1482 || id == 3888 ) { pctBoost += 5; // Add 5% } if (_tokenIds.length == 2) { pctBoost += 1; // Add 1% } else if (_tokenIds.length >= 3) { pctBoost += 2; // Add 2% } stakers[msg.sender].percentageBoost.push(pctBoost); } stakers[msg.sender].isStaking = true; NFT.safeBatchTransferFrom( msg.sender, address(this), _tokenIds, _values, "" ); } function claimTokens() public whenNotPaused { uint256 reward = tokensAwarded(msg.sender); require(reward > 0, "No rewards available"); require(reward <= allowance(), "Reward exceeds tokens available"); uint256[] memory _tokenIds = stakeIds(msg.sender); for (uint256 i = 0; i < _tokenIds.length; i++) { stakers[msg.sender].timestamps[i] = block.timestamp; } TOKEN.transfer(msg.sender, reward); } function withdraw() public whenNotPaused { uint256 reward = tokensAwarded(msg.sender); require(reward > 0, "No rewards available"); require(reward <= allowance(), "Reward exceeds tokens available"); uint256[] memory _tokenIds = stakeIds(msg.sender); uint256[] memory _values = new uint256[](_tokenIds.length); for (uint256 i = 0; i < _tokenIds.length; i++) { _values[i] = 1; } delete stakers[msg.sender]; TOKEN.transfer(msg.sender, reward); NFT.safeBatchTransferFrom( address(this), msg.sender, _tokenIds, _values, "" ); } function withdrawSelected(uint256[] memory _tokenIds) public whenNotPaused { uint256 reward; uint256[] memory _values = new uint256[](_tokenIds.length); for (uint256 i = 0; i < _tokenIds.length; i++) { _values[i] = 1; reward += tokensAwardedForNFT(msg.sender, _tokenIds[i]); uint256 index = getIndexOf( _tokenIds[i], stakers[msg.sender].tokenIds ); remove(index, stakers[msg.sender].tokenIds); remove(index, stakers[msg.sender].timestamps); remove(index, stakers[msg.sender].percentageBoost); } require(reward > 0, "No rewards available"); require(reward <= allowance(), "Reward exceeds tokens available"); if (stakers[msg.sender].tokenIds.length == 0) { delete stakers[msg.sender]; } TOKEN.transfer(msg.sender, reward); NFT.safeBatchTransferFrom( address(this), msg.sender, _tokenIds, _values, "" ); } // uint[] array = [1,2,3,4,5]; function remove(uint256 index, uint256[] storage array) internal { if (index >= array.length) return; for (uint256 i = index; i < array.length - 1; i++) { array[i] = array[i + 1]; } array.pop(); } function getIndexOf(uint256 item, uint256[] memory array) public pure returns (uint256) { for (uint256 i = 0; i < array.length; i++) { if (array[i] == item) { return i; } } revert("Token not found"); } function sweep() public onlyOwner { TOKEN.transfer(msg.sender, TOKEN.balanceOf(address(this))); } } // 1 - 1888 Additional benefit // x 1.5 // If stake two bears together you get another additional benefit of 10% // If stake three bears you get 20% <----- BATCH STAKING // 1/1 Bears - 15 special bears - x 2 // // Take into account for the final token available // Each NFT holder // Function to change base rate // Problem 1: There is no way to prevent a possible over promising of tokens when we have a stable rate. // Unless we set a timeframe.
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_nftAddress","type":"address"},{"internalType":"address","name":"_tokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_staker","type":"address"}],"name":"bonusRewards","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"item","type":"uint256"},{"internalType":"uint256[]","name":"array","type":"uint256[]"}],"name":"getIndexOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pct","type":"uint256"},{"internalType":"uint256","name":"_number","type":"uint256"}],"name":"percentageOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"stakeBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_staker","type":"address"}],"name":"stakeDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_staker","type":"address"}],"name":"stakeIds","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_staker","type":"address"}],"name":"stakeTimestamps","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_staker","type":"address"}],"name":"tokensAwarded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_staker","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokensAwardedForNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"withdrawSelected","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052650a86cc92e3da6005553480156200001b57600080fd5b5060405162002112380380620021128339810160408190526200003e91620000fb565b6000805460ff19169055620000533362000085565b600180546001600160a01b039384166001600160a01b0319918216179091556002805492909316911617905562000133565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b80516001600160a01b0381168114620000f657600080fd5b919050565b600080604083850312156200010f57600080fd5b6200011a83620000de565b91506200012a60208401620000de565b90509250929050565b611fcf80620001436000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063c8b081251161007c578063c8b08125146102d7578063d37a7f9d146102df578063de242ff4146102f2578063f17125dd146102fa578063f23a6e611461030d578063f2fde38b1461032c57600080fd5b80638da5cb5b1461021d57806399f853a5146102465780639ef9bc2e14610266578063a2545fa514610279578063b71051e21461028c578063bc197c811461029f57600080fd5b80633ccfd60b116101155780633ccfd60b146101d457806348c54b9d146101dc5780635555a0e4146101e45780635c975abb146101f7578063715018a6146102025780637d19c8d51461020a57600080fd5b806301ffc9a71461015d578063230f436d146101855780632507190a1461019a5780632c4e722e146101a257806335faa416146101b957806338795111146101c1575b600080fd5b61017061016b366004611c6c565b61033f565b60405190151581526020015b60405180910390f35b610198610193366004611c15565b610376565b005b6101986107ce565b6101ab60055481565b60405190815260200161017c565b610198610811565b6101986101cf366004611c15565b610947565b610198610c8c565b610198610e93565b6101ab6101f2366004611caf565b610ff2565b60005460ff16610170565b610198611074565b6101ab610218366004611beb565b6110b0565b60005461010090046001600160a01b03166040516001600160a01b03909116815260200161017c565b610259610254366004611ac1565b6112cc565b60405161017c9190611dae565b610259610274366004611ac1565b61133b565b610259610287366004611ac1565b6113a5565b6101ab61029a366004611cf6565b611412565b6102be6102ad366004611adc565b63bc197c8160e01b95945050505050565b6040516001600160e01b0319909116815260200161017c565b6101ab6114a0565b6101ab6102ed366004611ac1565b611518565b6101ab611702565b6101ab610308366004611ac1565b611783565b6102be61031b366004611b86565b63f23a6e6160e01b95945050505050565b61019861033a366004611ac1565b6117e1565b60006001600160e01b03198216630271189760e51b148061037057506301ffc9a760e01b6001600160e01b03198316145b92915050565b60005460ff16156103a25760405162461bcd60e51b815260040161039990611df8565b60405180910390fd5b60008151116103f35760405162461bcd60e51b815260206004820152601960248201527f4d757374207374616b65206174206c656173742031204e4654000000000000006044820152606401610399565b60075460ff161561043a5760405162461bcd60e51b815260206004820152601160248201527014dd185ada5b99c81a185cc8195b991959607a1b6044820152606401610399565b678ac7230489e8000061044b611702565b116104985760405162461bcd60e51b815260206004820181905260248201527f4e6f206d6f72652072657761726473206c65667420666f72207374616b696e676044820152606401610399565b336000908152600360208190526040909120015460ff166104f657600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916331790555b6000815167ffffffffffffffff81111561051257610512611f83565b60405190808252806020026020018201604052801561053b578160200160208202803683370190505b50905060005b825181101561074257600182828151811061055e5761055e611f6d565b602090810291909101810191909152336000908152600390915260409020835184908390811061059057610590611f6d565b6020908102919091018101518254600181810185556000948552838520909101919091553383526003825260408320810180549182018155835290822042910155835181908590849081106105e7576105e7611f6d565b602002602001015190506001811015801561060457506107608111155b1561061757610614600383611eb6565b91505b80600114806106265750806005145b806106315750806009145b8061063c575080600d145b806106475750806011145b806106525750806017145b8061065d5750806018145b806106685750806019145b80610673575080601a145b8061067e5750806047145b8061068a575080610214145b80610696575080610309145b806106a2575080610478145b806106ae5750806106ab145b806106ba5750806105ca145b806106c6575080610f30145b156106d9576106d6600583611eb6565b91505b8451600214156106f5576106ee600183611eb6565b915061070c565b600385511061070c57610709600283611eb6565b91505b5033600090815260036020908152604082206002018054600181018255908352912001558061073a81611f26565b915050610541565b503360008181526003602081905260409182902001805460ff19166001908117909155549051631759616b60e11b81526001600160a01b039190911691632eb2c2d6916107989190309087908790600401611d53565b600060405180830381600087803b1580156107b257600080fd5b505af11580156107c6573d6000803e3d6000fd5b505050505050565b6000546001600160a01b036101009091041633146107fe5760405162461bcd60e51b815260040161039990611e50565b6007805460ff1916600117905542600655565b6000546001600160a01b036101009091041633146108415760405162461bcd60e51b815260040161039990611e50565b6002546040516370a0823160e01b81523060048201526001600160a01b039091169063a9059cbb90339083906370a082319060240160206040518083038186803b15801561088e57600080fd5b505afa1580156108a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c69190611c96565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561090c57600080fd5b505af1158015610920573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109449190611c4a565b50565b60005460ff161561096a5760405162461bcd60e51b815260040161039990611df8565b600080825167ffffffffffffffff81111561098757610987611f83565b6040519080825280602002602001820160405280156109b0578160200160208202803683370190505b50905060005b8351811015610afb5760018282815181106109d3576109d3611f6d565b602002602001018181525050610a02338583815181106109f5576109f5611f6d565b60200260200101516110b0565b610a0c9084611eb6565b92506000610a91858381518110610a2557610a25611f6d565b602090810291909101810151336000908152600383526040908190208054825181860281018601909352808352929391929091830182828015610a8757602002820191906000526020600020905b815481526020019060010190808311610a73575b5050505050610ff2565b336000908152600360205260409020909150610aae90829061187f565b336000908152600360205260409020610acb90829060010161187f565b336000908152600360205260409020610ae890829060020161187f565b5080610af381611f26565b9150506109b6565b5060008211610b1c5760405162461bcd60e51b815260040161039990611e22565b610b24611702565b821115610b435760405162461bcd60e51b815260040161039990611dc1565b33600090815260036020526040902054610b9a5733600090815260036020526040812090610b71828261197d565b610b7f60018301600061197d565b610b8d60028301600061197d565b50600301805460ff191690555b60025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610be657600080fd5b505af1158015610bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1e9190611c4a565b50600154604051631759616b60e11b81526001600160a01b0390911690632eb2c2d690610c55903090339088908790600401611d53565b600060405180830381600087803b158015610c6f57600080fd5b505af1158015610c83573d6000803e3d6000fd5b50505050505050565b60005460ff1615610caf5760405162461bcd60e51b815260040161039990611df8565b6000610cba33611518565b905060008111610cdc5760405162461bcd60e51b815260040161039990611e22565b610ce4611702565b811115610d035760405162461bcd60e51b815260040161039990611dc1565b6000610d0e3361133b565b90506000815167ffffffffffffffff811115610d2c57610d2c611f83565b604051908082528060200260200182016040528015610d55578160200160208202803683370190505b50905060005b8251811015610d95576001828281518110610d7857610d78611f6d565b602090810291909101015280610d8d81611f26565b915050610d5b565b5033600090815260036020526040812090610db0828261197d565b610dbe60018301600061197d565b610dcc60028301600061197d565b50600301805460ff1916905560025460405163a9059cbb60e01b8152336004820152602481018590526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610e2457600080fd5b505af1158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c9190611c4a565b50600154604051631759616b60e11b81526001600160a01b0390911690632eb2c2d690610c55903090339087908790600401611d53565b60005460ff1615610eb65760405162461bcd60e51b815260040161039990611df8565b6000610ec133611518565b905060008111610ee35760405162461bcd60e51b815260040161039990611e22565b610eeb611702565b811115610f0a5760405162461bcd60e51b815260040161039990611dc1565b6000610f153361133b565b905060005b8151811015610f6857336000908152600360205260409020600101805442919083908110610f4a57610f4a611f6d565b60009182526020909120015580610f6081611f26565b915050610f1a565b5060025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610fb557600080fd5b505af1158015610fc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fed9190611c4a565b505050565b6000805b8251811015611039578383828151811061101257611012611f6d565b60200260200101511415611027579050610370565b8061103181611f26565b915050610ff6565b5060405162461bcd60e51b815260206004820152600f60248201526e151bdad95b881b9bdd08199bdd5b99608a1b6044820152606401610399565b6000546001600160a01b036101009091041633146110a45760405162461bcd60e51b815260040161039990611e50565b6110ae6000611924565b565b6001600160a01b03821660009081526003602090815260408083208151815460a0948102820185019093526080810183815285949193849284919084018282801561111a57602002820191906000526020600020905b815481526020019060010190808311611106575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561117257602002820191906000526020600020905b81548152602001906001019080831161115e575b50505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156111ca57602002820191906000526020600020905b8154815260200190600101908083116111b6575b50505091835250506003919091015460ff908116151560209092019190915260075491925060009116156112015750600654611204565b50425b60005b8251518110156112c057848360000151828151811061122857611228611f6d565b602002602001015114156112ae5760006112618460400151838151811061125157611251611f6d565b6020026020010151600554611412565b60055461126e9190611eb6565b90508360200151828151811061128657611286611f6d565b6020026020010151836112999190611f0f565b6112a39082611ef0565b945050505050610370565b806112b881611f26565b915050611207565b50600095945050505050565b6001600160a01b03811660009081526003602090815260409182902060010180548351818402810184019094528084526060939283018282801561132f57602002820191906000526020600020905b81548152602001906001019080831161131b575b50505050509050919050565b6001600160a01b03811660009081526003602090815260409182902080548351818402810184019094528084526060939283018282801561132f576020028201919060005260206000209081548152602001906001019080831161131b5750505050509050919050565b6001600160a01b03811660009081526003602090815260409182902060020180548351818402810184019094528084526060939283018282801561132f576020028201919060005260206000209081548152602001906001019080831161131b5750505050509050919050565b60006127108210156114725760405162461bcd60e51b815260206004820152602360248201527f4e756d62657220697320746f6f20736d616c6c20666f722063616c63756c617460448201526234b7b760e91b6064820152608401610399565b600061147f846064611ef0565b905061271061148e8285611ef0565b6114989190611ece565b949350505050565b60008060005b6004548110156114fe576114e0600482815481106114c6576114c6611f6d565b6000918252602090912001546001600160a01b0316611518565b6114ea9083611eb6565b9150806114f681611f26565b9150506114a6565b5080611508611702565b6115129190611f0f565b91505090565b6001600160a01b03811660009081526003602090815260408083208151815460a0948102820185019093526080810183815285949193849284919084018282801561158257602002820191906000526020600020905b81548152602001906001019080831161156e575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156115da57602002820191906000526020600020905b8154815260200190600101908083116115c6575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561163257602002820191906000526020600020905b81548152602001906001019080831161161e575b50505091835250506003919091015460ff90811615156020909201919091526007549192506000918291161561166b575060065461166e565b50425b60005b8351518110156116f85760006116968560400151838151811061125157611251611f6d565b6005546116a39190611eb6565b9050846020015182815181106116bb576116bb611f6d565b6020026020010151836116ce9190611f0f565b6116d89082611ef0565b6116e29085611eb6565b93505080806116f090611f26565b915050611671565b5090949350505050565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561174657600080fd5b505afa15801561175a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177e9190611c96565b905090565b6001600160a01b0381166000908152600360205260408120600101805482919082906117b1576117b1611f6d565b9060005260206000200154905060008111156117d8576117d18142611f0f565b9392505050565b50600092915050565b6000546001600160a01b036101009091041633146118115760405162461bcd60e51b815260040161039990611e50565b6001600160a01b0381166118765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610399565b61094481611924565b8054821061188b575050565b815b815461189b90600190611f0f565b8110156118f957816118ae826001611eb6565b815481106118be576118be611f6d565b90600052602060002001548282815481106118db576118db611f6d565b600091825260209091200155806118f181611f26565b91505061188d565b508080548061190a5761190a611f57565b600190038181906000526020600020016000905590555050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b508054600082559060005260206000209081019061094491905b808211156119ab5760008155600101611997565b5090565b80356001600160a01b03811681146119c657600080fd5b919050565b600082601f8301126119dc57600080fd5b8135602067ffffffffffffffff8211156119f8576119f8611f83565b8160051b611a07828201611e85565b838152828101908684018388018501891015611a2257600080fd5b600093505b85841015611a45578035835260019390930192918401918401611a27565b50979650505050505050565b600082601f830112611a6257600080fd5b813567ffffffffffffffff811115611a7c57611a7c611f83565b611a8f601f8201601f1916602001611e85565b818152846020838601011115611aa457600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215611ad357600080fd5b6117d1826119af565b600080600080600060a08688031215611af457600080fd5b611afd866119af565b9450611b0b602087016119af565b9350604086013567ffffffffffffffff80821115611b2857600080fd5b611b3489838a016119cb565b94506060880135915080821115611b4a57600080fd5b611b5689838a016119cb565b93506080880135915080821115611b6c57600080fd5b50611b7988828901611a51565b9150509295509295909350565b600080600080600060a08688031215611b9e57600080fd5b611ba7866119af565b9450611bb5602087016119af565b93506040860135925060608601359150608086013567ffffffffffffffff811115611bdf57600080fd5b611b7988828901611a51565b60008060408385031215611bfe57600080fd5b611c07836119af565b946020939093013593505050565b600060208284031215611c2757600080fd5b813567ffffffffffffffff811115611c3e57600080fd5b611498848285016119cb565b600060208284031215611c5c57600080fd5b815180151581146117d157600080fd5b600060208284031215611c7e57600080fd5b81356001600160e01b0319811681146117d157600080fd5b600060208284031215611ca857600080fd5b5051919050565b60008060408385031215611cc257600080fd5b82359150602083013567ffffffffffffffff811115611ce057600080fd5b611cec858286016119cb565b9150509250929050565b60008060408385031215611d0957600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015611d4857815187529582019590820190600101611d2c565b509495945050505050565b6001600160a01b0385811682528416602082015260a060408201819052600090611d7f90830185611d18565b8281036060840152611d918185611d18565b838103608090940193909352505060008152602001949350505050565b6020815260006117d16020830184611d18565b6020808252601f908201527f526577617264206578636565647320746f6b656e7320617661696c61626c6500604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601490820152734e6f207265776172647320617661696c61626c6560601b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff81118282101715611eae57611eae611f83565b604052919050565b60008219821115611ec957611ec9611f41565b500190565b600082611eeb57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f0a57611f0a611f41565b500290565b600082821015611f2157611f21611f41565b500390565b6000600019821415611f3a57611f3a611f41565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212201dc57ded3af39d230c9bb3b4b6cbcecb8cb8948b10ccbd78a594be7bb1085a1464736f6c63430008070033000000000000000000000000630f9ff82f82a68671df290ffaec2d767df77a070000000000000000000000002d163701bf3920ff1b1ad0e3b1d0e0d5747cf067
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063c8b081251161007c578063c8b08125146102d7578063d37a7f9d146102df578063de242ff4146102f2578063f17125dd146102fa578063f23a6e611461030d578063f2fde38b1461032c57600080fd5b80638da5cb5b1461021d57806399f853a5146102465780639ef9bc2e14610266578063a2545fa514610279578063b71051e21461028c578063bc197c811461029f57600080fd5b80633ccfd60b116101155780633ccfd60b146101d457806348c54b9d146101dc5780635555a0e4146101e45780635c975abb146101f7578063715018a6146102025780637d19c8d51461020a57600080fd5b806301ffc9a71461015d578063230f436d146101855780632507190a1461019a5780632c4e722e146101a257806335faa416146101b957806338795111146101c1575b600080fd5b61017061016b366004611c6c565b61033f565b60405190151581526020015b60405180910390f35b610198610193366004611c15565b610376565b005b6101986107ce565b6101ab60055481565b60405190815260200161017c565b610198610811565b6101986101cf366004611c15565b610947565b610198610c8c565b610198610e93565b6101ab6101f2366004611caf565b610ff2565b60005460ff16610170565b610198611074565b6101ab610218366004611beb565b6110b0565b60005461010090046001600160a01b03166040516001600160a01b03909116815260200161017c565b610259610254366004611ac1565b6112cc565b60405161017c9190611dae565b610259610274366004611ac1565b61133b565b610259610287366004611ac1565b6113a5565b6101ab61029a366004611cf6565b611412565b6102be6102ad366004611adc565b63bc197c8160e01b95945050505050565b6040516001600160e01b0319909116815260200161017c565b6101ab6114a0565b6101ab6102ed366004611ac1565b611518565b6101ab611702565b6101ab610308366004611ac1565b611783565b6102be61031b366004611b86565b63f23a6e6160e01b95945050505050565b61019861033a366004611ac1565b6117e1565b60006001600160e01b03198216630271189760e51b148061037057506301ffc9a760e01b6001600160e01b03198316145b92915050565b60005460ff16156103a25760405162461bcd60e51b815260040161039990611df8565b60405180910390fd5b60008151116103f35760405162461bcd60e51b815260206004820152601960248201527f4d757374207374616b65206174206c656173742031204e4654000000000000006044820152606401610399565b60075460ff161561043a5760405162461bcd60e51b815260206004820152601160248201527014dd185ada5b99c81a185cc8195b991959607a1b6044820152606401610399565b678ac7230489e8000061044b611702565b116104985760405162461bcd60e51b815260206004820181905260248201527f4e6f206d6f72652072657761726473206c65667420666f72207374616b696e676044820152606401610399565b336000908152600360208190526040909120015460ff166104f657600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916331790555b6000815167ffffffffffffffff81111561051257610512611f83565b60405190808252806020026020018201604052801561053b578160200160208202803683370190505b50905060005b825181101561074257600182828151811061055e5761055e611f6d565b602090810291909101810191909152336000908152600390915260409020835184908390811061059057610590611f6d565b6020908102919091018101518254600181810185556000948552838520909101919091553383526003825260408320810180549182018155835290822042910155835181908590849081106105e7576105e7611f6d565b602002602001015190506001811015801561060457506107608111155b1561061757610614600383611eb6565b91505b80600114806106265750806005145b806106315750806009145b8061063c575080600d145b806106475750806011145b806106525750806017145b8061065d5750806018145b806106685750806019145b80610673575080601a145b8061067e5750806047145b8061068a575080610214145b80610696575080610309145b806106a2575080610478145b806106ae5750806106ab145b806106ba5750806105ca145b806106c6575080610f30145b156106d9576106d6600583611eb6565b91505b8451600214156106f5576106ee600183611eb6565b915061070c565b600385511061070c57610709600283611eb6565b91505b5033600090815260036020908152604082206002018054600181018255908352912001558061073a81611f26565b915050610541565b503360008181526003602081905260409182902001805460ff19166001908117909155549051631759616b60e11b81526001600160a01b039190911691632eb2c2d6916107989190309087908790600401611d53565b600060405180830381600087803b1580156107b257600080fd5b505af11580156107c6573d6000803e3d6000fd5b505050505050565b6000546001600160a01b036101009091041633146107fe5760405162461bcd60e51b815260040161039990611e50565b6007805460ff1916600117905542600655565b6000546001600160a01b036101009091041633146108415760405162461bcd60e51b815260040161039990611e50565b6002546040516370a0823160e01b81523060048201526001600160a01b039091169063a9059cbb90339083906370a082319060240160206040518083038186803b15801561088e57600080fd5b505afa1580156108a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c69190611c96565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561090c57600080fd5b505af1158015610920573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109449190611c4a565b50565b60005460ff161561096a5760405162461bcd60e51b815260040161039990611df8565b600080825167ffffffffffffffff81111561098757610987611f83565b6040519080825280602002602001820160405280156109b0578160200160208202803683370190505b50905060005b8351811015610afb5760018282815181106109d3576109d3611f6d565b602002602001018181525050610a02338583815181106109f5576109f5611f6d565b60200260200101516110b0565b610a0c9084611eb6565b92506000610a91858381518110610a2557610a25611f6d565b602090810291909101810151336000908152600383526040908190208054825181860281018601909352808352929391929091830182828015610a8757602002820191906000526020600020905b815481526020019060010190808311610a73575b5050505050610ff2565b336000908152600360205260409020909150610aae90829061187f565b336000908152600360205260409020610acb90829060010161187f565b336000908152600360205260409020610ae890829060020161187f565b5080610af381611f26565b9150506109b6565b5060008211610b1c5760405162461bcd60e51b815260040161039990611e22565b610b24611702565b821115610b435760405162461bcd60e51b815260040161039990611dc1565b33600090815260036020526040902054610b9a5733600090815260036020526040812090610b71828261197d565b610b7f60018301600061197d565b610b8d60028301600061197d565b50600301805460ff191690555b60025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610be657600080fd5b505af1158015610bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1e9190611c4a565b50600154604051631759616b60e11b81526001600160a01b0390911690632eb2c2d690610c55903090339088908790600401611d53565b600060405180830381600087803b158015610c6f57600080fd5b505af1158015610c83573d6000803e3d6000fd5b50505050505050565b60005460ff1615610caf5760405162461bcd60e51b815260040161039990611df8565b6000610cba33611518565b905060008111610cdc5760405162461bcd60e51b815260040161039990611e22565b610ce4611702565b811115610d035760405162461bcd60e51b815260040161039990611dc1565b6000610d0e3361133b565b90506000815167ffffffffffffffff811115610d2c57610d2c611f83565b604051908082528060200260200182016040528015610d55578160200160208202803683370190505b50905060005b8251811015610d95576001828281518110610d7857610d78611f6d565b602090810291909101015280610d8d81611f26565b915050610d5b565b5033600090815260036020526040812090610db0828261197d565b610dbe60018301600061197d565b610dcc60028301600061197d565b50600301805460ff1916905560025460405163a9059cbb60e01b8152336004820152602481018590526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610e2457600080fd5b505af1158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c9190611c4a565b50600154604051631759616b60e11b81526001600160a01b0390911690632eb2c2d690610c55903090339087908790600401611d53565b60005460ff1615610eb65760405162461bcd60e51b815260040161039990611df8565b6000610ec133611518565b905060008111610ee35760405162461bcd60e51b815260040161039990611e22565b610eeb611702565b811115610f0a5760405162461bcd60e51b815260040161039990611dc1565b6000610f153361133b565b905060005b8151811015610f6857336000908152600360205260409020600101805442919083908110610f4a57610f4a611f6d565b60009182526020909120015580610f6081611f26565b915050610f1a565b5060025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610fb557600080fd5b505af1158015610fc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fed9190611c4a565b505050565b6000805b8251811015611039578383828151811061101257611012611f6d565b60200260200101511415611027579050610370565b8061103181611f26565b915050610ff6565b5060405162461bcd60e51b815260206004820152600f60248201526e151bdad95b881b9bdd08199bdd5b99608a1b6044820152606401610399565b6000546001600160a01b036101009091041633146110a45760405162461bcd60e51b815260040161039990611e50565b6110ae6000611924565b565b6001600160a01b03821660009081526003602090815260408083208151815460a0948102820185019093526080810183815285949193849284919084018282801561111a57602002820191906000526020600020905b815481526020019060010190808311611106575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561117257602002820191906000526020600020905b81548152602001906001019080831161115e575b50505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156111ca57602002820191906000526020600020905b8154815260200190600101908083116111b6575b50505091835250506003919091015460ff908116151560209092019190915260075491925060009116156112015750600654611204565b50425b60005b8251518110156112c057848360000151828151811061122857611228611f6d565b602002602001015114156112ae5760006112618460400151838151811061125157611251611f6d565b6020026020010151600554611412565b60055461126e9190611eb6565b90508360200151828151811061128657611286611f6d565b6020026020010151836112999190611f0f565b6112a39082611ef0565b945050505050610370565b806112b881611f26565b915050611207565b50600095945050505050565b6001600160a01b03811660009081526003602090815260409182902060010180548351818402810184019094528084526060939283018282801561132f57602002820191906000526020600020905b81548152602001906001019080831161131b575b50505050509050919050565b6001600160a01b03811660009081526003602090815260409182902080548351818402810184019094528084526060939283018282801561132f576020028201919060005260206000209081548152602001906001019080831161131b5750505050509050919050565b6001600160a01b03811660009081526003602090815260409182902060020180548351818402810184019094528084526060939283018282801561132f576020028201919060005260206000209081548152602001906001019080831161131b5750505050509050919050565b60006127108210156114725760405162461bcd60e51b815260206004820152602360248201527f4e756d62657220697320746f6f20736d616c6c20666f722063616c63756c617460448201526234b7b760e91b6064820152608401610399565b600061147f846064611ef0565b905061271061148e8285611ef0565b6114989190611ece565b949350505050565b60008060005b6004548110156114fe576114e0600482815481106114c6576114c6611f6d565b6000918252602090912001546001600160a01b0316611518565b6114ea9083611eb6565b9150806114f681611f26565b9150506114a6565b5080611508611702565b6115129190611f0f565b91505090565b6001600160a01b03811660009081526003602090815260408083208151815460a0948102820185019093526080810183815285949193849284919084018282801561158257602002820191906000526020600020905b81548152602001906001019080831161156e575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156115da57602002820191906000526020600020905b8154815260200190600101908083116115c6575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561163257602002820191906000526020600020905b81548152602001906001019080831161161e575b50505091835250506003919091015460ff90811615156020909201919091526007549192506000918291161561166b575060065461166e565b50425b60005b8351518110156116f85760006116968560400151838151811061125157611251611f6d565b6005546116a39190611eb6565b9050846020015182815181106116bb576116bb611f6d565b6020026020010151836116ce9190611f0f565b6116d89082611ef0565b6116e29085611eb6565b93505080806116f090611f26565b915050611671565b5090949350505050565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561174657600080fd5b505afa15801561175a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177e9190611c96565b905090565b6001600160a01b0381166000908152600360205260408120600101805482919082906117b1576117b1611f6d565b9060005260206000200154905060008111156117d8576117d18142611f0f565b9392505050565b50600092915050565b6000546001600160a01b036101009091041633146118115760405162461bcd60e51b815260040161039990611e50565b6001600160a01b0381166118765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610399565b61094481611924565b8054821061188b575050565b815b815461189b90600190611f0f565b8110156118f957816118ae826001611eb6565b815481106118be576118be611f6d565b90600052602060002001548282815481106118db576118db611f6d565b600091825260209091200155806118f181611f26565b91505061188d565b508080548061190a5761190a611f57565b600190038181906000526020600020016000905590555050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b508054600082559060005260206000209081019061094491905b808211156119ab5760008155600101611997565b5090565b80356001600160a01b03811681146119c657600080fd5b919050565b600082601f8301126119dc57600080fd5b8135602067ffffffffffffffff8211156119f8576119f8611f83565b8160051b611a07828201611e85565b838152828101908684018388018501891015611a2257600080fd5b600093505b85841015611a45578035835260019390930192918401918401611a27565b50979650505050505050565b600082601f830112611a6257600080fd5b813567ffffffffffffffff811115611a7c57611a7c611f83565b611a8f601f8201601f1916602001611e85565b818152846020838601011115611aa457600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215611ad357600080fd5b6117d1826119af565b600080600080600060a08688031215611af457600080fd5b611afd866119af565b9450611b0b602087016119af565b9350604086013567ffffffffffffffff80821115611b2857600080fd5b611b3489838a016119cb565b94506060880135915080821115611b4a57600080fd5b611b5689838a016119cb565b93506080880135915080821115611b6c57600080fd5b50611b7988828901611a51565b9150509295509295909350565b600080600080600060a08688031215611b9e57600080fd5b611ba7866119af565b9450611bb5602087016119af565b93506040860135925060608601359150608086013567ffffffffffffffff811115611bdf57600080fd5b611b7988828901611a51565b60008060408385031215611bfe57600080fd5b611c07836119af565b946020939093013593505050565b600060208284031215611c2757600080fd5b813567ffffffffffffffff811115611c3e57600080fd5b611498848285016119cb565b600060208284031215611c5c57600080fd5b815180151581146117d157600080fd5b600060208284031215611c7e57600080fd5b81356001600160e01b0319811681146117d157600080fd5b600060208284031215611ca857600080fd5b5051919050565b60008060408385031215611cc257600080fd5b82359150602083013567ffffffffffffffff811115611ce057600080fd5b611cec858286016119cb565b9150509250929050565b60008060408385031215611d0957600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015611d4857815187529582019590820190600101611d2c565b509495945050505050565b6001600160a01b0385811682528416602082015260a060408201819052600090611d7f90830185611d18565b8281036060840152611d918185611d18565b838103608090940193909352505060008152602001949350505050565b6020815260006117d16020830184611d18565b6020808252601f908201527f526577617264206578636565647320746f6b656e7320617661696c61626c6500604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601490820152734e6f207265776172647320617661696c61626c6560601b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff81118282101715611eae57611eae611f83565b604052919050565b60008219821115611ec957611ec9611f41565b500190565b600082611eeb57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f0a57611f0a611f41565b500290565b600082821015611f2157611f21611f41565b500390565b6000600019821415611f3a57611f3a611f41565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212201dc57ded3af39d230c9bb3b4b6cbcecb8cb8948b10ccbd78a594be7bb1085a1464736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000630f9ff82f82a68671df290ffaec2d767df77a070000000000000000000000002d163701bf3920ff1b1ad0e3b1d0e0d5747cf067
-----Decoded View---------------
Arg [0] : _nftAddress (address): 0x630f9ff82F82A68671dF290fFAEC2D767Df77a07
Arg [1] : _tokenAddress (address): 0x2D163701bF3920fF1b1AD0e3B1d0e0d5747CF067
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000630f9ff82f82a68671df290ffaec2d767df77a07
Arg [1] : 0000000000000000000000002d163701bf3920ff1b1ad0e3b1d0e0d5747cf067
Deployed Bytecode Sourcemap
18800:8478:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17624:223;;;;;;:::i;:::-;;:::i;:::-;;;7505:14:1;;7498:22;7480:41;;7468:2;7453:18;17624:223:0;;;;;;;;22267:1937;;;;;;:::i;:::-;;:::i;:::-;;19695:114;;;:::i;19175:36::-;;;;;;;;;11516:25:1;;;11504:2;11489:18;19175:36:0;11370:177:1;27164:111:0;;;:::i;25423:1121::-;;;;;;:::i;:::-;;:::i;24711:704::-;;;:::i;24212:491::-;;;:::i;26848:308::-;;;;;;:::i;:::-;;:::i;4555:86::-;4602:4;4626:7;;;4555:86;;2606:103;;;:::i;21575:684::-;;;;;;:::i;:::-;;:::i;1955:87::-;2001:7;2028:6;;;;-1:-1:-1;;;;;2028:6:0;1955:87;;-1:-1:-1;;;;;5857:32:1;;;5839:51;;5827:2;5812:18;1955:87:0;5693:203:1;20126:166:0;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;19817:125::-;;;;;;:::i;:::-;;:::i;19950:168::-;;;;;;:::i;:::-;;:::i;19417:270::-;;;;;;:::i;:::-;;:::i;18362:255::-;;;;;;:::i;:::-;-1:-1:-1;;;18362:255:0;;;;;;;;;;;-1:-1:-1;;;;;;7694:33:1;;;7676:52;;7664:2;7649:18;18362:255:0;7532:202:1;21301:266:0;;;:::i;20693:600::-;;;;;;:::i;:::-;;:::i;20300:107::-;;;:::i;20415:270::-;;;;;;:::i;:::-;;:::i;18127:227::-;;;;;;:::i;:::-;-1:-1:-1;;;18127:227:0;;;;;;;;2864:201;;;;;;:::i;:::-;;:::i;17624:223::-;17726:4;-1:-1:-1;;;;;;17750:49:0;;-1:-1:-1;;;17750:49:0;;:89;;-1:-1:-1;;;;;;;;;;14700:40:0;;;17803:36;17743:96;17624:223;-1:-1:-1;;17624:223:0:o;22267:1937::-;4602:4;4626:7;;;4880:9;4872:38;;;;-1:-1:-1;;;4872:38:0;;;;;;;:::i;:::-;;;;;;;;;22374:1:::1;22355:9;:16;:20;22347:58;;;::::0;-1:-1:-1;;;22347:58:0;;11218:2:1;22347:58:0::1;::::0;::::1;11200:21:1::0;11257:2;11237:18;;;11230:30;11296:27;11276:18;;;11269:55;11341:18;;22347:58:0::1;11016:349:1::0;22347:58:0::1;22424:8;::::0;::::1;;:17;22416:47;;;::::0;-1:-1:-1;;;22416:47:0;;9817:2:1;22416:47:0::1;::::0;::::1;9799:21:1::0;9856:2;9836:18;;;9829:30;-1:-1:-1;;;9875:18:1;;;9868:47;9932:18;;22416:47:0::1;9615:341:1::0;22416:47:0::1;22496:8;22482:11;:9;:11::i;:::-;:22;22474:67;;;::::0;-1:-1:-1;;;22474:67:0;;8708:2:1;22474:67:0::1;::::0;::::1;8690:21:1::0;;;8727:18;;;8720:30;8786:34;8766:18;;;8759:62;8838:18;;22474:67:0::1;8506:356:1::0;22474:67:0::1;22567:10;22559:19;::::0;;;:7:::1;:19;::::0;;;;;;;:29:::1;::::0;::::1;;22554:90;;22605:10;:27:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;22605:27:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;22605:27:0::1;22621:10;22605:27;::::0;;22554:90:::1;22656:24;22697:9;:16;22683:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;22683:31:0::1;;22656:58;;22730:9;22725:1258;22749:9;:16;22745:1;:20;22725:1258;;;22800:1;22787:7;22795:1;22787:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;:14;;;;22874:10:::1;22866:19;::::0;;;:7:::1;:19:::0;;;;;;22900:12;;:9;;22910:1;;22900:12;::::1;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;22866:47;;::::1;::::0;;::::1;::::0;;-1:-1:-1;22866:47:0;;;;;;;;::::1;::::0;;;;22936:10:::1;22928:19:::0;;:7:::1;:19:::0;;;;;:30;::::1;:52:::0;;;;::::1;::::0;;;;;;;22964:15:::1;22928:52:::0;::::1;::::0;23045:12;;-1:-1:-1;;23045:9:0;;23055:1;;23045:12;::::1;;;;;:::i;:::-;;;;;;;23032:25;;23082:1;23076:2;:7;;:21;;;;;23093:4;23087:2;:10;;23076:21;23072:85;;;23118:13;23130:1;23118:13:::0;::::1;:::i;:::-;;;23072:85;23193:2;23199:1;23193:7;:35;;;;23221:2;23227:1;23221:7;23193:35;:63;;;;23249:2;23255:1;23249:7;23193:63;:92;;;;23277:2;23283;23277:8;23193:92;:121;;;;23306:2;23312;23306:8;23193:121;:150;;;;23335:2;23341;23335:8;23193:150;:179;;;;23364:2;23370;23364:8;23193:179;:208;;;;23393:2;23399;23393:8;23193:208;:237;;;;23422:2;23428;23422:8;23193:237;:266;;;;23451:2;23457;23451:8;23193:266;:296;;;;23480:2;23486:3;23480:9;23193:296;:326;;;;23510:2;23516:3;23510:9;23193:326;:357;;;;23540:2;23546:4;23540:10;23193:357;:388;;;;23571:2;23577:4;23571:10;23193:388;:419;;;;23602:2;23608:4;23602:10;23193:419;:450;;;;23633:2;23639:4;23633:10;23193:450;23171:546;;;23678:13;23690:1;23678:13:::0;::::1;:::i;:::-;;;23171:546;23735:9;:16;23755:1;23735:21;23731:176;;;23777:13;23789:1;23777:13:::0;::::1;:::i;:::-;;;23731:176;;;23846:1;23826:9;:16;:21;23822:85;;23868:13;23880:1;23868:13:::0;::::1;:::i;:::-;;;23822:85;-1:-1:-1::0;23929:10:0::1;23921:19;::::0;;;:7:::1;:19;::::0;;;;;;:35:::1;;:50:::0;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;22767:3;::::1;::::0;::::1;:::i;:::-;;;;22725:1258;;;-1:-1:-1::0;24003:10:0::1;23995:19;::::0;;;:7:::1;:19;::::0;;;;;;;;:29:::1;:36:::0;;-1:-1:-1;;23995:36:0::1;24027:4;23995:36:::0;;::::1;::::0;;;24044:3;:152;;-1:-1:-1;;;24044:152:0;;-1:-1:-1;;;;;24044:3:0;;;::::1;::::0;:25:::1;::::0;:152:::1;::::0;24003:10;24117:4:::1;::::0;24137:9;;24161:7;;24044:152:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22336:1868;22267:1937:::0;:::o;19695:114::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;;;;;759:10;2175:23;2167:68;;;;-1:-1:-1;;;2167:68:0;;;;;;;:::i;:::-;19745:8:::1;:15:::0;;-1:-1:-1;;19745:15:0::1;19756:4;19745:15;::::0;;19786::::1;19771:12;:30:::0;19695:114::o;27164:111::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;;;;;759:10;2175:23;2167:68;;;;-1:-1:-1;;;2167:68:0;;;;;;;:::i;:::-;27209:5:::1;::::0;27236:30:::1;::::0;-1:-1:-1;;;27236:30:0;;27260:4:::1;27236:30;::::0;::::1;5839:51:1::0;-1:-1:-1;;;;;27209:5:0;;::::1;::::0;:14:::1;::::0;27224:10:::1;::::0;27209:5;;27236:15:::1;::::0;5812:18:1;;27236:30:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27209:58;::::0;-1:-1:-1;;;;;;27209:58:0::1;::::0;;;;;;-1:-1:-1;;;;;6987:32:1;;;27209:58:0::1;::::0;::::1;6969:51:1::0;7036:18;;;7029:34;6942:18;;27209:58:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27164:111::o:0;25423:1121::-;4602:4;4626:7;;;4880:9;4872:38;;;;-1:-1:-1;;;4872:38:0;;;;;;;:::i;:::-;25509:14:::1;25536:24:::0;25577:9:::1;:16;25563:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;25563:31:0::1;;25536:58;;25610:9;25605:479;25629:9;:16;25625:1;:20;25605:479;;;25680:1;25667:7;25675:1;25667:10;;;;;;;;:::i;:::-;;;;;;:14;;;::::0;::::1;25706:45;25726:10;25738:9;25748:1;25738:12;;;;;;;;:::i;:::-;;;;;;;25706:19;:45::i;:::-;25696:55;::::0;;::::1;:::i;:::-;;;25768:13;25784:103;25813:9;25823:1;25813:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;25852:10:::1;25844:19;::::0;;;:7:::1;:19:::0;;;;;;;25784:103;;;;;;::::1;::::0;;;;;;;;;;25813:12;;25784:103;;25844:19;;25784:103;::::1;25844:19:::0;25784:103;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:10;:103::i;:::-;25926:10;25918:19;::::0;;;:7:::1;:19;::::0;;;;25768:119;;-1:-1:-1;25904:43:0::1;::::0;25768:119;;25904:6:::1;:43::i;:::-;25984:10;25976:19;::::0;;;:7:::1;:19;::::0;;;;25962:45:::1;::::0;25969:5;;25976:30:::1;;25962:6;:45::i;:::-;26044:10;26036:19;::::0;;;:7:::1;:19;::::0;;;;26022:50:::1;::::0;26029:5;;26036:35:::1;;26022:6;:50::i;:::-;-1:-1:-1::0;25647:3:0;::::1;::::0;::::1;:::i;:::-;;;;25605:479;;;;26113:1;26104:6;:10;26096:43;;;;-1:-1:-1::0;;;26096:43:0::1;;;;;;;:::i;:::-;26168:11;:9;:11::i;:::-;26158:6;:21;;26150:65;;;;-1:-1:-1::0;;;26150:65:0::1;;;;;;;:::i;:::-;26240:10;26232:19;::::0;;;:7:::1;:19;::::0;;;;:35;26228:99:::1;;26304:10;26296:19;::::0;;;:7:::1;:19;::::0;;;;;26289:26:::1;26296:19:::0;;26289:26:::1;:::i;:::-;;;::::0;::::1;;;:::i;:::-;;;::::0;::::1;;;:::i;:::-;-1:-1:-1::0;26289:26:0::1;;::::0;;-1:-1:-1;;26289:26:0::1;::::0;;26228:99:::1;26339:5;::::0;:34:::1;::::0;-1:-1:-1;;;26339:34:0;;26354:10:::1;26339:34;::::0;::::1;6969:51:1::0;7036:18;;;7029:34;;;-1:-1:-1;;;;;26339:5:0;;::::1;::::0;:14:::1;::::0;6942:18:1;;26339:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;26384:3:0::1;::::0;:152:::1;::::0;-1:-1:-1;;;26384:152:0;;-1:-1:-1;;;;;26384:3:0;;::::1;::::0;:25:::1;::::0;:152:::1;::::0;26432:4:::1;::::0;26452:10:::1;::::0;26477:9;;26501:7;;26384:152:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25498:1046;;25423:1121:::0;:::o;24711:704::-;4602:4;4626:7;;;4880:9;4872:38;;;;-1:-1:-1;;;4872:38:0;;;;;;;:::i;:::-;24763:14:::1;24780:25;24794:10;24780:13;:25::i;:::-;24763:42;;24833:1;24824:6;:10;24816:43;;;;-1:-1:-1::0;;;24816:43:0::1;;;;;;;:::i;:::-;24888:11;:9;:11::i;:::-;24878:6;:21;;24870:65;;;;-1:-1:-1::0;;;24870:65:0::1;;;;;;;:::i;:::-;24946:26;24975:20;24984:10;24975:8;:20::i;:::-;24946:49;;25006:24;25047:9;:16;25033:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;25033:31:0::1;;25006:58;;25080:9;25075:88;25099:9;:16;25095:1;:20;25075:88;;;25150:1;25137:7;25145:1;25137:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:14;25117:3;::::1;::::0;::::1;:::i;:::-;;;;25075:88;;;-1:-1:-1::0;25188:10:0::1;25180:19;::::0;;;:7:::1;:19;::::0;;;;;25173:26:::1;25180:19:::0;;25173:26:::1;:::i;:::-;;;::::0;::::1;;;:::i;:::-;;;::::0;::::1;;;:::i;:::-;-1:-1:-1::0;25173:26:0::1;;::::0;;-1:-1:-1;;25173:26:0::1;::::0;;25210:5:::1;::::0;:34:::1;::::0;-1:-1:-1;;;25210:34:0;;25225:10:::1;25210:34;::::0;::::1;6969:51:1::0;7036:18;;;7029:34;;;-1:-1:-1;;;;;25210:5:0;;::::1;::::0;:14:::1;::::0;6942:18:1;;25210:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;25255:3:0::1;::::0;:152:::1;::::0;-1:-1:-1;;;25255:152:0;;-1:-1:-1;;;;;25255:3:0;;::::1;::::0;:25:::1;::::0;:152:::1;::::0;25303:4:::1;::::0;25323:10:::1;::::0;25348:9;;25372:7;;25255:152:::1;;;:::i;24212:491::-:0;4602:4;4626:7;;;4880:9;4872:38;;;;-1:-1:-1;;;4872:38:0;;;;;;;:::i;:::-;24277:14:::1;24294:25;24308:10;24294:13;:25::i;:::-;24277:42;;24347:1;24338:6;:10;24330:43;;;;-1:-1:-1::0;;;24330:43:0::1;;;;;;;:::i;:::-;24402:11;:9;:11::i;:::-;24392:6;:21;;24384:65;;;;-1:-1:-1::0;;;24384:65:0::1;;;;;;;:::i;:::-;24460:26;24489:20;24498:10;24489:8;:20::i;:::-;24460:49;;24527:9;24522:125;24546:9;:16;24542:1;:20;24522:125;;;24592:10;24584:19;::::0;;;:7:::1;:19;::::0;;;;:30:::1;;:33:::0;;24620:15:::1;::::0;24584:30;24615:1;;24584:33;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;:51:::0;24564:3;::::1;::::0;::::1;:::i;:::-;;;;24522:125;;;-1:-1:-1::0;24659:5:0::1;::::0;:34:::1;::::0;-1:-1:-1;;;24659:34:0;;24674:10:::1;24659:34;::::0;::::1;6969:51:1::0;7036:18;;;7029:34;;;-1:-1:-1;;;;;24659:5:0;;::::1;::::0;:14:::1;::::0;6942:18:1;;24659:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24256:447;;24212:491::o:0;26848:308::-;26954:7;;26979:134;27003:5;:12;26999:1;:16;26979:134;;;27053:4;27041:5;27047:1;27041:8;;;;;;;;:::i;:::-;;;;;;;:16;27037:65;;;27085:1;-1:-1:-1;27078:8:0;;27037:65;27017:3;;;;:::i;:::-;;;;26979:134;;;-1:-1:-1;27123:25:0;;-1:-1:-1;;;27123:25:0;;9473:2:1;27123:25:0;;;9455:21:1;9512:2;9492:18;;;9485:30;-1:-1:-1;;;9531:18:1;;;9524:45;9586:18;;27123:25:0;9271:339:1;2606:103:0;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;;;;;759:10;2175:23;2167:68;;;;-1:-1:-1;;;2167:68:0;;;;;;;:::i;:::-;2671:30:::1;2698:1;2671:18;:30::i;:::-;2606:103::o:0;21575:684::-;-1:-1:-1;;;;;21737:16:0;;21686:7;21737:16;;;:7;:16;;;;;;;;21711:42;;;;;;;;;;;;;;;;;;;;;21686:7;;21711:42;;;;21737:16;;21711:42;;;21737:16;21711:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;21711:42:0;;;-1:-1:-1;;21711:42:0;;;;;;;;;;;;;;;;;;;;21796:8;;21711:42;;-1:-1:-1;21711:42:0;;21796:8;21792:121;;;-1:-1:-1;21831:12:0;;21792:121;;;-1:-1:-1;21886:15:0;21792:121;21930:9;21925:306;21949:15;;:22;21945:26;;21925:306;;;22019:7;21997:6;:15;;;22013:1;21997:18;;;;;;;;:::i;:::-;;;;;;;:29;21993:227;;;22047:13;22091:45;22104:6;:22;;;22127:1;22104:25;;;;;;;;:::i;:::-;;;;;;;22131:4;;22091:12;:45::i;:::-;22063:4;;:73;;;;:::i;:::-;22047:89;;22182:6;:17;;;22200:1;22182:20;;;;;;;;:::i;:::-;;;;;;;22172:7;:30;;;;:::i;:::-;22163:40;;:5;:40;:::i;:::-;22155:49;;;;;;;;21993:227;21973:3;;;;:::i;:::-;;;;21925:306;;;-1:-1:-1;22250:1:0;;21575:684;-1:-1:-1;;;;;21575:684:0:o;20126:166::-;-1:-1:-1;;;;;20257:16:0;;;;;;:7;:16;;;;;;;;;:27;;20250:34;;;;;;;;;;;;;;;;;20216:16;;20250:34;;;20257:27;20250:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20126:166;;;:::o;19817:125::-;-1:-1:-1;;;;;19909:16:0;;;;;;:7;:16;;;;;;;;;19902:32;;;;;;;;;;;;;;;;;19873:16;;19902:32;;;19909:16;19902:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19817:125;;;:::o;19950:168::-;-1:-1:-1;;;;;20078:16:0;;;;;;:7;:16;;;;;;;;;:32;;20071:39;;;;;;;;;;;;;;;;;20037:16;;20071:39;;;20078:32;20071:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19950:168;;;:::o;19417:270::-;19517:7;19561:5;19550:7;:16;;19542:64;;;;-1:-1:-1;;;19542:64:0;;9069:2:1;19542:64:0;;;9051:21:1;9108:2;9088:18;;;9081:30;9147:34;9127:18;;;9120:62;-1:-1:-1;;;9198:18:1;;;9191:33;9241:19;;19542:64:0;8867:399:1;19542:64:0;19617:10;19630:9;:3;19636;19630:9;:::i;:::-;19617:22;-1:-1:-1;19674:5:0;19658:12;19617:22;19658:7;:12;:::i;:::-;19657:22;;;;:::i;:::-;19650:29;19417:270;-1:-1:-1;;;;19417:270:0:o;21301:266::-;21349:7;21369:19;21404:9;21399:118;21423:10;:17;21419:21;;21399:118;;;21477:28;21491:10;21502:1;21491:13;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;21491:13:0;21477;:28::i;:::-;21462:43;;;;:::i;:::-;;-1:-1:-1;21442:3:0;;;;:::i;:::-;;;;21399:118;;;;21548:11;21534;:9;:11::i;:::-;:25;;;;:::i;:::-;21527:32;;;21301:266;:::o;20693:600::-;-1:-1:-1;;;;;20800:16:0;;20754:7;20800:16;;;:7;:16;;;;;;;;20774:42;;;;;;;;;;;;;;;;;;;;;20754:7;;20774:42;;;;20800:16;;20774:42;;;20800:16;20774:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;20774:42:0;;;-1:-1:-1;;20774:42:0;;;;;;;;;;;;;;;;;;;;20889:8;;20774:42;;-1:-1:-1;20774:42:0;;;;20889:8;20885:121;;;-1:-1:-1;20924:12:0;;20885:121;;;-1:-1:-1;20979:15:0;20885:121;21023:9;21018:237;21042:15;;:22;21038:26;;21018:237;;;21086:13;21126:45;21139:6;:22;;;21162:1;21139:25;;;;;;;;:::i;21126:45::-;21102:4;;:69;;;;:::i;:::-;21086:85;;21221:6;:17;;;21239:1;21221:20;;;;;;;;:::i;:::-;;;;;;;21211:7;:30;;;;:::i;:::-;21202:40;;:5;:40;:::i;:::-;21186:57;;;;:::i;:::-;;;21071:184;21066:3;;;;;:::i;:::-;;;;21018:237;;;-1:-1:-1;21274:11:0;;20693:600;-1:-1:-1;;;;20693:600:0:o;20300:107::-;20369:5;;:30;;-1:-1:-1;;;20369:30:0;;20393:4;20369:30;;;5839:51:1;20342:7:0;;-1:-1:-1;;;;;20369:5:0;;:15;;5812:18:1;;20369:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20362:37;;20300:107;:::o;20415:270::-;-1:-1:-1;;;;;20516:16:0;;20476:7;20516:16;;;:7;:16;;;;;:27;;:30;;20476:7;;20516:27;20476:7;;20516:30;;;;:::i;:::-;;;;;;;;;20496:50;;20573:1;20561:9;:13;20557:121;;;20598:27;20616:9;20598:15;:27;:::i;:::-;20591:34;20415:270;-1:-1:-1;;;20415:270:0:o;20557:121::-;-1:-1:-1;20665:1:0;;20415:270;-1:-1:-1;;20415:270:0:o;2864:201::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;;;;;759:10;2175:23;2167:68;;;;-1:-1:-1;;;2167:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2953:22:0;::::1;2945:73;;;::::0;-1:-1:-1;;;2945:73:0;;8301:2:1;2945:73:0::1;::::0;::::1;8283:21:1::0;8340:2;8320:18;;;8313:30;8379:34;8359:18;;;8352:62;-1:-1:-1;;;8430:18:1;;;8423:36;8476:19;;2945:73:0::1;8099:402:1::0;2945:73:0::1;3029:28;3048:8;3029:18;:28::i;26588:252::-:0;26677:12;;26668:21;;26664:34;;26588:252;;:::o;26664:34::-;26727:5;26710:101;26738:12;;:16;;26753:1;;26738:16;:::i;:::-;26734:1;:20;26710:101;;;26787:5;26793;:1;26797;26793:5;:::i;:::-;26787:12;;;;;;;;:::i;:::-;;;;;;;;;26776:5;26782:1;26776:8;;;;;;;;:::i;:::-;;;;;;;;;;:23;26756:3;;;;:::i;:::-;;;;26710:101;;;;26821:5;:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;26588:252;;:::o;3225:191::-;3299:16;3318:6;;-1:-1:-1;;;;;3335:17:0;;;3318:6;3335:17;;;-1:-1:-1;;;;;;3335:17:0;;;;;3368:40;;3318:6;;;;;;;3335:17;;3318:6;;3368:40;;;3288:128;3225:191;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:723::-;246:5;299:3;292:4;284:6;280:17;276:27;266:55;;317:1;314;307:12;266:55;353:6;340:20;379:4;402:18;398:2;395:26;392:52;;;424:18;;:::i;:::-;470:2;467:1;463:10;493:28;517:2;513;509:11;493:28;:::i;:::-;555:15;;;586:12;;;;618:15;;;652;;;648:24;;645:33;-1:-1:-1;642:53:1;;;691:1;688;681:12;642:53;713:1;704:10;;723:163;737:2;734:1;731:9;723:163;;;794:17;;782:30;;755:1;748:9;;;;;832:12;;;;864;;723:163;;;-1:-1:-1;904:5:1;192:723;-1:-1:-1;;;;;;;192:723:1:o;920:530::-;962:5;1015:3;1008:4;1000:6;996:17;992:27;982:55;;1033:1;1030;1023:12;982:55;1069:6;1056:20;1095:18;1091:2;1088:26;1085:52;;;1117:18;;:::i;:::-;1161:55;1204:2;1185:13;;-1:-1:-1;;1181:27:1;1210:4;1177:38;1161:55;:::i;:::-;1241:2;1232:7;1225:19;1287:3;1280:4;1275:2;1267:6;1263:15;1259:26;1256:35;1253:55;;;1304:1;1301;1294:12;1253:55;1369:2;1362:4;1354:6;1350:17;1343:4;1334:7;1330:18;1317:55;1417:1;1392:16;;;1410:4;1388:27;1381:38;;;;1396:7;920:530;-1:-1:-1;;;920:530:1:o;1455:186::-;1514:6;1567:2;1555:9;1546:7;1542:23;1538:32;1535:52;;;1583:1;1580;1573:12;1535:52;1606:29;1625:9;1606:29;:::i;1646:943::-;1800:6;1808;1816;1824;1832;1885:3;1873:9;1864:7;1860:23;1856:33;1853:53;;;1902:1;1899;1892:12;1853:53;1925:29;1944:9;1925:29;:::i;:::-;1915:39;;1973:38;2007:2;1996:9;1992:18;1973:38;:::i;:::-;1963:48;;2062:2;2051:9;2047:18;2034:32;2085:18;2126:2;2118:6;2115:14;2112:34;;;2142:1;2139;2132:12;2112:34;2165:61;2218:7;2209:6;2198:9;2194:22;2165:61;:::i;:::-;2155:71;;2279:2;2268:9;2264:18;2251:32;2235:48;;2308:2;2298:8;2295:16;2292:36;;;2324:1;2321;2314:12;2292:36;2347:63;2402:7;2391:8;2380:9;2376:24;2347:63;:::i;:::-;2337:73;;2463:3;2452:9;2448:19;2435:33;2419:49;;2493:2;2483:8;2480:16;2477:36;;;2509:1;2506;2499:12;2477:36;;2532:51;2575:7;2564:8;2553:9;2549:24;2532:51;:::i;:::-;2522:61;;;1646:943;;;;;;;;:::o;2594:606::-;2698:6;2706;2714;2722;2730;2783:3;2771:9;2762:7;2758:23;2754:33;2751:53;;;2800:1;2797;2790:12;2751:53;2823:29;2842:9;2823:29;:::i;:::-;2813:39;;2871:38;2905:2;2894:9;2890:18;2871:38;:::i;:::-;2861:48;;2956:2;2945:9;2941:18;2928:32;2918:42;;3007:2;2996:9;2992:18;2979:32;2969:42;;3062:3;3051:9;3047:19;3034:33;3090:18;3082:6;3079:30;3076:50;;;3122:1;3119;3112:12;3076:50;3145:49;3186:7;3177:6;3166:9;3162:22;3145:49;:::i;3205:254::-;3273:6;3281;3334:2;3322:9;3313:7;3309:23;3305:32;3302:52;;;3350:1;3347;3340:12;3302:52;3373:29;3392:9;3373:29;:::i;:::-;3363:39;3449:2;3434:18;;;;3421:32;;-1:-1:-1;;;3205:254:1:o;3464:348::-;3548:6;3601:2;3589:9;3580:7;3576:23;3572:32;3569:52;;;3617:1;3614;3607:12;3569:52;3657:9;3644:23;3690:18;3682:6;3679:30;3676:50;;;3722:1;3719;3712:12;3676:50;3745:61;3798:7;3789:6;3778:9;3774:22;3745:61;:::i;3817:277::-;3884:6;3937:2;3925:9;3916:7;3912:23;3908:32;3905:52;;;3953:1;3950;3943:12;3905:52;3985:9;3979:16;4038:5;4031:13;4024:21;4017:5;4014:32;4004:60;;4060:1;4057;4050:12;4099:286;4157:6;4210:2;4198:9;4189:7;4185:23;4181:32;4178:52;;;4226:1;4223;4216:12;4178:52;4252:23;;-1:-1:-1;;;;;;4304:32:1;;4294:43;;4284:71;;4351:1;4348;4341:12;4390:184;4460:6;4513:2;4501:9;4492:7;4488:23;4484:32;4481:52;;;4529:1;4526;4519:12;4481:52;-1:-1:-1;4552:16:1;;4390:184;-1:-1:-1;4390:184:1:o;4579:416::-;4672:6;4680;4733:2;4721:9;4712:7;4708:23;4704:32;4701:52;;;4749:1;4746;4739:12;4701:52;4785:9;4772:23;4762:33;;4846:2;4835:9;4831:18;4818:32;4873:18;4865:6;4862:30;4859:50;;;4905:1;4902;4895:12;4859:50;4928:61;4981:7;4972:6;4961:9;4957:22;4928:61;:::i;:::-;4918:71;;;4579:416;;;;;:::o;5000:248::-;5068:6;5076;5129:2;5117:9;5108:7;5104:23;5100:32;5097:52;;;5145:1;5142;5135:12;5097:52;-1:-1:-1;;5168:23:1;;;5238:2;5223:18;;;5210:32;;-1:-1:-1;5000:248:1:o;5253:435::-;5306:3;5344:5;5338:12;5371:6;5366:3;5359:19;5397:4;5426:2;5421:3;5417:12;5410:19;;5463:2;5456:5;5452:14;5484:1;5494:169;5508:6;5505:1;5502:13;5494:169;;;5569:13;;5557:26;;5603:12;;;;5638:15;;;;5530:1;5523:9;5494:169;;;-1:-1:-1;5679:3:1;;5253:435;-1:-1:-1;;;;;5253:435:1:o;5901:889::-;-1:-1:-1;;;;;6352:15:1;;;6334:34;;6404:15;;6399:2;6384:18;;6377:43;6314:3;6451:2;6436:18;;6429:31;;;6277:4;;6483:57;;6520:19;;6512:6;6483:57;:::i;:::-;6588:9;6580:6;6576:22;6571:2;6560:9;6556:18;6549:50;6622:44;6659:6;6651;6622:44;:::i;:::-;6703:22;;;6697:3;6682:19;;;6675:51;;;;-1:-1:-1;;6750:1:1;6735:17;;6781:2;6769:15;;5901:889;-1:-1:-1;;;;5901:889:1:o;7074:261::-;7253:2;7242:9;7235:21;7216:4;7273:56;7325:2;7314:9;7310:18;7302:6;7273:56;:::i;7739:355::-;7941:2;7923:21;;;7980:2;7960:18;;;7953:30;8019:33;8014:2;7999:18;;7992:61;8085:2;8070:18;;7739:355::o;9961:340::-;10163:2;10145:21;;;10202:2;10182:18;;;10175:30;-1:-1:-1;;;10236:2:1;10221:18;;10214:46;10292:2;10277:18;;9961:340::o;10306:344::-;10508:2;10490:21;;;10547:2;10527:18;;;10520:30;-1:-1:-1;;;10581:2:1;10566:18;;10559:50;10641:2;10626:18;;10306:344::o;10655:356::-;10857:2;10839:21;;;10876:18;;;10869:30;10935:34;10930:2;10915:18;;10908:62;11002:2;10987:18;;10655:356::o;11552:275::-;11623:2;11617:9;11688:2;11669:13;;-1:-1:-1;;11665:27:1;11653:40;;11723:18;11708:34;;11744:22;;;11705:62;11702:88;;;11770:18;;:::i;:::-;11806:2;11799:22;11552:275;;-1:-1:-1;11552:275:1:o;11832:128::-;11872:3;11903:1;11899:6;11896:1;11893:13;11890:39;;;11909:18;;:::i;:::-;-1:-1:-1;11945:9:1;;11832:128::o;11965:217::-;12005:1;12031;12021:132;;12075:10;12070:3;12066:20;12063:1;12056:31;12110:4;12107:1;12100:15;12138:4;12135:1;12128:15;12021:132;-1:-1:-1;12167:9:1;;11965:217::o;12187:168::-;12227:7;12293:1;12289;12285:6;12281:14;12278:1;12275:21;12270:1;12263:9;12256:17;12252:45;12249:71;;;12300:18;;:::i;:::-;-1:-1:-1;12340:9:1;;12187:168::o;12360:125::-;12400:4;12428:1;12425;12422:8;12419:34;;;12433:18;;:::i;:::-;-1:-1:-1;12470:9:1;;12360:125::o;12490:135::-;12529:3;-1:-1:-1;;12550:17:1;;12547:43;;;12570:18;;:::i;:::-;-1:-1:-1;12617:1:1;12606:13;;12490:135::o;12630:127::-;12691:10;12686:3;12682:20;12679:1;12672:31;12722:4;12719:1;12712:15;12746:4;12743:1;12736:15;12762:127;12823:10;12818:3;12814:20;12811:1;12804:31;12854:4;12851:1;12844:15;12878:4;12875:1;12868:15;12894:127;12955:10;12950:3;12946:20;12943:1;12936:31;12986:4;12983:1;12976:15;13010:4;13007:1;13000:15;13026:127;13087:10;13082:3;13078:20;13075:1;13068:31;13118:4;13115:1;13108:15;13142:4;13139:1;13132:15
Swarm Source
ipfs://1dc57ded3af39d230c9bb3b4b6cbcecb8cb8948b10ccbd78a594be7bb1085a14
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.