/** @file
  GUID for MdeModulePkg PCD Token Space.

Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

**/

#ifndef _MDEMODULEPKG_TOKEN_SPACE_GUID_H_
#define _MDEMODULEPKG_TOKEN_SPACE_GUID_H_

#define MDEMODULEPKG_TOKEN_SPACE_GUID \
  { \
    0xA1AFF049, 0xFDEB, 0x442a, { 0xB3, 0x20, 0x13, 0xAB, 0x4C, 0xB7, 0x2B, 0xBC } \
  }

extern EFI_GUID gEfiMdeModulePkgTokenSpaceGuid;

#endif
