interface PriceOracle {
    /**
     * @notice Indicator that this is a PriceOracle contract (for inspection)
     */
    function isPriceOracle() external pure returns (bool);

    /**
      * @notice Get the underlying price of a aToken asset
      * @param aToken The aToken to get the underlying price of
      * @return The underlying asset price mantissa (scaled by 1e18).
      *  Zero means the price is unavailable.
      */
    function getUnderlyingPrice(AToken aToken) external view returns (uint);
}
function getUnderlyingPrice(AToken aToken) external view returns (uint);

/**
 * @notice Get the underlying price of a aToken asset
 * @param aToken The aToken to get the underlying price of
 * @return The underlying asset price mantissa (scaled by 1e18).
 *  Zero means the price is unavailable.
 */