[edk2-devel] [edk2-redfish-client][PATCH] RedfishClientPkg: Initial commit

Chang, Abner via groups.io posted 1 patch 11 months, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/edk2 tags/patchew/20230430140036.327-1-abner.chang@amd.com
RedfishClientPkg/Readme.md                    |  185 +++
.../Media/RedfishClientDriverStack.svg        | 1068 +++++++++++++++++
2 files changed, 1253 insertions(+)
create mode 100644 RedfishClientPkg/Readme.md
create mode 100644 RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg
[edk2-devel] [edk2-redfish-client][PATCH] RedfishClientPkg: Initial commit
Posted by Chang, Abner via groups.io 11 months, 3 weeks ago
From: Abner Chang <abner.chang@amd.com>

Initial commit of architecture diagrams and Readme.md

Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
---
 RedfishClientPkg/Readme.md                    |  185 +++
 .../Media/RedfishClientDriverStack.svg        | 1068 +++++++++++++++++
 2 files changed, 1253 insertions(+)
 create mode 100644 RedfishClientPkg/Readme.md
 create mode 100644 RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg

diff --git a/RedfishClientPkg/Readme.md b/RedfishClientPkg/Readme.md
new file mode 100644
index 0000000000..9e56fb9039
--- /dev/null
+++ b/RedfishClientPkg/Readme.md
@@ -0,0 +1,185 @@
+# UEFI Redfish Client EDK2 Implementation
+
+## Introduction
+UEFI Redfish Client EDK2 solution is implemented base on
+[*EDK2 Redfish Foundation*](https://github.com/tianocore/edk2/blob/master/RedfishPkg/Readme.md),
+the implementation utilizes the EFI protocols provided by EDK2 Redfish
+Foundation to communicate with the Redfish service for creating, consuming, and
+updating the Redfish properties which are managed by firmware. This solution
+requests the instance of **EFI REST EX Protocol** through EFI Redfish Discover
+Protocol and interacts with Redfish service using **EFI REST EX Protocol** later
+on. The essential part of this implementation is to map the EDK2 HII options to
+the corresponding Redfish properties that are already defined in the standard
+Redfish schemas published by
+[*DMTF Redfish working group*](https://www.dmtf.org/standards/redfish).
+The advantage of this design is to strengthen the interoperability among the
+servers produced by different OEMs when configuring the platform through Redfish
+service. Using the properties defined in Redfish standard schema for configuring
+platform reduces the overhead of Redfish client tools to have different
+implementations in order to compliant with OEM servers. The solution also
+reduces OEM-defined proprietary BIOS Attributes that lead to the divergence of
+platform configuration namings in Redfish BIOS Attribute Registry, however,
+those different namings refer to the same platform functionality.
+
+## The Scope of UEFI Redfish Client EDK2 Implementation
+-  Platform Configurable settings
+
+This is the first stage of UEFI Redfish Client EDK2 Implementation. Associate
+Redfish property with HII option.
+
+- Provisioning of Firmware Managed Platform Redfish Resource
+
+The current design of UEFI Redfish Client EDK2 Implementation can already
+support the provisioning of firmware-owned platform Redfish resource, however,
+this requires addtional support on edk2 HII. Therefore, provisioning of
+firmware managed platform Redfish resource would be the second stage.
+
+Below are the block diagrams of UEFI Redfish Client EDK2 Implementation.
+
+## <a name="[0]">EDK2 Redfish Client Implementation Diagrams</a>
+![UEFI Redfish Client Implementation](https://github.com/changab/edk2-staging/blob/edk2-redfish-client/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg?raw=true)
+
+## EFI EDK2 Redfish Client Framework
+The functionality of each block in the diagrams are described in belwo sections,
+
+### EDK2 Redfish Foundation ***[[1]](#[0])***
+EDK2 Redfish Redfish Foundation provides the facilities of communicating with
+Redfish service. Such as the discovery of Redfish service, the credential to
+access Redfish service, *EFI REST EX Protocol* instance which is the transport
+layer to Redfish service, and so on. Please refer to
+[*EDK2 Redfish Foundation*](https://github.com/tianocore/edk2/blob/master/RedfishPkg/Readme.md).
+
+### Redfish Profile Simulator ***[[2]](#[0])***
+Redfish Profile Simulator is an
+[*open source project*](https://github.com/DMTF/Redfish-Profile-Simulator) on
+DMTF GitHub, which simulates the HTTP request methods (POST, PATCH, PUT, GET) on
+Redfish resource maintained by Redfish Profile Simulator. EDK2 open source uses
+this simulator for the use case when Redfish service has not been set up on the
+platform, or for the quick Redfish firmware feature development. We clone this
+project under RedfishClientPkg and maintain it by edk2 because this project has
+currently been using and updating rarely. That is easier for edk2 to add
+features to the simulator or modify the simulator to align with edk2 requirement
+on Redfish service, such as ETAG and HTTP POST support. <br>
+Another open source project of Redfish simulator is
+[*Redfish Interface Emulator*](https://github.com/DMTF/Redfish-Interface-Emulator),
+however, we don't pay much attention to this project because we have been
+dedicating to Redfish Profile Simulator since we started the UEFI Redfish EDK2
+project.
+
+### EDK2 Redfish JSON Schema to C Structure Convertor ***[[3]](#[0])***
+This is the script auto-generated EDK2 drivers and libraries that provide the
+Redfish schema naming based JSON to C structure and vise versa converters. C
+structure is another representation of Redfish properties other than JSON and
+CSDL(XML). The higher layer Redfish client application can deal with C structure
+instead of using JSON library to manipulate Redfish properties. The script
+[*Redfish Schema C Struct Generator*](https://github.com/DMTF/Redfish-Schema-C-Struct-Generator)
+is still a private project on DMTF GitHub. Below is the reference of script
+auto-generated
+[*Redfish JSON C Struct Converter Lib*](https://github.com/changab/Redfish-JSON-C-Struct-Converter-Lib)
+libraries. The converters generated by the script are followed
+**EFI REST JSON Structure Protocol** defined in UEFI spec 2.8, section 29.7.3.
+
+### EDK2 Redfish Non-Collection ***[[4]](#[0])*** and Collection ***[[5]](#[0])
+*** Feature Drivers EDK2 Redfish feature driver is an intermediary driver that
+sits between **JSON Schema to C Structure converters** and **EFI Platform
+Configuration to Redfish Protocol**. The Redfish feature driver gets and sets
+the platform configuration and incorporates it with Redfish JSON schema C
+structure to manipulate Redfish JSON resources. Then applies the settings from
+Redfish service to platform configurations, or vise versa to update platform
+configurations to Redfish service. Both EDK2 Redfish Non-Collection and
+Collection Feature drivers are script auto-generated base on Redfish schema
+naming. The EDK2 Redfish Non-Collection feature driver manages the resource of
+specific Resdifsh resource type, while the EDK2 Redfish Collection feature
+driver manages the members which have the same resource type in collection
+resource (e.g the ComputerSystem resource and ComputerSystemCollection resource)
+.
+
+### EDKII Redfish Platform Config Protocol ***[[6]](#[0])***
+EDKII Redfish Platform Config Protocol is an abstract driver that abstracts the
+platform configuration format and storage from EDK2 Redfish Feature driver.
+This protocol provides the interfaces to get and set platform configuration with
+the format and configuration storage agnostic to the Redfish feature driver.
+The platform can provide its own EDKII Redfish Platform Config driver instance
+to access platform-specific configuration format and storage. On EDK2 open
+source, EDKII Redfish Platform Config Protocol accesses the platform
+configuration in EDK2 HII defined format.
+
+Below is the prototype of **EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL**,
+
+```C
+struct _EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL {
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_VALUE             GetValue;
+  EDKII_REDFISH_PLATFORM_CONFIG_SET_VALUE             SetValue;
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_CONFIG_LANG       GetConfigureLang;
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_SUPPORTED_SCHEMA  GetSupportedSchema;
+};
+```
+
+### Other instances of EDKII Redfish Platform Config Protocol ***[[7]](#[0])***
+For those Non-EDK2 HII-based platform configuration formats, the driver instance
+can provide its own implementation to get or set the platform configurations.
+
+### EDK2 HII VFR Form ***[[8]](#[0])***
+According to **UEFI spec 2.9 section 35.6 Form Browser Protocol**,
+**EFI_HII_REST_STYLE_FORMSET_GUID** is used on HII form to indicate that HII
+options declared in this form intend to interact with the REST architectural
+style. On edk2 open source, the REST architectural style refers to the Redfish
+service. Besides **EFI_HII_REST_STYLE_FORMSET_GUID** is defined in the form
+scope, **EFI_IFR_FLAG_REST_STYLE** can be assigned to the HII options that
+indicate those options intend to interact with the REST service.
+
+### EDK2 HII UNI file ***[[9]](#[0])***
+x-uefi-redfish Configure Language is used in UNI file to associate HII option
+with the particular Redfish property. The Hii options interact with EDK2 Redfish
+Feature driver if the string of HII option is assigned with x-uefi-redfish
+Language as in below,
+
+```C
+x-uefi-redfish-$(NAMESPACE)
+where $(NAMESPACE) is the combination of Redfish ResourceTypeName and schema version.
+```
+For example, if the HII option is mapped to the property in Processor.v1_0_0.
+The x-uefi-redfish configure language is declared as below,
+```C
+x-uefi-redfish-Processor.v1_0_0
+```
+#### x-uefi-redfish Configure Language format:
+- The string declared with x-uefi-redfish configure language is a path to the property
+in Redfish resource
+- The root of path is the Redfish resource type indicated in x-uefi-redfish configure
+language
+- The path is relative to root of Redfish resource type, not related to Redfish service
+- root.
+
+#### Examples,
+```C
+Properties:
+
+#string STR_BOOT_SOURCE_OVERRIDE_ENABLED_PROMPT #language x_uefi_redfish_ComputerSystem.v1_0_0  "/Boot/BootSourceOverrideEnabled"
+#string STR_BOOT_SOURCE_OVERRIDE_MODE_PROMPT    #language x_uefi_redfish_ComputerSystem.v1_0_0  "/Boot/BootSourceOverrideMode"
+#string STR_BOOT_SOURCE_OVERRIDE_TARGET_PROMPT  #language x_uefi_redfish_ComputerSystem.v1_0_0  "/Boot/BootSourceOverrideTarget"
+```
+```C
+Properties in array object [NUM]:
+
+#string STR_BOOT_ORDER_1_PROMPT  #language x_uefi_redfish_ComputerSystem.v1_11_0  "/Boot/BootOrder/[1]/Boot0001"
+#string STR_BOOT_ORDER_2_PROMPT  #language x_uefi_redfish_ComputerSystem.v1_11_0  "/Boot/BootOrder/[2]/Boot0002"
+#string STR_BOOT_ORDER_3_PROMPT  #language x_uefi_redfish_ComputerSystem.v1_11_0  "/Boot/BootOrder/[3]/Boot0003"
+```
+```C
+Properties in collection object {NUM}:
+
+#string STR_MEMORY_1_BASE_MODULE_TYPE_PROMPT  #language x_uefi_redfish_Memory.v1_7_1  "/Memory/{1}/BaseModuleType"
+#string STR_MEMORY_2_BASE_MODULE_TYPE_PROMPT  #language x_uefi_redfish_Memory.v1_7_1  "/Memory/{2}/BaseModuleType"
+#string STR_MEMORY_3_BASE_MODULE_TYPE_PROMPT  #language x_uefi_redfish_Memory.v1_7_1  "/Memory/{3}/BaseModuleType"
+```
+
+### EDK2 Build Tool ***[[10]](#[0])***
+EDK2 Build is responsible to pull the necessary EDK2 Redfish JSON Schema to C
+Structure Convertors and EDK2 Redfish Feature drivers into edk2 build process
+according to the x-uefi-Redfish config language used in the HII VFR forms.
+
+## The Contributors
+Chang, Abner <abner.chang@hpe.com>\
+Wang, Nickle <nickle.wang@hpe.com>\
+Chen, Aaron <aaron.chen@hpe.com>
diff --git a/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg b/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg
new file mode 100644
index 0000000000..881d9647e5
--- /dev/null
+++ b/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg
@@ -0,0 +1,1068 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by Microsoft Visio, SVG Export RedfishClientDriverStack.svg Page-2 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
+		xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="12.1281in" height="9.93872in"
+		viewBox="0 0 873.222 715.588" xml:space="preserve" color-interpolation-filters="sRGB" class="st69">
+	<v:documentProperties v:langID="1033" v:viewMarkup="false">
+		<v:userDefs>
+			<v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/>
+		</v:userDefs>
+	</v:documentProperties>
+
+	<style type="text/css">
+	<![CDATA[
+		.st1 {fill:#ffffff;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+		.st2 {fill:#ebf1df;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+		.st3 {fill:#ff1a1a;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+		.st4 {fill:#ffffff;font-family:Calibri;font-size:1.00001em;font-weight:bold}
+		.st5 {font-size:1em}
+		.st6 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+		.st7 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-weight:bold}
+		.st8 {fill:#dbeef3;stroke:#d8d8d8;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+		.st9 {fill:#ffffff;font-family:Calibri;font-size:1.08334em;font-weight:bold}
+		.st10 {visibility:visible}
+		.st11 {fill:none;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4}
+		.st12 {fill:none;stroke:#bfbfbf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+		.st13 {fill:#000000;font-family:Arial;font-size:1.99999em;font-style:italic;font-weight:bold}
+		.st14 {marker-end:url(#mrkr2-45);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}
+		.st15 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.42986425339367}
+		.st16 {fill:#000000;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+		.st17 {fill:#ffffff;font-family:Arial;font-size:1.33333em;font-weight:bold}
+		.st18 {fill:#ffffff;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+		.st19 {fill:#7f7f7f;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+		.st20 {fill:#ffffff;font-family:Calibri;font-size:1.08334em}
+		.st21 {fill:#000000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+		.st22 {fill:#000000;font-family:Calibri;font-size:0.833336em;font-weight:bold}
+		.st23 {marker-start:url(#mrkr10-112);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25}
+		.st24 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.40983606557377}
+		.st25 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+		.st26 {fill:#000000;fill-opacity:0.4;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-dasharray:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4}
+		.st27 {fill:#0070c0;fill-opacity:0.72;stroke:#003f6c;stroke-dasharray:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+		.st28 {fill:#0070c0;stroke:#003f6c;stroke-dasharray:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+		.st29 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-style:italic;font-weight:bold}
+		.st30 {fill:#ffffff;stroke:#000000;stroke-dasharray:1.68,1.2;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+		.st31 {fill:#000000;font-family:Calibri;font-size:0.833336em}
+		.st32 {fill:#ffffff;stroke:#000000;stroke-dasharray:3.5,2.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.5}
+		.st33 {stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:4.5}
+		.st34 {fill:#000000;fill-opacity:0.38;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.38}
+		.st35 {fill:#000000;fill-opacity:0.38;stroke:#000000;stroke-opacity:0.38;stroke-width:0.22935779816514}
+		.st36 {fill:#f2f2f2;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+		.st37 {fill:#7f7f7f;fill-opacity:1;stroke:#7f7f7f;stroke-opacity:1;stroke-width:0.22935779816514}
+		.st38 {fill:#d8d8d8;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+		.st39 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+		.st40 {fill:#000000;fill-opacity:0.4;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4}
+		.st41 {fill:#0070c0;stroke:#003f6c;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+		.st42 {fill:#ffffff;stroke:#000000;stroke-dasharray:9.5,2.5,3.5,2.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.5}
+		.st43 {fill:#ffffff;stroke:#000000;stroke-dasharray:3.5,2.5,3.5,2.5,0,2.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.5}
+		.st44 {marker-end:url(#mrkr4-212);marker-start:url(#mrkr4-210);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.25}
+		.st45 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.47169811320755}
+		.st46 {fill:#ffffff;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
+		.st47 {fill:#000000;font-family:Calibri;font-size:1.16666em;font-style:italic;font-weight:bold}
+		.st48 {font-family:Arial;font-size:0.571431em;font-style:normal;font-weight:normal}
+		.st49 {font-family:Arial;font-size:0.571431em;font-style:normal}
+		.st50 {fill:#ea700d;font-family:Arial;font-size:0.571431em;font-style:normal}
+		.st51 {fill:#ffffff;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+		.st52 {fill:#d8d8d8;font-family:Calibri;font-size:0.833336em;font-style:italic;font-weight:bold}
+		.st53 {font-size:1.20001em;font-style:normal;font-weight:normal}
+		.st54 {font-size:1em;font-style:normal;font-weight:normal}
+		.st55 {fill:#f59d56;font-size:1em;font-style:normal;font-weight:normal}
+		.st56 {marker-end:url(#mrkr2-350);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}
+		.st57 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.44247787610619}
+		.st58 {marker-end:url(#mrkr2-383);marker-start:url(#mrkr2-381);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+		.st59 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.22935779816514}
+		.st60 {fill:#000000;font-family:Calibri;font-size:0.75em;font-style:italic;font-weight:bold}
+		.st61 {fill:#000000;font-family:Calibri;font-size:0.75em;font-weight:bold}
+		.st62 {fill:#0070c0;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+		.st63 {fill:#595959;stroke:none;stroke-linecap:butt;stroke-width:0.75}
+		.st64 {marker-start:url(#mrkr4-405);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25}
+		.st65 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.3315649867374}
+		.st66 {marker-end:url(#mrkr4-411);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25}
+		.st67 {marker-end:url(#mrkr10-430);marker-start:url(#mrkr10-112);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25}
+		.st68 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25}
+		.st69 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+	]]>
+	</style>
+
+	<defs id="Markers">
+		<g id="lend2">
+			<path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+		</g>
+		<marker id="mrkr2-45" class="st15" v:arrowType="2" v:arrowSize="2" v:setback="2.13684" refX="-2.1368421052632"
+				orient="auto" markerUnits="strokeWidth" overflow="visible">
+			<use xlink:href="#lend2" transform="scale(-2.3263157894737,-2.3263157894737) "/>
+		</marker>
+		<g id="lend10">
+			<path
+					d="M 0 0.75 C -0.414214 0.75 -0.75 0.414214 -0.75 0 -0.75 -0.414214 -0.414214 -0.75 0 -0.75 0.414214 -0.75 0.75 -0.414214 0.75 0 0.75 0.414214 0.414214 0.75 0 0.75 Z "
+					style="stroke:none"/>
+		</g>
+		<marker id="mrkr10-112" class="st24" v:arrowType="10" v:arrowSize="1" v:setback="1.542" refX="1.542" orient="auto"
+				markerUnits="strokeWidth" overflow="visible">
+			<use xlink:href="#lend10" transform="scale(2.44) "/>
+		</marker>
+		<g id="lend42">
+			<path
+					d="M 0 0.75 C -0.414214 0.75 -0.75 0.414214 -0.75 0 -0.75 -0.414214 -0.414214 -0.75 0 -0.75 0.414214 -0.75 0.75 -0.414214 0.75 0 0.75 0.414214 0.414214 0.75 0 0.75 Z "
+					style="stroke:none"/>
+		</g>
+		<marker id="mrkr42-163" class="st35" v:arrowType="42" v:arrowSize="2" v:setback="3.27" refX="3.27" orient="auto"
+				markerUnits="strokeWidth" overflow="visible">
+			<use xlink:href="#lend42" transform="scale(4.36) "/>
+		</marker>
+		<marker id="mrkr42-167" class="st37" v:arrowType="42" v:arrowSize="2" v:setback="3.27" refX="3.27" orient="auto"
+				markerUnits="strokeWidth" overflow="visible">
+			<use xlink:href="#lend42" transform="scale(4.36) "/>
+		</marker>
+		<g id="lend4">
+			<path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/>
+		</g>
+		<marker id="mrkr4-210" class="st45" v:arrowType="4" v:arrowSize="2" v:setback="4.08" refX="4.08" orient="auto"
+				markerUnits="strokeWidth" overflow="visible">
+			<use xlink:href="#lend4" transform="scale(2.12) "/>
+		</marker>
+		<marker id="mrkr4-212" class="st45" v:arrowType="4" v:arrowSize="2" v:setback="4.08" refX="-4.08" orient="auto"
+				markerUnits="strokeWidth" overflow="visible">
+			<use xlink:href="#lend4" transform="scale(-2.12,-2.12) "/>
+		</marker>
+		<marker id="mrkr2-350" class="st57" v:arrowType="2" v:arrowSize="2" v:setback="2.08" refX="-2.08" orient="auto"
+				markerUnits="strokeWidth" overflow="visible">
+			<use xlink:href="#lend2" transform="scale(-2.26,-2.26) "/>
+		</marker>
+		<marker id="mrkr2-381" class="st59" v:arrowType="2" v:arrowSize="2" v:setback="3.88" refX="3.88" orient="auto"
+				markerUnits="strokeWidth" overflow="visible">
+			<use xlink:href="#lend2" transform="scale(4.36) "/>
+		</marker>
+		<marker id="mrkr2-383" class="st59" v:arrowType="2" v:arrowSize="2" v:setback="3.88" refX="-3.88" orient="auto"
+				markerUnits="strokeWidth" overflow="visible">
+			<use xlink:href="#lend2" transform="scale(-4.36,-4.36) "/>
+		</marker>
+		<marker id="mrkr4-405" class="st65" v:arrowType="4" v:arrowSize="2" v:setback="5.744" refX="5.744" orient="auto"
+				markerUnits="strokeWidth" overflow="visible">
+			<use xlink:href="#lend4" transform="scale(3.016) "/>
+		</marker>
+		<marker id="mrkr4-411" class="st65" v:arrowType="4" v:arrowSize="2" v:setback="6.032" refX="-6.032" orient="auto"
+				markerUnits="strokeWidth" overflow="visible">
+			<use xlink:href="#lend4" transform="scale(-3.016,-3.016) "/>
+		</marker>
+		<marker id="mrkr10-430" class="st24" v:arrowType="10" v:arrowSize="1" v:setback="1.542" refX="-1.542" orient="auto"
+				markerUnits="strokeWidth" overflow="visible">
+			<use xlink:href="#lend10" transform="scale(-2.44,-2.44) "/>
+		</marker>
+	</defs>
+	<defs id="Filters">
+		<filter id="filter_3.3333334922791">
+			<feGaussianBlur stdDeviation="3.3333334922791"/>
+		</filter>
+	</defs>
+	<g v:mID="8" v:index="1" v:groupContext="backgroundPage">
+		<v:userDefs>
+			<v:ud v:nameU="msvVisioCreated" v:prompt="" v:val="VT0(0):26"/>
+		</v:userDefs>
+		<title>VBackground-1</title>
+		<v:pageProperties width="12.1281" height="9.93872" v:drawingScale="1" v:pageScale="1" v:drawingUnits="19"
+				v:shadowOffsetX="9" v:shadowOffsetY="-9"/>
+		<g id="shape1-1" v:mID="1" v:groupContext="shape">
+			<title>Solid</title>
+			<v:userDefs>
+				<v:ud v:nameU="Background" v:val="VT0(0):26"/>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+				<v:ud v:nameU="msvShapeCategories" v:prompt="" v:val="VT4(DoNotContain)"/>
+				<v:ud v:nameU="msvVisioCreated" v:prompt="" v:val="VT0(0):26"/>
+			</v:userDefs>
+			<rect x="0" y="0" width="873.222" height="715.588" class="st1"/>
+		</g>
+	</g>
+	<g v:mID="4" v:index="3" v:groupContext="foregroundPage">
+		<title>Page-2</title>
+		<v:pageProperties v:drawingScale="1" v:pageScale="1" v:drawingUnits="19" v:shadowOffsetX="9" v:shadowOffsetY="-9"/>
+		<v:layer v:name="Connector" v:index="0"/>
+		<g id="shape52-3" v:mID="52" v:groupContext="shape" transform="translate(336.222,-197.713)">
+			<title>Rectangle.52</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<rect x="0" y="598.588" width="495" height="117" class="st2"/>
+		</g>
+		<g id="group5-5" transform="translate(772.722,-60.4625)" v:mID="5" v:groupContext="group">
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<title>Can</title>
+			<desc>Redfish Service</desc>
+			<g id="shape6-6" v:mID="6" v:groupContext="shape">
+				<title>Sheet.6</title>
+				<v:userDefs>
+					<v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/>
+					<v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/>
+					<v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.15625):1"/>
+					<v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT5(#ff1a1a)"/>
+				</v:userDefs>
+				<path d="M0 704.34 A26.4375 11.25 -180 1 0 52.88 704.34 L52.88 663.84 L0 663.84 L0 704.34 Z" class="st3"/>
+			</g>
+			<g id="shape5-8" v:mID="5" v:groupContext="groupContent">
+				<v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="2"/>
+				<v:textRect cx="26.4375" cy="684.088" width="52.88" height="63"/>
+				<ellipse cx="26.4375" cy="663.838" rx="26.4375" ry="11.25" class="st3"/>
+				<text x="7.83" y="693.59" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Redfish <tspan
+							x="8.6" dy="1.2em" class="st5">Service</tspan></text>			</g>
+		</g>
+		<g id="shape8-12" v:mID="8" v:groupContext="shape" transform="translate(746.847,-24.4625)">
+			<title>Sheet.8</title>
+			<desc>Redfish Profile Simulator On Network</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="54" cy="702.088" width="108" height="27"/>
+			<rect x="0" y="688.588" width="108" height="27" class="st6"/>
+			<text x="17.62" y="693.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Redfish Profile <tspan
+						x="21.08" dy="1em" class="st5">Simulator On </tspan><tspan x="32.24" dy="1em" class="st5">Network</tspan></text>		</g>
+		<g id="shape10-17" v:mID="10" v:groupContext="shape" transform="translate(408.222,-82.9625)">
+			<title>Sheet.10</title>
+			<desc>EFI REST EX</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="130.5" cy="697.588" width="261" height="36"/>
+			<rect x="0" y="679.588" width="261" height="36" class="st8"/>
+			<text x="99.8" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI REST EX  </text>		</g>
+		<g id="shape12-20" v:mID="12" v:groupContext="shape" transform="translate(57.2224,-197.713)">
+			<title>Rectangle</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<rect x="0" y="598.588" width="234" height="117" class="st2"/>
+		</g>
+		<g id="shape13-22" v:mID="13" v:groupContext="shape" transform="translate(30.2224,-24.4625)">
+			<title>Rounded Rectangle.76</title>
+			<v:userDefs>
+				<v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/>
+				<v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/>
+				<v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+				<v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.125):1"/>
+				<v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.125):1"/>
+				<v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.125):1"/>
+				<v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.125):1"/>
+			</v:userDefs>
+			<g id="shadow13-23" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+					v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-6.84,-13.2318)" class="st10">
+				<path d="M9 715.59 L675 715.59 A8.99985 8.99985 -180 0 0 684 706.59 L684 616.59 A8.99985 8.99985 -180 0 0 675 607.59
+							 L9 607.59 A8.99985 8.99985 -180 0 0 0 616.59 L0 706.59 A8.99985 8.99985 -180 0 0 9 715.59 Z"
+						class="st11"/>
+			</g>
+			<path d="M9 715.59 L675 715.59 A8.99985 8.99985 -180 0 0 684 706.59 L684 616.59 A8.99985 8.99985 -180 0 0 675 607.59
+						 L9 607.59 A8.99985 8.99985 -180 0 0 0 616.59 L0 706.59 A8.99985 8.99985 -180 0 0 9 715.59 Z" class="st12"/>
+		</g>
+		<g id="shape16-27" v:mID="16" v:groupContext="shape" transform="translate(75.2224,-82.9625)">
+			<title>Sheet.16</title>
+			<desc>EFI REST JSON to C Structure</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="130.5" cy="697.588" width="261" height="36"/>
+			<rect x="0" y="679.588" width="261" height="36" class="st8"/>
+			<text x="53.89" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI REST JSON to C Structure</text>		</g>
+		<g id="shape17-30" v:mID="17" v:groupContext="shape" transform="translate(408.222,-37.9625)">
+			<title>Sheet.17</title>
+			<desc>EFI Network Stack</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="130.5" cy="697.588" width="261" height="36"/>
+			<rect x="0" y="679.588" width="261" height="36" class="st8"/>
+			<text x="81.72" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI Network Stack</text>		</g>
+		<g id="shape18-33" v:mID="18" v:groupContext="shape" transform="translate(75.2224,-37.9625)">
+			<title>Sheet.18</title>
+			<desc>EFI Redfish Discover Protocl</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="130.5" cy="697.588" width="261" height="36"/>
+			<rect x="0" y="679.588" width="261" height="36" class="st8"/>
+			<text x="55.56" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI Redfish Discover Protocl</text>		</g>
+		<g id="shape19-36" v:mID="19" v:groupContext="shape" transform="translate(291.222,-51.4625)">
+			<title>Sheet.19</title>
+			<desc>EDKII Redfish Foundation</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="92" cy="693.088" width="184.01" height="45"/>
+			<rect x="0" y="670.588" width="184" height="45" class="st6"/>
+			<text x="12.66" y="685.89" class="st13" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>EDKII Redfish <tspan
+						x="26.69" dy="1.2em" class="st5">Foundation</tspan></text>		</g>
+		<g id="shape20-40" v:mID="20" v:groupContext="shape" v:layerMember="0"
+				transform="translate(904.308,1335.5) rotate(-19.179) scale(1,-1)">
+			<title>Curve connect 1</title>
+			<v:userDefs>
+				<v:ud v:nameU="Scale" v:val="VT0(1):26"/>
+				<v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M0 715.59 A42.4531 42.4531 0 0 1 54.79 715.59 A42.4531 42.4531 -180 0 0 106.06 718.26 L106.35 718.04"
+					class="st14"/>
+		</g>
+		<g id="shape21-46" v:mID="21" v:groupContext="shape" transform="translate(18.9724,-139.213)">
+			<title>Sheet.21</title>
+			<desc>EDKII Redfish Client</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)" v:verticalText="true"/>
+			<v:textRect cx="12.375" cy="463.588" width="24.75" height="504" transform="rotate(-180)"/>
+			<rect x="0" y="211.588" width="24.75" height="504" class="st16"/>
+			<text x="-10.85" y="-540.93" writing-mode="tb-rl" transform="rotate(180)" class="st17" v:langID="1033"><v:paragraph
+						v:horizAlign="1"/><v:tabList/>EDKII Redfish Client</text>		</g>
+		<g id="shape24-49" v:mID="24" v:groupContext="shape" transform="translate(111.222,-253.963)">
+			<title>Sheet.24</title>
+			<rect x="0" y="670.588" width="153" height="45" class="st18"/>
+		</g>
+		<g id="shape25-51" v:mID="25" v:groupContext="shape" transform="translate(84.2224,-240.463)">
+			<title>Sheet.25</title>
+			<rect x="0" y="670.588" width="153" height="45" class="st18"/>
+		</g>
+		<g id="shape26-53" v:mID="26" v:groupContext="shape" transform="translate(75.2224,-226.963)">
+			<title>Sheet.26</title>
+			<desc>Script-generated Redfish JSON schema to C Structure convertor</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="76.5" cy="693.088" width="153" height="45"/>
+			<rect x="0" y="670.588" width="153" height="45" class="st19"/>
+			<text x="11.2" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated Redfish <tspan
+						x="29.22" dy="1em" class="st5">JSON schema to C </tspan><tspan x="24.45" dy="1em" class="st5">Structure convertor</tspan></text>		</g>
+		<g id="shape28-58" v:mID="28" v:groupContext="shape" transform="translate(241.722,-267.463)">
+			<title>Sheet.28</title>
+			<ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/>
+		</g>
+		<g id="shape29-60" v:mID="29" v:groupContext="shape" transform="translate(245.66,-272.525)">
+			<title>Sheet.29</title>
+			<ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/>
+		</g>
+		<g id="shape30-62" v:mID="30" v:groupContext="shape" transform="translate(250.16,-277.588)">
+			<title>Sheet.30</title>
+			<ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/>
+		</g>
+		<g id="shape31-64" v:mID="31" v:groupContext="shape" transform="translate(178.722,-204.463)">
+			<title>Sheet.31</title>
+			<desc>ComputerSystem</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="54" cy="702.088" width="108" height="27"/>
+			<rect x="0" y="688.588" width="108" height="27" class="st6"/>
+			<text x="18.16" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>ComputerSystem</text>		</g>
+		<g id="shape32-67" v:mID="32" v:groupContext="shape" transform="translate(201.222,-220.213)">
+			<title>Sheet.32</title>
+			<desc>BootOption</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="54" cy="702.088" width="108" height="27"/>
+			<rect x="0" y="688.588" width="108" height="27" class="st6"/>
+			<text x="29.69" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>BootOption</text>		</g>
+		<g id="shape33-70" v:mID="33" v:groupContext="shape" transform="translate(210.222,-233.713)">
+			<title>Sheet.33</title>
+			<desc>Memory</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="54" cy="702.088" width="108" height="27"/>
+			<rect x="0" y="688.588" width="108" height="27" class="st6"/>
+			<text x="36.21" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Memory</text>		</g>
+		<g id="shape34-73" v:mID="34" v:groupContext="shape" transform="translate(385.722,-247.213)">
+			<title>Sheet.34</title>
+			<rect x="0" y="670.588" width="153" height="45" class="st18"/>
+		</g>
+		<g id="shape35-75" v:mID="35" v:groupContext="shape" transform="translate(358.722,-233.713)">
+			<title>Sheet.35</title>
+			<rect x="0" y="670.588" width="153" height="45" class="st18"/>
+		</g>
+		<g id="shape36-77" v:mID="36" v:groupContext="shape" transform="translate(349.722,-220.213)">
+			<title>Sheet.36</title>
+			<desc>Script-generated EDK2 Redfish Feature Driver</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="76.5" cy="693.088" width="153" height="45"/>
+			<rect x="0" y="670.588" width="153" height="45" class="st19"/>
+			<text x="16.96" y="689.84" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated EDK2 <tspan
+						x="17.33" dy="1em" class="st5">Redfish Feature Driver</tspan></text>		</g>
+		<g id="shape40-81" v:mID="40" v:groupContext="shape" transform="translate(453.222,-197.713)">
+			<title>Sheet.40</title>
+			<desc>ComputerSystem</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="54" cy="702.088" width="108" height="27"/>
+			<rect x="0" y="688.588" width="108" height="27" class="st6"/>
+			<text x="18.16" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>ComputerSystem</text>		</g>
+		<g id="shape41-84" v:mID="41" v:groupContext="shape" transform="translate(475.722,-213.463)">
+			<title>Sheet.41</title>
+			<desc>BootOption</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="54" cy="702.088" width="108" height="27"/>
+			<rect x="0" y="688.588" width="108" height="27" class="st6"/>
+			<text x="29.69" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>BootOption</text>		</g>
+		<g id="shape42-87" v:mID="42" v:groupContext="shape" transform="translate(493.722,-226.963)">
+			<title>Sheet.42</title>
+			<desc>Memory</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="54" cy="702.088" width="108" height="27"/>
+			<rect x="0" y="688.588" width="108" height="27" class="st6"/>
+			<text x="36.21" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Memory</text>		</g>
+		<g id="shape43-90" v:mID="43" v:groupContext="shape" transform="translate(608.472,-249.463)">
+			<title>Sheet.43</title>
+			<rect x="0" y="670.588" width="153" height="45" class="st18"/>
+		</g>
+		<g id="shape46-92" v:mID="46" v:groupContext="shape" transform="translate(738.972,-262.963)">
+			<title>Sheet.46</title>
+			<ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/>
+		</g>
+		<g id="shape47-94" v:mID="47" v:groupContext="shape" transform="translate(742.91,-268.025)">
+			<title>Sheet.47</title>
+			<ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/>
+		</g>
+		<g id="shape48-96" v:mID="48" v:groupContext="shape" transform="translate(747.41,-273.088)">
+			<title>Sheet.48</title>
+			<ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/>
+		</g>
+		<g id="shape49-98" v:mID="49" v:groupContext="shape" transform="translate(660.222,-199.963)">
+			<title>Sheet.49</title>
+			<desc>ComputerSystemCollection</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="61.875" cy="702.088" width="123.75" height="27"/>
+			<rect x="0" y="688.588" width="123.75" height="27" class="st6"/>
+			<text x="5.3" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>ComputerSystemCollection</text>		</g>
+		<g id="shape50-101" v:mID="50" v:groupContext="shape" transform="translate(720.972,-215.713)">
+			<title>Sheet.50</title>
+			<desc>BootOptionCollection</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="54" cy="702.088" width="108" height="27"/>
+			<rect x="0" y="688.588" width="108" height="27" class="st6"/>
+			<text x="8.96" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>BootOptionCollection</text>		</g>
+		<g id="shape51-104" v:mID="51" v:groupContext="shape" transform="translate(732.222,-229.213)">
+			<title>Sheet.51</title>
+			<desc>MemoryCollection</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="54" cy="702.088" width="108" height="27"/>
+			<rect x="0" y="688.588" width="108" height="27" class="st6"/>
+			<text x="15.48" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>MemoryCollection</text>		</g>
+		<g id="shape56-107" v:mID="56" v:groupContext="shape" v:layerMember="0"
+				transform="translate(515.651,-269.34) rotate(-1.84761)">
+			<title>Curve connect 2.56</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 69.79 715.59" class="st23"/>
+		</g>
+		<g id="shape57-113" v:mID="57" v:groupContext="shape" transform="translate(581.472,-235.963)">
+			<title>Sheet.57</title>
+			<rect x="0" y="670.588" width="153" height="45" class="st18"/>
+		</g>
+		<g id="shape59-115" v:mID="59" v:groupContext="shape" v:layerMember="0" transform="translate(291.222,-242.713)">
+			<title>1-D double</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L31.5 710.19 L31.5 715.59 L45 702.09 L31.5 688.59
+						 L31.5 693.99 L13.5 693.99 Z" class="st25"/>
+		</g>
+		<g id="shape64-117" v:mID="64" v:groupContext="shape" transform="translate(619.722,-467.713)">
+			<title>Sheet.64</title>
+			<desc>EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="99" cy="693.088" width="198" height="45"/>
+			<g id="shadow64-118" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+					v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.98,-13.8618)" class="st10">
+				<path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st26"/>
+			</g>
+			<path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st27"/>
+			<text x="85.18" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDKII <tspan
+						x="5.65" dy="1em" class="st5">REDFISH</tspan>_PLATFORM_CONFIG_PRO<tspan x="81.03" dy="1em" class="st5">TOCOL</tspan></text>		</g>
+		<g id="shape65-125" v:mID="65" v:groupContext="shape" transform="translate(511.722,-445.213)">
+			<title>Sheet.65</title>
+			<desc>EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="99" cy="693.088" width="198" height="45"/>
+			<g id="shadow65-126" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+					v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.98,-13.8618)" class="st10">
+				<path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st26"/>
+			</g>
+			<path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st28"/>
+			<text x="85.18" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDKII <tspan
+						x="5.65" dy="1em" class="st5">REDFISH</tspan>_PLATFORM_CONFIG_PRO<tspan x="81.03" dy="1em" class="st5">TOCOL</tspan></text>		</g>
+		<g id="shape67-133" v:mID="67" v:groupContext="shape" transform="translate(536.472,-593.713)">
+			<title>Sheet.67</title>
+			<desc>Other Platform-specific Implementations</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="121.5" cy="702.088" width="243" height="27"/>
+			<rect x="0" y="688.588" width="243" height="27" class="st6"/>
+			<text x="20.02" y="705.09" class="st29" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Other Platform-specific Implementations</text>		</g>
+		<g id="group71-136" transform="translate(567.972,-530.713)" v:mID="71" v:groupContext="group">
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<title>Can.71</title>
+			<desc>EFI Variable/ FW Storage</desc>
+			<g id="shape72-137" v:mID="72" v:groupContext="shape">
+				<title>Sheet.72</title>
+				<v:userDefs>
+					<v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/>
+					<v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/>
+					<v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.0875):1"/>
+				</v:userDefs>
+				<path d="M0 709.29 A29.25 6.3 -180 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class="st30"/>
+			</g>
+			<g id="shape71-139" v:mID="71" v:groupContext="groupContent">
+				<v:textBlock v:margins="rect(4,4,4,4)"/>
+				<v:textRect cx="29.25" cy="684.088" width="58.5" height="63"/>
+				<ellipse cx="29.25" cy="658.888" rx="29.25" ry="6.3" class="st30"/>
+				<text x="23.25" y="675.09" class="st31" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>EFI <tspan
+							x="10.54" dy="1.2em" class="st5">Variable</tspan>/ <tspan x="5.79" dy="1.2em" class="st5">FW Storage</tspan></text>			</g>
+		</g>
+		<g id="group73-144" transform="translate(687.222,-530.713)" v:mID="73" v:groupContext="group">
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<title>Can.73</title>
+			<desc>Other Storage</desc>
+			<g id="shape74-145" v:mID="74" v:groupContext="shape">
+				<title>Sheet.74</title>
+				<v:userDefs>
+					<v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/>
+					<v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/>
+					<v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.0875):1"/>
+				</v:userDefs>
+				<path d="M0 709.29 A29.25 6.3 -180 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class="st30"/>
+			</g>
+			<g id="shape73-147" v:mID="73" v:groupContext="groupContent">
+				<v:textBlock v:margins="rect(4,4,4,4)"/>
+				<v:textRect cx="29.25" cy="684.088" width="58.5" height="63"/>
+				<ellipse cx="29.25" cy="658.888" rx="29.25" ry="6.3" class="st30"/>
+				<text x="17.41" y="681.09" class="st31" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Other <tspan
+							x="13.66" dy="1.2em" class="st5">Storage</tspan></text>			</g>
+		</g>
+		<g id="shape76-151" v:mID="76" v:groupContext="shape" v:layerMember="0" transform="translate(1306.06,184.875) rotate(90)">
+			<title>1-D double.76</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M6.75 704.79 L6.75 702.09 L0 708.84 L6.75 715.59 L6.75 712.89 L33.75 712.89 L33.75 715.59 L40.5 708.84 L33.75
+						 702.09 L33.75 704.79 L6.75 704.79 Z" class="st32"/>
+		</g>
+		<g id="shape77-153" v:mID="77" v:groupContext="shape" v:layerMember="0" transform="translate(1425.31,184.875) rotate(90)">
+			<title>1-D double.77</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M6.75 704.79 L6.75 702.09 L0 708.84 L6.75 715.59 L6.75 712.89 L11.25 712.89 L11.25 715.59 L18 708.84 L11.25
+						 702.09 L11.25 704.79 L6.75 704.79 Z" class="st32"/>
+		</g>
+		<g id="shape78-155" v:mID="78" v:groupContext="shape" transform="translate(21.2224,-139.213)">
+			<title>Sheet.78</title>
+			<path d="M0 715.59 L810 715.59" class="st33"/>
+		</g>
+		<g id="group80-158" transform="translate(-173.49,382.875) rotate(-90)" v:mID="80" v:groupContext="group">
+			<v:userDefs>
+				<v:ud v:nameU="ControlDistFromCorner" v:prompt="" v:val="VT0(0.35355339059327):1"/>
+				<v:ud v:nameU="AngToControl" v:prompt="" v:val="VT0(0.78539816339745):32"/>
+				<v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.25):1"/>
+				<v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.25):1"/>
+				<v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+				<v:ud v:nameU="ControlDistFromCorner" v:prompt="" v:val="VT0(0.57622152858081):1"/>
+				<v:ud v:nameU="AngToControl" v:prompt="" v:val="VT0(0.70862627212768):32"/>
+				<v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.44270833333333):1"/>
+				<v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.3794642857143):1"/>
+			</v:userDefs>
+			<title>Folded Corner</title>
+			<g id="shape80-159" v:mID="80" v:groupContext="groupContent">
+				<g id="shadow80-160" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+						v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-3.105,-9.45175)" class="st10">
+					<path d="M0 715.59 L278.62 715.59 L310.5 688.27 L310.5 229.59 L0 229.59 L0 715.59 Z" class="st34"/>
+				</g>
+				<path d="M0 715.59 L278.62 715.59 L310.5 688.27 L310.5 229.59 L0 229.59 L0 715.59 Z" class="st36"/>
+			</g>
+			<g id="shape81-168" v:mID="81" v:groupContext="shape" transform="translate(278.625,0)">
+				<title>Sheet.81</title>
+				<v:userDefs>
+					<v:ud v:nameU="ControlX" v:prompt="" v:val="VT0(1):1"/>
+					<v:ud v:nameU="ControlY" v:prompt="" v:val="VT0(0.25):1"/>
+					<v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.25):1"/>
+					<v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.25):1"/>
+					<v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/>
+					<v:ud v:nameU="ControlX" v:prompt="" v:val="VT0(3.9375):1"/>
+					<v:ud v:nameU="ControlY" v:prompt="" v:val="VT0(0.4375):1"/>
+					<v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.44270833333333):1"/>
+					<v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.3794642857143):1"/>
+					<v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT5(#f2f2f2)"/>
+				</v:userDefs>
+				<g id="shadow81-169" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+						v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-0.6375,-14.3117)" class="st10">
+					<path d="M0 715.59 L31.88 688.27 L4.87 684.09 L0 715.59 Z" class="st34"/>
+				</g>
+				<path d="M0 715.59 L31.88 688.27 L4.87 684.09 L0 715.59 Z" class="st38"/>
+			</g>
+		</g>
+		<g id="group82-175" transform="translate(432.972,-530.713)" v:mID="82" v:groupContext="group">
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<title>Can.69</title>
+			<desc>EDK2 HII Database</desc>
+			<g id="shape83-176" v:mID="83" v:groupContext="shape">
+				<title>Sheet.83</title>
+				<v:userDefs>
+					<v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/>
+					<v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/>
+					<v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.0875):1"/>
+				</v:userDefs>
+				<path d="M0 709.29 A29.25 6.3 -180 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class="st39"/>
+			</g>
+			<g id="shape82-178" v:mID="82" v:groupContext="groupContent">
+				<v:textBlock v:margins="rect(4,4,4,4)"/>
+				<v:textRect cx="29.25" cy="684.088" width="58.5" height="63"/>
+				<ellipse cx="29.25" cy="658.888" rx="29.25" ry="6.3" class="st39"/>
+				<text x="11.84" y="681.09" class="st31" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>EDK2 HII <tspan
+							x="10.24" dy="1.2em" class="st5">Database</tspan></text>			</g>
+		</g>
+		<g id="shape84-182" v:mID="84" v:groupContext="shape" transform="translate(390.222,-429.463)">
+			<title>Sheet.84</title>
+			<desc>EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="72" cy="693.088" width="144" height="45"/>
+			<g id="shadow84-183" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+					v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.44,-13.8618)" class="st10">
+				<rect x="0" y="670.588" width="144" height="45" class="st40"/>
+			</g>
+			<rect x="0" y="670.588" width="144" height="45" class="st41"/>
+			<text x="58.18" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDKII <tspan
+						x="6" dy="1em" class="st5">REDFISH</tspan>_PLATFORM_CO<tspan x="26.68" dy="1em" class="st5">NFIG</tspan>_PROTOCOL</text>		</g>
+		<g id="shape85-190" v:mID="85" v:groupContext="shape" v:layerMember="0" transform="translate(1171.06,184.875) rotate(90)">
+			<title>1-D double.75</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M6.75 704.79 L6.75 702.09 L0 708.84 L6.75 715.59 L6.75 712.89 L49.5 712.89 L49.5 715.59 L56.25 708.84 L49.5
+						 702.09 L49.5 704.79 L6.75 704.79 Z" class="st39"/>
+		</g>
+		<g id="shape86-192" v:mID="86" v:groupContext="shape" v:layerMember="0" transform="translate(1164.31,286.125) rotate(90)">
+			<title>1-D double.68</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<g id="shadow86-193" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+					v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.1475,-14.0418)" class="st10">
+				<path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L101.25 710.19 L101.25 715.59 L114.75 702.09
+							 L101.25 688.59 L101.25 693.99 L13.5 693.99 Z" class="st40"/>
+			</g>
+			<path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L101.25 710.19 L101.25 715.59 L114.75 702.09 L101.25
+						 688.59 L101.25 693.99 L13.5 693.99 Z" class="st39"/>
+		</g>
+		<g id="shape87-197" v:mID="87" v:groupContext="shape" transform="translate(27.9724,-616.213)">
+			<title>Sheet.87</title>
+			<desc>EDK2 Open Source Implementation</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="121.5" cy="702.088" width="243" height="27"/>
+			<rect x="0" y="688.588" width="243" height="27" class="st6"/>
+			<text x="34.39" y="705.09" class="st29" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDK2 Open Source Implementation</text>		</g>
+		<g id="shape88-200" v:mID="88" v:groupContext="shape" v:layerMember="0" transform="translate(1312.81,270.375) rotate(90)">
+			<title>1-D double.88</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L117 710.19 L117 715.59 L130.5 702.09 L117 688.59
+						 L117 693.99 L13.5 693.99 Z" class="st42"/>
+		</g>
+		<g id="shape89-202" v:mID="89" v:groupContext="shape" v:layerMember="0" transform="translate(1434.31,247.875) rotate(90)">
+			<title>1-D double.89</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L139.5 710.19 L139.5 715.59 L153 702.09 L139.5
+						 688.59 L139.5 693.99 L13.5 693.99 Z" class="st43"/>
+		</g>
+		<g id="shape90-204" v:mID="90" v:groupContext="shape" v:layerMember="0"
+				transform="translate(838.629,252.112) rotate(68.1986)">
+			<title>Curve connect 1.61</title>
+			<v:userDefs>
+				<v:ud v:nameU="Scale" v:val="VT0(1):26"/>
+				<v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M7.53 720.84 L7.83 721.04 A30.61 30.61 -180 0 0 42.41 715.59 A30.61 30.61 0 0 1 76.99 710.13 L77.29 710.34"
+					class="st44"/>
+		</g>
+		<g id="shape91-213" v:mID="91" v:groupContext="shape" v:layerMember="0"
+				transform="translate(-37.5816,162.844) rotate(-60.2551) scale(-1,1)">
+			<title>Curve connect 1.62</title>
+			<v:userDefs>
+				<v:ud v:nameU="Scale" v:val="VT0(1):26"/>
+				<v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M7.67 720.62 L7.98 720.82 A34.3918 34.3918 -180 0 0 45.35 715.59 A34.3918 34.3918 0 0 1 82.72 710.35 L83.03
+						 710.55" class="st44"/>
+		</g>
+		<g id="shape94-220" v:mID="94" v:groupContext="shape" v:layerMember="0"
+				transform="translate(488.651,-255.84) rotate(-1.84761)">
+			<title>Curve connect 2.54</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 69.79 715.59" class="st23"/>
+		</g>
+		<g id="shape96-225" v:mID="96" v:groupContext="shape" transform="translate(572.472,-222.463)">
+			<title>Sheet.96</title>
+			<desc>Script-generated EDK2 Redfish Collection Driver</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="76.5" cy="693.088" width="153" height="45"/>
+			<rect x="0" y="670.588" width="153" height="45" class="st19"/>
+			<text x="16.96" y="689.84" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated EDK2 <tspan
+						x="11.39" dy="1em" class="st5">Redfish Collection Driver</tspan></text>		</g>
+		<g id="shape98-229" v:mID="98" v:groupContext="shape" transform="translate(67.3474,-420.463)">
+			<title>Rounded Rectangle.98</title>
+			<desc>EDK2 HII UNI file #string STR_OPTION_A #language x-uefi-redfi...</desc>
+			<v:userDefs>
+				<v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/>
+				<v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/>
+				<v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+				<v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/>
+				<v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/>
+				<v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/>
+				<v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/>
+			<v:textRect cx="137.25" cy="672.838" width="274.5" height="85.5"/>
+			<path d="M7.73 715.59 L266.77 715.59 A7.73227 7.73227 -180 0 0 274.5 707.86 L274.5 637.82 A7.73227 7.73227 -180 0 0 266.77
+						 630.09 L7.73 630.09 A7.73227 7.73227 -180 0 0 -0 637.82 L0 707.86 A7.73227 7.73227 -180 0 0 7.73 715.59
+						 Z" class="st46"/>
+			<text x="4" y="646.69" class="st47" v:langID="1033"><v:paragraph v:spBefore="6" v:bulletSize="0.166667"/><v:tabList/>EDK2 HII UNI file<v:lf/><tspan
+						x="4" dy="1.425em" class="st48">#</tspan><tspan class="st48">string </tspan><tspan class="st49">STR</tspan><tspan
+						class="st49">_</tspan><tspan class="st49">OPTION</tspan><tspan class="st49">_</tspan><tspan class="st49">A</tspan><tspan
+						class="st48">  </tspan><tspan class="st48">#</tspan><tspan class="st48">language </tspan><tspan
+						class="st49">x</tspan><tspan class="st49">-</tspan><tspan class="st49">uefi</tspan><tspan class="st49">-</tspan><tspan
+						class="st49">redfish</tspan><tspan class="st49">-</tspan><tspan class="st49">SCHEMA</tspan><tspan
+						class="st49">.</tspan><tspan class="st49">VERSION</tspan><tspan class="st48">  </tspan><tspan class="st49"> </tspan><tspan
+						x="4" dy="1.2em" class="st50">“</tspan><tspan class="st50">/</tspan><tspan class="st50">SCHEMA</tspan><tspan
+						class="st50">/</tspan><tspan class="st50">PropertyA</tspan><tspan class="st49">” </tspan><tspan
+						class="st48"> <v:newlineChar/><v:paragraph v:bulletSize="0.166667"/></tspan><tspan x="4" dy="1.2em"
+						class="st48">#</tspan><tspan class="st48">string</tspan><tspan class="st49"> </tspan><tspan class="st49">STR</tspan><tspan
+						class="st49">_</tspan><tspan class="st49">OPTION</tspan><tspan class="st49">_</tspan><tspan class="st49">B</tspan><tspan
+						class="st48">  </tspan><tspan class="st48">#</tspan><tspan class="st48">language</tspan><tspan class="st49"> </tspan><tspan
+						class="st49">x</tspan><tspan class="st49">-</tspan><tspan class="st49">uefi</tspan><tspan class="st49">-</tspan><tspan
+						class="st49">redfish</tspan><tspan class="st49">-</tspan><tspan class="st49">SCHEMA</tspan><tspan
+						class="st49">.</tspan><tspan class="st49">VERSION</tspan><tspan class="st48">  </tspan><tspan class="st50"> </tspan><tspan
+						x="4" dy="1.2em" class="st50">“</tspan><tspan class="st50">/</tspan><tspan class="st50">SCHEMA</tspan><tspan
+						class="st50">/</tspan><tspan class="st50">PropertyB</tspan><tspan class="st50">”<v:newlineChar/></tspan><tspan
+						x="4" dy="1.2em" class="st48">#</tspan><tspan class="st48">string </tspan><tspan class="st49">STR</tspan><tspan
+						class="st49">_</tspan><tspan class="st49">OPTION</tspan><tspan class="st49">_</tspan><tspan class="st48">C  </tspan><tspan
+						class="st48">#</tspan><tspan class="st48">language</tspan><tspan class="st49"> </tspan><tspan class="st49">x</tspan><tspan
+						class="st49">-</tspan><tspan class="st49">uefi</tspan><tspan class="st49">-</tspan><tspan class="st49">redfish</tspan><tspan
+						class="st49">-</tspan><tspan class="st49">SCHEMA</tspan><tspan class="st49">.</tspan><tspan class="st49">VERSION</tspan><tspan
+						class="st48">  </tspan><tspan class="st50"> </tspan><tspan x="4" dy="1.312em" class="st50">“</tspan><tspan
+						class="st50">/</tspan><tspan class="st50">SCHEMA</tspan><tspan class="st50">/</tspan><tspan class="st50">PropertyC</tspan><tspan
+						class="st50">”</tspan><v:newlineChar/></text>		</g>
+		<g id="shape100-316" v:mID="100" v:groupContext="shape" transform="translate(171.972,-550.963)">
+			<title>Rounded Rectangle.100</title>
+			<desc>EDK2 HII VFR Form Option A Enabled Option B Disabled Option C...</desc>
+			<v:userDefs>
+				<v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/>
+				<v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/>
+				<v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+				<v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+				<v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+				<v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+				<v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/>
+			<v:textRect cx="76.5" cy="688.025" width="153" height="55.125"/>
+			<path d="M4.5 715.59 L148.5 715.59 A4.49993 4.49993 -180 0 0 153 711.09 L153 664.96 A4.49993 4.49993 -180 0 0 148.5 660.46
+						 L4.5 660.46 A4.49993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.59 Z"
+					class="st51"/>
+			<text x="37.65" y="671.66" class="st52" v:langID="1033"><v:paragraph v:spLine="-0.8" v:horizAlign="1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:lf/><tspan
+						x="24.37" dy="1.6em" class="st53">Option A        Enabled<v:newlineChar/></tspan><tspan x="24.6" dy="0.8em"
+						class="st53">Option B       Disabled<v:newlineChar/></tspan><tspan x="24.4" dy="0.8em" class="st53">Option C              </tspan><tspan
+						class="st53">0</tspan><tspan class="st53">x</tspan><tspan class="st53">16</tspan></text>		</g>
+		<g id="shape101-325" v:mID="101" v:groupContext="shape" transform="translate(147.222,-539.713)">
+			<title>Rounded Rectangle.101</title>
+			<desc>EDK2 HII VFR Form Option A Enabled Option B Disabled Option C...</desc>
+			<v:userDefs>
+				<v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/>
+				<v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/>
+				<v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+				<v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+				<v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+				<v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+				<v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/>
+			<v:textRect cx="76.5" cy="688.025" width="153" height="55.125"/>
+			<path d="M4.5 715.59 L148.5 715.59 A4.49993 4.49993 -180 0 0 153 711.09 L153 664.96 A4.49993 4.49993 -180 0 0 148.5 660.46
+						 L4.5 660.46 A4.49993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.59 Z"
+					class="st51"/>
+			<text x="37.65" y="671.66" class="st52" v:langID="1033"><v:paragraph v:spLine="-0.8" v:horizAlign="1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:lf/><tspan
+						x="24.37" dy="1.6em" class="st53">Option A        Enabled<v:newlineChar/></tspan><tspan x="24.6" dy="0.8em"
+						class="st53">Option B       Disabled<v:newlineChar/></tspan><tspan x="24.4" dy="0.8em" class="st53">Option C              </tspan><tspan
+						class="st53">0</tspan><tspan class="st53">x</tspan><tspan class="st53">16</tspan></text>		</g>
+		<g id="shape102-334" v:mID="102" v:groupContext="shape" transform="translate(129.222,-526.213)">
+			<title>Rounded Rectangle</title>
+			<desc>EDK2 HII VFR Form Option A Enabled Option B Disabled Option C...</desc>
+			<v:userDefs>
+				<v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/>
+				<v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/>
+				<v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/>
+				<v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+				<v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+				<v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+				<v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+				<v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+				<v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/>
+			<v:textRect cx="76.5" cy="688.025" width="153" height="55.125"/>
+			<path d="M4.5 715.59 L148.5 715.59 A4.49993 4.49993 -180 0 0 153 711.09 L153 664.96 A4.49993 4.49993 -180 0 0 148.5 660.46
+						 L4.5 660.46 A4.49993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.59 Z"
+					class="st51"/>
+			<text x="29.88" y="671.66" class="st29" v:langID="1033"><v:paragraph v:spLine="-0.8" v:horizAlign="1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:lf/><tspan
+						x="24.37" dy="1.6em" class="st54">Option A        </tspan><tspan class="st55">Enabled<v:newlineChar/></tspan><tspan
+						x="24.6" dy="0.8em" class="st54">Option B       </tspan><tspan class="st55">Disabled<v:newlineChar/></tspan><tspan
+						x="24.4" dy="0.8em" class="st54">Option C              </tspan><tspan class="st55">0</tspan><tspan
+						class="st55">x</tspan><tspan class="st55">16</tspan></text>		</g>
+		<g id="shape110-345" v:mID="110" v:groupContext="shape" v:layerMember="0"
+				transform="translate(503.938,-444.613) rotate(13.0919)">
+			<title>Curve connect 1.110</title>
+			<v:userDefs>
+				<v:ud v:nameU="Scale" v:val="VT0(1):26"/>
+				<v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M0 715.59 A11.592 11.592 0 0 1 22.97 715.59 A13.4718 13.4718 -180 0 0 48.31 719.9 L48.42 719.56" class="st56"/>
+		</g>
+		<g id="shape122-351" v:mID="122" v:groupContext="shape" transform="translate(41.4724,-96.4625)">
+			<title>Sheet.122</title>
+			<desc>[1]</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+			<rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+			<text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[1]</text>		</g>
+		<g id="shape123-354" v:mID="123" v:groupContext="shape" transform="translate(746.847,-100.963)">
+			<title>Sheet.123</title>
+			<desc>[2]</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+			<rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+			<text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[2]</text>		</g>
+		<g id="shape124-357" v:mID="124" v:groupContext="shape" transform="translate(68.4724,-278.713)">
+			<title>Sheet.124</title>
+			<desc>[3]</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+			<rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+			<text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[3]</text>		</g>
+		<g id="shape125-360" v:mID="125" v:groupContext="shape" transform="translate(338.472,-269.713)">
+			<title>Sheet.125</title>
+			<desc>[4]</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+			<rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+			<text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[4]</text>		</g>
+		<g id="shape126-363" v:mID="126" v:groupContext="shape" transform="translate(761.472,-269.713)">
+			<title>Sheet.126</title>
+			<desc>[5]</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+			<rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+			<text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[5]</text>		</g>
+		<g id="shape127-366" v:mID="127" v:groupContext="shape" transform="translate(390.222,-476.713)">
+			<title>Sheet.127</title>
+			<desc>[6]</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+			<rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+			<text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[6]</text>		</g>
+		<g id="shape128-369" v:mID="128" v:groupContext="shape" transform="translate(123.597,-579.088)">
+			<title>Sheet.128</title>
+			<desc>[8]</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+			<rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+			<text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[8]</text>		</g>
+		<g id="shape129-372" v:mID="129" v:groupContext="shape" transform="translate(62.8474,-501.463)">
+			<title>Sheet.129</title>
+			<desc>[9]</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+			<rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+			<text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[9]</text>		</g>
+		<g id="shape132-375" v:mID="132" v:groupContext="shape" v:layerMember="0"
+				transform="translate(583.722,1233.46) rotate(180)">
+			<title>Curve connect 2.132</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M2.78 714.72 L3.12 714.61 A681.188 681.188 0 0 1 406.38 714.61 L406.72 714.72" class="st58"/>
+		</g>
+		<g id="shape133-384" v:mID="133" v:groupContext="shape" transform="translate(238.347,-157.213)">
+			<title>Sheet.133</title>
+			<desc>Script-generated EDK2 Redfish client driver/library based on ...</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="130.5" cy="702.088" width="261" height="27"/>
+			<rect x="0" y="688.588" width="261" height="27" class="st1"/>
+			<text x="11.21" y="699.84" class="st60" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated EDK2 Redfish client driver/library based on the <tspan
+						x="45.23" dy="1em" class="st5">standard Redfish schemas </tspan>published by DMTF</text>		</g>
+		<g id="shape134-388" v:mID="134" v:groupContext="shape" transform="translate(21.2224,-679.775)">
+			<title>Rectangle.134</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<rect x="0" y="703.213" width="24.75" height="12.375" class="st2"/>
+		</g>
+		<g id="shape135-390" v:mID="135" v:groupContext="shape" transform="translate(41.4724,-670.213)">
+			<title>Sheet.135</title>
+			<desc>Script-generated code</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="54" cy="702.088" width="108" height="27"/>
+			<rect x="0" y="688.588" width="108" height="27" class="st6"/>
+			<text x="12.79" y="704.34" class="st61" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated code</text>		</g>
+		<g id="shape137-393" v:mID="137" v:groupContext="shape" transform="translate(21.2224,-661.213)">
+			<title>Rectangle.137</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<rect x="0" y="703.213" width="24.75" height="12.375" class="st62"/>
+		</g>
+		<g id="shape138-395" v:mID="138" v:groupContext="shape" transform="translate(43.7224,-652.213)">
+			<title>Sheet.138</title>
+			<desc>UEFI/EDK2 open source</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="54" cy="702.088" width="108" height="27"/>
+			<rect x="0" y="688.588" width="108" height="27" class="st6"/>
+			<text x="9.97" y="704.34" class="st61" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>UEFI/EDK2 open source</text>		</g>
+		<g id="shape140-398" v:mID="140" v:groupContext="shape" transform="translate(281.66,-341.784)">
+			<title>Configure</title>
+			<v:userDefs>
+				<v:ud v:nameU="msvShapeCategories" v:prompt="" v:val="VT4(Icon)"/>
+				<v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M41.27 698.83 C40.4 698.46 37.61 697.28 37.61 697.28 L37.79 694.96 L37.94 693.01 L37.69 689.29 L39.53 688.23
+						 C39.53 688.23 40.46 687.84 41.33 687.49 C40.71 685.96 40.45 685.33 39.82 683.81 C38.94 684.17 36.06 685.35
+						 36.06 685.35 L34.63 683.57 C33.94 682.7 33.09 681.89 32.02 681.06 L30.33 679.75 L31.01 677.68 C31.01 677.68
+						 31.41 676.7 31.79 675.77 C30.27 675.14 29.64 674.88 28.12 674.26 C27.72 675.23 26.52 678.17 26.52 678.17
+						 L24.28 677.95 C23.14 677.83 21.96 677.86 20.77 678.02 L18.64 678.3 L17.65 676.35 C17.65 676.35 17.21 675.31
+						 16.78 674.31 C15.27 674.95 14.64 675.21 13.13 675.85 C13.58 676.92 14.85 679.93 14.85 679.93 L13.12 681.37
+						 C12.3 682.05 11.54 682.85 10.79 683.83 L9.49 685.52 L7.41 684.86 C7.41 684.86 6.28 684.4 5.17 683.96 C4.56
+						 685.49 4.31 686.12 3.69 687.65 C4.82 688.1 7.84 689.31 7.84 689.31 C7.84 689.31 7.65 692.73 7.63 693 C7.65
+						 693.25 7.7 694.01 7.7 694.03 C7.7 694.03 7.87 695.84 7.87 695.84 L6.79 696.82 C6.46 697.15 6.34 697.24 3.64
+						 698.3 C4.24 699.84 4.49 700.47 5.08 702.01 C6.21 701.57 9.36 700.34 9.36 700.34 L10.99 702.57 C11.49 703.19
+						 12.18 703.89 13.04 704.61 L14.63 705.96 L13.93 707.96 C13.93 707.96 13.45 709.08 12.97 710.2 C14.47 710.85
+						 15.1 711.12 16.61 711.77 C17.05 710.74 18.36 707.71 18.36 707.71 L20.65 708.03 C21.73 708.19 22.89 708.21
+						 24.1 708.1 L26.18 707.92 L27.11 709.84 C27.11 709.84 27.53 710.9 27.94 711.93 C29.47 711.32 30.1 711.07
+						 31.63 710.45 C31.25 709.51 30.04 706.48 30.04 706.48 L32.32 704.83 C32.97 704.31 33.71 703.56 34.48 702.62
+						 L35.81 701 L37.85 701.7 C37.85 701.7 38.82 702.1 39.73 702.49 C40.37 700.97 40.64 700.34 41.27 698.83 ZM40.58
+						 695.32 C40.58 695.32 40.57 695.4 40.56 695.47 C40.95 695.64 44.96 697.33 44.96 697.33 L41.23 706.17 C41.23
+						 706.17 37.13 704.45 36.75 704.28 C36.7 704.34 36.65 704.41 36.65 704.41 C35.76 705.49 34.89 706.37 33.97
+						 707.11 C33.97 707.11 33.67 707.33 33.46 707.47 C33.62 707.88 35.28 712.02 35.28 712.02 L26.38 715.59 C26.38
+						 715.59 24.65 711.28 24.5 710.89 C24.42 710.9 24.34 710.9 24.34 710.9 C22.91 711.03 21.54 711 20.25 710.82
+						 C20.25 710.82 20.17 710.8 20.09 710.79 C19.93 711.19 18.08 715.47 18.08 715.47 L9.27 711.66 C9.27 711.66
+						 11.18 707.25 11.34 706.86 C11.29 706.81 11.22 706.76 11.22 706.76 C10.23 705.92 9.41 705.09 8.72 704.23
+						 C8.72 704.23 8.51 703.94 8.37 703.75 C7.96 703.9 3.49 705.65 3.49 705.65 L0 696.71 C0 696.71 4.8 694.83
+						 4.8 694.83 C4.8 694.83 4.88 694.8 4.95 694.78 C4.92 694.54 4.89 694.21 4.89 694.21 L4.82 693.02 C4.82 693.02
+						 4.9 691.52 4.92 691.17 C4.54 691.02 0.04 689.21 0.04 689.21 L3.6 680.3 C3.6 680.3 8.06 682.09 8.46 682.25
+						 C8.51 682.18 8.56 682.12 8.56 682.12 C9.43 680.98 10.34 680.02 11.33 679.2 C11.33 679.2 11.39 679.15 11.45
+						 679.11 C11.29 678.72 9.45 674.35 9.45 674.35 L18.29 670.62 C18.29 670.62 20.07 674.85 20.24 675.25 C20.31
+						 675.24 20.39 675.23 20.39 675.23 C21.8 675.04 23.2 675.01 24.56 675.15 C24.56 675.15 24.63 675.16 24.71
+						 675.16 C24.87 674.78 26.59 670.59 26.59 670.59 L35.46 674.23 C35.46 674.23 33.77 678.34 33.61 678.74 C33.67
+						 678.78 33.74 678.83 33.74 678.83 C34.99 679.8 35.99 680.77 36.82 681.8 C36.82 681.8 36.88 681.88 36.94 681.95
+						 C37.33 681.79 41.35 680.14 41.35 680.14 L45 689.02 C45 689.02 40.99 690.67 40.6 690.83 C40.61 690.9 40.62
+						 690.98 40.62 690.98 C40.71 691.76 40.75 692.41 40.75 693.01 C40.75 693.7 40.7 694.43 40.58 695.32 ZM26.56
+						 697.76 C29.16 695.67 29.58 691.87 27.5 689.26 C25.42 686.65 21.62 686.23 19.01 688.31 C16.41 690.4 15.98
+						 694.2 18.07 696.81 C20.15 699.42 23.95 699.84 26.56 697.76 ZM23.76 684.23 C26.11 684.49 28.22 685.65 29.7
+						 687.5 C32.75 691.32 32.12 696.9 28.31 699.95 C26.47 701.43 24.16 702.1 21.8 701.84 C19.45 701.58 17.34 700.41
+						 15.87 698.56 C14.57 696.94 13.93 694.98 13.93 693.04 C13.93 690.44 15.07 687.86 17.25 686.12 C19.1 684.64
+						 21.41 683.97 23.76 684.23 Z" class="st63"/>
+		</g>
+		<g id="shape145-400" v:mID="145" v:groupContext="shape" v:layerMember="0"
+				transform="translate(323.911,1069.28) scale(1,-1)">
+			<title>Side to top/bottom.145</title>
+			<v:userDefs>
+				<v:ud v:nameU="TextPos" v:val="VT0(0):5"/>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M7.18 715.59 L7.54 715.59 L96.69 715.59 L96.69 668.4" class="st64"/>
+		</g>
+		<g id="shape146-406" v:mID="146" v:groupContext="shape" v:layerMember="0" transform="translate(204.597,-382.144)">
+			<title>Bottom to top fixed 2</title>
+			<v:userDefs>
+				<v:ud v:nameU="TextPos" v:val="VT0(1):26"/>
+				<v:ud v:nameU="Offset" v:val="VT0(0.25):0"/>
+				<v:ud v:nameU="Scale" v:val="VT0(1):26"/>
+				<v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M0 677.27 L0 697.59 L99.14 697.59 L99.14 708.05" class="st66"/>
+		</g>
+		<g id="shape150-412" v:mID="150" v:groupContext="shape" v:layerMember="0" transform="translate(281.66,1070.51) rotate(180)">
+			<title>Side to top/bottom</title>
+			<v:userDefs>
+				<v:ud v:nameU="TextPos" v:val="VT0(0):5"/>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M7.18 715.59 L7.54 715.59 L107.44 715.59 L107.44 669.64" class="st64"/>
+		</g>
+		<g id="shape152-417" v:mID="152" v:groupContext="shape" transform="translate(173.097,-359.713)">
+			<title>Sheet.152</title>
+			<desc>[10]</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="22.5" cy="702.088" width="45" height="27"/>
+			<rect x="0" y="688.588" width="45" height="27" class="st6"/>
+			<text x="12.52" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[10]</text>		</g>
+		<g id="shape153-420" v:mID="153" v:groupContext="shape" transform="translate(186.597,-359.713)">
+			<title>Sheet.153</title>
+			<desc>EDK2 Build Tool</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="54" cy="702.088" width="108" height="27"/>
+			<rect x="0" y="688.588" width="108" height="27" class="st6"/>
+			<text x="21.18" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDK2 Build Tool</text>		</g>
+		<g id="shape95-423" v:mID="95" v:groupContext="shape" v:layerMember="0"
+				transform="translate(479.651,-242.34) rotate(-1.84761)">
+			<title>Curve connect 2</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 68.5 713.7 L68.7 713.99" class="st67"/>
+		</g>
+		<g id="shape154-431" v:mID="154" v:groupContext="shape" transform="translate(546.597,-607.213)">
+			<title>Sheet.154</title>
+			<desc>[7]</desc>
+			<v:textBlock v:margins="rect(4,4,4,4)"/>
+			<v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+			<rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+			<text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[7]</text>		</g>
+		<g id="shape155-434" v:mID="155" v:groupContext="shape" v:layerMember="0"
+				transform="translate(919.083,249.319) rotate(-86.8202) scale(1,-1)">
+			<title>Curve connect 1.155</title>
+			<v:userDefs>
+				<v:ud v:nameU="Scale" v:val="VT0(1):26"/>
+				<v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
+				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+			</v:userDefs>
+			<path d="M0 715.59 A6.2366 6.2366 0 0 1 11.73 715.59 A4.54475 4.54475 -180 0 0 20.28 715.59" class="st68"/>
+		</g>
+	</g>
+</svg>
-- 
2.37.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#103793): https://edk2.groups.io/g/devel/message/103793
Mute This Topic: https://groups.io/mt/98594270/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [edk2-redfish-client][PATCH] RedfishClientPkg: Initial commit
Posted by Nickle Wang via groups.io 11 months, 3 weeks ago
Reviewed-by: Nickle Wang <nicklew@nvidia.com>

Thanks,
Nickle
________________________________
From: abner.chang@amd.com <abner.chang@amd.com>
Sent: Sunday, April 30, 2023 10:00 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Nickle Wang <nicklew@nvidia.com>; Igor Kulchytskyy <igork@ami.com>
Subject: [edk2-redfish-client][PATCH] RedfishClientPkg: Initial commit

External email: Use caution opening links or attachments


From: Abner Chang <abner.chang@amd.com>

Initial commit of architecture diagrams and Readme.md

Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
---
 RedfishClientPkg/Readme.md                    |  185 +++
 .../Media/RedfishClientDriverStack.svg        | 1068 +++++++++++++++++
 2 files changed, 1253 insertions(+)
 create mode 100644 RedfishClientPkg/Readme.md
 create mode 100644 RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg

diff --git a/RedfishClientPkg/Readme.md b/RedfishClientPkg/Readme.md
new file mode 100644
index 0000000000..9e56fb9039
--- /dev/null
+++ b/RedfishClientPkg/Readme.md
@@ -0,0 +1,185 @@
+# UEFI Redfish Client EDK2 Implementation
+
+## Introduction
+UEFI Redfish Client EDK2 solution is implemented base on
+[*EDK2 Redfish Foundation*](https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fblob%2Fmaster%2FRedfishPkg%2FReadme.md&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3fTcnyZX2vZ5ORBAVtENT8yxyhaXZQsoYBT9hD8NGss%3D&reserved=0<https://github.com/tianocore/edk2/blob/master/RedfishPkg/Readme.md>),
+the implementation utilizes the EFI protocols provided by EDK2 Redfish
+Foundation to communicate with the Redfish service for creating, consuming, and
+updating the Redfish properties which are managed by firmware. This solution
+requests the instance of **EFI REST EX Protocol** through EFI Redfish Discover
+Protocol and interacts with Redfish service using **EFI REST EX Protocol** later
+on. The essential part of this implementation is to map the EDK2 HII options to
+the corresponding Redfish properties that are already defined in the standard
+Redfish schemas published by
+[*DMTF Redfish working group*](https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.dmtf.org%2Fstandards%2Fredfish&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=nrrH%2BA9VXIDC3YC%2B85jlBNdH2uHvz48d8TY37AfSaNs%3D&reserved=0<https://www.dmtf.org/standards/redfish>).
+The advantage of this design is to strengthen the interoperability among the
+servers produced by different OEMs when configuring the platform through Redfish
+service. Using the properties defined in Redfish standard schema for configuring
+platform reduces the overhead of Redfish client tools to have different
+implementations in order to compliant with OEM servers. The solution also
+reduces OEM-defined proprietary BIOS Attributes that lead to the divergence of
+platform configuration namings in Redfish BIOS Attribute Registry, however,
+those different namings refer to the same platform functionality.
+
+## The Scope of UEFI Redfish Client EDK2 Implementation
+-  Platform Configurable settings
+
+This is the first stage of UEFI Redfish Client EDK2 Implementation. Associate
+Redfish property with HII option.
+
+- Provisioning of Firmware Managed Platform Redfish Resource
+
+The current design of UEFI Redfish Client EDK2 Implementation can already
+support the provisioning of firmware-owned platform Redfish resource, however,
+this requires addtional support on edk2 HII. Therefore, provisioning of
+firmware managed platform Redfish resource would be the second stage.
+
+Below are the block diagrams of UEFI Redfish Client EDK2 Implementation.
+
+## <a name="[0]">EDK2 Redfish Client Implementation Diagrams</a>
+![UEFI Redfish Client Implementation](https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fchangab%2Fedk2-staging%2Fblob%2Fedk2-redfish-client%2FRedfishClientPkg%2FDocuments%2FMedia%2FRedfishClientDriverStack.svg%3Fraw%3Dtrue&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=u%2FET1d%2BA1lJoKk92ytJ%2FI1ZE7S6D1ioA%2Fbxubvz8ISE%3D&reserved=0<https://github.com/changab/edk2-staging/blob/edk2-redfish-client/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg?raw=true>)
+
+## EFI EDK2 Redfish Client Framework
+The functionality of each block in the diagrams are described in belwo sections,
+
+### EDK2 Redfish Foundation ***[[1]](#[0])***
+EDK2 Redfish Redfish Foundation provides the facilities of communicating with
+Redfish service. Such as the discovery of Redfish service, the credential to
+access Redfish service, *EFI REST EX Protocol* instance which is the transport
+layer to Redfish service, and so on. Please refer to
+[*EDK2 Redfish Foundation*](https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fblob%2Fmaster%2FRedfishPkg%2FReadme.md&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3fTcnyZX2vZ5ORBAVtENT8yxyhaXZQsoYBT9hD8NGss%3D&reserved=0<https://github.com/tianocore/edk2/blob/master/RedfishPkg/Readme.md>).
+
+### Redfish Profile Simulator ***[[2]](#[0])***
+Redfish Profile Simulator is an
+[*open source project*](https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2FRedfish-Profile-Simulator&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=6yLfs7aHMnn4ERF9ih8NTOXrupmDT4hxgwSXiB2kf3g%3D&reserved=0<https://github.com/DMTF/Redfish-Profile-Simulator>) on
+DMTF GitHub, which simulates the HTTP request methods (POST, PATCH, PUT, GET) on
+Redfish resource maintained by Redfish Profile Simulator. EDK2 open source uses
+this simulator for the use case when Redfish service has not been set up on the
+platform, or for the quick Redfish firmware feature development. We clone this
+project under RedfishClientPkg and maintain it by edk2 because this project has
+currently been using and updating rarely. That is easier for edk2 to add
+features to the simulator or modify the simulator to align with edk2 requirement
+on Redfish service, such as ETAG and HTTP POST support. <br>
+Another open source project of Redfish simulator is
+[*Redfish Interface Emulator*](https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2FRedfish-Interface-Emulator&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=YFko4l8kiy5gZR9iaRFhrATZ2PXq1g8NwDFMzuliXFA%3D&reserved=0<https://github.com/DMTF/Redfish-Interface-Emulator>),
+however, we don't pay much attention to this project because we have been
+dedicating to Redfish Profile Simulator since we started the UEFI Redfish EDK2
+project.
+
+### EDK2 Redfish JSON Schema to C Structure Convertor ***[[3]](#[0])***
+This is the script auto-generated EDK2 drivers and libraries that provide the
+Redfish schema naming based JSON to C structure and vise versa converters. C
+structure is another representation of Redfish properties other than JSON and
+CSDL(XML). The higher layer Redfish client application can deal with C structure
+instead of using JSON library to manipulate Redfish properties. The script
+[*Redfish Schema C Struct Generator*](https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDMTF%2FRedfish-Schema-C-Struct-Generator&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=TfikAxceF8pMoAM6W4n0hi7hJgG1185n8IZpQkNqkgw%3D&reserved=0<https://github.com/DMTF/Redfish-Schema-C-Struct-Generator>)
+is still a private project on DMTF GitHub. Below is the reference of script
+auto-generated
+[*Redfish JSON C Struct Converter Lib*](https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fchangab%2FRedfish-JSON-C-Struct-Converter-Lib&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=e3%2BgKfK5Nr3MPfsmDm2wmtHJnDzmb%2B0liABLnfmsao4%3D&reserved=0<https://github.com/changab/Redfish-JSON-C-Struct-Converter-Lib>)
+libraries. The converters generated by the script are followed
+**EFI REST JSON Structure Protocol** defined in UEFI spec 2.8, section 29.7.3.
+
+### EDK2 Redfish Non-Collection ***[[4]](#[0])*** and Collection ***[[5]](#[0])
+*** Feature Drivers EDK2 Redfish feature driver is an intermediary driver that
+sits between **JSON Schema to C Structure converters** and **EFI Platform
+Configuration to Redfish Protocol**. The Redfish feature driver gets and sets
+the platform configuration and incorporates it with Redfish JSON schema C
+structure to manipulate Redfish JSON resources. Then applies the settings from
+Redfish service to platform configurations, or vise versa to update platform
+configurations to Redfish service. Both EDK2 Redfish Non-Collection and
+Collection Feature drivers are script auto-generated base on Redfish schema
+naming. The EDK2 Redfish Non-Collection feature driver manages the resource of
+specific Resdifsh resource type, while the EDK2 Redfish Collection feature
+driver manages the members which have the same resource type in collection
+resource (e.g the ComputerSystem resource and ComputerSystemCollection resource)
+.
+
+### EDKII Redfish Platform Config Protocol ***[[6]](#[0])***
+EDKII Redfish Platform Config Protocol is an abstract driver that abstracts the
+platform configuration format and storage from EDK2 Redfish Feature driver.
+This protocol provides the interfaces to get and set platform configuration with
+the format and configuration storage agnostic to the Redfish feature driver.
+The platform can provide its own EDKII Redfish Platform Config driver instance
+to access platform-specific configuration format and storage. On EDK2 open
+source, EDKII Redfish Platform Config Protocol accesses the platform
+configuration in EDK2 HII defined format.
+
+Below is the prototype of **EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL**,
+
+```C
+struct _EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL {
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_VALUE             GetValue;
+  EDKII_REDFISH_PLATFORM_CONFIG_SET_VALUE             SetValue;
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_CONFIG_LANG       GetConfigureLang;
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_SUPPORTED_SCHEMA  GetSupportedSchema;
+};
+```
+
+### Other instances of EDKII Redfish Platform Config Protocol ***[[7]](#[0])***
+For those Non-EDK2 HII-based platform configuration formats, the driver instance
+can provide its own implementation to get or set the platform configurations.
+
+### EDK2 HII VFR Form ***[[8]](#[0])***
+According to **UEFI spec 2.9 section 35.6 Form Browser Protocol**,
+**EFI_HII_REST_STYLE_FORMSET_GUID** is used on HII form to indicate that HII
+options declared in this form intend to interact with the REST architectural
+style. On edk2 open source, the REST architectural style refers to the Redfish
+service. Besides **EFI_HII_REST_STYLE_FORMSET_GUID** is defined in the form
+scope, **EFI_IFR_FLAG_REST_STYLE** can be assigned to the HII options that
+indicate those options intend to interact with the REST service.
+
+### EDK2 HII UNI file ***[[9]](#[0])***
+x-uefi-redfish Configure Language is used in UNI file to associate HII option
+with the particular Redfish property. The Hii options interact with EDK2 Redfish
+Feature driver if the string of HII option is assigned with x-uefi-redfish
+Language as in below,
+
+```C
+x-uefi-redfish-$(NAMESPACE)
+where $(NAMESPACE) is the combination of Redfish ResourceTypeName and schema version.
+```
+For example, if the HII option is mapped to the property in Processor.v1_0_0.
+The x-uefi-redfish configure language is declared as below,
+```C
+x-uefi-redfish-Processor.v1_0_0
+```
+#### x-uefi-redfish Configure Language format:
+- The string declared with x-uefi-redfish configure language is a path to the property
+in Redfish resource
+- The root of path is the Redfish resource type indicated in x-uefi-redfish configure
+language
+- The path is relative to root of Redfish resource type, not related to Redfish service
+- root.
+
+#### Examples,
+```C
+Properties:
+
+#string STR_BOOT_SOURCE_OVERRIDE_ENABLED_PROMPT #language x_uefi_redfish_ComputerSystem.v1_0_0  "/Boot/BootSourceOverrideEnabled"
+#string STR_BOOT_SOURCE_OVERRIDE_MODE_PROMPT    #language x_uefi_redfish_ComputerSystem.v1_0_0  "/Boot/BootSourceOverrideMode"
+#string STR_BOOT_SOURCE_OVERRIDE_TARGET_PROMPT  #language x_uefi_redfish_ComputerSystem.v1_0_0  "/Boot/BootSourceOverrideTarget"
+```
+```C
+Properties in array object [NUM]:
+
+#string STR_BOOT_ORDER_1_PROMPT  #language x_uefi_redfish_ComputerSystem.v1_11_0  "/Boot/BootOrder/[1]/Boot0001"
+#string STR_BOOT_ORDER_2_PROMPT  #language x_uefi_redfish_ComputerSystem.v1_11_0  "/Boot/BootOrder/[2]/Boot0002"
+#string STR_BOOT_ORDER_3_PROMPT  #language x_uefi_redfish_ComputerSystem.v1_11_0  "/Boot/BootOrder/[3]/Boot0003"
+```
+```C
+Properties in collection object {NUM}:
+
+#string STR_MEMORY_1_BASE_MODULE_TYPE_PROMPT  #language x_uefi_redfish_Memory.v1_7_1  "/Memory/{1}/BaseModuleType"
+#string STR_MEMORY_2_BASE_MODULE_TYPE_PROMPT  #language x_uefi_redfish_Memory.v1_7_1  "/Memory/{2}/BaseModuleType"
+#string STR_MEMORY_3_BASE_MODULE_TYPE_PROMPT  #language x_uefi_redfish_Memory.v1_7_1  "/Memory/{3}/BaseModuleType"
+```
+
+### EDK2 Build Tool ***[[10]](#[0])***
+EDK2 Build is responsible to pull the necessary EDK2 Redfish JSON Schema to C
+Structure Convertors and EDK2 Redfish Feature drivers into edk2 build process
+according to the x-uefi-Redfish config language used in the HII VFR forms.
+
+## The Contributors
+Chang, Abner <abner.chang@hpe.com>\
+Wang, Nickle <nickle.wang@hpe.com>\
+Chen, Aaron <aaron.chen@hpe.com>
diff --git a/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg b/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg
new file mode 100644
index 0000000000..881d9647e5
--- /dev/null
+++ b/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg
@@ -0,0 +1,1068 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=VaHqu9MZo6jnHCD8KdgyCTAl3IhJKSwryDaQbAEBl3E%3D&reserved=0<http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd>">
+<!-- Generated by Microsoft Visio, SVG Export RedfishClientDriverStack.svg Page-2 -->
+<svg xmlns="https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=rAXihiKfe1ESon5ua0Fi3D4tE59kgZI37BOKXlPleIk%3D&reserved=0<http://www.w3.org/2000/svg>" xmlns:xlink="https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=7%2B1II2QyoM92czGzAru54LcXz1LSM12aPZKMUruBOGg%3D&reserved=0<http://www.w3.org/1999/xlink>" xmlns:ev="https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.w3.org%2F2001%2Fxml-events&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=HLYxX4tMagb1iPyJB%2FigWpCa1qJ2DKJndZqQc4CLJbI%3D&reserved=0<http://www.w3.org/2001/xml-events>"
+               xmlns:v="https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fschemas.microsoft.com%2Fvisio%2F2003%2FSVGExtensions%2F&data=05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=UZG6RiMuhDj%2Fz1uFxcx5gAyRVl7JRkYjfeYJrPMi4DA%3D&reserved=0<http://schemas.microsoft.com/visio/2003/SVGExtensions/>" width="12.1281in" height="9.93872in"
+               viewBox="0 0 873.222 715.588" xml:space="preserve" color-interpolation-filters="sRGB" class="st69">
+       <v:documentProperties v:langID="1033" v:viewMarkup="false">
+               <v:userDefs>
+                       <v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/>
+               </v:userDefs>
+       </v:documentProperties>
+
+       <style type="text/css">
+       <![CDATA[
+               .st1 {fill:#ffffff;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+               .st2 {fill:#ebf1df;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+               .st3 {fill:#ff1a1a;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+               .st4 {fill:#ffffff;font-family:Calibri;font-size:1.00001em;font-weight:bold}
+               .st5 {font-size:1em}
+               .st6 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+               .st7 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-weight:bold}
+               .st8 {fill:#dbeef3;stroke:#d8d8d8;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+               .st9 {fill:#ffffff;font-family:Calibri;font-size:1.08334em;font-weight:bold}
+               .st10 {visibility:visible}
+               .st11 {fill:none;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4}
+               .st12 {fill:none;stroke:#bfbfbf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+               .st13 {fill:#000000;font-family:Arial;font-size:1.99999em;font-style:italic;font-weight:bold}
+               .st14 {marker-end:url(#mrkr2-45);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}
+               .st15 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.42986425339367}
+               .st16 {fill:#000000;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+               .st17 {fill:#ffffff;font-family:Arial;font-size:1.33333em;font-weight:bold}
+               .st18 {fill:#ffffff;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+               .st19 {fill:#7f7f7f;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+               .st20 {fill:#ffffff;font-family:Calibri;font-size:1.08334em}
+               .st21 {fill:#000000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+               .st22 {fill:#000000;font-family:Calibri;font-size:0.833336em;font-weight:bold}
+               .st23 {marker-start:url(#mrkr10-112);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25}
+               .st24 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.40983606557377}
+               .st25 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+               .st26 {fill:#000000;fill-opacity:0.4;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-dasharray:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4}
+               .st27 {fill:#0070c0;fill-opacity:0.72;stroke:#003f6c;stroke-dasharray:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+               .st28 {fill:#0070c0;stroke:#003f6c;stroke-dasharray:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+               .st29 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-style:italic;font-weight:bold}
+               .st30 {fill:#ffffff;stroke:#000000;stroke-dasharray:1.68,1.2;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+               .st31 {fill:#000000;font-family:Calibri;font-size:0.833336em}
+               .st32 {fill:#ffffff;stroke:#000000;stroke-dasharray:3.5,2.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.5}
+               .st33 {stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:4.5}
+               .st34 {fill:#000000;fill-opacity:0.38;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.38}
+               .st35 {fill:#000000;fill-opacity:0.38;stroke:#000000;stroke-opacity:0.38;stroke-width:0.22935779816514}
+               .st36 {fill:#f2f2f2;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+               .st37 {fill:#7f7f7f;fill-opacity:1;stroke:#7f7f7f;stroke-opacity:1;stroke-width:0.22935779816514}
+               .st38 {fill:#d8d8d8;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+               .st39 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+               .st40 {fill:#000000;fill-opacity:0.4;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4}
+               .st41 {fill:#0070c0;stroke:#003f6c;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+               .st42 {fill:#ffffff;stroke:#000000;stroke-dasharray:9.5,2.5,3.5,2.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.5}
+               .st43 {fill:#ffffff;stroke:#000000;stroke-dasharray:3.5,2.5,3.5,2.5,0,2.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.5}
+               .st44 {marker-end:url(#mrkr4-212);marker-start:url(#mrkr4-210);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.25}
+               .st45 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.47169811320755}
+               .st46 {fill:#ffffff;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
+               .st47 {fill:#000000;font-family:Calibri;font-size:1.16666em;font-style:italic;font-weight:bold}
+               .st48 {font-family:Arial;font-size:0.571431em;font-style:normal;font-weight:normal}
+               .st49 {font-family:Arial;font-size:0.571431em;font-style:normal}
+               .st50 {fill:#ea700d;font-family:Arial;font-size:0.571431em;font-style:normal}
+               .st51 {fill:#ffffff;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+               .st52 {fill:#d8d8d8;font-family:Calibri;font-size:0.833336em;font-style:italic;font-weight:bold}
+               .st53 {font-size:1.20001em;font-style:normal;font-weight:normal}
+               .st54 {font-size:1em;font-style:normal;font-weight:normal}
+               .st55 {fill:#f59d56;font-size:1em;font-style:normal;font-weight:normal}
+               .st56 {marker-end:url(#mrkr2-350);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}
+               .st57 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.44247787610619}
+               .st58 {marker-end:url(#mrkr2-383);marker-start:url(#mrkr2-381);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+               .st59 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.22935779816514}
+               .st60 {fill:#000000;font-family:Calibri;font-size:0.75em;font-style:italic;font-weight:bold}
+               .st61 {fill:#000000;font-family:Calibri;font-size:0.75em;font-weight:bold}
+               .st62 {fill:#0070c0;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+               .st63 {fill:#595959;stroke:none;stroke-linecap:butt;stroke-width:0.75}
+               .st64 {marker-start:url(#mrkr4-405);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25}
+               .st65 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.3315649867374}
+               .st66 {marker-end:url(#mrkr4-411);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25}
+               .st67 {marker-end:url(#mrkr10-430);marker-start:url(#mrkr10-112);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25}
+               .st68 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25}
+               .st69 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+       ]]>
+       </style>
+
+       <defs id="Markers">
+               <g id="lend2">
+                       <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+               </g>
+               <marker id="mrkr2-45" class="st15" v:arrowType="2" v:arrowSize="2" v:setback="2.13684" refX="-2.1368421052632"
+                               orient="auto" markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend2" transform="scale(-2.3263157894737,-2.3263157894737) "/>
+               </marker>
+               <g id="lend10">
+                       <path
+                                       d="M 0 0.75 C -0.414214 0.75 -0.75 0.414214 -0.75 0 -0.75 -0.414214 -0.414214 -0.75 0 -0.75 0.414214 -0.75 0.75 -0.414214 0.75 0 0.75 0.414214 0.414214 0.75 0 0.75 Z "
+                                       style="stroke:none"/>
+               </g>
+               <marker id="mrkr10-112" class="st24" v:arrowType="10" v:arrowSize="1" v:setback="1.542" refX="1.542" orient="auto"
+                               markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend10" transform="scale(2.44) "/>
+               </marker>
+               <g id="lend42">
+                       <path
+                                       d="M 0 0.75 C -0.414214 0.75 -0.75 0.414214 -0.75 0 -0.75 -0.414214 -0.414214 -0.75 0 -0.75 0.414214 -0.75 0.75 -0.414214 0.75 0 0.75 0.414214 0.414214 0.75 0 0.75 Z "
+                                       style="stroke:none"/>
+               </g>
+               <marker id="mrkr42-163" class="st35" v:arrowType="42" v:arrowSize="2" v:setback="3.27" refX="3.27" orient="auto"
+                               markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend42" transform="scale(4.36) "/>
+               </marker>
+               <marker id="mrkr42-167" class="st37" v:arrowType="42" v:arrowSize="2" v:setback="3.27" refX="3.27" orient="auto"
+                               markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend42" transform="scale(4.36) "/>
+               </marker>
+               <g id="lend4">
+                       <path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/>
+               </g>
+               <marker id="mrkr4-210" class="st45" v:arrowType="4" v:arrowSize="2" v:setback="4.08" refX="4.08" orient="auto"
+                               markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend4" transform="scale(2.12) "/>
+               </marker>
+               <marker id="mrkr4-212" class="st45" v:arrowType="4" v:arrowSize="2" v:setback="4.08" refX="-4.08" orient="auto"
+                               markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend4" transform="scale(-2.12,-2.12) "/>
+               </marker>
+               <marker id="mrkr2-350" class="st57" v:arrowType="2" v:arrowSize="2" v:setback="2.08" refX="-2.08" orient="auto"
+                               markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend2" transform="scale(-2.26,-2.26) "/>
+               </marker>
+               <marker id="mrkr2-381" class="st59" v:arrowType="2" v:arrowSize="2" v:setback="3.88" refX="3.88" orient="auto"
+                               markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend2" transform="scale(4.36) "/>
+               </marker>
+               <marker id="mrkr2-383" class="st59" v:arrowType="2" v:arrowSize="2" v:setback="3.88" refX="-3.88" orient="auto"
+                               markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend2" transform="scale(-4.36,-4.36) "/>
+               </marker>
+               <marker id="mrkr4-405" class="st65" v:arrowType="4" v:arrowSize="2" v:setback="5.744" refX="5.744" orient="auto"
+                               markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend4" transform="scale(3.016) "/>
+               </marker>
+               <marker id="mrkr4-411" class="st65" v:arrowType="4" v:arrowSize="2" v:setback="6.032" refX="-6.032" orient="auto"
+                               markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend4" transform="scale(-3.016,-3.016) "/>
+               </marker>
+               <marker id="mrkr10-430" class="st24" v:arrowType="10" v:arrowSize="1" v:setback="1.542" refX="-1.542" orient="auto"
+                               markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend10" transform="scale(-2.44,-2.44) "/>
+               </marker>
+       </defs>
+       <defs id="Filters">
+               <filter id="filter_3.3333334922791">
+                       <feGaussianBlur stdDeviation="3.3333334922791"/>
+               </filter>
+       </defs>
+       <g v:mID="8" v:index="1" v:groupContext="backgroundPage">
+               <v:userDefs>
+                       <v:ud v:nameU="msvVisioCreated" v:prompt="" v:val="VT0(0):26"/>
+               </v:userDefs>
+               <title>VBackground-1</title>
+               <v:pageProperties width="12.1281" height="9.93872" v:drawingScale="1" v:pageScale="1" v:drawingUnits="19"
+                               v:shadowOffsetX="9" v:shadowOffsetY="-9"/>
+               <g id="shape1-1" v:mID="1" v:groupContext="shape">
+                       <title>Solid</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="Background" v:val="VT0(0):26"/>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                               <v:ud v:nameU="msvShapeCategories" v:prompt="" v:val="VT4(DoNotContain)"/>
+                               <v:ud v:nameU="msvVisioCreated" v:prompt="" v:val="VT0(0):26"/>
+                       </v:userDefs>
+                       <rect x="0" y="0" width="873.222" height="715.588" class="st1"/>
+               </g>
+       </g>
+       <g v:mID="4" v:index="3" v:groupContext="foregroundPage">
+               <title>Page-2</title>
+               <v:pageProperties v:drawingScale="1" v:pageScale="1" v:drawingUnits="19" v:shadowOffsetX="9" v:shadowOffsetY="-9"/>
+               <v:layer v:name="Connector" v:index="0"/>
+               <g id="shape52-3" v:mID="52" v:groupContext="shape" transform="translate(336.222,-197.713)">
+                       <title>Rectangle.52</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <rect x="0" y="598.588" width="495" height="117" class="st2"/>
+               </g>
+               <g id="group5-5" transform="translate(772.722,-60.4625)" v:mID="5" v:groupContext="group">
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <title>Can</title>
+                       <desc>Redfish Service</desc>
+                       <g id="shape6-6" v:mID="6" v:groupContext="shape">
+                               <title>Sheet.6</title>
+                               <v:userDefs>
+                                       <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/>
+                                       <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/>
+                                       <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.15625):1"/>
+                                       <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT5(#ff1a1a)"/>
+                               </v:userDefs>
+                               <path d="M0 704.34 A26.4375 11.25 -180 1 0 52.88 704.34 L52.88 663.84 L0 663.84 L0 704.34 Z" class="st3"/>
+                       </g>
+                       <g id="shape5-8" v:mID="5" v:groupContext="groupContent">
+                               <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="2"/>
+                               <v:textRect cx="26.4375" cy="684.088" width="52.88" height="63"/>
+                               <ellipse cx="26.4375" cy="663.838" rx="26.4375" ry="11.25" class="st3"/>
+                               <text x="7.83" y="693.59" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Redfish <tspan
+                                                       x="8.6" dy="1.2em" class="st5">Service</tspan></text>                   </g>
+               </g>
+               <g id="shape8-12" v:mID="8" v:groupContext="shape" transform="translate(746.847,-24.4625)">
+                       <title>Sheet.8</title>
+                       <desc>Redfish Profile Simulator On Network</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="54" cy="702.088" width="108" height="27"/>
+                       <rect x="0" y="688.588" width="108" height="27" class="st6"/>
+                       <text x="17.62" y="693.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Redfish Profile <tspan
+                                               x="21.08" dy="1em" class="st5">Simulator On </tspan><tspan x="32.24" dy="1em" class="st5">Network</tspan></text>                </g>
+               <g id="shape10-17" v:mID="10" v:groupContext="shape" transform="translate(408.222,-82.9625)">
+                       <title>Sheet.10</title>
+                       <desc>EFI REST EX</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="130.5" cy="697.588" width="261" height="36"/>
+                       <rect x="0" y="679.588" width="261" height="36" class="st8"/>
+                       <text x="99.8" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI REST EX  </text>             </g>
+               <g id="shape12-20" v:mID="12" v:groupContext="shape" transform="translate(57.2224,-197.713)">
+                       <title>Rectangle</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <rect x="0" y="598.588" width="234" height="117" class="st2"/>
+               </g>
+               <g id="shape13-22" v:mID="13" v:groupContext="shape" transform="translate(30.2224,-24.4625)">
+                       <title>Rounded Rectangle.76</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/>
+                               <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/>
+                               <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+                               <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.125):1"/>
+                               <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.125):1"/>
+                               <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.125):1"/>
+                               <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.125):1"/>
+                       </v:userDefs>
+                       <g id="shadow13-23" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+                                       v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-6.84,-13.2318)" class="st10">
+                               <path d="M9 715.59 L675 715.59 A8.99985 8.99985 -180 0 0 684 706.59 L684 616.59 A8.99985 8.99985 -180 0 0 675 607.59
+                                                        L9 607.59 A8.99985 8.99985 -180 0 0 0 616.59 L0 706.59 A8.99985 8.99985 -180 0 0 9 715.59 Z"
+                                               class="st11"/>
+                       </g>
+                       <path d="M9 715.59 L675 715.59 A8.99985 8.99985 -180 0 0 684 706.59 L684 616.59 A8.99985 8.99985 -180 0 0 675 607.59
+                                                L9 607.59 A8.99985 8.99985 -180 0 0 0 616.59 L0 706.59 A8.99985 8.99985 -180 0 0 9 715.59 Z" class="st12"/>
+               </g>
+               <g id="shape16-27" v:mID="16" v:groupContext="shape" transform="translate(75.2224,-82.9625)">
+                       <title>Sheet.16</title>
+                       <desc>EFI REST JSON to C Structure</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="130.5" cy="697.588" width="261" height="36"/>
+                       <rect x="0" y="679.588" width="261" height="36" class="st8"/>
+                       <text x="53.89" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI REST JSON to C Structure</text>             </g>
+               <g id="shape17-30" v:mID="17" v:groupContext="shape" transform="translate(408.222,-37.9625)">
+                       <title>Sheet.17</title>
+                       <desc>EFI Network Stack</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="130.5" cy="697.588" width="261" height="36"/>
+                       <rect x="0" y="679.588" width="261" height="36" class="st8"/>
+                       <text x="81.72" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI Network Stack</text>                </g>
+               <g id="shape18-33" v:mID="18" v:groupContext="shape" transform="translate(75.2224,-37.9625)">
+                       <title>Sheet.18</title>
+                       <desc>EFI Redfish Discover Protocl</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="130.5" cy="697.588" width="261" height="36"/>
+                       <rect x="0" y="679.588" width="261" height="36" class="st8"/>
+                       <text x="55.56" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI Redfish Discover Protocl</text>             </g>
+               <g id="shape19-36" v:mID="19" v:groupContext="shape" transform="translate(291.222,-51.4625)">
+                       <title>Sheet.19</title>
+                       <desc>EDKII Redfish Foundation</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="92" cy="693.088" width="184.01" height="45"/>
+                       <rect x="0" y="670.588" width="184" height="45" class="st6"/>
+                       <text x="12.66" y="685.89" class="st13" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>EDKII Redfish <tspan
+                                               x="26.69" dy="1.2em" class="st5">Foundation</tspan></text>              </g>
+               <g id="shape20-40" v:mID="20" v:groupContext="shape" v:layerMember="0"
+                               transform="translate(904.308,1335.5) rotate(-19.179) scale(1,-1)">
+                       <title>Curve connect 1</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="Scale" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M0 715.59 A42.4531 42.4531 0 0 1 54.79 715.59 A42.4531 42.4531 -180 0 0 106.06 718.26 L106.35 718.04"
+                                       class="st14"/>
+               </g>
+               <g id="shape21-46" v:mID="21" v:groupContext="shape" transform="translate(18.9724,-139.213)">
+                       <title>Sheet.21</title>
+                       <desc>EDKII Redfish Client</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:verticalText="true"/>
+                       <v:textRect cx="12.375" cy="463.588" width="24.75" height="504" transform="rotate(-180)"/>
+                       <rect x="0" y="211.588" width="24.75" height="504" class="st16"/>
+                       <text x="-10.85" y="-540.93" writing-mode="tb-rl" transform="rotate(180)" class="st17" v:langID="1033"><v:paragraph
+                                               v:horizAlign="1"/><v:tabList/>EDKII Redfish Client</text>               </g>
+               <g id="shape24-49" v:mID="24" v:groupContext="shape" transform="translate(111.222,-253.963)">
+                       <title>Sheet.24</title>
+                       <rect x="0" y="670.588" width="153" height="45" class="st18"/>
+               </g>
+               <g id="shape25-51" v:mID="25" v:groupContext="shape" transform="translate(84.2224,-240.463)">
+                       <title>Sheet.25</title>
+                       <rect x="0" y="670.588" width="153" height="45" class="st18"/>
+               </g>
+               <g id="shape26-53" v:mID="26" v:groupContext="shape" transform="translate(75.2224,-226.963)">
+                       <title>Sheet.26</title>
+                       <desc>Script-generated Redfish JSON schema to C Structure convertor</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="76.5" cy="693.088" width="153" height="45"/>
+                       <rect x="0" y="670.588" width="153" height="45" class="st19"/>
+                       <text x="11.2" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated Redfish <tspan
+                                               x="29.22" dy="1em" class="st5">JSON schema to C </tspan><tspan x="24.45" dy="1em" class="st5">Structure convertor</tspan></text>                </g>
+               <g id="shape28-58" v:mID="28" v:groupContext="shape" transform="translate(241.722,-267.463)">
+                       <title>Sheet.28</title>
+                       <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/>
+               </g>
+               <g id="shape29-60" v:mID="29" v:groupContext="shape" transform="translate(245.66,-272.525)">
+                       <title>Sheet.29</title>
+                       <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/>
+               </g>
+               <g id="shape30-62" v:mID="30" v:groupContext="shape" transform="translate(250.16,-277.588)">
+                       <title>Sheet.30</title>
+                       <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/>
+               </g>
+               <g id="shape31-64" v:mID="31" v:groupContext="shape" transform="translate(178.722,-204.463)">
+                       <title>Sheet.31</title>
+                       <desc>ComputerSystem</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="54" cy="702.088" width="108" height="27"/>
+                       <rect x="0" y="688.588" width="108" height="27" class="st6"/>
+                       <text x="18.16" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>ComputerSystem</text>          </g>
+               <g id="shape32-67" v:mID="32" v:groupContext="shape" transform="translate(201.222,-220.213)">
+                       <title>Sheet.32</title>
+                       <desc>BootOption</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="54" cy="702.088" width="108" height="27"/>
+                       <rect x="0" y="688.588" width="108" height="27" class="st6"/>
+                       <text x="29.69" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>BootOption</text>              </g>
+               <g id="shape33-70" v:mID="33" v:groupContext="shape" transform="translate(210.222,-233.713)">
+                       <title>Sheet.33</title>
+                       <desc>Memory</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="54" cy="702.088" width="108" height="27"/>
+                       <rect x="0" y="688.588" width="108" height="27" class="st6"/>
+                       <text x="36.21" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Memory</text>          </g>
+               <g id="shape34-73" v:mID="34" v:groupContext="shape" transform="translate(385.722,-247.213)">
+                       <title>Sheet.34</title>
+                       <rect x="0" y="670.588" width="153" height="45" class="st18"/>
+               </g>
+               <g id="shape35-75" v:mID="35" v:groupContext="shape" transform="translate(358.722,-233.713)">
+                       <title>Sheet.35</title>
+                       <rect x="0" y="670.588" width="153" height="45" class="st18"/>
+               </g>
+               <g id="shape36-77" v:mID="36" v:groupContext="shape" transform="translate(349.722,-220.213)">
+                       <title>Sheet.36</title>
+                       <desc>Script-generated EDK2 Redfish Feature Driver</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="76.5" cy="693.088" width="153" height="45"/>
+                       <rect x="0" y="670.588" width="153" height="45" class="st19"/>
+                       <text x="16.96" y="689.84" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated EDK2 <tspan
+                                               x="17.33" dy="1em" class="st5">Redfish Feature Driver</tspan></text>            </g>
+               <g id="shape40-81" v:mID="40" v:groupContext="shape" transform="translate(453.222,-197.713)">
+                       <title>Sheet.40</title>
+                       <desc>ComputerSystem</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="54" cy="702.088" width="108" height="27"/>
+                       <rect x="0" y="688.588" width="108" height="27" class="st6"/>
+                       <text x="18.16" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>ComputerSystem</text>          </g>
+               <g id="shape41-84" v:mID="41" v:groupContext="shape" transform="translate(475.722,-213.463)">
+                       <title>Sheet.41</title>
+                       <desc>BootOption</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="54" cy="702.088" width="108" height="27"/>
+                       <rect x="0" y="688.588" width="108" height="27" class="st6"/>
+                       <text x="29.69" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>BootOption</text>              </g>
+               <g id="shape42-87" v:mID="42" v:groupContext="shape" transform="translate(493.722,-226.963)">
+                       <title>Sheet.42</title>
+                       <desc>Memory</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="54" cy="702.088" width="108" height="27"/>
+                       <rect x="0" y="688.588" width="108" height="27" class="st6"/>
+                       <text x="36.21" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Memory</text>          </g>
+               <g id="shape43-90" v:mID="43" v:groupContext="shape" transform="translate(608.472,-249.463)">
+                       <title>Sheet.43</title>
+                       <rect x="0" y="670.588" width="153" height="45" class="st18"/>
+               </g>
+               <g id="shape46-92" v:mID="46" v:groupContext="shape" transform="translate(738.972,-262.963)">
+                       <title>Sheet.46</title>
+                       <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/>
+               </g>
+               <g id="shape47-94" v:mID="47" v:groupContext="shape" transform="translate(742.91,-268.025)">
+                       <title>Sheet.47</title>
+                       <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/>
+               </g>
+               <g id="shape48-96" v:mID="48" v:groupContext="shape" transform="translate(747.41,-273.088)">
+                       <title>Sheet.48</title>
+                       <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/>
+               </g>
+               <g id="shape49-98" v:mID="49" v:groupContext="shape" transform="translate(660.222,-199.963)">
+                       <title>Sheet.49</title>
+                       <desc>ComputerSystemCollection</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="61.875" cy="702.088" width="123.75" height="27"/>
+                       <rect x="0" y="688.588" width="123.75" height="27" class="st6"/>
+                       <text x="5.3" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>ComputerSystemCollection</text>          </g>
+               <g id="shape50-101" v:mID="50" v:groupContext="shape" transform="translate(720.972,-215.713)">
+                       <title>Sheet.50</title>
+                       <desc>BootOptionCollection</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="54" cy="702.088" width="108" height="27"/>
+                       <rect x="0" y="688.588" width="108" height="27" class="st6"/>
+                       <text x="8.96" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>BootOptionCollection</text>             </g>
+               <g id="shape51-104" v:mID="51" v:groupContext="shape" transform="translate(732.222,-229.213)">
+                       <title>Sheet.51</title>
+                       <desc>MemoryCollection</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="54" cy="702.088" width="108" height="27"/>
+                       <rect x="0" y="688.588" width="108" height="27" class="st6"/>
+                       <text x="15.48" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>MemoryCollection</text>                </g>
+               <g id="shape56-107" v:mID="56" v:groupContext="shape" v:layerMember="0"
+                               transform="translate(515.651,-269.34) rotate(-1.84761)">
+                       <title>Curve connect 2.56</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 69.79 715.59" class="st23"/>
+               </g>
+               <g id="shape57-113" v:mID="57" v:groupContext="shape" transform="translate(581.472,-235.963)">
+                       <title>Sheet.57</title>
+                       <rect x="0" y="670.588" width="153" height="45" class="st18"/>
+               </g>
+               <g id="shape59-115" v:mID="59" v:groupContext="shape" v:layerMember="0" transform="translate(291.222,-242.713)">
+                       <title>1-D double</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L31.5 710.19 L31.5 715.59 L45 702.09 L31.5 688.59
+                                                L31.5 693.99 L13.5 693.99 Z" class="st25"/>
+               </g>
+               <g id="shape64-117" v:mID="64" v:groupContext="shape" transform="translate(619.722,-467.713)">
+                       <title>Sheet.64</title>
+                       <desc>EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="99" cy="693.088" width="198" height="45"/>
+                       <g id="shadow64-118" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+                                       v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.98,-13.8618)" class="st10">
+                               <path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st26"/>
+                       </g>
+                       <path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st27"/>
+                       <text x="85.18" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDKII <tspan
+                                               x="5.65" dy="1em" class="st5">REDFISH</tspan>_PLATFORM_CONFIG_PRO<tspan x="81.03" dy="1em" class="st5">TOCOL</tspan></text>             </g>
+               <g id="shape65-125" v:mID="65" v:groupContext="shape" transform="translate(511.722,-445.213)">
+                       <title>Sheet.65</title>
+                       <desc>EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="99" cy="693.088" width="198" height="45"/>
+                       <g id="shadow65-126" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+                                       v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.98,-13.8618)" class="st10">
+                               <path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st26"/>
+                       </g>
+                       <path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st28"/>
+                       <text x="85.18" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDKII <tspan
+                                               x="5.65" dy="1em" class="st5">REDFISH</tspan>_PLATFORM_CONFIG_PRO<tspan x="81.03" dy="1em" class="st5">TOCOL</tspan></text>             </g>
+               <g id="shape67-133" v:mID="67" v:groupContext="shape" transform="translate(536.472,-593.713)">
+                       <title>Sheet.67</title>
+                       <desc>Other Platform-specific Implementations</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="121.5" cy="702.088" width="243" height="27"/>
+                       <rect x="0" y="688.588" width="243" height="27" class="st6"/>
+                       <text x="20.02" y="705.09" class="st29" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Other Platform-specific Implementations</text>         </g>
+               <g id="group71-136" transform="translate(567.972,-530.713)" v:mID="71" v:groupContext="group">
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <title>Can.71</title>
+                       <desc>EFI Variable/ FW Storage</desc>
+                       <g id="shape72-137" v:mID="72" v:groupContext="shape">
+                               <title>Sheet.72</title>
+                               <v:userDefs>
+                                       <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/>
+                                       <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/>
+                                       <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.0875):1"/>
+                               </v:userDefs>
+                               <path d="M0 709.29 A29.25 6.3 -180 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class="st30"/>
+                       </g>
+                       <g id="shape71-139" v:mID="71" v:groupContext="groupContent">
+                               <v:textBlock v:margins="rect(4,4,4,4)"/>
+                               <v:textRect cx="29.25" cy="684.088" width="58.5" height="63"/>
+                               <ellipse cx="29.25" cy="658.888" rx="29.25" ry="6.3" class="st30"/>
+                               <text x="23.25" y="675.09" class="st31" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>EFI <tspan
+                                                       x="10.54" dy="1.2em" class="st5">Variable</tspan>/ <tspan x="5.79" dy="1.2em" class="st5">FW Storage</tspan></text>                     </g>
+               </g>
+               <g id="group73-144" transform="translate(687.222,-530.713)" v:mID="73" v:groupContext="group">
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <title>Can.73</title>
+                       <desc>Other Storage</desc>
+                       <g id="shape74-145" v:mID="74" v:groupContext="shape">
+                               <title>Sheet.74</title>
+                               <v:userDefs>
+                                       <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/>
+                                       <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/>
+                                       <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.0875):1"/>
+                               </v:userDefs>
+                               <path d="M0 709.29 A29.25 6.3 -180 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class="st30"/>
+                       </g>
+                       <g id="shape73-147" v:mID="73" v:groupContext="groupContent">
+                               <v:textBlock v:margins="rect(4,4,4,4)"/>
+                               <v:textRect cx="29.25" cy="684.088" width="58.5" height="63"/>
+                               <ellipse cx="29.25" cy="658.888" rx="29.25" ry="6.3" class="st30"/>
+                               <text x="17.41" y="681.09" class="st31" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Other <tspan
+                                                       x="13.66" dy="1.2em" class="st5">Storage</tspan></text>                 </g>
+               </g>
+               <g id="shape76-151" v:mID="76" v:groupContext="shape" v:layerMember="0" transform="translate(1306.06,184.875) rotate(90)">
+                       <title>1-D double.76</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M6.75 704.79 L6.75 702.09 L0 708.84 L6.75 715.59 L6.75 712.89 L33.75 712.89 L33.75 715.59 L40.5 708.84 L33.75
+                                                702.09 L33.75 704.79 L6.75 704.79 Z" class="st32"/>
+               </g>
+               <g id="shape77-153" v:mID="77" v:groupContext="shape" v:layerMember="0" transform="translate(1425.31,184.875) rotate(90)">
+                       <title>1-D double.77</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M6.75 704.79 L6.75 702.09 L0 708.84 L6.75 715.59 L6.75 712.89 L11.25 712.89 L11.25 715.59 L18 708.84 L11.25
+                                                702.09 L11.25 704.79 L6.75 704.79 Z" class="st32"/>
+               </g>
+               <g id="shape78-155" v:mID="78" v:groupContext="shape" transform="translate(21.2224,-139.213)">
+                       <title>Sheet.78</title>
+                       <path d="M0 715.59 L810 715.59" class="st33"/>
+               </g>
+               <g id="group80-158" transform="translate(-173.49,382.875) rotate(-90)" v:mID="80" v:groupContext="group">
+                       <v:userDefs>
+                               <v:ud v:nameU="ControlDistFromCorner" v:prompt="" v:val="VT0(0.35355339059327):1"/>
+                               <v:ud v:nameU="AngToControl" v:prompt="" v:val="VT0(0.78539816339745):32"/>
+                               <v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.25):1"/>
+                               <v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.25):1"/>
+                               <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+                               <v:ud v:nameU="ControlDistFromCorner" v:prompt="" v:val="VT0(0.57622152858081):1"/>
+                               <v:ud v:nameU="AngToControl" v:prompt="" v:val="VT0(0.70862627212768):32"/>
+                               <v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.44270833333333):1"/>
+                               <v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.3794642857143):1"/>
+                       </v:userDefs>
+                       <title>Folded Corner</title>
+                       <g id="shape80-159" v:mID="80" v:groupContext="groupContent">
+                               <g id="shadow80-160" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+                                               v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-3.105,-9.45175)" class="st10">
+                                       <path d="M0 715.59 L278.62 715.59 L310.5 688.27 L310.5 229.59 L0 229.59 L0 715.59 Z" class="st34"/>
+                               </g>
+                               <path d="M0 715.59 L278.62 715.59 L310.5 688.27 L310.5 229.59 L0 229.59 L0 715.59 Z" class="st36"/>
+                       </g>
+                       <g id="shape81-168" v:mID="81" v:groupContext="shape" transform="translate(278.625,0)">
+                               <title>Sheet.81</title>
+                               <v:userDefs>
+                                       <v:ud v:nameU="ControlX" v:prompt="" v:val="VT0(1):1"/>
+                                       <v:ud v:nameU="ControlY" v:prompt="" v:val="VT0(0.25):1"/>
+                                       <v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.25):1"/>
+                                       <v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.25):1"/>
+                                       <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/>
+                                       <v:ud v:nameU="ControlX" v:prompt="" v:val="VT0(3.9375):1"/>
+                                       <v:ud v:nameU="ControlY" v:prompt="" v:val="VT0(0.4375):1"/>
+                                       <v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.44270833333333):1"/>
+                                       <v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.3794642857143):1"/>
+                                       <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT5(#f2f2f2)"/>
+                               </v:userDefs>
+                               <g id="shadow81-169" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+                                               v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-0.6375,-14.3117)" class="st10">
+                                       <path d="M0 715.59 L31.88 688.27 L4.87 684.09 L0 715.59 Z" class="st34"/>
+                               </g>
+                               <path d="M0 715.59 L31.88 688.27 L4.87 684.09 L0 715.59 Z" class="st38"/>
+                       </g>
+               </g>
+               <g id="group82-175" transform="translate(432.972,-530.713)" v:mID="82" v:groupContext="group">
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <title>Can.69</title>
+                       <desc>EDK2 HII Database</desc>
+                       <g id="shape83-176" v:mID="83" v:groupContext="shape">
+                               <title>Sheet.83</title>
+                               <v:userDefs>
+                                       <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/>
+                                       <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/>
+                                       <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.0875):1"/>
+                               </v:userDefs>
+                               <path d="M0 709.29 A29.25 6.3 -180 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class="st39"/>
+                       </g>
+                       <g id="shape82-178" v:mID="82" v:groupContext="groupContent">
+                               <v:textBlock v:margins="rect(4,4,4,4)"/>
+                               <v:textRect cx="29.25" cy="684.088" width="58.5" height="63"/>
+                               <ellipse cx="29.25" cy="658.888" rx="29.25" ry="6.3" class="st39"/>
+                               <text x="11.84" y="681.09" class="st31" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>EDK2 HII <tspan
+                                                       x="10.24" dy="1.2em" class="st5">Database</tspan></text>                        </g>
+               </g>
+               <g id="shape84-182" v:mID="84" v:groupContext="shape" transform="translate(390.222,-429.463)">
+                       <title>Sheet.84</title>
+                       <desc>EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="72" cy="693.088" width="144" height="45"/>
+                       <g id="shadow84-183" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+                                       v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.44,-13.8618)" class="st10">
+                               <rect x="0" y="670.588" width="144" height="45" class="st40"/>
+                       </g>
+                       <rect x="0" y="670.588" width="144" height="45" class="st41"/>
+                       <text x="58.18" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDKII <tspan
+                                               x="6" dy="1em" class="st5">REDFISH</tspan>_PLATFORM_CO<tspan x="26.68" dy="1em" class="st5">NFIG</tspan>_PROTOCOL</text>                </g>
+               <g id="shape85-190" v:mID="85" v:groupContext="shape" v:layerMember="0" transform="translate(1171.06,184.875) rotate(90)">
+                       <title>1-D double.75</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M6.75 704.79 L6.75 702.09 L0 708.84 L6.75 715.59 L6.75 712.89 L49.5 712.89 L49.5 715.59 L56.25 708.84 L49.5
+                                                702.09 L49.5 704.79 L6.75 704.79 Z" class="st39"/>
+               </g>
+               <g id="shape86-192" v:mID="86" v:groupContext="shape" v:layerMember="0" transform="translate(1164.31,286.125) rotate(90)">
+                       <title>1-D double.68</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <g id="shadow86-193" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1"
+                                       v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.1475,-14.0418)" class="st10">
+                               <path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L101.25 710.19 L101.25 715.59 L114.75 702.09
+                                                        L101.25 688.59 L101.25 693.99 L13.5 693.99 Z" class="st40"/>
+                       </g>
+                       <path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L101.25 710.19 L101.25 715.59 L114.75 702.09 L101.25
+                                                688.59 L101.25 693.99 L13.5 693.99 Z" class="st39"/>
+               </g>
+               <g id="shape87-197" v:mID="87" v:groupContext="shape" transform="translate(27.9724,-616.213)">
+                       <title>Sheet.87</title>
+                       <desc>EDK2 Open Source Implementation</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="121.5" cy="702.088" width="243" height="27"/>
+                       <rect x="0" y="688.588" width="243" height="27" class="st6"/>
+                       <text x="34.39" y="705.09" class="st29" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDK2 Open Source Implementation</text>         </g>
+               <g id="shape88-200" v:mID="88" v:groupContext="shape" v:layerMember="0" transform="translate(1312.81,270.375) rotate(90)">
+                       <title>1-D double.88</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L117 710.19 L117 715.59 L130.5 702.09 L117 688.59
+                                                L117 693.99 L13.5 693.99 Z" class="st42"/>
+               </g>
+               <g id="shape89-202" v:mID="89" v:groupContext="shape" v:layerMember="0" transform="translate(1434.31,247.875) rotate(90)">
+                       <title>1-D double.89</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L139.5 710.19 L139.5 715.59 L153 702.09 L139.5
+                                                688.59 L139.5 693.99 L13.5 693.99 Z" class="st43"/>
+               </g>
+               <g id="shape90-204" v:mID="90" v:groupContext="shape" v:layerMember="0"
+                               transform="translate(838.629,252.112) rotate(68.1986)">
+                       <title>Curve connect 1.61</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="Scale" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M7.53 720.84 L7.83 721.04 A30.61 30.61 -180 0 0 42.41 715.59 A30.61 30.61 0 0 1 76.99 710.13 L77.29 710.34"
+                                       class="st44"/>
+               </g>
+               <g id="shape91-213" v:mID="91" v:groupContext="shape" v:layerMember="0"
+                               transform="translate(-37.5816,162.844) rotate(-60.2551) scale(-1,1)">
+                       <title>Curve connect 1.62</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="Scale" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M7.67 720.62 L7.98 720.82 A34.3918 34.3918 -180 0 0 45.35 715.59 A34.3918 34.3918 0 0 1 82.72 710.35 L83.03
+                                                710.55" class="st44"/>
+               </g>
+               <g id="shape94-220" v:mID="94" v:groupContext="shape" v:layerMember="0"
+                               transform="translate(488.651,-255.84) rotate(-1.84761)">
+                       <title>Curve connect 2.54</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 69.79 715.59" class="st23"/>
+               </g>
+               <g id="shape96-225" v:mID="96" v:groupContext="shape" transform="translate(572.472,-222.463)">
+                       <title>Sheet.96</title>
+                       <desc>Script-generated EDK2 Redfish Collection Driver</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="76.5" cy="693.088" width="153" height="45"/>
+                       <rect x="0" y="670.588" width="153" height="45" class="st19"/>
+                       <text x="16.96" y="689.84" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated EDK2 <tspan
+                                               x="11.39" dy="1em" class="st5">Redfish Collection Driver</tspan></text>         </g>
+               <g id="shape98-229" v:mID="98" v:groupContext="shape" transform="translate(67.3474,-420.463)">
+                       <title>Rounded Rectangle.98</title>
+                       <desc>EDK2 HII UNI file #string STR_OPTION_A #language x-uefi-redfi...</desc>
+                       <v:userDefs>
+                               <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/>
+                               <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/>
+                               <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+                               <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/>
+                               <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/>
+                               <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/>
+                               <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/>
+                       </v:userDefs>
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/>
+                       <v:textRect cx="137.25" cy="672.838" width="274.5" height="85.5"/>
+                       <path d="M7.73 715.59 L266.77 715.59 A7.73227 7.73227 -180 0 0 274.5 707.86 L274.5 637.82 A7.73227 7.73227 -180 0 0 266.77
+                                                630.09 L7.73 630.09 A7.73227 7.73227 -180 0 0 -0 637.82 L0 707.86 A7.73227 7.73227 -180 0 0 7.73 715.59
+                                                Z" class="st46"/>
+                       <text x="4" y="646.69" class="st47" v:langID="1033"><v:paragraph v:spBefore="6" v:bulletSize="0.166667"/><v:tabList/>EDK2 HII UNI file<v:lf/><tspan
+                                               x="4" dy="1.425em" class="st48">#</tspan><tspan class="st48">string </tspan><tspan class="st49">STR</tspan><tspan
+                                               class="st49">_</tspan><tspan class="st49">OPTION</tspan><tspan class="st49">_</tspan><tspan class="st49">A</tspan><tspan
+                                               class="st48">  </tspan><tspan class="st48">#</tspan><tspan class="st48">language </tspan><tspan
+                                               class="st49">x</tspan><tspan class="st49">-</tspan><tspan class="st49">uefi</tspan><tspan class="st49">-</tspan><tspan
+                                               class="st49">redfish</tspan><tspan class="st49">-</tspan><tspan class="st49">SCHEMA</tspan><tspan
+                                               class="st49">.</tspan><tspan class="st49">VERSION</tspan><tspan class="st48">  </tspan><tspan class="st49"> </tspan><tspan
+                                               x="4" dy="1.2em" class="st50">“</tspan><tspan class="st50">/</tspan><tspan class="st50">SCHEMA</tspan><tspan
+                                               class="st50">/</tspan><tspan class="st50">PropertyA</tspan><tspan class="st49">” </tspan><tspan
+                                               class="st48"> <v:newlineChar/><v:paragraph v:bulletSize="0.166667"/></tspan><tspan x="4" dy="1.2em"
+                                               class="st48">#</tspan><tspan class="st48">string</tspan><tspan class="st49"> </tspan><tspan class="st49">STR</tspan><tspan
+                                               class="st49">_</tspan><tspan class="st49">OPTION</tspan><tspan class="st49">_</tspan><tspan class="st49">B</tspan><tspan
+                                               class="st48">  </tspan><tspan class="st48">#</tspan><tspan class="st48">language</tspan><tspan class="st49"> </tspan><tspan
+                                               class="st49">x</tspan><tspan class="st49">-</tspan><tspan class="st49">uefi</tspan><tspan class="st49">-</tspan><tspan
+                                               class="st49">redfish</tspan><tspan class="st49">-</tspan><tspan class="st49">SCHEMA</tspan><tspan
+                                               class="st49">.</tspan><tspan class="st49">VERSION</tspan><tspan class="st48">  </tspan><tspan class="st50"> </tspan><tspan
+                                               x="4" dy="1.2em" class="st50">“</tspan><tspan class="st50">/</tspan><tspan class="st50">SCHEMA</tspan><tspan
+                                               class="st50">/</tspan><tspan class="st50">PropertyB</tspan><tspan class="st50">”<v:newlineChar/></tspan><tspan
+                                               x="4" dy="1.2em" class="st48">#</tspan><tspan class="st48">string </tspan><tspan class="st49">STR</tspan><tspan
+                                               class="st49">_</tspan><tspan class="st49">OPTION</tspan><tspan class="st49">_</tspan><tspan class="st48">C  </tspan><tspan
+                                               class="st48">#</tspan><tspan class="st48">language</tspan><tspan class="st49"> </tspan><tspan class="st49">x</tspan><tspan
+                                               class="st49">-</tspan><tspan class="st49">uefi</tspan><tspan class="st49">-</tspan><tspan class="st49">redfish</tspan><tspan
+                                               class="st49">-</tspan><tspan class="st49">SCHEMA</tspan><tspan class="st49">.</tspan><tspan class="st49">VERSION</tspan><tspan
+                                               class="st48">  </tspan><tspan class="st50"> </tspan><tspan x="4" dy="1.312em" class="st50">“</tspan><tspan
+                                               class="st50">/</tspan><tspan class="st50">SCHEMA</tspan><tspan class="st50">/</tspan><tspan class="st50">PropertyC</tspan><tspan
+                                               class="st50">”</tspan><v:newlineChar/></text>           </g>
+               <g id="shape100-316" v:mID="100" v:groupContext="shape" transform="translate(171.972,-550.963)">
+                       <title>Rounded Rectangle.100</title>
+                       <desc>EDK2 HII VFR Form Option A Enabled Option B Disabled Option C...</desc>
+                       <v:userDefs>
+                               <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/>
+                               <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/>
+                               <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+                               <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+                               <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+                               <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+                               <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+                       </v:userDefs>
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/>
+                       <v:textRect cx="76.5" cy="688.025" width="153" height="55.125"/>
+                       <path d="M4.5 715.59 L148.5 715.59 A4.49993 4.49993 -180 0 0 153 711.09 L153 664.96 A4.49993 4.49993 -180 0 0 148.5 660.46
+                                                L4.5 660.46 A4.49993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.59 Z"
+                                       class="st51"/>
+                       <text x="37.65" y="671.66" class="st52" v:langID="1033"><v:paragraph v:spLine="-0.8" v:horizAlign="1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:lf/><tspan
+                                               x="24.37" dy="1.6em" class="st53">Option A        Enabled<v:newlineChar/></tspan><tspan x="24.6" dy="0.8em"
+                                               class="st53">Option B       Disabled<v:newlineChar/></tspan><tspan x="24.4" dy="0.8em" class="st53">Option C              </tspan><tspan
+                                               class="st53">0</tspan><tspan class="st53">x</tspan><tspan class="st53">16</tspan></text>                </g>
+               <g id="shape101-325" v:mID="101" v:groupContext="shape" transform="translate(147.222,-539.713)">
+                       <title>Rounded Rectangle.101</title>
+                       <desc>EDK2 HII VFR Form Option A Enabled Option B Disabled Option C...</desc>
+                       <v:userDefs>
+                               <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/>
+                               <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/>
+                               <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+                               <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+                               <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+                               <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+                               <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+                       </v:userDefs>
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/>
+                       <v:textRect cx="76.5" cy="688.025" width="153" height="55.125"/>
+                       <path d="M4.5 715.59 L148.5 715.59 A4.49993 4.49993 -180 0 0 153 711.09 L153 664.96 A4.49993 4.49993 -180 0 0 148.5 660.46
+                                                L4.5 660.46 A4.49993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.59 Z"
+                                       class="st51"/>
+                       <text x="37.65" y="671.66" class="st52" v:langID="1033"><v:paragraph v:spLine="-0.8" v:horizAlign="1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:lf/><tspan
+                                               x="24.37" dy="1.6em" class="st53">Option A        Enabled<v:newlineChar/></tspan><tspan x="24.6" dy="0.8em"
+                                               class="st53">Option B       Disabled<v:newlineChar/></tspan><tspan x="24.4" dy="0.8em" class="st53">Option C              </tspan><tspan
+                                               class="st53">0</tspan><tspan class="st53">x</tspan><tspan class="st53">16</tspan></text>                </g>
+               <g id="shape102-334" v:mID="102" v:groupContext="shape" transform="translate(129.222,-526.213)">
+                       <title>Rounded Rectangle</title>
+                       <desc>EDK2 HII VFR Form Option A Enabled Option B Disabled Option C...</desc>
+                       <v:userDefs>
+                               <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/>
+                               <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/>
+                               <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/>
+                               <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+                               <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+                               <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+                               <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+                               <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.0625):1"/>
+                       </v:userDefs>
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/>
+                       <v:textRect cx="76.5" cy="688.025" width="153" height="55.125"/>
+                       <path d="M4.5 715.59 L148.5 715.59 A4.49993 4.49993 -180 0 0 153 711.09 L153 664.96 A4.49993 4.49993 -180 0 0 148.5 660.46
+                                                L4.5 660.46 A4.49993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.59 Z"
+                                       class="st51"/>
+                       <text x="29.88" y="671.66" class="st29" v:langID="1033"><v:paragraph v:spLine="-0.8" v:horizAlign="1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:lf/><tspan
+                                               x="24.37" dy="1.6em" class="st54">Option A        </tspan><tspan class="st55">Enabled<v:newlineChar/></tspan><tspan
+                                               x="24.6" dy="0.8em" class="st54">Option B       </tspan><tspan class="st55">Disabled<v:newlineChar/></tspan><tspan
+                                               x="24.4" dy="0.8em" class="st54">Option C              </tspan><tspan class="st55">0</tspan><tspan
+                                               class="st55">x</tspan><tspan class="st55">16</tspan></text>             </g>
+               <g id="shape110-345" v:mID="110" v:groupContext="shape" v:layerMember="0"
+                               transform="translate(503.938,-444.613) rotate(13.0919)">
+                       <title>Curve connect 1.110</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="Scale" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M0 715.59 A11.592 11.592 0 0 1 22.97 715.59 A13.4718 13.4718 -180 0 0 48.31 719.9 L48.42 719.56" class="st56"/>
+               </g>
+               <g id="shape122-351" v:mID="122" v:groupContext="shape" transform="translate(41.4724,-96.4625)">
+                       <title>Sheet.122</title>
+                       <desc>[1]</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+                       <rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+                       <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[1]</text>               </g>
+               <g id="shape123-354" v:mID="123" v:groupContext="shape" transform="translate(746.847,-100.963)">
+                       <title>Sheet.123</title>
+                       <desc>[2]</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+                       <rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+                       <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[2]</text>               </g>
+               <g id="shape124-357" v:mID="124" v:groupContext="shape" transform="translate(68.4724,-278.713)">
+                       <title>Sheet.124</title>
+                       <desc>[3]</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+                       <rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+                       <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[3]</text>               </g>
+               <g id="shape125-360" v:mID="125" v:groupContext="shape" transform="translate(338.472,-269.713)">
+                       <title>Sheet.125</title>
+                       <desc>[4]</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+                       <rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+                       <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[4]</text>               </g>
+               <g id="shape126-363" v:mID="126" v:groupContext="shape" transform="translate(761.472,-269.713)">
+                       <title>Sheet.126</title>
+                       <desc>[5]</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+                       <rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+                       <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[5]</text>               </g>
+               <g id="shape127-366" v:mID="127" v:groupContext="shape" transform="translate(390.222,-476.713)">
+                       <title>Sheet.127</title>
+                       <desc>[6]</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+                       <rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+                       <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[6]</text>               </g>
+               <g id="shape128-369" v:mID="128" v:groupContext="shape" transform="translate(123.597,-579.088)">
+                       <title>Sheet.128</title>
+                       <desc>[8]</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+                       <rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+                       <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[8]</text>               </g>
+               <g id="shape129-372" v:mID="129" v:groupContext="shape" transform="translate(62.8474,-501.463)">
+                       <title>Sheet.129</title>
+                       <desc>[9]</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+                       <rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+                       <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[9]</text>               </g>
+               <g id="shape132-375" v:mID="132" v:groupContext="shape" v:layerMember="0"
+                               transform="translate(583.722,1233.46) rotate(180)">
+                       <title>Curve connect 2.132</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M2.78 714.72 L3.12 714.61 A681.188 681.188 0 0 1 406.38 714.61 L406.72 714.72" class="st58"/>
+               </g>
+               <g id="shape133-384" v:mID="133" v:groupContext="shape" transform="translate(238.347,-157.213)">
+                       <title>Sheet.133</title>
+                       <desc>Script-generated EDK2 Redfish client driver/library based on ...</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="130.5" cy="702.088" width="261" height="27"/>
+                       <rect x="0" y="688.588" width="261" height="27" class="st1"/>
+                       <text x="11.21" y="699.84" class="st60" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated EDK2 Redfish client driver/library based on the <tspan
+                                               x="45.23" dy="1em" class="st5">standard Redfish schemas </tspan>published by DMTF</text>                </g>
+               <g id="shape134-388" v:mID="134" v:groupContext="shape" transform="translate(21.2224,-679.775)">
+                       <title>Rectangle.134</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <rect x="0" y="703.213" width="24.75" height="12.375" class="st2"/>
+               </g>
+               <g id="shape135-390" v:mID="135" v:groupContext="shape" transform="translate(41.4724,-670.213)">
+                       <title>Sheet.135</title>
+                       <desc>Script-generated code</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="54" cy="702.088" width="108" height="27"/>
+                       <rect x="0" y="688.588" width="108" height="27" class="st6"/>
+                       <text x="12.79" y="704.34" class="st61" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated code</text>           </g>
+               <g id="shape137-393" v:mID="137" v:groupContext="shape" transform="translate(21.2224,-661.213)">
+                       <title>Rectangle.137</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <rect x="0" y="703.213" width="24.75" height="12.375" class="st62"/>
+               </g>
+               <g id="shape138-395" v:mID="138" v:groupContext="shape" transform="translate(43.7224,-652.213)">
+                       <title>Sheet.138</title>
+                       <desc>UEFI/EDK2 open source</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="54" cy="702.088" width="108" height="27"/>
+                       <rect x="0" y="688.588" width="108" height="27" class="st6"/>
+                       <text x="9.97" y="704.34" class="st61" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>UEFI/EDK2 open source</text>            </g>
+               <g id="shape140-398" v:mID="140" v:groupContext="shape" transform="translate(281.66,-341.784)">
+                       <title>Configure</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="msvShapeCategories" v:prompt="" v:val="VT4(Icon)"/>
+                               <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M41.27 698.83 C40.4 698.46 37.61 697.28 37.61 697.28 L37.79 694.96 L37.94 693.01 L37.69 689.29 L39.53 688.23
+                                                C39.53 688.23 40.46 687.84 41.33 687.49 C40.71 685.96 40.45 685.33 39.82 683.81 C38.94 684.17 36.06 685.35
+                                                36.06 685.35 L34.63 683.57 C33.94 682.7 33.09 681.89 32.02 681.06 L30.33 679.75 L31.01 677.68 C31.01 677.68
+                                                31.41 676.7 31.79 675.77 C30.27 675.14 29.64 674.88 28.12 674.26 C27.72 675.23 26.52 678.17 26.52 678.17
+                                                L24.28 677.95 C23.14 677.83 21.96 677.86 20.77 678.02 L18.64 678.3 L17.65 676.35 C17.65 676.35 17.21 675.31
+                                                16.78 674.31 C15.27 674.95 14.64 675.21 13.13 675.85 C13.58 676.92 14.85 679.93 14.85 679.93 L13.12 681.37
+                                                C12.3 682.05 11.54 682.85 10.79 683.83 L9.49 685.52 L7.41 684.86 C7.41 684.86 6.28 684.4 5.17 683.96 C4.56
+                                                685.49 4.31 686.12 3.69 687.65 C4.82 688.1 7.84 689.31 7.84 689.31 C7.84 689.31 7.65 692.73 7.63 693 C7.65
+                                                693.25 7.7 694.01 7.7 694.03 C7.7 694.03 7.87 695.84 7.87 695.84 L6.79 696.82 C6.46 697.15 6.34 697.24 3.64
+                                                698.3 C4.24 699.84 4.49 700.47 5.08 702.01 C6.21 701.57 9.36 700.34 9.36 700.34 L10.99 702.57 C11.49 703.19
+                                                12.18 703.89 13.04 704.61 L14.63 705.96 L13.93 707.96 C13.93 707.96 13.45 709.08 12.97 710.2 C14.47 710.85
+                                                15.1 711.12 16.61 711.77 C17.05 710.74 18.36 707.71 18.36 707.71 L20.65 708.03 C21.73 708.19 22.89 708.21
+                                                24.1 708.1 L26.18 707.92 L27.11 709.84 C27.11 709.84 27.53 710.9 27.94 711.93 C29.47 711.32 30.1 711.07
+                                                31.63 710.45 C31.25 709.51 30.04 706.48 30.04 706.48 L32.32 704.83 C32.97 704.31 33.71 703.56 34.48 702.62
+                                                L35.81 701 L37.85 701.7 C37.85 701.7 38.82 702.1 39.73 702.49 C40.37 700.97 40.64 700.34 41.27 698.83 ZM40.58
+                                                695.32 C40.58 695.32 40.57 695.4 40.56 695.47 C40.95 695.64 44.96 697.33 44.96 697.33 L41.23 706.17 C41.23
+                                                706.17 37.13 704.45 36.75 704.28 C36.7 704.34 36.65 704.41 36.65 704.41 C35.76 705.49 34.89 706.37 33.97
+                                                707.11 C33.97 707.11 33.67 707.33 33.46 707.47 C33.62 707.88 35.28 712.02 35.28 712.02 L26.38 715.59 C26.38
+                                                715.59 24.65 711.28 24.5 710.89 C24.42 710.9 24.34 710.9 24.34 710.9 C22.91 711.03 21.54 711 20.25 710.82
+                                                C20.25 710.82 20.17 710.8 20.09 710.79 C19.93 711.19 18.08 715.47 18.08 715.47 L9.27 711.66 C9.27 711.66
+                                                11.18 707.25 11.34 706.86 C11.29 706.81 11.22 706.76 11.22 706.76 C10.23 705.92 9.41 705.09 8.72 704.23
+                                                C8.72 704.23 8.51 703.94 8.37 703.75 C7.96 703.9 3.49 705.65 3.49 705.65 L0 696.71 C0 696.71 4.8 694.83
+                                                4.8 694.83 C4.8 694.83 4.88 694.8 4.95 694.78 C4.92 694.54 4.89 694.21 4.89 694.21 L4.82 693.02 C4.82 693.02
+                                                4.9 691.52 4.92 691.17 C4.54 691.02 0.04 689.21 0.04 689.21 L3.6 680.3 C3.6 680.3 8.06 682.09 8.46 682.25
+                                                C8.51 682.18 8.56 682.12 8.56 682.12 C9.43 680.98 10.34 680.02 11.33 679.2 C11.33 679.2 11.39 679.15 11.45
+                                                679.11 C11.29 678.72 9.45 674.35 9.45 674.35 L18.29 670.62 C18.29 670.62 20.07 674.85 20.24 675.25 C20.31
+                                                675.24 20.39 675.23 20.39 675.23 C21.8 675.04 23.2 675.01 24.56 675.15 C24.56 675.15 24.63 675.16 24.71
+                                                675.16 C24.87 674.78 26.59 670.59 26.59 670.59 L35.46 674.23 C35.46 674.23 33.77 678.34 33.61 678.74 C33.67
+                                                678.78 33.74 678.83 33.74 678.83 C34.99 679.8 35.99 680.77 36.82 681.8 C36.82 681.8 36.88 681.88 36.94 681.95
+                                                C37.33 681.79 41.35 680.14 41.35 680.14 L45 689.02 C45 689.02 40.99 690.67 40.6 690.83 C40.61 690.9 40.62
+                                                690.98 40.62 690.98 C40.71 691.76 40.75 692.41 40.75 693.01 C40.75 693.7 40.7 694.43 40.58 695.32 ZM26.56
+                                                697.76 C29.16 695.67 29.58 691.87 27.5 689.26 C25.42 686.65 21.62 686.23 19.01 688.31 C16.41 690.4 15.98
+                                                694.2 18.07 696.81 C20.15 699.42 23.95 699.84 26.56 697.76 ZM23.76 684.23 C26.11 684.49 28.22 685.65 29.7
+                                                687.5 C32.75 691.32 32.12 696.9 28.31 699.95 C26.47 701.43 24.16 702.1 21.8 701.84 C19.45 701.58 17.34 700.41
+                                                15.87 698.56 C14.57 696.94 13.93 694.98 13.93 693.04 C13.93 690.44 15.07 687.86 17.25 686.12 C19.1 684.64
+                                                21.41 683.97 23.76 684.23 Z" class="st63"/>
+               </g>
+               <g id="shape145-400" v:mID="145" v:groupContext="shape" v:layerMember="0"
+                               transform="translate(323.911,1069.28) scale(1,-1)">
+                       <title>Side to top/bottom.145</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="TextPos" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M7.18 715.59 L7.54 715.59 L96.69 715.59 L96.69 668.4" class="st64"/>
+               </g>
+               <g id="shape146-406" v:mID="146" v:groupContext="shape" v:layerMember="0" transform="translate(204.597,-382.144)">
+                       <title>Bottom to top fixed 2</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="TextPos" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="Offset" v:val="VT0(0.25):0"/>
+                               <v:ud v:nameU="Scale" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M0 677.27 L0 697.59 L99.14 697.59 L99.14 708.05" class="st66"/>
+               </g>
+               <g id="shape150-412" v:mID="150" v:groupContext="shape" v:layerMember="0" transform="translate(281.66,1070.51) rotate(180)">
+                       <title>Side to top/bottom</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="TextPos" v:val="VT0(0):5"/>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M7.18 715.59 L7.54 715.59 L107.44 715.59 L107.44 669.64" class="st64"/>
+               </g>
+               <g id="shape152-417" v:mID="152" v:groupContext="shape" transform="translate(173.097,-359.713)">
+                       <title>Sheet.152</title>
+                       <desc>[10]</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="22.5" cy="702.088" width="45" height="27"/>
+                       <rect x="0" y="688.588" width="45" height="27" class="st6"/>
+                       <text x="12.52" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[10]</text>             </g>
+               <g id="shape153-420" v:mID="153" v:groupContext="shape" transform="translate(186.597,-359.713)">
+                       <title>Sheet.153</title>
+                       <desc>EDK2 Build Tool</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="54" cy="702.088" width="108" height="27"/>
+                       <rect x="0" y="688.588" width="108" height="27" class="st6"/>
+                       <text x="21.18" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDK2 Build Tool</text>         </g>
+               <g id="shape95-423" v:mID="95" v:groupContext="shape" v:layerMember="0"
+                               transform="translate(479.651,-242.34) rotate(-1.84761)">
+                       <title>Curve connect 2</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 68.5 713.7 L68.7 713.99" class="st67"/>
+               </g>
+               <g id="shape154-431" v:mID="154" v:groupContext="shape" transform="translate(546.597,-607.213)">
+                       <title>Sheet.154</title>
+                       <desc>[7]</desc>
+                       <v:textBlock v:margins="rect(4,4,4,4)"/>
+                       <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/>
+                       <rect x="0" y="688.588" width="24.75" height="27" class="st6"/>
+                       <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[7]</text>               </g>
+               <g id="shape155-434" v:mID="155" v:groupContext="shape" v:layerMember="0"
+                               transform="translate(919.083,249.319) rotate(-86.8202) scale(1,-1)">
+                       <title>Curve connect 1.155</title>
+                       <v:userDefs>
+                               <v:ud v:nameU="Scale" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
+                               <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+                       </v:userDefs>
+                       <path d="M0 715.59 A6.2366 6.2366 0 0 1 11.73 715.59 A4.54475 4.54475 -180 0 0 20.28 715.59" class="st68"/>
+               </g>
+       </g>
+</svg>
--
2.37.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#103797): https://edk2.groups.io/g/devel/message/103797
Mute This Topic: https://groups.io/mt/98594270/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-