]> xenbits.xen.org Git - xenclient/xen.git/commitdiff
Lenovo oem value add - vACPI WMI changes.
authorKamala Narasimhan <kamala.narasimhan@citrix.com>
Thu, 12 Mar 2009 18:08:52 +0000 (14:08 -0400)
committerKamala Narasimhan <kamala.narasimhan@citrix.com>
Thu, 12 Mar 2009 18:08:52 +0000 (14:08 -0400)
NOTE:  At the moment, none of the vACPI WMI objects are
getting invoked as the keyboard controller is not wired to generate
acpi interrupt.  Once we add support to pass non-wmi hotkey events to guest, this
vACPI layer WMI objects will be invoked.

tools/firmware/hvmloader/acpi/Makefile
tools/firmware/hvmloader/acpi/build.c
tools/firmware/hvmloader/acpi/ssdt_lenovo_t_and_x_series.asl [new file with mode: 0644]
tools/firmware/hvmloader/acpi/ssdt_lenovo_t_and_x_series.h [new file with mode: 0644]

index 6f437b505824257d7c8e019d5892ffa752c36535..175ffbf0ca97b40de1f487c8191aaf8dd23217d5 100644 (file)
@@ -19,7 +19,7 @@ XEN_ROOT = ../../../..
 include $(XEN_ROOT)/tools/firmware/Rules.mk
 
 C_SRC = build.c dsdt.c static_tables.c
-H_SRC = $(wildcard *.h) ssdt_pm.h ssdt_hp_6930p_elitebook.h ssdt_dell_latitude_eseries.h ssdt_tpm.h
+H_SRC = $(wildcard *.h) ssdt_pm.h ssdt_hp_6930p_elitebook.h ssdt_dell_latitude_eseries.h ssdt_lenovo_t_and_x_series.h ssdt_tpm.h
 OBJS  = $(patsubst %.c,%.o,$(C_SRC))
 
 build.o: $(H_SRC) build.c
@@ -53,6 +53,13 @@ ssdt_dell_latitude_eseries.h: ssdt_dell_latitude_eseries.asl
        mv $*.hex $@
        rm -f *.aml
 
+ssdt_lenovo_t_and_x_series.h: ssdt_lenovo_t_and_x_series.asl
+       $(MAKE) iasl
+       iasl -tc $<
+       sed -i'' -re 's/AmlCode/AmlCode_LENOVO_T_AND_X_SERIES/g' $*.hex
+       mv $*.hex $@
+       rm -f *.aml
+
 ssdt_tpm.h: ssdt_tpm.asl
        $(MAKE) iasl
        iasl -tc $<
@@ -87,6 +94,6 @@ acpi.a: $(OBJS)
        $(AR) rc $@ $(OBJS)
 
 clean:
-       rm -rf *.a *.o dsdt.c ssdt_pm.h ssdt_hp_6930p_elitebook.h ssdt_dell_latitude_eseries.h ssdt_tpm.h $(IASL_VER) $(IASL_VER).tar.gz
+       rm -rf *.a *.o dsdt.c ssdt_pm.h ssdt_hp_6930p_elitebook.h ssdt_dell_latitude_eseries.h ssdt_lenovo_t_and_x_series.h ssdt_tpm.h $(IASL_VER) $(IASL_VER).tar.gz
 
 install: all
index 2d35b00fbc2364ee9d981cc60863e057909a30d5..ab7f5f38f905ba67a7392850ffa5bb0e73eb7775 100644 (file)
@@ -21,6 +21,7 @@
 #include "ssdt_pm.h"
 #include "ssdt_hp_6930p_elitebook.h"
 #include "ssdt_dell_latitude_eseries.h"
+#include "ssdt_lenovo_t_and_x_series.h"
 #include "../config.h"
 #include "../util.h"
 #include "../smbios_types.h"
@@ -39,9 +40,13 @@ extern int DsdtLen;
 
 #define OEM_NAME_DELL                    "Dell"
 #define OEM_NAME_HP                      "Hewlett-Packard"
+#define OEM_NAME_LENOVO                  "LENOVO"
+
 #define OEM_MODEL_DELL_LATITUDE_1        "Latitude E4200"
 #define OEM_MODEL_DELL_LATITUDE_2        "Latitude E6500"
 #define OEM_MODEL_HP_EliteBook           "HP EliteBook 6930p"
+#define OEM_MODEL_LENOVO_T400            "6475BY3"
+#define OEM_MODEL_LENOVO_X200            "74542NU"
 
 static void set_checksum(
     void *table, uint32_t checksum_offset, uint32_t length)
@@ -162,6 +167,16 @@ static int construct_oem_ssdt(uint8_t *buf)
         memcpy(buf, AmlCode_HP_6930P_ELITEBOOK, sizeof(AmlCode_HP_6930P_ELITEBOOK));
         return align16(sizeof(AmlCode_HP_6930P_ELITEBOOK));
     }
+
+    if ( strncmp(manufacturer, OEM_NAME_LENOVO, strlen(OEM_NAME_LENOVO)) == 0 )
+    {
+        if ( (strncmp(model, OEM_MODEL_LENOVO_T400, strlen(OEM_MODEL_LENOVO_T400)) != 0) &&
+             (strncmp(model, OEM_MODEL_LENOVO_X200, strlen(OEM_MODEL_LENOVO_X200)) != 0) )
+            return 0;
+
+        memcpy(buf, AmlCode_LENOVO_T_AND_X_SERIES, sizeof(AmlCode_LENOVO_T_AND_X_SERIES));
+        return align16(sizeof(AmlCode_LENOVO_T_AND_X_SERIES));
+    }
  
     return 0;
 }
