///** @file
//
//    VFR to produce the formset used by UI.
//
//  Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
//  SPDX-License-Identifier: BSD-2-Clause-Patent
//**/

#include "DriverHealthManagerVfr.h"

formset
  guid      = DRIVER_HEALTH_MANAGER_FORMSET_GUID,
  title     = STRING_TOKEN(STR_FORM_TITLE),
  help      = STRING_TOKEN(STR_FORM_HELP),
  classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID,

  form formid = DRIVER_HEALTH_FORM_ID,
      title  = STRING_TOKEN(STR_FORM_TITLE);

      label LABEL_BEGIN;
      label LABEL_END;

      suppressif TRUE;
          text
              help  = STRING_TOKEN(STR_NULL),
              text  = STRING_TOKEN(STR_NULL),
              flags = INTERACTIVE,
              key   = QUESTION_ID_REFRESH_MANAGER;
      endif;

  endform;
endformset;
