interface ERC165
{

  /**
   * @dev Checks if the smart contract includes a specific interface.
   * This function uses less than 30,000 gas.
   * @param _interfaceID The interface identifier, as specified in ERC-165.
   * @return True if _interfaceID is supported, false otherwise.
   */
  function supportsInterface(
    bytes4 _interfaceID
  )
    external
    view
    returns (bool);
    
}
/**
 * @dev A standard for detecting smart contract interfaces. 
 * See: https://eips.ethereum.org/EIPS/eip-165.
 */
function supportsInterface(
  bytes4 _interfaceID
)
  external
  view
  returns (bool);

/**
 * @dev Checks if the smart contract includes a specific interface.
 * This function uses less than 30,000 gas.
 * @param _interfaceID The interface identifier, as specified in ERC-165.
 * @return True if _interfaceID is supported, false otherwise.
 */