diff --git a/tools/firmware/hvmloader/acpi/ssdt_lenovo_t_and_x_series.asl b/tools/firmware/hvmloader/acpi/ssdt_lenovo_t_and_x_series.asl
new file mode 100644 (file)
index 0000000..40375cf
--- /dev/null
@@ -0,0 +1,616 @@
+/*
+ * ssdt_lenovo_t_and_x_series.asl
+ *
+ * Copyright (c) 2009  Kamala Narasimhan
+ * Copyright (c) 2009  Citrix Systems, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* SSDT for exposing Lenovo T and X series specific value add functionalities like  
+ * hotkeys, special buttons.
+ */
+
+/* IMPLEMENTATION DETAILS:  OEM value add features are generally exposed through
+ * WMI psuedo device objects.  For our guests to benefit from such value add, we
+ * expose a psuedo device object in our vACPI layer also.  This psuedo object is 
+ * similar to the underlying base firmware object in the sense we expose the 
+ * same _WDG method which describes the WMI methods, data objects and events 
+ * provided by the WMI psuedo object.  Guest wmi wrapper driver which automatically
+ * gets loaded upon identifying this WMI pseudo device object, calls _WDG to get 
+ * known entry points and calls those entry points for further information exchange.
+ * Reference - http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx
+ */
+
+/* COMMUNICATION DETAILS -
+ * Command port - 0x96 
+ *                Writes to this port describe what type of information is about
+ *                to be exchanged.  E.g., guid, input argument transfer etc.
+ * Data Port    - 0x98 and 0x9A for byte and dword data transfer respectively.
+ *                Communicates data to and from the backend.  E.g. Input buffer values
+ *                get written to this port and output buffer values are read from this 
+ *                port.
+ */
+
+DefinitionBlock ("SSDT_LENOVO_T_AND_X_SERIES.aml", "SSDT", 2, "Xen", "HVM", 0)
+{
+    Scope (\_SB)
+    {
+
+        OperationRegion (LEN1, SystemIO, 0x96, 0x01)
+        Field (LEN1, ByteAcc, NoLock, Preserve)
+        {
+            P96,   8
+        }
+
+        OperationRegion (LEN2, SystemIO, 0x98, 0x01)
+        Field (LEN2, ByteAcc, NoLock, Preserve)
+        {
+            P98,  8
+        }
+
+        OperationRegion (LEN3, SystemIO, 0x9A, 0x04)
+        Field (LEN3, DWordAcc, NoLock, Preserve)
+        {
+            P9A,  32
+        }
+
+        Device (WMI1)
+        {
+            /* Exposing a pseudo device with HID PNP0C14 will 
+             * result in Windows guest loading their WMI wrapper
+             * driver - wmiacpi.sys
+             */
+            Name (_HID, EisaId ("PNP0C14"))
+            Name (_UID, 0x01)
+
+            /* Following list of data blocks exposed by _WDG is same as the 
+             * one provided by the underlying firmware.  Refer to -
+             * http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx
+             * for further information about _WDG and what it exposes.
+             */ 
+            Name (_WDG, Buffer (0xA0)
+            {
+                /* Data Block 1 */
+                /* GUID */
+                0x0E, 0x23, 0xF5, 0x51, 0x77, 0x96, 0xCD, 0x46,
+                0xA1, 0xCF, 0xC0, 0xB2, 0x3E, 0xE3, 0x4D, 0xB7,
+                0x41, 0x30, /* Object ID - WQA0 */ 
+                0x5A, /* Instance count */
+                0x05, /* Flag -  String block & Expensive */
+
+                /* Data Block 2 */
+                /* GUID */
+                0x64, 0x9A, 0x47, 0x98, 0xF5, 0x33, 0x33, 0x4E,
+                0xA7, 0x07, 0x8E, 0x25, 0x1E, 0xBB, 0xC3, 0xA1,
+                0x41, 0x31, /*Object ID - WMA1 */ 
+                0x01, /* Instance count */
+                0x06, /* Flag - Method & string block */
+
+                /* Data Block 3 */
+                /* GUID */
+                0xEF, 0x54, 0x4B, 0x6A, 0xED, 0xA5, 0x33, 0x4D,
+                0x94, 0x55, 0xB0, 0xD9, 0xB4, 0x8D, 0xF4, 0xB3,
+                0x41, 0x32, /* Object ID - WMA2 */
+                0x01, /* Instance count */
+                0x06, /* Flag - Method & string block */
+
+                /* Data Block 4 */
+                /* GUID */
+                0xB6, 0xEB, 0xF1, 0x74, 0x7A, 0x92, 0x7D, 0x4C,
+                0x95, 0xDF, 0x69, 0x8E, 0x21, 0xE8, 0x0E, 0xB5,
+                0x41, 0x33, /* Object ID - WMA3 */
+                0x01, /* Instance count */
+                0x06, /* Flag - Method & string block */
+
+                /* Data Block 5 */
+                /* GUID */
+                0xFF, 0x04, 0xEF, 0x7E, 0x28, 0x43, 0x7C, 0x44,
+                0xB5, 0xBB, 0xD4, 0x49, 0x92, 0x5D, 0x53, 0x8D,
+                0x41, 0x34, /* Object ID - WMA4 */
+                0x01, /* Instance count */
+                0x06, /* Flag - Method & string block*/
+
+                /* Data Block 6 */
+                /* GUID */
+                0x9E, 0x15, 0xDB, 0x8A, 0x32, 0x1E, 0x5C, 0x45,
+                0xBC, 0x93, 0x30, 0x8A, 0x7E, 0xD9, 0x82, 0x46,
+                0x41, 0x35, /* Object ID - WQA5 */
+                0x01, /* Instance count */
+                0x01, /* Flag - Expensive */
+
+                /* Data Block 7 */
+                /* GUID */
+                0xFD, 0xD9, 0x51, 0x26, 0x1C, 0x91, 0x69, 0x4B,
+                0xB9, 0x4E, 0xD0, 0xDE, 0xD5, 0x96, 0x3B, 0xD7,
+                0x41, 0x36, /* Object ID - WMA6 */
+                0x01, /* Instance count */
+                0x06, /* Flag - Method & string block */
+
+                /* Data Block 6 */
+                /* GUID */
+                0x21, 0x12, 0x90, 0x05, 0x66, 0xD5, 0xD1, 0x11,
+                0xB2, 0xF0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0x10,
+                0x42, 0x41, /* Object ID - WQBA */
+                0x01, /* Instance count */
+                0x00, /* Flag - Expensive */
+
+            })
+
+            /* Initialize cmd port and communicate invocation type
+             * i.e., method execution or query or set object 
+             */
+            Method (INIT, 1, Serialized)
+            {
+                Store (100, P96)
+                Store (Arg0, P98)
+            }
+
+            /* Pass the guid pertaining to the operation */
+            Method (GUID, 1, Serialized)
+            {
+                Store (101, P96)
+                Store (0x0, Local0)
+                Store (Arg0, Local1)
+
+                While ( LLess(Local0,16) ) 
+                {
+                    Add(Local1, Local0, Local2)
+                    Store (DerefOf(Index (_WDG, Local2)), P98 ) 
+                    Increment( Local0 )
+                }
+            }
+
+            /* Pass instance # for the associated object pertaining
+             * to the invocation.
+             */
+            Method (INST, 1, Serialized)
+            {
+                Store(102, P96)
+                Store(Arg0, P9A)
+            }
+
+            /* Pass method id relevant to the method about to be
+             * executed.
+             */
+            Method (MTID, 1, Serialized)
+            {
+                Store(103, P96)
+                Store(Arg0, P9A)
+            }
+
+            /* Pass input buffer pertaining to the current operation */
+            Method (IBUF, 1, Serialized)
+            {
+                Store (105, P96) 
+                Store (SizeOf(Arg0), Local0)
+                Store (Local0, P9A)
+                ToBuffer (Arg0, Local1)
+                Store (0, Local2)
+                Store (104, P96)
+                While ( LLess(Local2,Local0) )
+                {
+                    Store (DerefOf(Index (Local1, Local2)), P98)
+                    Increment (Local2)
+                }
+            }
+
+            /* Now that the input arguments are passed, execute the command */
+            Method (EXEC, 0, Serialized)
+            {
+                Store (106, P96)
+            }
+
+            /* Get the output buffer pertaining to the just executed command */
+            Method (OBUF, 0, Serialized)
+            {
+                Store (108, P96)
+                Store (P9A, Local0)
+                Store (Buffer(Local0) {}, Local2)
+                Store (0, Local1)
+                Store (107, P96)
+                While ( LLess(Local1, Local0) )
+                {
+                    Store (P98, Index(Local2, Local1)) 
+                    Increment (Local1)
+                }
+                Return (Local2)
+            }
+
+            /* Get event data */
+            Method (_WED, 1, Serialized)
+            {
+                INIT (4)
+                Store (109, P96)
+                Store (Arg0, P98)
+                EXEC ()
+                Return (OBUF())
+            }
+
+            /*  Following are well know entry points as supplied by 
+             *  _WDG.
+             *  @TODO:  Though current testing suggest that defining
+             *  a method for seralized execution is enough to prevent
+             *  synchronization issues, consider using explicit mutexes
+             *  for further protection.
+             */
+            Method (WQA0, 1, Serialized)
+            {
+                INIT (2)
+                GUID (0)
+                INST (Arg0)
+                EXEC () 
+                Return (OBUF())
+            }
+
+            Method (WMA1, 3, Serialized)
+            {
+                INIT (1)
+                GUID (20)
+                INST (Arg0)
+                MTID (Arg1)
+                IBUF (Arg2)
+                EXEC ()
+                Return (OBUF())
+            }
+
+            Method (WMA2, 3, Serialized)
+            {
+                INIT (1)
+                GUID (40)
+                INST (Arg0)
+                MTID (Arg1)
+                IBUF (Arg2)
+                EXEC ()
+                Return (OBUF())
+            }
+
+            Method (WMA3, 3, Serialized)
+            {
+                INIT (1)
+                GUID (60)
+                INST (Arg0)
+                MTID (Arg1)
+                IBUF (Arg2)
+                EXEC ()
+                Return (OBUF())
+            }
+
+            Method (WMA4, 3, Serialized)
+            {
+                INIT (1)
+                GUID (80)
+                INST (Arg0)
+                MTID (Arg1)
+                IBUF (Arg2)
+                EXEC ()
+                Return (OBUF())
+            }
+
+            Method (WQA5, 1, Serialized)
+            {
+                INIT (2)
+                GUID (100)
+                INST (Arg0)
+                EXEC ()
+                Return (OBUF())
+            }
+
+            Method (WMA6, 3, Serialized)
+            {
+                INIT (1)
+                GUID (120)
+                INST (Arg0)
+                MTID (Arg1)
+                IBUF (Arg2)
+                EXEC ()
+                Return (OBUF())
+            }
+
+            Method (WQBC, 1, Serialized)
+            {
+                INIT (2)
+                GUID (60)
+                INST (Arg0)
+                EXEC ()
+                Return (OBUF())
+            }
+
+            /* Like all other well know entry points, we could delegate
+             * the below to the base firmware also.  But, why ask for a 
+             * static list (that too this big) and go through layer after
+             * layer to get it?  Also, port i/o is not a good idea for this
+             * much data transfer.  Luckily, this is the only place that appear
+             * to transfer so much data.
+             */ 
+
+            Method (WMBD, 3, Serialized)
+            {
+                INIT (1)
+                GUID (100)
+                INST (Arg0)
+                MTID (Arg1)
+                IBUF (Arg2)
+                EXEC ()
+                Return (OBUF())
+            }
+
+            Name (WQBA, Buffer (0x07C1)
+            {
+                /* 0000 */    0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00, 
+                /* 0008 */    0xB1, 0x07, 0x00, 0x00, 0x5A, 0x30, 0x00, 0x00, 
+                /* 0010 */    0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54, 
+                /* 0018 */    0x98, 0x51, 0x97, 0x00, 0x01, 0x06, 0x18, 0x42, 
+                /* 0020 */    0x10, 0x11, 0x10, 0x0A, 0x0D, 0x21, 0x02, 0x0B, 
+                /* 0028 */    0x83, 0x50, 0x4C, 0x18, 0x14, 0xA0, 0x45, 0x41, 
+                /* 0030 */    0xC8, 0x05, 0x14, 0x95, 0x02, 0x21, 0xC3, 0x02, 
+                /* 0038 */    0x14, 0x0B, 0x70, 0x2E, 0x40, 0xBA, 0x00, 0xE5, 
+                /* 0040 */    0x28, 0x72, 0x0C, 0x22, 0x02, 0xF7, 0xEF, 0x0F, 
+                /* 0048 */    0x31, 0x0E, 0x88, 0x14, 0x40, 0x48, 0xE6, 0x28, 
+                /* 0050 */    0x28, 0x81, 0x85, 0xC0, 0x11, 0x82, 0x7E, 0x05, 
+                /* 0058 */    0x20, 0x74, 0x88, 0x26, 0x83, 0x02, 0x9C, 0x22, 
+                /* 0060 */    0x08, 0xD2, 0x96, 0x05, 0xE8, 0x16, 0xE0, 0x5B, 
+                /* 0068 */    0x80, 0x76, 0x08, 0xA1, 0x55, 0x28, 0xC0, 0xA4, 
+                /* 0070 */    0x00, 0x9F, 0x60, 0xB2, 0x28, 0x40, 0x36, 0x98, 
+                /* 0078 */    0x6C, 0xC3, 0x91, 0x61, 0x30, 0x91, 0x63, 0x40, 
+                /* 0080 */    0x89, 0x19, 0x03, 0x4A, 0xE7, 0x14, 0x64, 0x13, 
+                /* 0088 */    0x58, 0xD0, 0x85, 0xA2, 0x68, 0x1A, 0x51, 0x12, 
+                /* 0090 */    0x1C, 0xD4, 0x31, 0x44, 0x08, 0x5E, 0xAE, 0x00, 
+                /* 0098 */    0xC9, 0x13, 0x90, 0xE6, 0x79, 0xC9, 0xFA, 0x20, 
+                /* 00A0 */    0x34, 0x04, 0x36, 0x02, 0x1E, 0x45, 0x02, 0x08, 
+                /* 00A8 */    0x8B, 0xB1, 0x4C, 0x89, 0x87, 0x41, 0x79, 0x00, 
+                /* 00B0 */    0x91, 0x9C, 0xA1, 0xA2, 0x80, 0xED, 0x75, 0x22, 
+                /* 00B8 */    0x1A, 0xD6, 0x71, 0x32, 0x49, 0x70, 0xA8, 0x51, 
+                /* 00C0 */    0x5A, 0xA2, 0x00, 0xF3, 0x23, 0xD3, 0x44, 0x8E, 
+                /* 00C8 */    0xAD, 0xE9, 0x11, 0x0B, 0x92, 0x49, 0x1B, 0x0A, 
+                /* 00D0 */    0x6A, 0xE8, 0x9E, 0xD6, 0x49, 0x79, 0xA2, 0x11, 
+                /* 00D8 */    0x0F, 0xCA, 0x30, 0x09, 0x3C, 0x0A, 0x86, 0xC6, 
+                /* 00E0 */    0x09, 0xCA, 0x82, 0x90, 0x83, 0x81, 0xA2, 0x00, 
+                /* 00E8 */    0x4F, 0xC2, 0x73, 0x2C, 0x5E, 0x80, 0xF0, 0x19, 
+                /* 00F0 */    0x93, 0xA3, 0x40, 0x8C, 0x04, 0x3E, 0x12, 0x78, 
+                /* 00F8 */    0x34, 0xC7, 0x8C, 0x05, 0x0A, 0x17, 0xF0, 0x7C, 
+                /* 0100 */    0x8E, 0x21, 0x72, 0xDC, 0x43, 0x8D, 0x71, 0x14, 
+                /* 0108 */    0x91, 0x13, 0xBC, 0x03, 0x44, 0x31, 0x5A, 0x41, 
+                /* 0110 */    0xF3, 0x16, 0x62, 0xB0, 0x68, 0x06, 0xEB, 0x19, 
+                /* 0118 */    0x9C, 0x0C, 0x3A, 0xC1, 0xFF, 0xFF, 0x08, 0xB8, 
+                /* 0120 */    0x0C, 0x08, 0x79, 0x14, 0x60, 0x75, 0x50, 0x9A, 
+                /* 0128 */    0x86, 0x09, 0xBA, 0x17, 0x60, 0x4D, 0x80, 0x31, 
+                /* 0130 */    0x01, 0x1A, 0x31, 0xA4, 0x4C, 0x80, 0xB3, 0xFB, 
+                /* 0138 */    0x82, 0x66, 0xD4, 0x96, 0x00, 0x73, 0x02, 0xB4, 
+                /* 0140 */    0x09, 0xF0, 0x86, 0x20, 0x94, 0xF3, 0x8C, 0x72, 
+                /* 0148 */    0x2C, 0xA7, 0x18, 0xE5, 0x61, 0x20, 0xE6, 0xCB, 
+                /* 0150 */    0x40, 0xD0, 0x28, 0x31, 0x62, 0x9E, 0x4B, 0x5C, 
+                /* 0158 */    0xC3, 0x46, 0x88, 0x11, 0xF2, 0x14, 0x02, 0xC5, 
+                /* 0160 */    0x6D, 0x7F, 0x10, 0x64, 0xD0, 0xB8, 0xD1, 0xFB, 
+                /* 0168 */    0xB4, 0x70, 0x56, 0x27, 0x70, 0xF4, 0x4F, 0x0A, 
+                /* 0170 */    0x26, 0xF0, 0x94, 0x0F, 0xEC, 0xD9, 0xE0, 0x04, 
+                /* 0178 */    0x8E, 0x35, 0x6A, 0x8C, 0x53, 0x49, 0xE0, 0xD8, 
+                /* 0180 */    0x0F, 0x08, 0x69, 0x00, 0x51, 0x24, 0x78, 0xD4, 
+                /* 0188 */    0x69, 0xC1, 0xE7, 0x02, 0x0F, 0xED, 0xA0, 0x3D, 
+                /* 0190 */    0xC7, 0x13, 0x08, 0x72, 0x08, 0x47, 0xF0, 0xC4, 
+                /* 0198 */    0xF0, 0x40, 0xE0, 0x31, 0xB0, 0x9B, 0x82, 0x8F, 
+                /* 01A0 */    0x00, 0x3E, 0x21, 0xE0, 0x5D, 0x03, 0xEA, 0x6A, 
+                /* 01A8 */    0xF0, 0x60, 0xC0, 0x06, 0x1D, 0x0E, 0x33, 0x5E, 
+                /* 01B0 */    0x0F, 0x3F, 0xDC, 0x09, 0x9C, 0xE4, 0x03, 0x06, 
+                /* 01B8 */    0x3F, 0x6C, 0x78, 0x70, 0xB8, 0x79, 0x9E, 0xCC, 
+                /* 01C0 */    0x91, 0x95, 0x2A, 0xC0, 0xEC, 0xE1, 0x40, 0x07, 
+                /* 01C8 */    0x09, 0x9F, 0x36, 0xD8, 0x19, 0x00, 0x23, 0x7F, 
+                /* 01D0 */    0x10, 0xA8, 0x91, 0x19, 0xDA, 0xE3, 0x7E, 0xE9, 
+                /* 01D8 */    0x30, 0xE4, 0x73, 0xC2, 0x61, 0x31, 0xB1, 0xA7, 
+                /* 01E0 */    0x0E, 0x3A, 0x1E, 0xF0, 0x5F, 0x46, 0x9E, 0x33, 
+                /* 01E8 */    0x3C, 0x7D, 0xCF, 0xD7, 0x04, 0xC3, 0x0E, 0x1C, 
+                /* 01F0 */    0x3D, 0x10, 0x43, 0x3F, 0x6C, 0x1C, 0xC6, 0x69, 
+                /* 01F8 */    0xF8, 0xFE, 0xE1, 0xF3, 0x02, 0x8C, 0x53, 0x80, 
+                /* 0200 */    0x47, 0xEE, 0xFF, 0xFF, 0x21, 0xC5, 0xA7, 0x09, 
+                /* 0208 */    0x7E, 0xB4, 0xF0, 0x69, 0x82, 0x5D, 0x0F, 0x4E, 
+                /* 0210 */    0xE3, 0x39, 0xC0, 0xC3, 0x39, 0x2B, 0x1F, 0x26, 
+                /* 0218 */    0xC0, 0x76, 0x3F, 0x61, 0x23, 0x7A, 0xB7, 0xF0, 
+                /* 0220 */    0x68, 0xB0, 0xA7, 0x00, 0xF0, 0x9D, 0x5F, 0xC0, 
+                /* 0228 */    0x79, 0xD7, 0x60, 0x83, 0x85, 0x71, 0x7E, 0x01, 
+                /* 0230 */    0x1E, 0x27, 0x04, 0x0F, 0x81, 0x1F, 0x24, 0x3C, 
+                /* 0238 */    0x04, 0x3E, 0x80, 0xE7, 0x8F, 0x33, 0xB4, 0xD2, 
+                /* 0240 */    0x79, 0x21, 0x07, 0x06, 0xEF, 0x9C, 0x03, 0x63, 
+                /* 0248 */    0x14, 0x3C, 0xCF, 0x63, 0xC3, 0x04, 0x0A, 0xF2, 
+                /* 0250 */    0x1A, 0x50, 0xA8, 0x67, 0x01, 0x85, 0xF1, 0xA9, 
+                /* 0258 */    0x06, 0x78, 0xFD, 0xFF, 0x4F, 0x35, 0xC0, 0xE5, 
+                /* 0260 */    0x70, 0x80, 0x3B, 0x39, 0xC0, 0xBD, 0x17, 0xB0, 
+                /* 0268 */    0x8B, 0xC3, 0x73, 0x0D, 0x5C, 0xD1, 0xE7, 0x1A, 
+                /* 0270 */    0xA8, 0xF7, 0x96, 0xE2, 0xC6, 0xA8, 0x6B, 0x4C, 
+                /* 0278 */    0x90, 0x47, 0x81, 0x47, 0x9A, 0x28, 0xCF, 0x33, 
+                /* 0280 */    0xEF, 0x32, 0x11, 0x9E, 0x6D, 0x7C, 0xAD, 0xF1, 
+                /* 0288 */    0x14, 0xE2, 0xF8, 0x5A, 0x63, 0xC4, 0x97, 0x89, 
+                /* 0290 */    0x77, 0x1B, 0xE3, 0x1E, 0xDC, 0x63, 0xCD, 0x43, 
+                /* 0298 */    0x8E, 0x41, 0x8E, 0x26, 0xC2, 0x8B, 0x41, 0xC0, 
+                /* 02A0 */    0xC7, 0x1B, 0x1F, 0x6B, 0xC0, 0x2B, 0xE6, 0x85, 
+                /* 02A8 */    0x22, 0x0B, 0xC7, 0x1A, 0x40, 0xE3, 0xFF, 0xFF, 
+                /* 02B0 */    0x58, 0x03, 0xDC, 0xB0, 0x1E, 0x50, 0xC0, 0x77, 
+                /* 02B8 */    0x64, 0x60, 0x37, 0x14, 0x78, 0x27, 0x14, 0xC0, 
+                /* 02C0 */    0x4F, 0xE2, 0x17, 0x80, 0x8E, 0x1C, 0x4E, 0x0B, 
+                /* 02C8 */    0x22, 0x1B, 0x6F, 0x00, 0x9F, 0x02, 0xA8, 0x1A, 
+                /* 02D0 */    0x20, 0x4D, 0x13, 0x36, 0xC1, 0xF4, 0xE4, 0x82, 
+                /* 02D8 */    0xF7, 0x91, 0xC0, 0xB9, 0x49, 0x94, 0x7C, 0x58, 
+                /* 02E0 */    0x14, 0xCE, 0x59, 0x0F, 0x22, 0x14, 0xC4, 0x80, 
+                /* 02E8 */    0x0E, 0x72, 0x9C, 0x40, 0x9F, 0x51, 0x7C, 0x10, 
+                /* 02F0 */    0x39, 0xD1, 0x27, 0x42, 0x0F, 0xCA, 0xC3, 0x78, 
+                /* 02F8 */    0x47, 0x61, 0x27, 0x10, 0x1F, 0x26, 0x3C, 0x76, 
+                /* 0300 */    0x1F, 0x13, 0xF8, 0x3F, 0xC6, 0xB3, 0x31, 0xBA, 
+                /* 0308 */    0xD5, 0x60, 0xE8, 0xFF, 0x7F, 0x4E, 0xE1, 0x60, 
+                /* 0310 */    0x3E, 0x88, 0x70, 0x82, 0x8F, 0x46, 0xDD, 0x24, 
+                /* 0318 */    0x40, 0xA5, 0xEF, 0xA8, 0x00, 0x0A, 0x20, 0xDF, 
+                /* 0320 */    0x0B, 0x7C, 0x0E, 0x78, 0x36, 0x60, 0x63, 0x78, 
+                /* 0328 */    0x14, 0x30, 0x9A, 0xD1, 0x79, 0xF8, 0xC9, 0xA2, 
+                /* 0330 */    0xE2, 0x4E, 0x96, 0x82, 0x78, 0xB2, 0x8E, 0x32, 
+                /* 0338 */    0x59, 0xF4, 0x4C, 0x7C, 0xAF, 0xF0, 0x8C, 0xDE, 
+                /* 0340 */    0xB4, 0x3C, 0x47, 0x4F, 0xD8, 0xF7, 0x10, 0x58, 
+                /* 0348 */    0x87, 0x81, 0x90, 0x0F, 0x06, 0x9E, 0x86, 0xE1, 
+                /* 0350 */    0x3C, 0x59, 0x0E, 0xE7, 0xC9, 0xF2, 0xB1, 0xF8, 
+                /* 0358 */    0x1A, 0x02, 0x3E, 0x81, 0xB3, 0x05, 0x39, 0x3C, 
+                /* 0360 */    0x26, 0xD6, 0xA8, 0xE8, 0x55, 0xC8, 0xC3, 0xE3, 
+                /* 0368 */    0x97, 0x03, 0xCF, 0xE7, 0x19, 0xE1, 0x28, 0x9F, 
+                /* 0370 */    0x24, 0x70, 0x18, 0xCF, 0x24, 0x1E, 0xA2, 0x6F, 
+                /* 0378 */    0x45, 0xB0, 0x26, 0x72, 0xD2, 0xBE, 0x2D, 0x9C, 
+                /* 0380 */    0x6C, 0xD0, 0xD7, 0x33, 0xCC, 0xAD, 0x08, 0xF6, 
+                /* 0388 */    0xFF, 0xFF, 0x56, 0x04, 0xE7, 0x82, 0x06, 0x33, 
+                /* 0390 */    0xD3, 0xBD, 0x0A, 0x15, 0xEB, 0x5E, 0x05, 0x88, 
+                /* 0398 */    0x1D, 0xD6, 0x6B, 0x8F, 0x0F, 0x56, 0x70, 0xEF, 
+                /* 03A0 */    0x55, 0x70, 0x2F, 0x55, 0xCF, 0x0A, 0xC7, 0x18, 
+                /* 03A8 */    0xFE, 0x61, 0x2A, 0xC6, 0x29, 0xBD, 0x76, 0x1A, 
+                /* 03B0 */    0x28, 0x4C, 0x94, 0x78, 0xEF, 0x55, 0x1E, 0xE3, 
+                /* 03B8 */    0x7B, 0x15, 0xBB, 0x42, 0x85, 0x89, 0xF5, 0x72, 
+                /* 03C0 */    0x65, 0xD4, 0xD7, 0x89, 0x70, 0x81, 0x82, 0x44, 
+                /* 03C8 */    0x7A, 0xB5, 0x8A, 0x12, 0x39, 0xBE, 0x21, 0xDF, 
+                /* 03D0 */    0xAB, 0xC0, 0x2B, 0xE7, 0x5E, 0x05, 0xB2, 0xFF, 
+                /* 03D8 */    0xFF, 0xBD, 0x0A, 0x30, 0x8F, 0xF6, 0x5E, 0x05, 
+                /* 03E0 */    0xC6, 0x6B, 0x03, 0xBB, 0x21, 0xC1, 0x02, 0x7A, 
+                /* 03E8 */    0xB1, 0x02, 0x0C, 0x65, 0xBE, 0x58, 0xD1, 0xBC, 
+                /* 03F0 */    0x17, 0x2B, 0xC4, 0xFF, 0xFF, 0x5C, 0xC2, 0xF4, 
+                /* 03F8 */    0x5C, 0xAC, 0xC8, 0x3C, 0xE1, 0xDF, 0xAC, 0x00, 
+                /* 0400 */    0x4E, 0xFF, 0xFF, 0x6F, 0x56, 0x80, 0xB1, 0x7B, 
+                /* 0408 */    0x11, 0xE6, 0x68, 0x05, 0x2F, 0xE5, 0xCD, 0x8A, 
+                /* 0410 */    0xC6, 0x59, 0x86, 0x02, 0x2E, 0x88, 0xC2, 0xF8, 
+                /* 0418 */    0x66, 0x05, 0x38, 0xBA, 0xAE, 0xE0, 0x86, 0x0C, 
+                /* 0420 */    0x17, 0x2C, 0x4A, 0x30, 0x1F, 0x42, 0x3C, 0x9D, 
+                /* 0428 */    0x23, 0x7E, 0x48, 0x78, 0x09, 0x78, 0xCC, 0xF1, 
+                /* 0430 */    0x80, 0x1F, 0x08, 0x7C, 0xB9, 0x02, 0xD3, 0xFF, 
+                /* 0438 */    0x9F, 0xC0, 0x27, 0xDF, 0xB3, 0x7C, 0x9B, 0x7A, 
+                /* 0440 */    0xEF, 0xE5, 0x07, 0xAC, 0xF7, 0x2A, 0x1F, 0x7E, 
+                /* 0448 */    0x63, 0xBD, 0x33, 0xBC, 0x5C, 0x79, 0x24, 0x51, 
+                /* 0450 */    0x4E, 0x22, 0x94, 0xEF, 0x56, 0xEF, 0x55, 0x46, 
+                /* 0458 */    0x89, 0xF8, 0x42, 0xEC, 0x53, 0xB0, 0xA1, 0x8D, 
+                /* 0460 */    0xF2, 0x54, 0x11, 0xDD, 0x78, 0x2F, 0x57, 0xE0, 
+                /* 0468 */    0x95, 0x74, 0xB9, 0x02, 0x68, 0x32, 0xFC, 0x97, 
+                /* 0470 */    0x2B, 0xF0, 0xDD, 0x1C, 0xB0, 0xD7, 0x24, 0x38, 
+                /* 0478 */    0xFF, 0xFF, 0x6B, 0x12, 0xBF, 0x5E, 0x01, 0x7E, 
+                /* 0480 */    0xB2, 0x5F, 0xAF, 0x68, 0xEE, 0xEB, 0x15, 0x4A, 
+                /* 0488 */    0x14, 0x84, 0x14, 0x01, 0x69, 0xA6, 0xE0, 0xB9, 
+                /* 0490 */    0x5F, 0x01, 0x9C, 0xF8, 0xFF, 0xDF, 0xAF, 0x00, 
+                /* 0498 */    0xCB, 0xE1, 0xEE, 0x57, 0x40, 0xEF, 0x76, 0x04, 
+                /* 04A0 */    0x5E, 0x94, 0xB7, 0x23, 0xEC, 0x15, 0x0B, 0x9F, 
+                /* 04A8 */    0xF1, 0x8A, 0x45, 0xC3, 0xAC, 0x44, 0xF1, 0xD6, 
+                /* 04B0 */    0x44, 0x61, 0x7C, 0xC5, 0x02, 0x26, 0xFF, 0xFF, 
+                /* 04B8 */    0x2B, 0x16, 0x30, 0x3B, 0x88, 0xE2, 0x46, 0x0D, 
+                /* 04C0 */    0xF7, 0xE2, 0xE4, 0x5B, 0x8F, 0xE7, 0x1B, 0xD1, 
+                /* 04C8 */    0x77, 0x18, 0xCC, 0x09, 0x0B, 0xC6, 0x0D, 0x0B, 
+                /* 04D0 */    0xFE, 0x90, 0x1E, 0x86, 0x7D, 0x92, 0x78, 0xC7, 
+                /* 04D8 */    0xF2, 0xD1, 0xCA, 0x20, 0x6F, 0xC0, 0x4F, 0x56, 
+                /* 04E0 */    0x0F, 0x56, 0x51, 0x8C, 0x10, 0xF0, 0x78, 0xDE, 
+                /* 04E8 */    0x85, 0x7D, 0xB4, 0x7A, 0xD3, 0x32, 0x4A, 0xEC, 
+                /* 04F0 */    0x58, 0xBE, 0x50, 0x3D, 0x6B, 0xF9, 0x9A, 0x65, 
+                /* 04F8 */    0x88, 0xB8, 0x0F, 0xC4, 0xBE, 0x61, 0x01, 0xB6, 
+                /* 0500 */    0xFF, 0xFF, 0x37, 0x2C, 0xC0, 0xD1, 0xC5, 0x81, 
+                /* 0508 */    0x1F, 0x1C, 0xB0, 0x37, 0x2C, 0xC0, 0xE7, 0x4C, 
+                /* 0510 */    0xC1, 0x73, 0xC3, 0x02, 0x36, 0xFF, 0xFF, 0x1B, 
+                /* 0518 */    0x16, 0xC0, 0xFF, 0xFF, 0xFF, 0x0D, 0x0B, 0x38, 
+                /* 0520 */    0xDC, 0xAE, 0xB0, 0xB7, 0x2C, 0xEC, 0xED, 0x85, 
+                /* 0528 */    0xAC, 0x82, 0x86, 0x5A, 0x89, 0x82, 0x7F, 0xAF, 
+                /* 0530 */    0x0C, 0x43, 0x6F, 0x58, 0x80, 0xA3, 0x71, 0x7B, 
+                /* 0538 */    0xD4, 0xE0, 0x38, 0x1B, 0x3C, 0x49, 0x60, 0xCE, 
+                /* 0540 */    0xD5, 0xB8, 0xD9, 0x1C, 0x5C, 0xE0, 0x08, 0xBD, 
+                /* 0548 */    0x83, 0x6A, 0xEE, 0xEC, 0x92, 0x02, 0xE3, 0x96, 
+                /* 0550 */    0x05, 0xF7, 0x52, 0xF5, 0xD0, 0x10, 0xE5, 0x20, 
+                /* 0558 */    0x5E, 0x85, 0x1F, 0xAC, 0x1E, 0xA5, 0x8E, 0xEC, 
+                /* 0560 */    0xF1, 0xEA, 0x69, 0xD8, 0xC7, 0x2C, 0xDF, 0xB2, 
+                /* 0568 */    0x0C, 0x15, 0xE1, 0x2D, 0x8B, 0x9D, 0x21, 0xE2, 
+                /* 0570 */    0xC5, 0x8A, 0x12, 0xE2, 0xBD, 0x22, 0xB4, 0xEF, 
+                /* 0578 */    0x5C, 0x06, 0x7F, 0x34, 0x36, 0x6A, 0xD0, 0x97, 
+                /* 0580 */    0xE3, 0xB7, 0x2C, 0x78, 0xFF, 0xFF, 0x5B, 0x16, 
+                /* 0588 */    0x7C, 0x91, 0x7F, 0x15, 0x9D, 0x08, 0x7C, 0xCB, 
+                /* 0590 */    0x02, 0xF8, 0x11, 0x0C, 0x42, 0x4E, 0x06, 0x8E, 
+                /* 0598 */    0x3E, 0x2F, 0xE0, 0x07, 0xF0, 0x30, 0xE2, 0x21, 
+                /* 05A0 */    0xB1, 0x00, 0x03, 0xA7, 0xF7, 0x25, 0x9F, 0x29, 
+                /* 05A8 */    0xF8, 0x01, 0xC3, 0x67, 0x0A, 0x76, 0x3D, 0x88, 
+                /* 05B0 */    0xFE, 0x18, 0xE0, 0x73, 0x09, 0x66, 0x70, 0xE0, 
+                /* 05B8 */    0xBF, 0x56, 0x1C, 0xBA, 0x47, 0xF1, 0xFA, 0x60, 
+                /* 05C0 */    0x02, 0x0F, 0x8E, 0xFF, 0xFF, 0x07, 0x07, 0xF7, 
+                /* 05C8 */    0xCE, 0x70, 0x44, 0xBE, 0xC3, 0x78, 0x70, 0x60, 
+                /* 05D0 */    0x3B, 0x08, 0x00, 0x87, 0xC1, 0xE1, 0x43, 0x0D, 
+                /* 05D8 */    0x0E, 0x3D, 0x1E, 0x03, 0x87, 0xF4, 0x79, 0x8C, 
+                /* 05E0 */    0x5D, 0x18, 0x1E, 0x72, 0x3C, 0x34, 0xB0, 0x01, 
+                /* 05E8 */    0x7A, 0x68, 0xC0, 0x72, 0x12, 0x4F, 0x21, 0x87, 
+                /* 05F0 */    0x06, 0x66, 0x09, 0x43, 0x03, 0x4A, 0xF1, 0x86, 
+                /* 05F8 */    0x46, 0xFF, 0xFF, 0x43, 0xE3, 0x43, 0xF2, 0x61, 
+                /* 0600 */    0x21, 0xE6, 0x53, 0x4E, 0x84, 0xF7, 0x05, 0x9F, 
+                /* 0608 */    0xA0, 0x18, 0xFA, 0x6B, 0x8A, 0x6F, 0x17, 0xBE, 
+                /* 0610 */    0x09, 0xE2, 0xC6, 0x07, 0xAE, 0x4B, 0xA7, 0xC7, 
+                /* 0618 */    0x07, 0x7C, 0x8E, 0x5C, 0x1E, 0x1F, 0xEE, 0xE8, 
+                /* 0620 */    0xE4, 0xF1, 0xC1, 0x70, 0x79, 0x95, 0x21, 0x47, 
+                /* 0628 */    0x13, 0x1F, 0xAD, 0xD8, 0xF0, 0xC0, 0x76, 0xD3, 
+                /* 0630 */    0xF3, 0xF0, 0x80, 0xCF, 0x75, 0x13, 0x8C, 0x57, 
+                /* 0638 */    0x48, 0x7E, 0x2D, 0x81, 0x71, 0x82, 0xC2, 0x5F, 
+                /* 0640 */    0x37, 0xC1, 0xFB, 0xFF, 0xBF, 0x6E, 0x02, 0xCF, 
+                /* 0648 */    0x51, 0x70, 0xAD, 0x97, 0x6C, 0x1A, 0xE4, 0x95, 
+                /* 0650 */    0xA3, 0x58, 0x2F, 0x02, 0x0A, 0xE3, 0x33, 0x1B, 
+                /* 0658 */    0xE0, 0x68, 0xAC, 0xCF, 0x6C, 0x60, 0xB9, 0x17, 
+                /* 0660 */    0xB0, 0x1B, 0x1B, 0xDC, 0xD3, 0x1A, 0xEC, 0xBB, 
+                /* 0668 */    0xC3, 0xC3, 0xD9, 0x63, 0xDA, 0xA3, 0xDA, 0x03, 
+                /* 0670 */    0x9A, 0x8F, 0xD8, 0x31, 0xDE, 0xD2, 0x82, 0xC4, 
+                /* 0678 */    0x89, 0xF0, 0x3A, 0xF0, 0xB4, 0xE6, 0x4B, 0x46, 
+                /* 0680 */    0xBC, 0x40, 0x4F, 0x6B, 0xC6, 0x88, 0xF3, 0xD2, 
+                /* 0688 */    0x66, 0xC4, 0x57, 0x8A, 0x10, 0x0F, 0x6B, 0x3E, 
+                /* 0690 */    0xB9, 0x19, 0xEF, 0x61, 0x22, 0x5C, 0x98, 0x17, 
+                /* 0698 */    0xB6, 0xA7, 0x35, 0x70, 0xFC, 0xFF, 0x4F, 0x6B, 
+                /* 06A0 */    0x70, 0xE4, 0x5C, 0xB1, 0x01, 0x9A, 0x5C, 0xF4, 
+                /* 06A8 */    0x71, 0x87, 0x14, 0xB0, 0x5C, 0x1B, 0xD8, 0x2D, 
+                /* 06B0 */    0x05, 0xDE, 0x05, 0x1B, 0x38, 0xFF, 0xFF, 0x8F, 
+                /* 06B8 */    0x28, 0xE0, 0xCB, 0x72, 0xC1, 0xA6, 0x39, 0x2E, 
+                /* 06C0 */    0xD8, 0x28, 0x0E, 0xAB, 0x01, 0xD2, 0x3C, 0xE1, 
+                /* 06C8 */    0x5F, 0xAF, 0xC1, 0x3F, 0x09, 0x5F, 0xAF, 0x01, 
+                /* 06D0 */    0xDB, 0xB7, 0x58, 0xDC, 0xF5, 0x1A, 0x58, 0xFD, 
+                /* 06D8 */    0xFF, 0xAF, 0xD7, 0xC0, 0x52, 0xF0, 0x48, 0xE9, 
+                /* 06E0 */    0x9D, 0x1A, 0x5C, 0x37, 0x6D, 0x3C, 0xE8, 0x9B, 
+                /* 06E8 */    0x36, 0x4C, 0x85, 0x36, 0x7D, 0x6A, 0x34, 0x6A, 
+                /* 06F0 */    0xD5, 0xA0, 0x4C, 0x8D, 0x32, 0x0D, 0x6A, 0xF5, 
+                /* 06F8 */    0xA9, 0xD4, 0x98, 0xB1, 0xA1, 0x5A, 0xDA, 0x5D, 
+                /* 0700 */    0x82, 0x8A, 0x59, 0x8C, 0x46, 0xE3, 0x28, 0x20, 
+                /* 0708 */    0x54, 0xF6, 0x1F, 0x50, 0x20, 0x0E, 0xF9, 0xD1, 
+                /* 0710 */    0x11, 0xA0, 0x83, 0x7D, 0xA7, 0x74, 0x0B, 0x27, 
+                /* 0718 */    0x6B, 0x13, 0x88, 0xE3, 0x9B, 0x80, 0x68, 0x04, 
+                /* 0720 */    0x44, 0x5A, 0x54, 0x00, 0xB1, 0xDC, 0x20, 0x02, 
+                /* 0728 */    0xB2, 0x8A, 0x35, 0x09, 0xC8, 0x9A, 0xBF, 0x2F, 
+                /* 0730 */    0x02, 0xB7, 0x4E, 0x1D, 0x40, 0x2C, 0x25, 0x08, 
+                /* 0738 */    0x4D, 0xB4, 0x70, 0x81, 0x3A, 0x1E, 0x88, 0x06, 
+                /* 0740 */    0x43, 0x68, 0x04, 0xE4, 0x60, 0x14, 0x02, 0xB2, 
+                /* 0748 */    0x8C, 0xCF, 0x9D, 0xC0, 0x2D, 0xC0, 0x0A, 0x10, 
+                /* 0750 */    0x93, 0x0F, 0x42, 0x05, 0x7B, 0x01, 0x65, 0xEA, 
+                /* 0758 */    0x41, 0x04, 0x64, 0xA5, 0x6B, 0x15, 0x90, 0x75, 
+                /* 0760 */    0x83, 0x08, 0xC8, 0x59, 0xCD, 0x80, 0xB3, 0x8C, 
+                /* 0768 */    0x6E, 0x80, 0x98, 0xC2, 0x87, 0x82, 0x40, 0xAC, 
+                /* 0770 */    0x49, 0x0F, 0x28, 0x13, 0x08, 0xA2, 0x0B, 0x07, 
+                /* 0778 */    0xF1, 0x03, 0xC4, 0xA4, 0x81, 0x08, 0xC8, 0x71, 
+                /* 0780 */    0x7E, 0x25, 0x02, 0x77, 0x1C, 0x45, 0x80, 0xD4, 
+                /* 0788 */    0xD1, 0x70, 0x29, 0x08, 0x15, 0xFF, 0x09, 0x13, 
+                /* 0790 */    0xC8, 0xFF, 0xFF, 0xFD, 0x44, 0x96, 0xC0, 0x28, 
+                /* 0798 */    0x08, 0x8D, 0xA0, 0x09, 0x84, 0xC9, 0xF3, 0x04, 
+                /* 07A0 */    0xC2, 0x42, 0xFD, 0xFD, 0x34, 0x04, 0x07, 0x51, 
+                /* 07A8 */    0x35, 0x44, 0xEA, 0x0A, 0x84, 0x05, 0x7E, 0x18, 
+                /* 07B0 */    0x68, 0x30, 0x4E, 0x0F, 0x22, 0x20, 0x27, 0x7D, 
+                /* 07B8 */    0x52, 0x05, 0x22, 0xB9, 0x41, 0x04, 0xE4, 0xFF, 
+                /* 07C0 */    0x3F
+            })
+        }
+    }
+
+    /*  Wire GPE events to notify OEM 
+     *  added value events.
+     */
+    Scope (\_GPE)
+    {
+        Method (_L18, 0, Serialized)
+        {
+            Notify (\_SB.WMI1, 0xD0) 
+        }
+    }
+}
+
diff --git a/tools/firmware/hvmloader/acpi/ssdt_lenovo_t_and_x_series.h b/tools/firmware/hvmloader/acpi/ssdt_lenovo_t_and_x_series.h
new file mode 100644 (file)
index 0000000..f74acc3
--- /dev/null
@@ -0,0 +1,383 @@
+/*
+ * 
+ * Intel ACPI Component Architecture
+ * ASL Optimizing Compiler version 20061109 [May 18 2007]
+ * Copyright (C) 2000 - 2006 Intel Corporation
+ * Supports ACPI Specification Revision 3.0a
+ * 
+ * Compilation of "ssdt_lenovo_t_and_x_series.asl" - Thu Mar 12 14:01:35 2009
+ * 
+ * C source code output
+ *
+ */
+unsigned char AmlCode_LENOVO_T_AND_X_SERIES[] =
+{
+    0x53,0x53,0x44,0x54,0x7E,0x0B,0x00,0x00,  /* 00000000    "SSDT~..." */
+    0x02,0xDB,0x58,0x65,0x6E,0x00,0x00,0x00,  /* 00000008    "..Xen..." */
+    0x48,0x56,0x4D,0x00,0x00,0x00,0x00,0x00,  /* 00000010    "HVM....." */
+    0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C,  /* 00000018    "....INTL" */
+    0x09,0x11,0x06,0x20,0x10,0x4E,0xB3,0x5C,  /* 00000020    "... .N.\" */
+    0x5F,0x53,0x42,0x5F,0x5B,0x80,0x4C,0x45,  /* 00000028    "_SB_[.LE" */
+    0x4E,0x31,0x01,0x0A,0x96,0x01,0x5B,0x81,  /* 00000030    "N1....[." */
+    0x0B,0x4C,0x45,0x4E,0x31,0x01,0x50,0x39,  /* 00000038    ".LEN1.P9" */
+    0x36,0x5F,0x08,0x5B,0x80,0x4C,0x45,0x4E,  /* 00000040    "6_.[.LEN" */
+    0x32,0x01,0x0A,0x98,0x01,0x5B,0x81,0x0B,  /* 00000048    "2....[.." */
+    0x4C,0x45,0x4E,0x32,0x01,0x50,0x39,0x38,  /* 00000050    "LEN2.P98" */
+    0x5F,0x08,0x5B,0x80,0x4C,0x45,0x4E,0x33,  /* 00000058    "_.[.LEN3" */
+    0x01,0x0A,0x9A,0x0A,0x04,0x5B,0x81,0x0B,  /* 00000060    ".....[.." */
+    0x4C,0x45,0x4E,0x33,0x03,0x50,0x39,0x41,  /* 00000068    "LEN3.P9A" */
+    0x5F,0x20,0x5B,0x82,0x4F,0xAE,0x57,0x4D,  /* 00000070    "_ [.O.WM" */
+    0x49,0x31,0x08,0x5F,0x48,0x49,0x44,0x0C,  /* 00000078    "I1._HID." */
+    0x41,0xD0,0x0C,0x14,0x08,0x5F,0x55,0x49,  /* 00000080    "A...._UI" */
+    0x44,0x01,0x08,0x5F,0x57,0x44,0x47,0x11,  /* 00000088    "D.._WDG." */
+    0x44,0x0A,0x0A,0xA0,0x0E,0x23,0xF5,0x51,  /* 00000090    "D....#.Q" */
+    0x77,0x96,0xCD,0x46,0xA1,0xCF,0xC0,0xB2,  /* 00000098    "w..F...." */
+    0x3E,0xE3,0x4D,0xB7,0x41,0x30,0x5A,0x05,  /* 000000A0    ">.M.A0Z." */
+    0x64,0x9A,0x47,0x98,0xF5,0x33,0x33,0x4E,  /* 000000A8    "d.G..33N" */
+    0xA7,0x07,0x8E,0x25,0x1E,0xBB,0xC3,0xA1,  /* 000000B0    "...%...." */
+    0x41,0x31,0x01,0x06,0xEF,0x54,0x4B,0x6A,  /* 000000B8    "A1...TKj" */
+    0xED,0xA5,0x33,0x4D,0x94,0x55,0xB0,0xD9,  /* 000000C0    "..3M.U.." */
+    0xB4,0x8D,0xF4,0xB3,0x41,0x32,0x01,0x06,  /* 000000C8    "....A2.." */
+    0xB6,0xEB,0xF1,0x74,0x7A,0x92,0x7D,0x4C,  /* 000000D0    "...tz.}L" */
+    0x95,0xDF,0x69,0x8E,0x21,0xE8,0x0E,0xB5,  /* 000000D8    "..i.!..." */
+    0x41,0x33,0x01,0x06,0xFF,0x04,0xEF,0x7E,  /* 000000E0    "A3.....~" */
+    0x28,0x43,0x7C,0x44,0xB5,0xBB,0xD4,0x49,  /* 000000E8    "(C|D...I" */
+    0x92,0x5D,0x53,0x8D,0x41,0x34,0x01,0x06,  /* 000000F0    ".]S.A4.." */
+    0x9E,0x15,0xDB,0x8A,0x32,0x1E,0x5C,0x45,  /* 000000F8    "....2.\E" */
+    0xBC,0x93,0x30,0x8A,0x7E,0xD9,0x82,0x46,  /* 00000100    "..0.~..F" */
+    0x41,0x35,0x01,0x01,0xFD,0xD9,0x51,0x26,  /* 00000108    "A5....Q&" */
+    0x1C,0x91,0x69,0x4B,0xB9,0x4E,0xD0,0xDE,  /* 00000110    "..iK.N.." */
+    0xD5,0x96,0x3B,0xD7,0x41,0x36,0x01,0x06,  /* 00000118    "..;.A6.." */
+    0x21,0x12,0x90,0x05,0x66,0xD5,0xD1,0x11,  /* 00000120    "!...f..." */
+    0xB2,0xF0,0x00,0xA0,0xC9,0x06,0x29,0x10,  /* 00000128    "......)." */
+    0x42,0x41,0x01,0x00,0x14,0x13,0x49,0x4E,  /* 00000130    "BA....IN" */
+    0x49,0x54,0x09,0x70,0x0A,0x64,0x50,0x39,  /* 00000138    "IT.p.dP9" */
+    0x36,0x5F,0x70,0x68,0x50,0x39,0x38,0x5F,  /* 00000140    "6_phP98_" */
+    0x14,0x2C,0x47,0x55,0x49,0x44,0x09,0x70,  /* 00000148    ".,GUID.p" */
+    0x0A,0x65,0x50,0x39,0x36,0x5F,0x70,0x00,  /* 00000150    ".eP96_p." */
+    0x60,0x70,0x68,0x61,0xA2,0x18,0x95,0x60,  /* 00000158    "`pha...`" */
+    0x0A,0x10,0x72,0x61,0x60,0x62,0x70,0x83,  /* 00000160    "..ra`bp." */
+    0x88,0x5F,0x57,0x44,0x47,0x62,0x00,0x50,  /* 00000168    "._WDGb.P" */
+    0x39,0x38,0x5F,0x75,0x60,0x14,0x13,0x49,  /* 00000170    "98_u`..I" */
+    0x4E,0x53,0x54,0x09,0x70,0x0A,0x66,0x50,  /* 00000178    "NST.p.fP" */
+    0x39,0x36,0x5F,0x70,0x68,0x50,0x39,0x41,  /* 00000180    "96_phP9A" */
+    0x5F,0x14,0x13,0x4D,0x54,0x49,0x44,0x09,  /* 00000188    "_..MTID." */
+    0x70,0x0A,0x67,0x50,0x39,0x36,0x5F,0x70,  /* 00000190    "p.gP96_p" */
+    0x68,0x50,0x39,0x41,0x5F,0x14,0x35,0x49,  /* 00000198    "hP9A_.5I" */
+    0x42,0x55,0x46,0x09,0x70,0x0A,0x69,0x50,  /* 000001A0    "BUF.p.iP" */
+    0x39,0x36,0x5F,0x70,0x87,0x68,0x60,0x70,  /* 000001A8    "96_p.h`p" */
+    0x60,0x50,0x39,0x41,0x5F,0x96,0x68,0x61,  /* 000001B0    "`P9A_.ha" */
+    0x70,0x00,0x62,0x70,0x0A,0x68,0x50,0x39,  /* 000001B8    "p.bp.hP9" */
+    0x36,0x5F,0xA2,0x10,0x95,0x62,0x60,0x70,  /* 000001C0    "6_...b`p" */
+    0x83,0x88,0x61,0x62,0x00,0x50,0x39,0x38,  /* 000001C8    "..ab.P98" */
+    0x5F,0x75,0x62,0x14,0x0D,0x45,0x58,0x45,  /* 000001D0    "_ub..EXE" */
+    0x43,0x08,0x70,0x0A,0x6A,0x50,0x39,0x36,  /* 000001D8    "C.p.jP96" */
+    0x5F,0x14,0x34,0x4F,0x42,0x55,0x46,0x08,  /* 000001E0    "_.4OBUF." */
+    0x70,0x0A,0x6C,0x50,0x39,0x36,0x5F,0x70,  /* 000001E8    "p.lP96_p" */
+    0x50,0x39,0x41,0x5F,0x60,0x70,0x11,0x02,  /* 000001F0    "P9A_`p.." */
+    0x60,0x62,0x70,0x00,0x61,0x70,0x0A,0x6B,  /* 000001F8    "`bp.ap.k" */
+    0x50,0x39,0x36,0x5F,0xA2,0x0F,0x95,0x61,  /* 00000200    "P96_...a" */
+    0x60,0x70,0x50,0x39,0x38,0x5F,0x88,0x62,  /* 00000208    "`pP98_.b" */
+    0x61,0x00,0x75,0x61,0xA4,0x62,0x14,0x22,  /* 00000210    "a.ua.b."" */
+    0x5F,0x57,0x45,0x44,0x09,0x49,0x4E,0x49,  /* 00000218    "_WED.INI" */
+    0x54,0x0A,0x04,0x70,0x0A,0x6D,0x50,0x39,  /* 00000220    "T..p.mP9" */
+    0x36,0x5F,0x70,0x68,0x50,0x39,0x38,0x5F,  /* 00000228    "6_phP98_" */
+    0x45,0x58,0x45,0x43,0xA4,0x4F,0x42,0x55,  /* 00000230    "EXEC.OBU" */
+    0x46,0x14,0x1F,0x57,0x51,0x41,0x30,0x09,  /* 00000238    "F..WQA0." */
+    0x49,0x4E,0x49,0x54,0x0A,0x02,0x47,0x55,  /* 00000240    "INIT..GU" */
+    0x49,0x44,0x00,0x49,0x4E,0x53,0x54,0x68,  /* 00000248    "ID.INSTh" */
+    0x45,0x58,0x45,0x43,0xA4,0x4F,0x42,0x55,  /* 00000250    "EXEC.OBU" */
+    0x46,0x14,0x29,0x57,0x4D,0x41,0x31,0x0B,  /* 00000258    "F.)WMA1." */
+    0x49,0x4E,0x49,0x54,0x01,0x47,0x55,0x49,  /* 00000260    "INIT.GUI" */
+    0x44,0x0A,0x14,0x49,0x4E,0x53,0x54,0x68,  /* 00000268    "D..INSTh" */
+    0x4D,0x54,0x49,0x44,0x69,0x49,0x42,0x55,  /* 00000270    "MTIDiIBU" */
+    0x46,0x6A,0x45,0x58,0x45,0x43,0xA4,0x4F,  /* 00000278    "FjEXEC.O" */
+    0x42,0x55,0x46,0x14,0x29,0x57,0x4D,0x41,  /* 00000280    "BUF.)WMA" */
+    0x32,0x0B,0x49,0x4E,0x49,0x54,0x01,0x47,  /* 00000288    "2.INIT.G" */
+    0x55,0x49,0x44,0x0A,0x28,0x49,0x4E,0x53,  /* 00000290    "UID.(INS" */
+    0x54,0x68,0x4D,0x54,0x49,0x44,0x69,0x49,  /* 00000298    "ThMTIDiI" */
+    0x42,0x55,0x46,0x6A,0x45,0x58,0x45,0x43,  /* 000002A0    "BUFjEXEC" */
+    0xA4,0x4F,0x42,0x55,0x46,0x14,0x29,0x57,  /* 000002A8    ".OBUF.)W" */
+    0x4D,0x41,0x33,0x0B,0x49,0x4E,0x49,0x54,  /* 000002B0    "MA3.INIT" */
+    0x01,0x47,0x55,0x49,0x44,0x0A,0x3C,0x49,  /* 000002B8    ".GUID.<I" */
+    0x4E,0x53,0x54,0x68,0x4D,0x54,0x49,0x44,  /* 000002C0    "NSThMTID" */
+    0x69,0x49,0x42,0x55,0x46,0x6A,0x45,0x58,  /* 000002C8    "iIBUFjEX" */
+    0x45,0x43,0xA4,0x4F,0x42,0x55,0x46,0x14,  /* 000002D0    "EC.OBUF." */
+    0x29,0x57,0x4D,0x41,0x34,0x0B,0x49,0x4E,  /* 000002D8    ")WMA4.IN" */
+    0x49,0x54,0x01,0x47,0x55,0x49,0x44,0x0A,  /* 000002E0    "IT.GUID." */
+    0x50,0x49,0x4E,0x53,0x54,0x68,0x4D,0x54,  /* 000002E8    "PINSThMT" */
+    0x49,0x44,0x69,0x49,0x42,0x55,0x46,0x6A,  /* 000002F0    "IDiIBUFj" */
+    0x45,0x58,0x45,0x43,0xA4,0x4F,0x42,0x55,  /* 000002F8    "EXEC.OBU" */
+    0x46,0x14,0x20,0x57,0x51,0x41,0x35,0x09,  /* 00000300    "F. WQA5." */
+    0x49,0x4E,0x49,0x54,0x0A,0x02,0x47,0x55,  /* 00000308    "INIT..GU" */
+    0x49,0x44,0x0A,0x64,0x49,0x4E,0x53,0x54,  /* 00000310    "ID.dINST" */
+    0x68,0x45,0x58,0x45,0x43,0xA4,0x4F,0x42,  /* 00000318    "hEXEC.OB" */
+    0x55,0x46,0x14,0x29,0x57,0x4D,0x41,0x36,  /* 00000320    "UF.)WMA6" */
+    0x0B,0x49,0x4E,0x49,0x54,0x01,0x47,0x55,  /* 00000328    ".INIT.GU" */
+    0x49,0x44,0x0A,0x78,0x49,0x4E,0x53,0x54,  /* 00000330    "ID.xINST" */
+    0x68,0x4D,0x54,0x49,0x44,0x69,0x49,0x42,  /* 00000338    "hMTIDiIB" */
+    0x55,0x46,0x6A,0x45,0x58,0x45,0x43,0xA4,  /* 00000340    "UFjEXEC." */
+    0x4F,0x42,0x55,0x46,0x14,0x20,0x57,0x51,  /* 00000348    "OBUF. WQ" */
+    0x42,0x43,0x09,0x49,0x4E,0x49,0x54,0x0A,  /* 00000350    "BC.INIT." */
+    0x02,0x47,0x55,0x49,0x44,0x0A,0x3C,0x49,  /* 00000358    ".GUID.<I" */
+    0x4E,0x53,0x54,0x68,0x45,0x58,0x45,0x43,  /* 00000360    "NSThEXEC" */
+    0xA4,0x4F,0x42,0x55,0x46,0x14,0x29,0x57,  /* 00000368    ".OBUF.)W" */
+    0x4D,0x42,0x44,0x0B,0x49,0x4E,0x49,0x54,  /* 00000370    "MBD.INIT" */
+    0x01,0x47,0x55,0x49,0x44,0x0A,0x64,0x49,  /* 00000378    ".GUID.dI" */
+    0x4E,0x53,0x54,0x68,0x4D,0x54,0x49,0x44,  /* 00000380    "NSThMTID" */
+    0x69,0x49,0x42,0x55,0x46,0x6A,0x45,0x58,  /* 00000388    "iIBUFjEX" */
+    0x45,0x43,0xA4,0x4F,0x42,0x55,0x46,0x08,  /* 00000390    "EC.OBUF." */
+    0x57,0x51,0x42,0x41,0x11,0x46,0x7C,0x0B,  /* 00000398    "WQBA.F|." */
+    0xC1,0x07,0x46,0x4F,0x4D,0x42,0x01,0x00,  /* 000003A0    "..FOMB.." */
+    0x00,0x00,0xB1,0x07,0x00,0x00,0x5A,0x30,  /* 000003A8    "......Z0" */
+    0x00,0x00,0x44,0x53,0x00,0x01,0x1A,0x7D,  /* 000003B0    "..DS...}" */
+    0xDA,0x54,0x98,0x51,0x97,0x00,0x01,0x06,  /* 000003B8    ".T.Q...." */
+    0x18,0x42,0x10,0x11,0x10,0x0A,0x0D,0x21,  /* 000003C0    ".B.....!" */
+    0x02,0x0B,0x83,0x50,0x4C,0x18,0x14,0xA0,  /* 000003C8    "...PL..." */
+    0x45,0x41,0xC8,0x05,0x14,0x95,0x02,0x21,  /* 000003D0    "EA.....!" */
+    0xC3,0x02,0x14,0x0B,0x70,0x2E,0x40,0xBA,  /* 000003D8    "....p.@." */
+    0x00,0xE5,0x28,0x72,0x0C,0x22,0x02,0xF7,  /* 000003E0    "..(r.".." */
+    0xEF,0x0F,0x31,0x0E,0x88,0x14,0x40,0x48,  /* 000003E8    "..1...@H" */
+    0xE6,0x28,0x28,0x81,0x85,0xC0,0x11,0x82,  /* 000003F0    ".((....." */
+    0x7E,0x05,0x20,0x74,0x88,0x26,0x83,0x02,  /* 000003F8    "~. t.&.." */
+    0x9C,0x22,0x08,0xD2,0x96,0x05,0xE8,0x16,  /* 00000400    "."......" */
+    0xE0,0x5B,0x80,0x76,0x08,0xA1,0x55,0x28,  /* 00000408    ".[.v..U(" */
+    0xC0,0xA4,0x00,0x9F,0x60,0xB2,0x28,0x40,  /* 00000410    "....`.(@" */
+    0x36,0x98,0x6C,0xC3,0x91,0x61,0x30,0x91,  /* 00000418    "6.l..a0." */
+    0x63,0x40,0x89,0x19,0x03,0x4A,0xE7,0x14,  /* 00000420    "c@...J.." */
+    0x64,0x13,0x58,0xD0,0x85,0xA2,0x68,0x1A,  /* 00000428    "d.X...h." */
+    0x51,0x12,0x1C,0xD4,0x31,0x44,0x08,0x5E,  /* 00000430    "Q...1D.^" */
+    0xAE,0x00,0xC9,0x13,0x90,0xE6,0x79,0xC9,  /* 00000438    "......y." */
+    0xFA,0x20,0x34,0x04,0x36,0x02,0x1E,0x45,  /* 00000440    ". 4.6..E" */
+    0x02,0x08,0x8B,0xB1,0x4C,0x89,0x87,0x41,  /* 00000448    "....L..A" */
+    0x79,0x00,0x91,0x9C,0xA1,0xA2,0x80,0xED,  /* 00000450    "y......." */
+    0x75,0x22,0x1A,0xD6,0x71,0x32,0x49,0x70,  /* 00000458    "u"..q2Ip" */
+    0xA8,0x51,0x5A,0xA2,0x00,0xF3,0x23,0xD3,  /* 00000460    ".QZ...#." */
+    0x44,0x8E,0xAD,0xE9,0x11,0x0B,0x92,0x49,  /* 00000468    "D......I" */
+    0x1B,0x0A,0x6A,0xE8,0x9E,0xD6,0x49,0x79,  /* 00000470    "..j...Iy" */
+    0xA2,0x11,0x0F,0xCA,0x30,0x09,0x3C,0x0A,  /* 00000478    "....0.<." */
+    0x86,0xC6,0x09,0xCA,0x82,0x90,0x83,0x81,  /* 00000480    "........" */
+    0xA2,0x00,0x4F,0xC2,0x73,0x2C,0x5E,0x80,  /* 00000488    "..O.s,^." */
+    0xF0,0x19,0x93,0xA3,0x40,0x8C,0x04,0x3E,  /* 00000490    "....@..>" */
+    0x12,0x78,0x34,0xC7,0x8C,0x05,0x0A,0x17,  /* 00000498    ".x4....." */
+    0xF0,0x7C,0x8E,0x21,0x72,0xDC,0x43,0x8D,  /* 000004A0    ".|.!r.C." */
+    0x71,0x14,0x91,0x13,0xBC,0x03,0x44,0x31,  /* 000004A8    "q.....D1" */
+    0x5A,0x41,0xF3,0x16,0x62,0xB0,0x68,0x06,  /* 000004B0    "ZA..b.h." */
+    0xEB,0x19,0x9C,0x0C,0x3A,0xC1,0xFF,0xFF,  /* 000004B8    "....:..." */
+    0x08,0xB8,0x0C,0x08,0x79,0x14,0x60,0x75,  /* 000004C0    "....y.`u" */
+    0x50,0x9A,0x86,0x09,0xBA,0x17,0x60,0x4D,  /* 000004C8    "P.....`M" */
+    0x80,0x31,0x01,0x1A,0x31,0xA4,0x4C,0x80,  /* 000004D0    ".1..1.L." */
+    0xB3,0xFB,0x82,0x66,0xD4,0x96,0x00,0x73,  /* 000004D8    "...f...s" */
+    0x02,0xB4,0x09,0xF0,0x86,0x20,0x94,0xF3,  /* 000004E0    "..... .." */
+    0x8C,0x72,0x2C,0xA7,0x18,0xE5,0x61,0x20,  /* 000004E8    ".r,...a " */
+    0xE6,0xCB,0x40,0xD0,0x28,0x31,0x62,0x9E,  /* 000004F0    "..@.(1b." */
+    0x4B,0x5C,0xC3,0x46,0x88,0x11,0xF2,0x14,  /* 000004F8    "K\.F...." */
+    0x02,0xC5,0x6D,0x7F,0x10,0x64,0xD0,0xB8,  /* 00000500    "..m..d.." */
+    0xD1,0xFB,0xB4,0x70,0x56,0x27,0x70,0xF4,  /* 00000508    "...pV'p." */
+    0x4F,0x0A,0x26,0xF0,0x94,0x0F,0xEC,0xD9,  /* 00000510    "O.&....." */
+    0xE0,0x04,0x8E,0x35,0x6A,0x8C,0x53,0x49,  /* 00000518    "...5j.SI" */
+    0xE0,0xD8,0x0F,0x08,0x69,0x00,0x51,0x24,  /* 00000520    "....i.Q$" */
+    0x78,0xD4,0x69,0xC1,0xE7,0x02,0x0F,0xED,  /* 00000528    "x.i....." */
+    0xA0,0x3D,0xC7,0x13,0x08,0x72,0x08,0x47,  /* 00000530    ".=...r.G" */
+    0xF0,0xC4,0xF0,0x40,0xE0,0x31,0xB0,0x9B,  /* 00000538    "...@.1.." */
+    0x82,0x8F,0x00,0x3E,0x21,0xE0,0x5D,0x03,  /* 00000540    "...>!.]." */
+    0xEA,0x6A,0xF0,0x60,0xC0,0x06,0x1D,0x0E,  /* 00000548    ".j.`...." */
+    0x33,0x5E,0x0F,0x3F,0xDC,0x09,0x9C,0xE4,  /* 00000550    "3^.?...." */
+    0x03,0x06,0x3F,0x6C,0x78,0x70,0xB8,0x79,  /* 00000558    "..?lxp.y" */
+    0x9E,0xCC,0x91,0x95,0x2A,0xC0,0xEC,0xE1,  /* 00000560    "....*..." */
+    0x40,0x07,0x09,0x9F,0x36,0xD8,0x19,0x00,  /* 00000568    "@...6..." */
+    0x23,0x7F,0x10,0xA8,0x91,0x19,0xDA,0xE3,  /* 00000570    "#......." */
+    0x7E,0xE9,0x30,0xE4,0x73,0xC2,0x61,0x31,  /* 00000578    "~.0.s.a1" */
+    0xB1,0xA7,0x0E,0x3A,0x1E,0xF0,0x5F,0x46,  /* 00000580    "...:.._F" */
+    0x9E,0x33,0x3C,0x7D,0xCF,0xD7,0x04,0xC3,  /* 00000588    ".3<}...." */
+    0x0E,0x1C,0x3D,0x10,0x43,0x3F,0x6C,0x1C,  /* 00000590    "..=.C?l." */
+    0xC6,0x69,0xF8,0xFE,0xE1,0xF3,0x02,0x8C,  /* 00000598    ".i......" */
+    0x53,0x80,0x47,0xEE,0xFF,0xFF,0x21,0xC5,  /* 000005A0    "S.G...!." */
+    0xA7,0x09,0x7E,0xB4,0xF0,0x69,0x82,0x5D,  /* 000005A8    "..~..i.]" */
+    0x0F,0x4E,0xE3,0x39,0xC0,0xC3,0x39,0x2B,  /* 000005B0    ".N.9..9+" */
+    0x1F,0x26,0xC0,0x76,0x3F,0x61,0x23,0x7A,  /* 000005B8    ".&.v?a#z" */
+    0xB7,0xF0,0x68,0xB0,0xA7,0x00,0xF0,0x9D,  /* 000005C0    "..h....." */
+    0x5F,0xC0,0x79,0xD7,0x60,0x83,0x85,0x71,  /* 000005C8    "_.y.`..q" */
+    0x7E,0x01,0x1E,0x27,0x04,0x0F,0x81,0x1F,  /* 000005D0    "~..'...." */
+    0x24,0x3C,0x04,0x3E,0x80,0xE7,0x8F,0x33,  /* 000005D8    "$<.>...3" */
+    0xB4,0xD2,0x79,0x21,0x07,0x06,0xEF,0x9C,  /* 000005E0    "..y!...." */
+    0x03,0x63,0x14,0x3C,0xCF,0x63,0xC3,0x04,  /* 000005E8    ".c.<.c.." */
+    0x0A,0xF2,0x1A,0x50,0xA8,0x67,0x01,0x85,  /* 000005F0    "...P.g.." */
+    0xF1,0xA9,0x06,0x78,0xFD,0xFF,0x4F,0x35,  /* 000005F8    "...x..O5" */
+    0xC0,0xE5,0x70,0x80,0x3B,0x39,0xC0,0xBD,  /* 00000600    "..p.;9.." */
+    0x17,0xB0,0x8B,0xC3,0x73,0x0D,0x5C,0xD1,  /* 00000608    "....s.\." */
+    0xE7,0x1A,0xA8,0xF7,0x96,0xE2,0xC6,0xA8,  /* 00000610    "........" */
+    0x6B,0x4C,0x90,0x47,0x81,0x47,0x9A,0x28,  /* 00000618    "kL.G.G.(" */
+    0xCF,0x33,0xEF,0x32,0x11,0x9E,0x6D,0x7C,  /* 00000620    ".3.2..m|" */
+    0xAD,0xF1,0x14,0xE2,0xF8,0x5A,0x63,0xC4,  /* 00000628    ".....Zc." */
+    0x97,0x89,0x77,0x1B,0xE3,0x1E,0xDC,0x63,  /* 00000630    "..w....c" */
+    0xCD,0x43,0x8E,0x41,0x8E,0x26,0xC2,0x8B,  /* 00000638    ".C.A.&.." */
+    0x41,0xC0,0xC7,0x1B,0x1F,0x6B,0xC0,0x2B,  /* 00000640    "A....k.+" */
+    0xE6,0x85,0x22,0x0B,0xC7,0x1A,0x40,0xE3,  /* 00000648    ".."...@." */
+    0xFF,0xFF,0x58,0x03,0xDC,0xB0,0x1E,0x50,  /* 00000650    "..X....P" */
+    0xC0,0x77,0x64,0x60,0x37,0x14,0x78,0x27,  /* 00000658    ".wd`7.x'" */
+    0x14,0xC0,0x4F,0xE2,0x17,0x80,0x8E,0x1C,  /* 00000660    "..O....." */
+    0x4E,0x0B,0x22,0x1B,0x6F,0x00,0x9F,0x02,  /* 00000668    "N.".o..." */
+    0xA8,0x1A,0x20,0x4D,0x13,0x36,0xC1,0xF4,  /* 00000670    ".. M.6.." */
+    0xE4,0x82,0xF7,0x91,0xC0,0xB9,0x49,0x94,  /* 00000678    "......I." */
+    0x7C,0x58,0x14,0xCE,0x59,0x0F,0x22,0x14,  /* 00000680    "|X..Y."." */
+    0xC4,0x80,0x0E,0x72,0x9C,0x40,0x9F,0x51,  /* 00000688    "...r.@.Q" */
+    0x7C,0x10,0x39,0xD1,0x27,0x42,0x0F,0xCA,  /* 00000690    "|.9.'B.." */
+    0xC3,0x78,0x47,0x61,0x27,0x10,0x1F,0x26,  /* 00000698    ".xGa'..&" */
+    0x3C,0x76,0x1F,0x13,0xF8,0x3F,0xC6,0xB3,  /* 000006A0    "<v...?.." */
+    0x31,0xBA,0xD5,0x60,0xE8,0xFF,0x7F,0x4E,  /* 000006A8    "1..`...N" */
+    0xE1,0x60,0x3E,0x88,0x70,0x82,0x8F,0x46,  /* 000006B0    ".`>.p..F" */
+    0xDD,0x24,0x40,0xA5,0xEF,0xA8,0x00,0x0A,  /* 000006B8    ".$@....." */
+    0x20,0xDF,0x0B,0x7C,0x0E,0x78,0x36,0x60,  /* 000006C0    " ..|.x6`" */
+    0x63,0x78,0x14,0x30,0x9A,0xD1,0x79,0xF8,  /* 000006C8    "cx.0..y." */
+    0xC9,0xA2,0xE2,0x4E,0x96,0x82,0x78,0xB2,  /* 000006D0    "...N..x." */
+    0x8E,0x32,0x59,0xF4,0x4C,0x7C,0xAF,0xF0,  /* 000006D8    ".2Y.L|.." */
+    0x8C,0xDE,0xB4,0x3C,0x47,0x4F,0xD8,0xF7,  /* 000006E0    "...<GO.." */
+    0x10,0x58,0x87,0x81,0x90,0x0F,0x06,0x9E,  /* 000006E8    ".X......" */
+    0x86,0xE1,0x3C,0x59,0x0E,0xE7,0xC9,0xF2,  /* 000006F0    "..<Y...." */
+    0xB1,0xF8,0x1A,0x02,0x3E,0x81,0xB3,0x05,  /* 000006F8    "....>..." */
+    0x39,0x3C,0x26,0xD6,0xA8,0xE8,0x55,0xC8,  /* 00000700    "9<&...U." */
+    0xC3,0xE3,0x97,0x03,0xCF,0xE7,0x19,0xE1,  /* 00000708    "........" */
+    0x28,0x9F,0x24,0x70,0x18,0xCF,0x24,0x1E,  /* 00000710    "(.$p..$." */
+    0xA2,0x6F,0x45,0xB0,0x26,0x72,0xD2,0xBE,  /* 00000718    ".oE.&r.." */
+    0x2D,0x9C,0x6C,0xD0,0xD7,0x33,0xCC,0xAD,  /* 00000720    "-.l..3.." */
+    0x08,0xF6,0xFF,0xFF,0x56,0x04,0xE7,0x82,  /* 00000728    "....V..." */
+    0x06,0x33,0xD3,0xBD,0x0A,0x15,0xEB,0x5E,  /* 00000730    ".3.....^" */
+    0x05,0x88,0x1D,0xD6,0x6B,0x8F,0x0F,0x56,  /* 00000738    "....k..V" */
+    0x70,0xEF,0x55,0x70,0x2F,0x55,0xCF,0x0A,  /* 00000740    "p.Up/U.." */
+    0xC7,0x18,0xFE,0x61,0x2A,0xC6,0x29,0xBD,  /* 00000748    "...a*.)." */
+    0x76,0x1A,0x28,0x4C,0x94,0x78,0xEF,0x55,  /* 00000750    "v.(L.x.U" */
+    0x1E,0xE3,0x7B,0x15,0xBB,0x42,0x85,0x89,  /* 00000758    "..{..B.." */
+    0xF5,0x72,0x65,0xD4,0xD7,0x89,0x70,0x81,  /* 00000760    ".re...p." */
+    0x82,0x44,0x7A,0xB5,0x8A,0x12,0x39,0xBE,  /* 00000768    ".Dz...9." */
+    0x21,0xDF,0xAB,0xC0,0x2B,0xE7,0x5E,0x05,  /* 00000770    "!...+.^." */
+    0xB2,0xFF,0xFF,0xBD,0x0A,0x30,0x8F,0xF6,  /* 00000778    ".....0.." */
+    0x5E,0x05,0xC6,0x6B,0x03,0xBB,0x21,0xC1,  /* 00000780    "^..k..!." */
+    0x02,0x7A,0xB1,0x02,0x0C,0x65,0xBE,0x58,  /* 00000788    ".z...e.X" */
+    0xD1,0xBC,0x17,0x2B,0xC4,0xFF,0xFF,0x5C,  /* 00000790    "...+...\" */
+    0xC2,0xF4,0x5C,0xAC,0xC8,0x3C,0xE1,0xDF,  /* 00000798    "..\..<.." */
+    0xAC,0x00,0x4E,0xFF,0xFF,0x6F,0x56,0x80,  /* 000007A0    "..N..oV." */
+    0xB1,0x7B,0x11,0xE6,0x68,0x05,0x2F,0xE5,  /* 000007A8    ".{..h./." */
+    0xCD,0x8A,0xC6,0x59,0x86,0x02,0x2E,0x88,  /* 000007B0    "...Y...." */
+    0xC2,0xF8,0x66,0x05,0x38,0xBA,0xAE,0xE0,  /* 000007B8    "..f.8..." */
+    0x86,0x0C,0x17,0x2C,0x4A,0x30,0x1F,0x42,  /* 000007C0    "...,J0.B" */
+    0x3C,0x9D,0x23,0x7E,0x48,0x78,0x09,0x78,  /* 000007C8    "<.#~Hx.x" */
+    0xCC,0xF1,0x80,0x1F,0x08,0x7C,0xB9,0x02,  /* 000007D0    ".....|.." */
+    0xD3,0xFF,0x9F,0xC0,0x27,0xDF,0xB3,0x7C,  /* 000007D8    "....'..|" */
+    0x9B,0x7A,0xEF,0xE5,0x07,0xAC,0xF7,0x2A,  /* 000007E0    ".z.....*" */
+    0x1F,0x7E,0x63,0xBD,0x33,0xBC,0x5C,0x79,  /* 000007E8    ".~c.3.\y" */
+    0x24,0x51,0x4E,0x22,0x94,0xEF,0x56,0xEF,  /* 000007F0    "$QN"..V." */
+    0x55,0x46,0x89,0xF8,0x42,0xEC,0x53,0xB0,  /* 000007F8    "UF..B.S." */
+    0xA1,0x8D,0xF2,0x54,0x11,0xDD,0x78,0x2F,  /* 00000800    "...T..x/" */
+    0x57,0xE0,0x95,0x74,0xB9,0x02,0x68,0x32,  /* 00000808    "W..t..h2" */
+    0xFC,0x97,0x2B,0xF0,0xDD,0x1C,0xB0,0xD7,  /* 00000810    "..+....." */
+    0x24,0x38,0xFF,0xFF,0x6B,0x12,0xBF,0x5E,  /* 00000818    "$8..k..^" */
+    0x01,0x7E,0xB2,0x5F,0xAF,0x68,0xEE,0xEB,  /* 00000820    ".~._.h.." */
+    0x15,0x4A,0x14,0x84,0x14,0x01,0x69,0xA6,  /* 00000828    ".J....i." */
+    0xE0,0xB9,0x5F,0x01,0x9C,0xF8,0xFF,0xDF,  /* 00000830    ".._....." */
+    0xAF,0x00,0xCB,0xE1,0xEE,0x57,0x40,0xEF,  /* 00000838    ".....W@." */
+    0x76,0x04,0x5E,0x94,0xB7,0x23,0xEC,0x15,  /* 00000840    "v.^..#.." */
+    0x0B,0x9F,0xF1,0x8A,0x45,0xC3,0xAC,0x44,  /* 00000848    "....E..D" */
+    0xF1,0xD6,0x44,0x61,0x7C,0xC5,0x02,0x26,  /* 00000850    "..Da|..&" */
+    0xFF,0xFF,0x2B,0x16,0x30,0x3B,0x88,0xE2,  /* 00000858    "..+.0;.." */
+    0x46,0x0D,0xF7,0xE2,0xE4,0x5B,0x8F,0xE7,  /* 00000860    "F....[.." */
+    0x1B,0xD1,0x77,0x18,0xCC,0x09,0x0B,0xC6,  /* 00000868    "..w....." */
+    0x0D,0x0B,0xFE,0x90,0x1E,0x86,0x7D,0x92,  /* 00000870    "......}." */
+    0x78,0xC7,0xF2,0xD1,0xCA,0x20,0x6F,0xC0,  /* 00000878    "x.... o." */
+    0x4F,0x56,0x0F,0x56,0x51,0x8C,0x10,0xF0,  /* 00000880    "OV.VQ..." */
+    0x78,0xDE,0x85,0x7D,0xB4,0x7A,0xD3,0x32,  /* 00000888    "x..}.z.2" */
+    0x4A,0xEC,0x58,0xBE,0x50,0x3D,0x6B,0xF9,  /* 00000890    "J.X.P=k." */
+    0x9A,0x65,0x88,0xB8,0x0F,0xC4,0xBE,0x61,  /* 00000898    ".e.....a" */
+    0x01,0xB6,0xFF,0xFF,0x37,0x2C,0xC0,0xD1,  /* 000008A0    "....7,.." */
+    0xC5,0x81,0x1F,0x1C,0xB0,0x37,0x2C,0xC0,  /* 000008A8    ".....7,." */
+    0xE7,0x4C,0xC1,0x73,0xC3,0x02,0x36,0xFF,  /* 000008B0    ".L.s..6." */
+    0xFF,0x1B,0x16,0xC0,0xFF,0xFF,0xFF,0x0D,  /* 000008B8    "........" */
+    0x0B,0x38,0xDC,0xAE,0xB0,0xB7,0x2C,0xEC,  /* 000008C0    ".8....,." */
+    0xED,0x85,0xAC,0x82,0x86,0x5A,0x89,0x82,  /* 000008C8    ".....Z.." */
+    0x7F,0xAF,0x0C,0x43,0x6F,0x58,0x80,0xA3,  /* 000008D0    "...CoX.." */
+    0x71,0x7B,0xD4,0xE0,0x38,0x1B,0x3C,0x49,  /* 000008D8    "q{..8.<I" */
+    0x60,0xCE,0xD5,0xB8,0xD9,0x1C,0x5C,0xE0,  /* 000008E0    "`.....\." */
+    0x08,0xBD,0x83,0x6A,0xEE,0xEC,0x92,0x02,  /* 000008E8    "...j...." */
+    0xE3,0x96,0x05,0xF7,0x52,0xF5,0xD0,0x10,  /* 000008F0    "....R..." */
+    0xE5,0x20,0x5E,0x85,0x1F,0xAC,0x1E,0xA5,  /* 000008F8    ". ^....." */
+    0x8E,0xEC,0xF1,0xEA,0x69,0xD8,0xC7,0x2C,  /* 00000900    "....i..," */
+    0xDF,0xB2,0x0C,0x15,0xE1,0x2D,0x8B,0x9D,  /* 00000908    ".....-.." */
+    0x21,0xE2,0xC5,0x8A,0x12,0xE2,0xBD,0x22,  /* 00000910    "!......"" */
+    0xB4,0xEF,0x5C,0x06,0x7F,0x34,0x36,0x6A,  /* 00000918    "..\..46j" */
+    0xD0,0x97,0xE3,0xB7,0x2C,0x78,0xFF,0xFF,  /* 00000920    "....,x.." */
+    0x5B,0x16,0x7C,0x91,0x7F,0x15,0x9D,0x08,  /* 00000928    "[.|....." */
+    0x7C,0xCB,0x02,0xF8,0x11,0x0C,0x42,0x4E,  /* 00000930    "|.....BN" */
+    0x06,0x8E,0x3E,0x2F,0xE0,0x07,0xF0,0x30,  /* 00000938    "..>/...0" */
+    0xE2,0x21,0xB1,0x00,0x03,0xA7,0xF7,0x25,  /* 00000940    ".!.....%" */
+    0x9F,0x29,0xF8,0x01,0xC3,0x67,0x0A,0x76,  /* 00000948    ".)...g.v" */
+    0x3D,0x88,0xFE,0x18,0xE0,0x73,0x09,0x66,  /* 00000950    "=....s.f" */
+    0x70,0xE0,0xBF,0x56,0x1C,0xBA,0x47,0xF1,  /* 00000958    "p..V..G." */
+    0xFA,0x60,0x02,0x0F,0x8E,0xFF,0xFF,0x07,  /* 00000960    ".`......" */
+    0x07,0xF7,0xCE,0x70,0x44,0xBE,0xC3,0x78,  /* 00000968    "...pD..x" */
+    0x70,0x60,0x3B,0x08,0x00,0x87,0xC1,0xE1,  /* 00000970    "p`;....." */
+    0x43,0x0D,0x0E,0x3D,0x1E,0x03,0x87,0xF4,  /* 00000978    "C..=...." */
+    0x79,0x8C,0x5D,0x18,0x1E,0x72,0x3C,0x34,  /* 00000980    "y.]..r<4" */
+    0xB0,0x01,0x7A,0x68,0xC0,0x72,0x12,0x4F,  /* 00000988    "..zh.r.O" */
+    0x21,0x87,0x06,0x66,0x09,0x43,0x03,0x4A,  /* 00000990    "!..f.C.J" */
+    0xF1,0x86,0x46,0xFF,0xFF,0x43,0xE3,0x43,  /* 00000998    "..F..C.C" */
+    0xF2,0x61,0x21,0xE6,0x53,0x4E,0x84,0xF7,  /* 000009A0    ".a!.SN.." */
+    0x05,0x9F,0xA0,0x18,0xFA,0x6B,0x8A,0x6F,  /* 000009A8    ".....k.o" */
+    0x17,0xBE,0x09,0xE2,0xC6,0x07,0xAE,0x4B,  /* 000009B0    ".......K" */
+    0xA7,0xC7,0x07,0x7C,0x8E,0x5C,0x1E,0x1F,  /* 000009B8    "...|.\.." */
+    0xEE,0xE8,0xE4,0xF1,0xC1,0x70,0x79,0x95,  /* 000009C0    ".....py." */
+    0x21,0x47,0x13,0x1F,0xAD,0xD8,0xF0,0xC0,  /* 000009C8    "!G......" */
+    0x76,0xD3,0xF3,0xF0,0x80,0xCF,0x75,0x13,  /* 000009D0    "v.....u." */
+    0x8C,0x57,0x48,0x7E,0x2D,0x81,0x71,0x82,  /* 000009D8    ".WH~-.q." */
+    0xC2,0x5F,0x37,0xC1,0xFB,0xFF,0xBF,0x6E,  /* 000009E0    "._7....n" */
+    0x02,0xCF,0x51,0x70,0xAD,0x97,0x6C,0x1A,  /* 000009E8    "..Qp..l." */
+    0xE4,0x95,0xA3,0x58,0x2F,0x02,0x0A,0xE3,  /* 000009F0    "...X/..." */
+    0x33,0x1B,0xE0,0x68,0xAC,0xCF,0x6C,0x60,  /* 000009F8    "3..h..l`" */
+    0xB9,0x17,0xB0,0x1B,0x1B,0xDC,0xD3,0x1A,  /* 00000A00    "........" */
+    0xEC,0xBB,0xC3,0xC3,0xD9,0x63,0xDA,0xA3,  /* 00000A08    ".....c.." */
+    0xDA,0x03,0x9A,0x8F,0xD8,0x31,0xDE,0xD2,  /* 00000A10    ".....1.." */
+    0x82,0xC4,0x89,0xF0,0x3A,0xF0,0xB4,0xE6,  /* 00000A18    "....:..." */
+    0x4B,0x46,0xBC,0x40,0x4F,0x6B,0xC6,0x88,  /* 00000A20    "KF.@Ok.." */
+    0xF3,0xD2,0x66,0xC4,0x57,0x8A,0x10,0x0F,  /* 00000A28    "..f.W..." */
+    0x6B,0x3E,0xB9,0x19,0xEF,0x61,0x22,0x5C,  /* 00000A30    "k>...a"\" */
+    0x98,0x17,0xB6,0xA7,0x35,0x70,0xFC,0xFF,  /* 00000A38    "....5p.." */
+    0x4F,0x6B,0x70,0xE4,0x5C,0xB1,0x01,0x9A,  /* 00000A40    "Okp.\..." */
+    0x5C,0xF4,0x71,0x87,0x14,0xB0,0x5C,0x1B,  /* 00000A48    "\.q...\." */
+    0xD8,0x2D,0x05,0xDE,0x05,0x1B,0x38,0xFF,  /* 00000A50    ".-....8." */
+    0xFF,0x8F,0x28,0xE0,0xCB,0x72,0xC1,0xA6,  /* 00000A58    "..(..r.." */
+    0x39,0x2E,0xD8,0x28,0x0E,0xAB,0x01,0xD2,  /* 00000A60    "9..(...." */
+    0x3C,0xE1,0x5F,0xAF,0xC1,0x3F,0x09,0x5F,  /* 00000A68    "<._..?._" */
+    0xAF,0x01,0xDB,0xB7,0x58,0xDC,0xF5,0x1A,  /* 00000A70    "....X..." */
+    0x58,0xFD,0xFF,0xAF,0xD7,0xC0,0x52,0xF0,  /* 00000A78    "X.....R." */
+    0x48,0xE9,0x9D,0x1A,0x5C,0x37,0x6D,0x3C,  /* 00000A80    "H...\7m<" */
+    0xE8,0x9B,0x36,0x4C,0x85,0x36,0x7D,0x6A,  /* 00000A88    "..6L.6}j" */
+    0x34,0x6A,0xD5,0xA0,0x4C,0x8D,0x32,0x0D,  /* 00000A90    "4j..L.2." */
+    0x6A,0xF5,0xA9,0xD4,0x98,0xB1,0xA1,0x5A,  /* 00000A98    "j......Z" */
+    0xDA,0x5D,0x82,0x8A,0x59,0x8C,0x46,0xE3,  /* 00000AA0    ".]..Y.F." */
+    0x28,0x20,0x54,0xF6,0x1F,0x50,0x20,0x0E,  /* 00000AA8    "( T..P ." */
+    0xF9,0xD1,0x11,0xA0,0x83,0x7D,0xA7,0x74,  /* 00000AB0    ".....}.t" */
+    0x0B,0x27,0x6B,0x13,0x88,0xE3,0x9B,0x80,  /* 00000AB8    ".'k....." */
+    0x68,0x04,0x44,0x5A,0x54,0x00,0xB1,0xDC,  /* 00000AC0    "h.DZT..." */
+    0x20,0x02,0xB2,0x8A,0x35,0x09,0xC8,0x9A,  /* 00000AC8    " ...5..." */
+    0xBF,0x2F,0x02,0xB7,0x4E,0x1D,0x40,0x2C,  /* 00000AD0    "./..N.@," */
+    0x25,0x08,0x4D,0xB4,0x70,0x81,0x3A,0x1E,  /* 00000AD8    "%.M.p.:." */
+    0x88,0x06,0x43,0x68,0x04,0xE4,0x60,0x14,  /* 00000AE0    "..Ch..`." */
+    0x02,0xB2,0x8C,0xCF,0x9D,0xC0,0x2D,0xC0,  /* 00000AE8    "......-." */
+    0x0A,0x10,0x93,0x0F,0x42,0x05,0x7B,0x01,  /* 00000AF0    "....B.{." */
+    0x65,0xEA,0x41,0x04,0x64,0xA5,0x6B,0x15,  /* 00000AF8    "e.A.d.k." */
+    0x90,0x75,0x83,0x08,0xC8,0x59,0xCD,0x80,  /* 00000B00    ".u...Y.." */
+    0xB3,0x8C,0x6E,0x80,0x98,0xC2,0x87,0x82,  /* 00000B08    "..n....." */
+    0x40,0xAC,0x49,0x0F,0x28,0x13,0x08,0xA2,  /* 00000B10    "@.I.(..." */
+    0x0B,0x07,0xF1,0x03,0xC4,0xA4,0x81,0x08,  /* 00000B18    "........" */
+    0xC8,0x71,0x7E,0x25,0x02,0x77,0x1C,0x45,  /* 00000B20    ".q~%.w.E" */
+    0x80,0xD4,0xD1,0x70,0x29,0x08,0x15,0xFF,  /* 00000B28    "...p)..." */
+    0x09,0x13,0xC8,0xFF,0xFF,0xFD,0x44,0x96,  /* 00000B30    "......D." */
+    0xC0,0x28,0x08,0x8D,0xA0,0x09,0x84,0xC9,  /* 00000B38    ".(......" */
+    0xF3,0x04,0xC2,0x42,0xFD,0xFD,0x34,0x04,  /* 00000B40    "...B..4." */
+    0x07,0x51,0x35,0x44,0xEA,0x0A,0x84,0x05,  /* 00000B48    ".Q5D...." */
+    0x7E,0x18,0x68,0x30,0x4E,0x0F,0x22,0x20,  /* 00000B50    "~.h0N." " */
+    0x27,0x7D,0x52,0x05,0x22,0xB9,0x41,0x04,  /* 00000B58    "'}R.".A." */
+    0xE4,0xFF,0x3F,0x10,0x1A,0x5C,0x5F,0x47,  /* 00000B60    "..?..\_G" */
+    0x50,0x45,0x14,0x13,0x5F,0x4C,0x31,0x38,  /* 00000B68    "PE.._L18" */
+    0x08,0x86,0x5C,0x2E,0x5F,0x53,0x42,0x5F,  /* 00000B70    "..\._SB_" */
+    0x57,0x4D,0x49,0x31,0x0A,0xD0,
+};