Contract Overview
Balance:
0 CRO
CRO Value:
$0.00
My Name Tag:
Not Available, login to update
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0xe22083f4dc5318154acb64f1f445e67ab0ec39e2df05e8bd982d312d2d099378 | 0x60806040 | 8439419 | 16 days 3 hrs ago | 0x917281fa404f777da61b3bba593c60329a2f010c | IN | Create: StakeFee | 0 CRO | 6.268016437753 |
[ Download CSV Export ]
Contract Source Code Verified (Exact Match)
Contract Name:
StakeFee
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2023-05-24 */ // SPDX-License-Identifier: MIT // Sources flattened with hardhat v2.11.2 https://hardhat.org // File contracts/v2/IStakeFee.sol pragma solidity ^0.8.9; interface IStakeFee { enum FeeType { Stake, Withdraw, Claim, AddBooster, RemoveBooster } function getFees( address pool, address account, FeeType _type ) external view returns (uint256); } // File @openzeppelin/contracts-upgradeable/utils/[email protected] // // OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol) pragma solidity ^0.8.1; /** * @dev Collection of functions related to the address type */ library AddressUpgradeable { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. * * _Available since v4.8._ */ function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { // only check isContract if the call was successful and the return data is empty // otherwise we already know that it was a contract require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } /** * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason or using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { _revert(returndata, errorMessage); } } function _revert(bytes memory returndata, string memory errorMessage) private pure { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } // File @openzeppelin/contracts-upgradeable/proxy/utils/[email protected] // // OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol) pragma solidity ^0.8.2; /** * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. * * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in * case an upgrade adds a module that needs to be initialized. * * For example: * * [.hljs-theme-light.nopadding] * ``` * contract MyToken is ERC20Upgradeable { * function initialize() initializer public { * __ERC20_init("MyToken", "MTK"); * } * } * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { * function initializeV2() reinitializer(2) public { * __ERC20Permit_init("MyToken"); * } * } * ``` * * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. * * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. * * [CAUTION] * ==== * Avoid leaving a contract uninitialized. * * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: * * [.hljs-theme-light.nopadding] * ``` * /// @custom:oz-upgrades-unsafe-allow constructor * constructor() { * _disableInitializers(); * } * ``` * ==== */ abstract contract Initializable { /** * @dev Indicates that the contract has been initialized. * @custom:oz-retyped-from bool */ uint8 private _initialized; /** * @dev Indicates that the contract is in the process of being initialized. */ bool private _initializing; /** * @dev Triggered when the contract has been initialized or reinitialized. */ event Initialized(uint8 version); /** * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope, * `onlyInitializing` functions can be used to initialize parent contracts. * * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a * constructor. * * Emits an {Initialized} event. */ modifier initializer() { bool isTopLevelCall = !_initializing; require( (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1), "Initializable: contract is already initialized" ); _initialized = 1; if (isTopLevelCall) { _initializing = true; } _; if (isTopLevelCall) { _initializing = false; emit Initialized(1); } } /** * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be * used to initialize parent contracts. * * A reinitializer may be used after the original initialization step. This is essential to configure modules that * are added through upgrades and that require initialization. * * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer` * cannot be nested. If one is invoked in the context of another, execution will revert. * * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in * a contract, executing them in the right order is up to the developer or operator. * * WARNING: setting the version to 255 will prevent any future reinitialization. * * Emits an {Initialized} event. */ modifier reinitializer(uint8 version) { require(!_initializing && _initialized < version, "Initializable: contract is already initialized"); _initialized = version; _initializing = true; _; _initializing = false; emit Initialized(version); } /** * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the * {initializer} and {reinitializer} modifiers, directly or indirectly. */ modifier onlyInitializing() { require(_initializing, "Initializable: contract is not initializing"); _; } /** * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call. * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized * to any version. It is recommended to use this to lock implementation contracts that are designed to be called * through proxies. * * Emits an {Initialized} event the first time it is successfully executed. */ function _disableInitializers() internal virtual { require(!_initializing, "Initializable: contract is initializing"); if (_initialized < type(uint8).max) { _initialized = type(uint8).max; emit Initialized(type(uint8).max); } } /** * @dev Returns the highest version that has been initialized. See {reinitializer}. */ function _getInitializedVersion() internal view returns (uint8) { return _initialized; } /** * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}. */ function _isInitializing() internal view returns (bool) { return _initializing; } } // File @openzeppelin/contracts-upgradeable/utils/[email protected] // // 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 ContextUpgradeable is Initializable { function __Context_init() internal onlyInitializing { } function __Context_init_unchained() internal onlyInitializing { } function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } /** * @dev This empty reserved space is put in place to allow future versions to add new * variables without shifting down storage in the inheritance chain. * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps */ uint256[50] private __gap; } // File @openzeppelin/contracts-upgradeable/access/[email protected] // // OpenZeppelin Contracts (last updated v4.7.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 OwnableUpgradeable is Initializable, ContextUpgradeable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ function __Ownable_init() internal onlyInitializing { __Ownable_init_unchained(); } function __Ownable_init_unchained() internal onlyInitializing { _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); } /** * @dev This empty reserved space is put in place to allow future versions to add new * variables without shifting down storage in the inheritance chain. * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps */ uint256[49] private __gap; } // File @openzeppelin/contracts/utils/introspection/[email protected] // // OpenZeppelin Contracts v4.4.1 (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/ERC721/[email protected] // // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @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`. * * 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 calldata data ) external; /** * @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 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 ) external; /** * @dev Transfers `tokenId` token 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); } // File contracts/v2/StakeFee.sol // pragma solidity ^0.8.9; contract StakeFee is Initializable, OwnableUpgradeable, IStakeFee { mapping(FeeType => uint256) public defaultFee; // special for for collection holder mapping(address => mapping(address => mapping(FeeType => uint256))) public poolToCollectionToFee; mapping(address => address[]) public poolTocollections; /// @custom:oz-upgrades-unsafe-allow constructor constructor() { _disableInitializers(); } function initialize() public initializer { __Ownable_init(); } function setDefaultFee(FeeType _type, uint256 _defaultFee) public onlyOwner { defaultFee[_type] = _defaultFee; } function setCollections(address pool, address[] memory _collections) public onlyOwner { poolTocollections[pool] = _collections; } function setSpecialFee( address pool, address collection, FeeType _type, uint256 _fee ) public onlyOwner { poolToCollectionToFee[pool][collection][_type] = _fee; } function getFees( address pool, address account, FeeType _type ) public view returns (uint256) { uint256 fee = defaultFee[_type]; for (uint256 i = 0; i < poolTocollections[pool].length; i++) { if (IERC721(poolTocollections[pool][i]).balanceOf(account) > 0) { if ( poolToCollectionToFee[pool][poolTocollections[pool][i]][ _type ] > 0 ) { if ( fee > poolToCollectionToFee[pool][poolTocollections[pool][i]][ _type ] ) { fee = poolToCollectionToFee[pool][ poolTocollections[pool][i] ][_type]; } } } } return fee; } }
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","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"},{"inputs":[{"internalType":"enum IStakeFee.FeeType","name":"","type":"uint8"}],"name":"defaultFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"enum IStakeFee.FeeType","name":"_type","type":"uint8"}],"name":"getFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum IStakeFee.FeeType","name":"","type":"uint8"}],"name":"poolToCollectionToFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolTocollections","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address[]","name":"_collections","type":"address[]"}],"name":"setCollections","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IStakeFee.FeeType","name":"_type","type":"uint8"},{"internalType":"uint256","name":"_defaultFee","type":"uint256"}],"name":"setDefaultFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"collection","type":"address"},{"internalType":"enum IStakeFee.FeeType","name":"_type","type":"uint8"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setSpecialFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50620000226200002860201b60201c565b620001d3565b600060019054906101000a900460ff16156200007b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000729062000176565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff161015620000ed5760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000e49190620001b6565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60006200015e602783620000ef565b91506200016b8262000100565b604082019050919050565b6000602082019050818103600083015262000191816200014f565b9050919050565b600060ff82169050919050565b620001b08162000198565b82525050565b6000602082019050620001cd6000830184620001a5565b92915050565b61167b80620001e36000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806381a9322f1161007157806381a9322f1461015257806384e6d1fc146101825780638da5cb5b1461019e5780639f684d85146101bc578063f2fde38b146101d8578063f45102d4146101f4576100a9565b80632d70612b146100ae578063686b19a2146100de57806370b6e3e41461010e578063715018a61461013e5780638129fc1c14610148575b600080fd5b6100c860048036038101906100c39190610ebb565b610210565b6040516100d59190610f27565b60405180910390f35b6100f860048036038101906100f39190610f6e565b610751565b6040516101059190610fbd565b60405180910390f35b61012860048036038101906101239190610fd8565b61079f565b6040516101359190610f27565b60405180910390f35b6101466107b7565b005b6101506107cb565b005b61016c60048036038101906101679190610ebb565b610909565b6040516101799190610f27565b60405180910390f35b61019c60048036038101906101979190611005565b61093b565b005b6101a66109ff565b6040516101b39190610fbd565b60405180910390f35b6101d660048036038101906101d191906111c5565b610a29565b005b6101f260048036038101906101ed9190611221565b610a89565b005b61020e6004803603810190610209919061124e565b610b0c565b005b6000806065600084600481111561022a5761022961128e565b5b600481111561023c5761023b61128e565b5b815260200190815260200160002054905060005b606760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015610745576000606760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106102ed576102ec6112bd565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b81526004016103509190610fbd565b602060405180830381865afa15801561036d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103919190611301565b1115610732576000606660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000606760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061042b5761042a6112bd565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008660048111156104a5576104a461128e565b5b60048111156104b7576104b661128e565b5b815260200190815260200160002054111561073157606660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000606760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061055e5761055d6112bd565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008560048111156105d8576105d761128e565b5b60048111156105ea576105e961128e565b5b81526020019081526020016000205482111561073057606660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000606760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610692576106916112bd565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085600481111561070c5761070b61128e565b5b600481111561071e5761071d61128e565b5b81526020019081526020016000205491505b5b5b808061073d9061135d565b915050610250565b50809150509392505050565b6067602052816000526040600020818154811061076d57600080fd5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60656020528060005260406000206000915090505481565b6107bf610b54565b6107c96000610bd2565b565b60008060019054906101000a900460ff161590508080156107fc5750600160008054906101000a900460ff1660ff16105b80610829575061080b30610c98565b1580156108285750600160008054906101000a900460ff1660ff16145b5b610868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085f90611428565b60405180910390fd5b60016000806101000a81548160ff021916908360ff16021790555080156108a5576001600060016101000a81548160ff0219169083151502179055505b6108ad610cbb565b80156109065760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516108fd919061149a565b60405180910390a15b50565b606660205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b610943610b54565b80606660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008460048111156109d5576109d461128e565b5b60048111156109e7576109e661128e565b5b81526020019081526020016000208190555050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a31610b54565b80606760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190610a84929190610d7d565b505050565b610a91610b54565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af790611527565b60405180910390fd5b610b0981610bd2565b50565b610b14610b54565b8060656000846004811115610b2c57610b2b61128e565b5b6004811115610b3e57610b3d61128e565b5b8152602001908152602001600020819055505050565b610b5c610d14565b73ffffffffffffffffffffffffffffffffffffffff16610b7a6109ff565b73ffffffffffffffffffffffffffffffffffffffff1614610bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc790611593565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190611625565b60405180910390fd5b610d12610d1c565b565b600033905090565b600060019054906101000a900460ff16610d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6290611625565b60405180910390fd5b610d7b610d76610d14565b610bd2565b565b828054828255906000526020600020908101928215610df6579160200282015b82811115610df55782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190610d9d565b5b509050610e039190610e07565b5090565b5b80821115610e20576000816000905550600101610e08565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e6382610e38565b9050919050565b610e7381610e58565b8114610e7e57600080fd5b50565b600081359050610e9081610e6a565b92915050565b60058110610ea357600080fd5b50565b600081359050610eb581610e96565b92915050565b600080600060608486031215610ed457610ed3610e2e565b5b6000610ee286828701610e81565b9350506020610ef386828701610e81565b9250506040610f0486828701610ea6565b9150509250925092565b6000819050919050565b610f2181610f0e565b82525050565b6000602082019050610f3c6000830184610f18565b92915050565b610f4b81610f0e565b8114610f5657600080fd5b50565b600081359050610f6881610f42565b92915050565b60008060408385031215610f8557610f84610e2e565b5b6000610f9385828601610e81565b9250506020610fa485828601610f59565b9150509250929050565b610fb781610e58565b82525050565b6000602082019050610fd26000830184610fae565b92915050565b600060208284031215610fee57610fed610e2e565b5b6000610ffc84828501610ea6565b91505092915050565b6000806000806080858703121561101f5761101e610e2e565b5b600061102d87828801610e81565b945050602061103e87828801610e81565b935050604061104f87828801610ea6565b925050606061106087828801610f59565b91505092959194509250565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6110ba82611071565b810181811067ffffffffffffffff821117156110d9576110d8611082565b5b80604052505050565b60006110ec610e24565b90506110f882826110b1565b919050565b600067ffffffffffffffff82111561111857611117611082565b5b602082029050602081019050919050565b600080fd5b600061114161113c846110fd565b6110e2565b9050808382526020820190506020840283018581111561116457611163611129565b5b835b8181101561118d57806111798882610e81565b845260208401935050602081019050611166565b5050509392505050565b600082601f8301126111ac576111ab61106c565b5b81356111bc84826020860161112e565b91505092915050565b600080604083850312156111dc576111db610e2e565b5b60006111ea85828601610e81565b925050602083013567ffffffffffffffff81111561120b5761120a610e33565b5b61121785828601611197565b9150509250929050565b60006020828403121561123757611236610e2e565b5b600061124584828501610e81565b91505092915050565b6000806040838503121561126557611264610e2e565b5b600061127385828601610ea6565b925050602061128485828601610f59565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506112fb81610f42565b92915050565b60006020828403121561131757611316610e2e565b5b6000611325848285016112ec565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061136882610f0e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361139a5761139961132e565b5b600182019050919050565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000611412602e836113a5565b915061141d826113b6565b604082019050919050565b6000602082019050818103600083015261144181611405565b9050919050565b6000819050919050565b600060ff82169050919050565b6000819050919050565b600061148461147f61147a84611448565b61145f565b611452565b9050919050565b61149481611469565b82525050565b60006020820190506114af600083018461148b565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006115116026836113a5565b915061151c826114b5565b604082019050919050565b6000602082019050818103600083015261154081611504565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061157d6020836113a5565b915061158882611547565b602082019050919050565b600060208201905081810360008301526115ac81611570565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b600061160f602b836113a5565b915061161a826115b3565b604082019050919050565b6000602082019050818103600083015261163e81611602565b905091905056fea2646970667358221220638ce469619c0dddea524ee5f5aed2cba1d790693580694df43e7a873ced64a364736f6c63430008110033
Deployed ByteCode Sourcemap
26323:2082:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27425:977;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26604:54;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26396:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19320:103;;;:::i;:::-;;26784:76;;;:::i;:::-;;26492:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27199:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18672:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27025:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19578:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26868:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27425:977;27543:7;27563:11;27577:10;:17;27588:5;27577:17;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;27563:31;;27612:9;27607:765;27631:17;:23;27649:4;27631:23;;;;;;;;;;;;;;;:30;;;;27627:1;:34;27607:765;;;27744:1;27695:17;:23;27713:4;27695:23;;;;;;;;;;;;;;;27719:1;27695:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27687:45;;;27733:7;27687:54;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;27683:678;;;27905:1;27792:21;:27;27814:4;27792:27;;;;;;;;;;;;;;;:55;27820:17;:23;27838:4;27820:23;;;;;;;;;;;;;;;27844:1;27820:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27792:55;;;;;;;;;;;;;;;:110;27874:5;27792:110;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:114;27766:580;;;28010:21;:27;28032:4;28010:27;;;;;;;;;;;;;;;:55;28038:17;:23;28056:4;28038:23;;;;;;;;;;;;;;;28062:1;28038:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28010:55;;;;;;;;;;;;;;;:118;28096:5;28010:118;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;27979:3;:149;27949:378;;;28185:21;:27;28207:4;28185:27;;;;;;;;;;;;;;;:111;28243:17;:23;28261:4;28243:23;;;;;;;;;;;;;;;28267:1;28243:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28185:111;;;;;;;;;;;;;;;:118;28297:5;28185:118;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;28179:124;;27949:378;27766:580;27683:678;27663:3;;;;;:::i;:::-;;;;27607:765;;;;28391:3;28384:10;;;27425:977;;;;;:::o;26604:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26396:45::-;;;;;;;;;;;;;;;;;:::o;19320:103::-;18558:13;:11;:13::i;:::-;19385:30:::1;19412:1;19385:18;:30::i;:::-;19320:103::o:0;26784:76::-;12371:19;12394:13;;;;;;;;;;;12393:14;12371:36;;12441:14;:34;;;;;12474:1;12459:12;;;;;;;;;;:16;;;12441:34;12440:108;;;;12482:44;12520:4;12482:29;:44::i;:::-;12481:45;:66;;;;;12546:1;12530:12;;;;;;;;;;:17;;;12481:66;12440:108;12418:204;;;;;;;;;;;;:::i;:::-;;;;;;;;;12648:1;12633:12;;:16;;;;;;;;;;;;;;;;;;12664:14;12660:67;;;12711:4;12695:13;;:20;;;;;;;;;;;;;;;;;;12660:67;26836:16:::1;:14;:16::i;:::-;12753:14:::0;12749:102;;;12800:5;12784:13;;:21;;;;;;;;;;;;;;;;;;12825:14;12837:1;12825:14;;;;;;:::i;:::-;;;;;;;;12749:102;12360:498;26784:76::o;26492:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;27199:218::-;18558:13;:11;:13::i;:::-;27405:4:::1;27356:21;:27;27378:4;27356:27;;;;;;;;;;;;;;;:39;27384:10;27356:39;;;;;;;;;;;;;;;:46;27396:5;27356:46;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:53;;;;27199:218:::0;;;;:::o;18672:87::-;18718:7;18745:6;;;;;;;;;;;18738:13;;18672:87;:::o;27025:166::-;18558:13;:11;:13::i;:::-;27171:12:::1;27145:17;:23;27163:4;27145:23;;;;;;;;;;;;;;;:38;;;;;;;;;;;;:::i;:::-;;27025:166:::0;;:::o;19578:201::-;18558:13;:11;:13::i;:::-;19687:1:::1;19667:22;;:8;:22;;::::0;19659:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19743:28;19762:8;19743:18;:28::i;:::-;19578:201:::0;:::o;26868:149::-;18558:13;:11;:13::i;:::-;26998:11:::1;26978:10;:17;26989:5;26978:17;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:31;;;;26868:149:::0;;:::o;18837:132::-;18912:12;:10;:12::i;:::-;18901:23;;:7;:5;:7::i;:::-;:23;;;18893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18837:132::o;19939:191::-;20013:16;20032:6;;;;;;;;;;;20013:25;;20058:8;20049:6;;:17;;;;;;;;;;;;;;;;;;20113:8;20082:40;;20103:8;20082:40;;;;;;;;;;;;20002:128;19939:191;:::o;1728:326::-;1788:4;2045:1;2023:7;:19;;;:23;2016:30;;1728:326;;;:::o;18215:97::-;14514:13;;;;;;;;;;;14506:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;18278:26:::1;:24;:26::i;:::-;18215:97::o:0;16701:98::-;16754:7;16781:10;16774:17;;16701:98;:::o;18320:113::-;14514:13;;;;;;;;;;;14506:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;18393:32:::1;18412:12;:10;:12::i;:::-;18393:18;:32::i;:::-;18320:113::o:0;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:108::-;923:1;916:5;913:12;903:40;;939:1;936;929:12;903:40;841:108;:::o;955:157::-;1010:5;1048:6;1035:20;1026:29;;1064:42;1100:5;1064:42;:::i;:::-;955:157;;;;:::o;1118:637::-;1204:6;1212;1220;1269:2;1257:9;1248:7;1244:23;1240:32;1237:119;;;1275:79;;:::i;:::-;1237:119;1395:1;1420:53;1465:7;1456:6;1445:9;1441:22;1420:53;:::i;:::-;1410:63;;1366:117;1522:2;1548:53;1593:7;1584:6;1573:9;1569:22;1548:53;:::i;:::-;1538:63;;1493:118;1650:2;1676:62;1730:7;1721:6;1710:9;1706:22;1676:62;:::i;:::-;1666:72;;1621:127;1118:637;;;;;:::o;1761:77::-;1798:7;1827:5;1816:16;;1761:77;;;:::o;1844:118::-;1931:24;1949:5;1931:24;:::i;:::-;1926:3;1919:37;1844:118;;:::o;1968:222::-;2061:4;2099:2;2088:9;2084:18;2076:26;;2112:71;2180:1;2169:9;2165:17;2156:6;2112:71;:::i;:::-;1968:222;;;;:::o;2196:122::-;2269:24;2287:5;2269:24;:::i;:::-;2262:5;2259:35;2249:63;;2308:1;2305;2298:12;2249:63;2196:122;:::o;2324:139::-;2370:5;2408:6;2395:20;2386:29;;2424:33;2451:5;2424:33;:::i;:::-;2324:139;;;;:::o;2469:474::-;2537:6;2545;2594:2;2582:9;2573:7;2569:23;2565:32;2562:119;;;2600:79;;:::i;:::-;2562:119;2720:1;2745:53;2790:7;2781:6;2770:9;2766:22;2745:53;:::i;:::-;2735:63;;2691:117;2847:2;2873:53;2918:7;2909:6;2898:9;2894:22;2873:53;:::i;:::-;2863:63;;2818:118;2469:474;;;;;:::o;2949:118::-;3036:24;3054:5;3036:24;:::i;:::-;3031:3;3024:37;2949:118;;:::o;3073:222::-;3166:4;3204:2;3193:9;3189:18;3181:26;;3217:71;3285:1;3274:9;3270:17;3261:6;3217:71;:::i;:::-;3073:222;;;;:::o;3301:347::-;3369:6;3418:2;3406:9;3397:7;3393:23;3389:32;3386:119;;;3424:79;;:::i;:::-;3386:119;3544:1;3569:62;3623:7;3614:6;3603:9;3599:22;3569:62;:::i;:::-;3559:72;;3515:126;3301:347;;;;:::o;3654:783::-;3749:6;3757;3765;3773;3822:3;3810:9;3801:7;3797:23;3793:33;3790:120;;;3829:79;;:::i;:::-;3790:120;3949:1;3974:53;4019:7;4010:6;3999:9;3995:22;3974:53;:::i;:::-;3964:63;;3920:117;4076:2;4102:53;4147:7;4138:6;4127:9;4123:22;4102:53;:::i;:::-;4092:63;;4047:118;4204:2;4230:62;4284:7;4275:6;4264:9;4260:22;4230:62;:::i;:::-;4220:72;;4175:127;4341:2;4367:53;4412:7;4403:6;4392:9;4388:22;4367:53;:::i;:::-;4357:63;;4312:118;3654:783;;;;;;;:::o;4443:117::-;4552:1;4549;4542:12;4566:102;4607:6;4658:2;4654:7;4649:2;4642:5;4638:14;4634:28;4624:38;;4566:102;;;:::o;4674:180::-;4722:77;4719:1;4712:88;4819:4;4816:1;4809:15;4843:4;4840:1;4833:15;4860:281;4943:27;4965:4;4943:27;:::i;:::-;4935:6;4931:40;5073:6;5061:10;5058:22;5037:18;5025:10;5022:34;5019:62;5016:88;;;5084:18;;:::i;:::-;5016:88;5124:10;5120:2;5113:22;4903:238;4860:281;;:::o;5147:129::-;5181:6;5208:20;;:::i;:::-;5198:30;;5237:33;5265:4;5257:6;5237:33;:::i;:::-;5147:129;;;:::o;5282:311::-;5359:4;5449:18;5441:6;5438:30;5435:56;;;5471:18;;:::i;:::-;5435:56;5521:4;5513:6;5509:17;5501:25;;5581:4;5575;5571:15;5563:23;;5282:311;;;:::o;5599:117::-;5708:1;5705;5698:12;5739:710;5835:5;5860:81;5876:64;5933:6;5876:64;:::i;:::-;5860:81;:::i;:::-;5851:90;;5961:5;5990:6;5983:5;5976:21;6024:4;6017:5;6013:16;6006:23;;6077:4;6069:6;6065:17;6057:6;6053:30;6106:3;6098:6;6095:15;6092:122;;;6125:79;;:::i;:::-;6092:122;6240:6;6223:220;6257:6;6252:3;6249:15;6223:220;;;6332:3;6361:37;6394:3;6382:10;6361:37;:::i;:::-;6356:3;6349:50;6428:4;6423:3;6419:14;6412:21;;6299:144;6283:4;6278:3;6274:14;6267:21;;6223:220;;;6227:21;5841:608;;5739:710;;;;;:::o;6472:370::-;6543:5;6592:3;6585:4;6577:6;6573:17;6569:27;6559:122;;6600:79;;:::i;:::-;6559:122;6717:6;6704:20;6742:94;6832:3;6824:6;6817:4;6809:6;6805:17;6742:94;:::i;:::-;6733:103;;6549:293;6472:370;;;;:::o;6848:684::-;6941:6;6949;6998:2;6986:9;6977:7;6973:23;6969:32;6966:119;;;7004:79;;:::i;:::-;6966:119;7124:1;7149:53;7194:7;7185:6;7174:9;7170:22;7149:53;:::i;:::-;7139:63;;7095:117;7279:2;7268:9;7264:18;7251:32;7310:18;7302:6;7299:30;7296:117;;;7332:79;;:::i;:::-;7296:117;7437:78;7507:7;7498:6;7487:9;7483:22;7437:78;:::i;:::-;7427:88;;7222:303;6848:684;;;;;:::o;7538:329::-;7597:6;7646:2;7634:9;7625:7;7621:23;7617:32;7614:119;;;7652:79;;:::i;:::-;7614:119;7772:1;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7743:117;7538:329;;;;:::o;7873:492::-;7950:6;7958;8007:2;7995:9;7986:7;7982:23;7978:32;7975:119;;;8013:79;;:::i;:::-;7975:119;8133:1;8158:62;8212:7;8203:6;8192:9;8188:22;8158:62;:::i;:::-;8148:72;;8104:126;8269:2;8295:53;8340:7;8331:6;8320:9;8316:22;8295:53;:::i;:::-;8285:63;;8240:118;7873:492;;;;;:::o;8371:180::-;8419:77;8416:1;8409:88;8516:4;8513:1;8506:15;8540:4;8537:1;8530:15;8557:180;8605:77;8602:1;8595:88;8702:4;8699:1;8692:15;8726:4;8723:1;8716:15;8743:143;8800:5;8831:6;8825:13;8816:22;;8847:33;8874:5;8847:33;:::i;:::-;8743:143;;;;:::o;8892:351::-;8962:6;9011:2;8999:9;8990:7;8986:23;8982:32;8979:119;;;9017:79;;:::i;:::-;8979:119;9137:1;9162:64;9218:7;9209:6;9198:9;9194:22;9162:64;:::i;:::-;9152:74;;9108:128;8892:351;;;;:::o;9249:180::-;9297:77;9294:1;9287:88;9394:4;9391:1;9384:15;9418:4;9415:1;9408:15;9435:233;9474:3;9497:24;9515:5;9497:24;:::i;:::-;9488:33;;9543:66;9536:5;9533:77;9530:103;;9613:18;;:::i;:::-;9530:103;9660:1;9653:5;9649:13;9642:20;;9435:233;;;:::o;9674:169::-;9758:11;9792:6;9787:3;9780:19;9832:4;9827:3;9823:14;9808:29;;9674:169;;;;:::o;9849:233::-;9989:34;9985:1;9977:6;9973:14;9966:58;10058:16;10053:2;10045:6;10041:15;10034:41;9849:233;:::o;10088:366::-;10230:3;10251:67;10315:2;10310:3;10251:67;:::i;:::-;10244:74;;10327:93;10416:3;10327:93;:::i;:::-;10445:2;10440:3;10436:12;10429:19;;10088:366;;;:::o;10460:419::-;10626:4;10664:2;10653:9;10649:18;10641:26;;10713:9;10707:4;10703:20;10699:1;10688:9;10684:17;10677:47;10741:131;10867:4;10741:131;:::i;:::-;10733:139;;10460:419;;;:::o;10885:85::-;10930:7;10959:5;10948:16;;10885:85;;;:::o;10976:86::-;11011:7;11051:4;11044:5;11040:16;11029:27;;10976:86;;;:::o;11068:60::-;11096:3;11117:5;11110:12;;11068:60;;;:::o;11134:154::-;11190:9;11223:59;11239:42;11248:32;11274:5;11248:32;:::i;:::-;11239:42;:::i;:::-;11223:59;:::i;:::-;11210:72;;11134:154;;;:::o;11294:143::-;11387:43;11424:5;11387:43;:::i;:::-;11382:3;11375:56;11294:143;;:::o;11443:234::-;11542:4;11580:2;11569:9;11565:18;11557:26;;11593:77;11667:1;11656:9;11652:17;11643:6;11593:77;:::i;:::-;11443:234;;;;:::o;11683:225::-;11823:34;11819:1;11811:6;11807:14;11800:58;11892:8;11887:2;11879:6;11875:15;11868:33;11683:225;:::o;11914:366::-;12056:3;12077:67;12141:2;12136:3;12077:67;:::i;:::-;12070:74;;12153:93;12242:3;12153:93;:::i;:::-;12271:2;12266:3;12262:12;12255:19;;11914:366;;;:::o;12286:419::-;12452:4;12490:2;12479:9;12475:18;12467:26;;12539:9;12533:4;12529:20;12525:1;12514:9;12510:17;12503:47;12567:131;12693:4;12567:131;:::i;:::-;12559:139;;12286:419;;;:::o;12711:182::-;12851:34;12847:1;12839:6;12835:14;12828:58;12711:182;:::o;12899:366::-;13041:3;13062:67;13126:2;13121:3;13062:67;:::i;:::-;13055:74;;13138:93;13227:3;13138:93;:::i;:::-;13256:2;13251:3;13247:12;13240:19;;12899:366;;;:::o;13271:419::-;13437:4;13475:2;13464:9;13460:18;13452:26;;13524:9;13518:4;13514:20;13510:1;13499:9;13495:17;13488:47;13552:131;13678:4;13552:131;:::i;:::-;13544:139;;13271:419;;;:::o;13696:230::-;13836:34;13832:1;13824:6;13820:14;13813:58;13905:13;13900:2;13892:6;13888:15;13881:38;13696:230;:::o;13932:366::-;14074:3;14095:67;14159:2;14154:3;14095:67;:::i;:::-;14088:74;;14171:93;14260:3;14171:93;:::i;:::-;14289:2;14284:3;14280:12;14273:19;;13932:366;;;:::o;14304:419::-;14470:4;14508:2;14497:9;14493:18;14485:26;;14557:9;14551:4;14547:20;14543:1;14532:9;14528:17;14521:47;14585:131;14711:4;14585:131;:::i;:::-;14577:139;;14304:419;;;:::o
Swarm Source
ipfs://638ce469619c0dddea524ee5f5aed2cba1d790693580694df43e7a873ced64a3
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.