interface ERC165Interface {
    /// @notice Query if a contract implements an interface
    /// @param interfaceId The interface identifier, as specified in ERC-165
    /// @dev Interface identification is specified in ERC-165. This function
    ///      uses less than 30,000 gas.
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
/// @title ERC165Interface
/// @dev https://eips.ethereum.org/EIPS/eip-165
function supportsInterface(bytes4 interfaceId) external view returns (bool);

/// @notice Query if a contract implements an interface
/// @param interfaceId The interface identifier, as specified in ERC-165
/// @dev Interface identification is specified in ERC-165. This function
///      uses less than 30,000 gas.