s5pc1xx: p1p2: add board files
authorMinkyu Kang <mk7.kang@samsung.com>
Fri, 22 Jan 2010 02:41:50 +0000 (11:41 +0900)
committerMinkyu Kang <mk7.kang@samsung.com>
Fri, 22 Jan 2010 02:41:50 +0000 (11:41 +0900)
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
board/samsung/p1p2/Makefile [new file with mode: 0644]
board/samsung/p1p2/config.mk [new file with mode: 0644]
board/samsung/p1p2/lowlevel_init.S [new file with mode: 0644]
board/samsung/p1p2/mem_setup.S [new file with mode: 0644]
board/samsung/p1p2/modem_boot.c [new file with mode: 0644]
board/samsung/p1p2/onenand.c [new file with mode: 0644]
board/samsung/p1p2/p1p2.c [new file with mode: 0644]
board/samsung/p1p2/psi_ram.h [new file with mode: 0644]
board/samsung/p1p2/psi_ram.hex [new file with mode: 0644]

diff --git a/board/samsung/p1p2/Makefile b/board/samsung/p1p2/Makefile
new file mode 100644 (file)
index 0000000..515e80e
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# (C) Copyright 2009
+# Kyungmin Park, Samsung Electronics
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# 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
+#
+
+include $(TOPDIR)/config.mk
+
+LIB    = $(obj)lib$(BOARD).a
+
+COBJS-y        := p1p2.o onenand.o
+SOBJS  := lowlevel_init.o
+
+COBJS-$(CONFIG_S5PC110_MODEM)  += modem_boot.o
+
+SRCS    := $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS-y))
+SOBJS  := $(addprefix $(obj),$(SOBJS))
+
+$(LIB):        $(obj).depend $(SOBJS) $(OBJS)
+       $(AR) $(ARFLAGS) $@ $(SOBJS) $(OBJS)
+
+clean:
+       rm -f $(SOBJS) $(OBJS)
+
+distclean:     clean
+       rm -f $(LIB) core *.bak $(obj).depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/samsung/p1p2/config.mk b/board/samsung/p1p2/config.mk
new file mode 100644 (file)
index 0000000..ebab420
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2008 # Samsung Elecgtronics
+# Kyungmin Park <kyungmin.park@samsung.com>
+#
+
+# On S5PC100 we use the 128 MiB OneDRAM bank at
+#
+# 0x30000000 to 0x35000000 (80MiB)
+# 0x38000000 to 0x40000000 (128MiB)
+#
+# On S5PC110 we use the 128 MiB OneDRAM bank at
+#
+# 0x30000000 to 0x35000000 (80MiB)
+# 0x40000000 to 0x48000000 (128MiB)
+#
+TEXT_BASE = 0x34800000
diff --git a/board/samsung/p1p2/lowlevel_init.S b/board/samsung/p1p2/lowlevel_init.S
new file mode 100644 (file)
index 0000000..c914261
--- /dev/null
@@ -0,0 +1,516 @@
+/*
+ * Memory Setup stuff - taken from blob memsetup.S
+ *
+ * Copyright (C) 2009 Samsung Electronics
+ * Kyungmin Park <kyungmin.park@samsung.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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
+ */
+
+#include <config.h>
+#include <version.h>
+#include <asm/arch/cpu.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/power.h>
+
+#define DEBUG_PM_C110
+#undef DEBUG_PM_C110
+
+/*
+ * Register usages:
+ *
+ * r5 has zero always
+ * r7 has S5PC100 GPIO base, 0xE0300000
+ * r8 has real GPIO base, 0xE0300000, 0xE0200000 at S5PC100, S5PC110 repectively
+ * r9 has Mobile DDR size, 1 means 1GiB, 2 means 2GiB and so on
+ */
+
+_TEXT_BASE:
+       .word   TEXT_BASE
+
+       .globl lowlevel_init
+lowlevel_init:
+       mov     r11, lr
+
+       /* r5 has always zero */
+       mov     r5, #0
+
+       ldr     r7, =S5PC100_GPIO_BASE
+       ldr     r8, =S5PC100_GPIO_BASE
+       /* Read CPU ID */
+       ldr     r2, =S5PC1XX_PRO_ID
+       ldr     r0, [r2]
+       mov     r1, #0x00010000
+       and     r0, r0, r1
+       cmp     r0, r5
+       beq     100f
+       ldr     r8, =S5PC110_GPIO_BASE
+100:
+       /* Turn on KEY_LED_ON [GPJ4(1)] XMSMWEN */
+       cmp     r7, r8
+#ifndef DEBUG_PM_C110
+       addeq   r0, r8, #0x280                          @S5PC100_GPIO_J4_OFFSET
+       addne   r0, r8, #0x2C0                          @S5PC110_GPIO_J4_OFFSET
+       ldr     r1, [r0, #0x0]                          @S5PC1XX_GPIO_CON_OFFSET
+       bic     r1, r1, #(0xf << 4)                     @ 1 * 4-bit
+       orr     r1, r1, #(0x1 << 4)
+       str     r1, [r0, #0x0]                          @S5PC1XX_GPIO_CON_OFFSET
+
+       ldr     r1, [r0, #0x4]                          @S5PC1XX_GPIO_DAT_OFFSET
+#ifdef CONFIG_ONENAND_IPL
+       orr     r1, r1, #(1 << 1)                       @ 1 * 1-bit
+#else
+       bic     r1, r1, #(1 << 1)
+#endif
+       str     r1, [r0, #0x4]                          @S5PC1XX_GPIO_DAT_OFFSET
+#endif
+
+       /* IO retension release */
+       ldreq   r0, =S5PC100_OTHERS                     @0xE0108200
+       ldrne   r0, =S5PC110_OTHERS                     @0xE010E000
+       ldr     r1, [r0]
+       ldreq   r2, =(1 << 31)                          @IO_RET_REL
+       ldrne   r2, =((1 << 31) | (1 << 30) | (1 << 29) | (1 << 28))    @ GPIO, UART_IO
+       orr     r1, r1, r2
+       str     r1, [r0]
+
+#ifndef CONFIG_ONENAND_IPL
+       /* Disable Watchdog */
+       ldreq   r0, =S5PC100_WATCHDOG_BASE              @0xEA200000
+       ldrne   r0, =S5PC110_WATCHDOG_BASE              @0xE2700000
+       str     r5, [r0]
+
+       /* setting SRAM */
+       ldreq   r0, =S5PC100_SROMC_BASE
+       ldrne   r0, =S5PC110_SROMC_BASE
+       ldr     r1, =0x9
+       str     r1, [r0]
+#endif
+
+       /* S5PC100 has 3 groups of interrupt sources */
+       ldreq   r0, =S5PC100_VIC0_BASE                  @0xE4000000
+       ldrne   r0, =S5PC110_VIC0_BASE                  @0xF2000000
+       add     r1, r0, #0x00100000
+       add     r2, r0, #0x00200000
+
+       /* Disable all interrupts (VIC0, VIC1 and VIC2) */
+       mvn     r3, #0x0
+       str     r3, [r0, #0x14]                         @INTENCLEAR
+       str     r3, [r1, #0x14]                         @INTENCLEAR
+       str     r3, [r2, #0x14]                         @INTENCLEAR
+
+#ifndef CONFIG_ONENAND_IPL
+       /* Set all interrupts as IRQ */
+       str     r5, [r0, #0xc]                          @INTSELECT
+       str     r5, [r1, #0xc]                          @INTSELECT
+       str     r5, [r2, #0xc]                          @INTSELECT
+
+       /* Pending Interrupt Clear */
+       str     r5, [r0, #0xf00]                        @INTADDRESS
+       str     r5, [r1, #0xf00]                        @INTADDRESS
+       str     r5, [r2, #0xf00]                        @INTADDRESS
+#endif
+
+#ifndef CONFIG_ONENAND_IPL
+       /* for UART */
+       bl      uart_asm_init
+
+       bl      internal_ram_init
+#endif
+
+#ifdef CONFIG_ONENAND_IPL
+       /* init system clock */
+       bl      system_clock_init
+
+       /* Board detection to set proper memory configuration */
+       cmp     r7, r8
+       moveq   r9, #1          /* r9 has 1Gib default at s5pc100 */
+       movne   r9, #2          /* r9 has 2Gib default at s5pc110 */
+       /* FIXME 1Gib detection: Limo Universal */
+       /* Check Limo Real board
+        *      LR (suspend)    LU              J1B2
+        * 0x04 0x01 (0x01)     0x01 (0x01)     0x01 (0x01)
+        * 0x24 0x28 (0xA8)     0x28 (0x6A)     0x1C (0x1C)
+        * 0x44 0x00 (0xC7)     0x00 (0x47)     0x00 (0x47)
+        * 0x64 0x03 (0x1F)     0x07 (0x1F)     0x0f (0x0F)
+        *
+        * Check (0 << 3) at 0x64 at boot
+        * Check 0x47 at 0x44 at suspend
+        */
+       ldrne   r2, =0xE0200C00
+       ldrne   r1, [r2, #0x64]
+       and     r1, r1, #(1 << 2)
+       cmp     r1, #(1 << 2)
+       moveq   r9, #1
+       ldr     r1, [r2, #0x44]
+       cmp     r1, #0x47
+       moveq   r9, #1
+       /*
+        * Aquila Rev 0.5 : 4G3G1G x16 for Infineon ES3.1
+        * Aquila Rev 0.6 : 4G1G1G x32 for MSM6290
+        * Aquila Rev 0.7 : 4G2G1G x16 for Infineon ES3.1
+        * Aquila Rev 0.8 : 4G3G1G x16 for Infineon ES3.1
+        */
+       ldr     r2, =0xE0200200
+       ldr     r4, [r2, #0x48]
+       bic     r1, r4, #(0xFF << 2)    /* PULLUP_DISABLE: 4 * 2-bit */
+       str     r1, [r2, #0x48]
+       /* For write completion */
+       nop
+       nop
+
+       ldr     r3, [r2, #0x44]
+       and     r1, r3, #(0xf << 1)
+       cmp     r1, #(0x5 << 2)
+       moveq   r9, #3
+       cmp     r1, #(0x6 << 2)
+       moveq   r9, #1
+       cmp     r1, #(0x7 << 2)
+       moveq   r9, #2
+       cmp     r1, #(0x1 << 1)
+       moveq   r9, #3
+       str     r4, [r2, #0x48]         /* Restore PULLUP configuration */
+
+       bl      mem_ctrl_asm_init
+
+       /* OneNAND Sync Read Support at S5PC110 only
+        * RM[15]       : Sync Read
+        * BRWL[14:12]  : 7 CLK
+        * BL[11:9]     : Continuous
+        * VHF[3]       : Very High Frequency Enable (Over 83MHz)
+        * HF[2]        : High Frequency Enable (Over 66MHz)
+        */
+       cmp     r7, r8
+       ldrne   r1, =0xE00C
+
+       ldrne   r0, =0xB001E442
+       strneh  r1, [r0]
+
+       ldrne   r0, =0xB0600000
+       strne   r1, [r0, #0x100]                        @ ONENAND_IF_CTRL
+
+       /* Wakeup support. Don't know if it's going to be used, untested. */
+       ldreq   r0, =S5PC100_RST_STAT
+       ldrne   r0, =S5PC110_RST_STAT
+       ldr     r1, [r0]
+       biceq   r1, r1, #0xfffffff7
+       moveq   r2, #(1 << 3)
+       bicne   r1, r1, #0xfffeffff
+       movne   r2, #(1 << 16)
+       cmp     r1, r2
+       bne     1f
+wakeup:
+#ifdef DEBUG_PM_C110
+       mov     r0, r8
+       ldr     r1, =0x22222222
+       str     r1, [r0, #0x0]                  @S5PC100_GPIO_A0_OFFSET
+       ldr     r1, =0x00002222
+       str     r1, [r0, #0x20]                 @S5PC100_GPIO_A1_OFFSET
+
+       /* UART_SEL MP0_5[7] at S5PC110 */
+       add     r0, r8, #0x360                  @S5PC110_GPIO_MP0_5_OFFSET
+       ldr     r1, [r0, #0x0]                  @S5PC1XX_GPIO_CON_OFFSET
+       bic     r1, r1, #(0xf << 28)            @ 28 = 7 * 4-bit
+       orr     r1, r1, #(0x1 << 28)            @ Output
+       str     r1, [r0, #0x0]                  @S5PC1XX_GPIO_CON_OFFSET
+
+       ldr     r1, [r0, #0x8]                  @S5PC1XX_GPIO_PULL_OFFSET
+       bic     r1, r1, #(0x3 << 14)            @ 14 = 7 * 2-bit
+       orr     r1, r1, #(0x2 << 14)            @ Pull-up enabled
+       str     r1, [r0, #0x8]                  @S5PC1XX_GPIO_PULL_OFFSET
+
+       ldr     r1, [r0, #0x4]                  @S5PC1XX_GPIO_DAT_OFFSET
+       orr     r1, r1, #(1 << 7)               @ 7 = 7 * 1-bit
+       str     r1, [r0, #0x4]                  @S5PC1XX_GPIO_DAT_OFFSET
+
+       ldr     r0, =0xE2900000                 @ S5PC110_PA_UART
+       orr     r0, r0, #0x800
+       mov     r1, #0x3
+       str     r1, [r0, #0x000]                @ ULCON
+       ldr     r1, =0x245
+       str     r1, [r0, #0x004]                @ UCON
+       mov     r1, #0x23
+       str     r1, [r0, #0x028]                @ UBRDIV
+       mov     r1, #0x3
+       str     r1, [r0, #0x02C]                @ UDIVSLOT
+
+       mov     r2, #'W'
+       strb    r2, [r0, #0x020]                @ UTXH
+1001:
+       ldrb    r3, [r0, #0x010]                @ UTRSTAT
+       tst     r3, #(1 << 2)
+       beq     1001b
+#endif
+
+       /* turn off L2 cache */
+       bl      l2_cache_disable
+
+       cmp     r7, r8
+       ldreq   r0, =0xC100
+       ldrne   r0, =0xC110
+
+       /* invalidate L2 cache also */
+       bl      invalidate_dcache
+
+       /* turn on L2 cache */
+       bl      l2_cache_enable
+
+       cmp     r7, r8
+       /* Load return address and jump to kernel */
+       ldreq   r0, =S5PC100_INFORM0
+       ldrne   r0, =S5PC110_INFORM0
+
+       /* r1 = physical address of s5pc1xx_cpu_resume function */
+       ldr     r1, [r0]
+
+       /* Jump to kernel (sleep-s5pc1xx.S) */
+       mov     pc, r1
+       nop
+       nop
+#else
+       cmp     r7, r8
+       /* Clear wakeup status register */
+       ldreq   r0, =S5PC100_WAKEUP_STAT
+       ldrne   r0, =S5PC110_WAKEUP_STAT
+       ldr     r1, [r0]
+       str     r1, [r0]
+#endif
+1:
+       mov     lr, r11
+       mov     pc, lr
+
+/*
+ * system_clock_init: Initialize core clock and bus clock.
+ * void system_clock_init(void)
+ */
+system_clock_init:
+       ldr     r0, =S5PC1XX_CLOCK_BASE         @ 0xE0100000
+
+       /* Check S5PC100 */
+       cmp     r7, r8
+       bne     110f
+100:
+#ifndef DEBUG_PM_C110
+       /* Set Lock Time */
+       ldr     r1, =0xe10                      @ Locktime : 0xe10 = 3600
+       str     r1, [r0, #0x000]                @ S5PC100_APLL_LOCK
+       str     r1, [r0, #0x004]                @ S5PC100_MPLL_LOCK
+       str     r1, [r0, #0x008]                @ S5PC100_EPLL_LOCK
+       str     r1, [r0, #0x00C]                @ S5PC100_HPLL_LOCK
+
+       /* S5P_APLL_CON */
+#ifdef CONFIG_CLK_667_166_83
+       ldr     r1, =0x81bc0400         @ SDIV 0, PDIV 4, MDIV 444 (1333MHz)
+#elif defined(CONFIG_CLK_666_166_66)
+       ldr     r1, =0x814d0301         @ SDIV 1, PDIV 3, MDIV 333 (1333MHz)
+#elif defined(CONFIG_CLK_600_150_75)
+       ldr     r1, =0x812C0300         @ SDIV 0, PDIV 3, MDIV 300 (1200MHz)
+#elif defined(CONFIG_CLK_533_133_66)
+       ldr     r1, =0x810b0300         @ SDIV 0, PDIV 3, MDIV 267 (1066MHz)
+#elif defined(CONFIG_CLK_500_166_66)
+       ldr     r1, =0x81f40301         @ SDIV 1, PDIV 3, MDIV 500 (1000MHz)
+#elif defined(CONFIG_CLK_467_117_59)
+       ldr     r1, =0x826E0401         @ SDIV 1, PDIV 4, MDIV 622 (933MHz)
+#elif defined(CONFIG_CLK_400_100_50)
+       ldr     r1, =0x81900301         @ SDIV 1, PDIV 3, MDIV 400 (800MHz)
+#else
+#error you should set the correct clock configuration
+#endif
+       str     r1, [r0, #0x100]
+       /* S5P_MPLL_CON */
+       ldr     r1, =0x80590201         @ SDIV 1, PDIV 2, MDIV 89 (267MHz)
+       str     r1, [r0, #0x104]
+       /* S5P_EPLL_CON */
+       ldr     r1, =0x80870303         @ SDIV 3, PDIV 3, MDIV 135 (67.5MHz)
+       str     r1, [r0, #0x108]
+       /* S5P_HPLL_CON */
+       ldr     r1, =0x80600603         @ SDIV 3, PDIV 6, MDIV 96
+       str     r1, [r0, #0x10C]
+
+       ldr     r1, [r0, #0x300]
+       ldr     r2, =0x00003fff
+       bic     r1, r1, r2
+#ifdef CONFIG_CLK_800_166_66
+       ldr     r2, =0x00011401
+#elif defined(CONFIG_CLK_500_166_66)
+       ldr     r2, =0x00011201
+#elif defined(CONFIG_CLK_666_166_66)
+       ldr     r2, =0x00011300
+#else
+       ldr     r2, =0x00011301
+#endif
+       orr     r1, r1, r2
+       str     r1, [r0, #0x300]
+       ldr     r1, [r0, #0x304]
+       ldr     r2, =0x00011110
+       orr     r1, r1, r2
+       str     r1, [r0, #0x304]
+       ldr     r1, =0x00000001
+       str     r1, [r0, #0x308]
+
+       /* Set Source Clock */
+       ldr     r1, =0x00001111                 @ A, M, E, HPLL Muxing
+       str     r1, [r0, #0x200]                @ S5PC1XX_CLK_SRC0
+#endif
+       b       200f
+110:
+       /* Set Clock divider */
+       ldr     r1, =0x14131330                 @ 1:1:4:4, 1:4:5
+       str     r1, [r0, #0x300]
+       ldr     r1, =0x11110111                 @ UART[3210]: MMC[3210]
+       str     r1, [r0, #0x310]
+
+       /* Set Lock Time */
+       ldr     r1, =0xe10                      @ Locktime : 0xe10 = 3600
+       str     r1, [r0, #0x000]                @ S5PC110_APLL_LOCK
+       str     r1, [r0, #0x008]                @ S5PC110_MPLL_LOCK
+       str     r1, [r0, #0x010]                @ S5PC110_EPLL_LOCK
+       str     r1, [r0, #0x020]                @ S5PC110_VPLL_LOCK
+
+       /* S5PC110_APLL_CON */
+       ldr     r1, =0x80C80601                 @ 800MHz
+       str     r1, [r0, #0x100]
+       /* S5PC110_MPLL_CON */
+       ldr     r1, =0x829B0C01                 @ 667MHz
+       str     r1, [r0, #0x108]
+       /* S5PC110_EPLL_CON */
+       ldr     r1, =0x80600602                 @  96MHz VSEL 0 P 6 M 96 S 2
+       str     r1, [r0, #0x110]
+       /* S5PC110_VPLL_CON */
+       ldr     r1, =0x806C0603                 @  54MHz
+       str     r1, [r0, #0x120]
+
+       /* Set Source Clock */
+       ldr     r1, =0x10001111                 @ A, M, E, VPLL Muxing
+       str     r1, [r0, #0x200]                @ S5PC1XX_CLK_SRC0
+
+       /* OneDRAM(DMC0) clock setting */
+       ldr     r1, =0x01000000                 @ ONEDRAM_SEL[25:24] 1 SCLKMPLL
+       str     r1, [r0, #0x218]                @ S5PC110_CLK_SRC6
+       ldr     r1, =0x30000000                 @ ONEDRAM_RATIO[31:28] 3 + 1
+       str     r1, [r0, #0x318]                @ S5PC110_CLK_DIV6
+
+       /* XCLKOUT = XUSBXTI 24MHz */
+       add     r2, r0, #0xE000                 @ S5PC110_OTHERS
+       ldr     r1, [r2]
+       orr     r1, r1, #(0x3 << 8)             @ CLKOUT[9:8] 3 XUSBXTI
+       str     r1, [r2]
+
+       /* CLK_IP0 */
+       ldr     r1, =0x8fefeeb                  @ DMC[1:0] PDMA0[3] IMEM[5]
+       str     r1, [r0, #0x460]                @ S5PC110_CLK_IP0
+
+       /* CLK_IP1 */
+       ldr     r1, =0xe9fdf0f9                 @ FIMD[0] USBOTG[16]
+                                               @ NANDXL[24]
+       str     r1, [r0, #0x464]                @ S5PC110_CLK_IP1
+
+       /* CLK_IP2 */
+       ldr     r1, =0xf75f7fc                  @ CORESIGHT[8] MODEM[9]
+                                               @ HOSTIF[10] HSMMC0[16]
+                                               @ HSMMC2[18] VIC[27:24]
+       str     r1, [r0, #0x468]                @ S5PC110_CLK_IP2
+
+       /* CLK_IP3 */
+       ldr     r1, =0x8edf038c                 @ I2C[8:6]
+                                               @ SYSTIMER[16] UART0[17]
+                                               @ UART1[18] UART2[19]
+                                               @ UART3[20] WDT[22]
+                                               @ PWM[23] GPIO[26] SYSCON[27]
+       str     r1, [r0, #0x46c]                @ S5PC110_CLK_IP3
+
+       /* CLK_IP4 */
+       ldr     r1, =0xfffffff1                 @ CHIP_ID[0] TZPC[8:5]
+       str     r1, [r0, #0x470]                @ S5PC110_CLK_IP3
+
+200:
+       /* wait at least 200us to stablize all clock */
+       mov     r2, #0x10000
+1:     subs    r2, r2, #1
+       bne     1b
+
+       mov     pc, lr
+
+#ifndef CONFIG_ONENAND_IPL
+internal_ram_init:
+       ldreq   r0, =0xE3800000
+       ldrne   r0, =0xF1500000
+       ldr     r1, =0x0
+       str     r1, [r0]
+
+       mov     pc, lr
+#endif
+
+#ifndef CONFIG_ONENAND_IPL
+/*
+ * uart_asm_init: Initialize UART's pins
+ */
+uart_asm_init:
+       /* set GPIO to enable UART0-UART4 */
+       mov     r0, r8
+       ldr     r1, =0x22222222
+       str     r1, [r0, #0x0]                  @S5PC100_GPIO_A0_OFFSET
+       ldr     r1, =0x00002222
+       str     r1, [r0, #0x20]                 @S5PC100_GPIO_A1_OFFSET
+
+       /* Check S5PC100 */
+       cmp     r7, r8
+       bne     110f
+
+#ifndef DEBUG_PM_C110
+       /* UART_SEL GPK0[5] at S5PC100 */
+       add     r0, r8, #0x2A0                  @S5PC100_GPIO_K0_OFFSET
+       ldr     r1, [r0, #0x0]                  @S5PC1XX_GPIO_CON_OFFSET
+       bic     r1, r1, #(0xf << 20)            @ 20 = 5 * 4-bit
+       orr     r1, r1, #(0x1 << 20)            @ Output
+       str     r1, [r0, #0x0]                  @S5PC1XX_GPIO_CON_OFFSET
+
+       ldr     r1, [r0, #0x8]                  @S5PC1XX_GPIO_PULL_OFFSET
+       bic     r1, r1, #(0x3 << 10)            @ 10 = 5 * 2-bit
+       orr     r1, r1, #(0x2 << 10)            @ Pull-up enabled
+       str     r1, [r0, #0x8]                  @S5PC1XX_GPIO_PULL_OFFSET
+
+       ldr     r1, [r0, #0x4]                  @S5PC1XX_GPIO_DAT_OFFSET
+       orr     r1, r1, #(1 << 5)               @ 5 = 5 * 1-bit
+       str     r1, [r0, #0x4]                  @S5PC1XX_GPIO_DAT_OFFSET
+#endif
+       b       200f
+110:
+       /*
+        * Note that the following address
+        * 0xE020'0360 is reserved address at S5PC100
+        */
+       /* UART_SEL MP0_5[7] at S5PC110 */
+       add     r0, r8, #0x360                  @S5PC110_GPIO_MP0_5_OFFSET
+       ldr     r1, [r0, #0x0]                  @S5PC1XX_GPIO_CON_OFFSET
+       bic     r1, r1, #(0xf << 28)            @ 28 = 7 * 4-bit
+       orr     r1, r1, #(0x1 << 28)            @ Output
+       str     r1, [r0, #0x0]                  @S5PC1XX_GPIO_CON_OFFSET
+
+       ldr     r1, [r0, #0x8]                  @S5PC1XX_GPIO_PULL_OFFSET
+       bic     r1, r1, #(0x3 << 14)            @ 14 = 7 * 2-bit
+       orr     r1, r1, #(0x2 << 14)            @ Pull-up enabled
+       str     r1, [r0, #0x8]                  @S5PC1XX_GPIO_PULL_OFFSET
+
+       ldr     r1, [r0, #0x4]                  @S5PC1XX_GPIO_DAT_OFFSET
+       orr     r1, r1, #(1 << 7)               @ 7 = 7 * 1-bit
+       str     r1, [r0, #0x4]                  @S5PC1XX_GPIO_DAT_OFFSET
+200:
+       mov     pc, lr
+#endif
diff --git a/board/samsung/p1p2/mem_setup.S b/board/samsung/p1p2/mem_setup.S
new file mode 100644 (file)
index 0000000..8fa61df
--- /dev/null
@@ -0,0 +1,334 @@
+/*
+ * Copyright (C) 2009 Samsung Electrnoics
+ * Minkyu Kang <mk7.kang@samsung.com>
+ * Kyungmin Park <kyungmin.park@samsung.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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
+ */
+
+#include <config.h>
+
+#define NEW_MEMORY_TIMING
+#undef NEW_MEMORY_TIMING
+
+       .globl mem_ctrl_asm_init
+mem_ctrl_asm_init:
+       cmp     r7, r8
+
+#ifdef NEW_MEMORY_TIMING
+       /* CLOCK_POWER_BASE */
+       ldrne   r0, =0xE0100000
+       orrne   r0, r0, #0x6200
+       orrne   r0, r0, #0x0008
+       ldrne   r1, =0x00000000         @ 0 : SCLK_ONEDRAM, 1 : HCLK200
+       strne   r1, [r0]
+
+       /* ASYNC_MSYS_DMC0_BASE */
+       ldrne   r0, =0xF1E00000
+       ldrne   r1, =0x0
+       strne   r1, [r0, #0x0]
+       ldrne   r1, =0x0
+       str     r1, [r0, #0xC]
+#endif
+
+       ldreq   r0, =S5PC100_DMC_BASE                   @ 0xE6000000
+       ldrne   r0, =S5PC110_DMC0_BASE                  @ 0xF0000000
+       ldrne   r6, =S5PC110_DMC1_BASE                  @ 0xF1400000
+
+       /* DLL parameter setting */
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0x003B3B00
+#else
+       ldr     r1, =0x50101000
+#endif
+       str     r1, [r0, #0x018]                        @ PHYCONTROL0_OFFSET
+       strne   r1, [r6, #0x018]                        @ PHYCONTROL0_OFFSET
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0x00000004
+#else
+       ldr     r1, =0x000000f4
+#endif
+       str     r1, [r0, #0x01C]                        @ PHYCONTROL1_OFFSET
+       strne   r1, [r6, #0x01C]                        @ PHYCONTROL1_OFFSET
+       ldreq   r1, =0x0
+       streq   r1, [r0, #0x020]                        @ PHYCONTROL2_OFFSET
+
+       /* DLL on */
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0x003B3B02
+#else
+       ldr     r1, =0x50101002
+#endif
+       str     r1, [r0, #0x018]                        @ PHYCONTROL0_OFFSET
+       strne   r1, [r6, #0x018]                        @ PHYCONTROL0_OFFSET
+
+       /* DLL start */
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0x003B3B03
+#else
+       ldr     r1, =0x50101003
+#endif
+       str     r1, [r0, #0x018]                        @ PHYCONTROL0_OFFSET
+       strne   r1, [r6, #0x018]                        @ PHYCONTROL0_OFFSET
+
+       mov     r2, #0x4000
+wait:  subs    r2, r2, #0x1
+       cmp     r2, #0x0
+       bne     wait
+
+       cmp     r7, r8
+       /* Force value locking for DLL off */
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0x6A3B3B01
+#endif
+       str     r1, [r0, #0x018]                        @ PHYCONTROL0_OFFSET
+       strne   r1, [r6, #0x018]                        @ PHYCONTROL0_OFFSET
+
+#ifndef NEW_MEMORY_TIMING
+       /* DLL off */
+       ldr     r1, =0x50101009
+       str     r1, [r0, #0x018]                        @ PHYCONTROL0_OFFSET
+       strne   r1, [r6, #0x018]                        @ PHYCONTROL0_OFFSET
+#endif
+
+       /* auto refresh off */
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0x0FFF1010
+       ldr     r2, =0x0FFF10B0
+#else
+       ldr     r1, =0xff001010 | (1 << 7)
+       ldr     r2, =0xff001010 | (1 << 7)
+#endif
+       str     r1, [r0, #0x000]                        @ CONCONTROL_OFFSET
+       strne   r2, [r6, #0x000]                        @ CONCONTROL_OFFSET
+
+       /*
+        * Burst Length 4, 2 chips, 32-bit, LPDDR
+        * OFF: dynamic self refresh, force precharge, dynamic power down off
+        */
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0x00202100
+       ldr     r2, =0x00212100
+#else
+       ldr     r1, =0x00212100
+       ldr     r2, =0x00212100
+#endif
+       str     r1, [r0, #0x004]                        @ MEMCONTROL_OFFSET
+       strne   r2, [r6, #0x004]                        @ MEMCONTROL_OFFSET
+
+       /*
+        * Note:
+        * If Bank0 has Mobile RAM we place it at 0x3800'0000 (s5pc100 only)
+        * So finally Bank1 OneDRAM should address start at at 0x3000'0000
+        */
+
+       /*
+        * DMC0: CS0 : S5PC100/S5PC110
+        * 0x30 -> 0x30000000
+        * 0xf8 -> 0x37FFFFFF
+        * [15:12] 0: Linear
+        * [11:8 ] 2: 9 bits
+        * [ 7:4 ] 2: 14 bits
+        * [ 3:0 ] 2: 4 banks
+        */
+       ldr     r3, =0x30f80222
+swap_memory:
+       str     r3, [r0, #0x008]                        @ MEMCONFIG0_OFFSET
+
+       /*
+        * DMC1: CS0 : S5PC110
+        * 0x40 -> 0x40000000
+        * 0xf8 -> 0x47FFFFFF (1Gib)
+        * 0x40 -> 0x40000000
+        * 0xf0 -> 0x4FFFFFFF (2Gib)
+        * [15:12] 0: Linear
+        * [11:8 ] 2: 9 bits  - Col (1Gib)
+        * [11:8 ] 3: 10 bits - Col (2Gib)
+        * [ 7:4 ] 2: 14 bits - Row
+        * [ 3:0 ] 2: 4 banks
+        */
+       /* Default : 2GiB */
+       ldr     r4, =0x40f00322                         @ 2Gib
+       ldr     r5, =0x50f80222
+       cmp     r9, #1
+       ldreq   r4, =0x40f80222                         @ 1Gib
+       cmp     r9, #3
+       ldreq   r5, =0x50f80222                         @ 2Gib + 1Gib
+       cmp     r9, #4
+       ldreq   r5, =0x50f00322                         @ 2Gib + 2Gib
+
+       cmp     r7, r8
+       strne   r4, [r6, #0x008]                        @ MEMCONFIG0_OFFSET
+       strne   r5, [r6, #0x00C]                        @ MEMCONFIG1_OFFSET
+
+       /*
+        * DMC0: CS1: S5PC100
+        * 0x38 -> 0x38000000
+        * 0xf8 -> 0x3fFFFFFF
+        * [15:12] 0: Linear
+        * [11:8 ] 2: 9 bits
+        * [ 7:4 ] 2: 14 bits
+        * [ 3:0 ] 2: 4 banks
+        */
+       eoreq   r3, r3, #0x08000000
+       streq   r3, [r0, #0xc]                          @ MEMCONFIG1_OFFSET
+
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0xFF000000
+#else
+       ldr     r1, =0x20000000
+#endif
+       str     r1, [r0, #0x014]                        @ PRECHCONFIG_OFFSET
+       strne   r1, [r0, #0x014]                        @ PRECHCONFIG_OFFSET
+       strne   r1, [r6, #0x014]                        @ PRECHCONFIG_OFFSET
+
+       /*
+        * S5PC100:
+        * DMC:  CS0: 166MHz
+        *       CS1: 166MHz
+        * S5PC110:
+        * DMC0: CS0: 166MHz
+        * DMC1: CS0: 200MHz
+        *
+        * 7.8us * 200MHz %LE %LONG1560(0x618)
+        * 7.8us * 166MHz %LE %LONG1294(0x50E)
+        * 7.8us * 133MHz %LE %LONG1038(0x40E),
+        * 7.8us * 100MHz %LE %LONG780(0x30C),
+        */
+       ldr     r1, =0x0000050E
+       str     r1, [r0, #0x030]                        @ TIMINGAREF_OFFSET
+       ldrne   r1, =0x00000618
+       strne   r1, [r6, #0x030]                        @ TIMINGAREF_OFFSET
+
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0x14233287
+#else
+       ldr     r1, =0x0c233287
+#endif
+       str     r1, [r0, #0x034]                        @ TIMINGROW_OFFSET
+       ldrne   r1, =0x11344309
+       strne   r1, [r6, #0x034]                        @ TIMINGROW_OFFSET
+
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0x12130005
+#else
+       ldr     r1, =0x32330303
+#endif
+       str     r1, [r0, #0x038]                        @ TIMINGDATA_OFFSET
+       ldrne   r1, =0x12130005
+       strne   r1, [r6, #0x038]                        @ TIMINGDATA_OFFSET
+
+       /* tfaw=4 sxsr=0x14 txp=0x14 tcke=3 tmrd=3 */
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0x0E140222
+#else
+       ldr     r1, =0x04141433
+#endif
+       str     r1, [r0, #0x03C]                        @ TIMINGPOWER_OFFSET
+       ldrne   r1, =0x0E190222
+       strne   r1, [r6, #0x03C]                        @ TIMINGPOWER_OFFSET
+
+       /* chip0 Deselect */
+       ldr     r1, =0x07000000
+       str     r1, [r0, #0x010]                        @ DIRECTCMD_OFFSET
+       strne   r1, [r6, #0x010]                        @ DIRECTCMD_OFFSET
+
+       /* chip0 PALL */
+       ldr     r1, =0x01000000
+       str     r1, [r0, #0x010]                        @ DIRECTCMD_OFFSET
+       strne   r1, [r6, #0x010]                        @ DIRECTCMD_OFFSET
+
+       /* chip0 REFA */
+       ldr     r1, =0x05000000
+       str     r1, [r0, #0x010]                        @ DIRECTCMD_OFFSET
+       strne   r1, [r6, #0x010]                        @ DIRECTCMD_OFFSET
+       /* chip0 REFA */
+       str     r1, [r0, #0x010]                        @ DIRECTCMD_OFFSET
+       strne   r1, [r6, #0x010]                        @ DIRECTCMD_OFFSET
+
+       /* chip0 MRS, CL%LE %LONG3, BL%LE %LONG4 */
+       ldr     r1, =0x00000032
+       str     r1, [r0, #0x010]                        @ DIRECTCMD_OFFSET
+       strne   r1, [r6, #0x010]                        @ DIRECTCMD_OFFSET
+
+       /* chip1 Deselect */
+       ldr     r1, =0x07100000
+       str     r1, [r0, #0x010]                        @ DIRECTCMD_OFFSET
+       strne   r1, [r6, #0x010]                        @ DIRECTCMD_OFFSET
+
+       /* chip1 PALL */
+       ldr     r1, =0x01100000
+       str     r1, [r0, #0x010]                        @ DIRECTCMD_OFFSET
+       strne   r1, [r6, #0x010]                        @ DIRECTCMD_OFFSET
+
+       /* chip1 REFA */
+       ldr     r1, =0x05100000
+       str     r1, [r0, #0x010]                        @ DIRECTCMD_OFFSET
+       strne   r1, [r6, #0x010]                        @ DIRECTCMD_OFFSET
+       /* chip1 REFA */
+       str     r1, [r0, #0x010]                        @ DIRECTCMD_OFFSET
+       strne   r1, [r6, #0x010]                        @ DIRECTCMD_OFFSET
+
+       /* chip1 MRS, CL%LE %LONG3, BL%LE %LONG4 */
+       ldr     r1, =0x00100032
+       str     r1, [r0, #0x010]                        @ DIRECTCMD_OFFSET
+       strne   r1, [r6, #0x010]                        @ DIRECTCMD_OFFSET
+
+       /* auto refresh on */
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0x0FFF10B0
+#else
+       ldr     r1, =0xFF002030 | (1 << 7)
+#endif
+       str     r1, [r0, #0x000]                        @ CONCONTROL_OFFSET
+       strne   r1, [r6, #0x000]                        @ CONCONTROL_OFFSET
+
+       /* PwrdnConfig */
+#ifdef NEW_MEMORY_TIMING
+       ldr     r1, =0xFFFF00FF
+#else
+       ldr     r1, =0x00100002
+#endif
+       str     r1, [r0, #0x028]                        @ PWRDNCONFIG_OFFSET
+       strne   r1, [r6, #0x028]                        @ PWRDNCONFIG_OFFSET
+
+#ifdef NEW_MEMORY_TIMING
+       /* DMC0: 1 chip, DMC1: 2 chips */
+       ldr     r1, =0x00202113
+       ldr     r2, =0x00212113
+#else
+       ldr     r1, =0xff212100
+#endif
+       str     r1, [r0, #0x004]                        @ MEMCONTROL_OFFSET
+       strne   r2, [r6, #0x004]                        @ MEMCONTROL_OFFSET
+
+       /* Skip when S5PC110 */
+       bne     1f
+
+       /* Check OneDRAM access area at s5pc100 */
+       ldreq   r3, =0x38f80222
+       ldreq   r1, =0x37ffff00
+       str     r3, [r1]
+       ldr     r2, [r1]
+       cmp     r2, r3
+       beq     swap_memory
+1:
+       mov     pc, lr
+
+       .ltorg
diff --git a/board/samsung/p1p2/modem_boot.c b/board/samsung/p1p2/modem_boot.c
new file mode 100644 (file)
index 0000000..3ee35c1
--- /dev/null
@@ -0,0 +1,397 @@
+/*
+ * need copyright
+ */
+
+#include <common.h>
+#include <command.h>
+#include <serial.h>
+#include <asm/arch/gpio.h>
+#include <asm/io.h>
+#include "psi_ram.h"
+
+#define OneDRAM_B_BANK_BASEADDR                0x35000000
+
+#define MODEM_OS_BASEADDR              OneDRAM_B_BANK_BASEADDR
+#define MODEM_EEP_STATIC_BASEADDR      (MODEM_OS_BASEADDR + 0x870000)
+#define MODEM_EEP_CAL_BAK_BASEADDR     (MODEM_OS_BASEADDR + 0x880000)
+#define MODEM_EEP_DYNAMIC_BASEADDR     (MODEM_OS_BASEADDR + 0x890000)
+#define MODEM_EEP_SECURITY_BASEADDR    (MODEM_OS_BASEADDR + 0x8A0000)
+
+#define OneDRAMREG_BASEADDR            (OneDRAM_B_BANK_BASEADDR + 0xFFF800)
+
+#define rOneDRAM_SEMAPHORE     (*(volatile int*)(OneDRAMREG_BASEADDR))
+#define rOneDRAM_MAILBOX_AB    (*(volatile int*)(OneDRAMREG_BASEADDR + 0x20))
+#define rOneDRAM_MAILBOX_BA    (*(volatile int*)(OneDRAMREG_BASEADDR + 0x40))
+
+/* primitive IPC on OneDRAM */
+#define IPC_CP_READY_FOR_LOADING       0x12341234
+#define IPC_CP_IMG_LOADED              0x45674567
+#define IPC_CP_READY                   0x23
+#define IPC_BOOT_DONE                  0x89EF89EF
+
+#define CP_BOOT_MODE_NORMAL            0x0a
+#define CP_BOOT_MODE_PTEST             0x0b
+
+#define CP_HAS_SEM                     0x0
+#define AP_HAS_SEM                     0x1
+
+#define RETRY                          3
+
+#define IND                            0x30
+#define VERS                           0xf0
+#define CRC_OK                         0x01
+#define CRC_ERR                                0xff
+
+extern struct serial_device s5pc1xx_serial3_device;
+static struct s5pc110_gpio *gpio = (struct s5pc110_gpio *)S5PC110_GPIO_BASE;
+
+int uart_serial_pollc(struct serial_device *uart, int retry)
+{
+       int i = 0;
+
+       for (i = 0; i < retry; i++) {
+               if (uart->tstc())
+                       return uart->getc();
+               udelay(1000);
+       }
+
+       return -1;
+}
+
+enum {
+       MACH_UNIVERSAL,
+       MACH_TICKERTAPE,
+       MACH_AQUILA,
+};
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static int get_machine_id(void)
+{
+       if (cpu_is_s5pc100())
+               return -1;
+
+       return gd->bd->bi_arch_number - 3100;
+}
+
+static int machine_is_aquila(void)
+{
+       return get_machine_id() == MACH_AQUILA;
+}
+
+static int machine_is_tickertape(void)
+{
+       return get_machine_id() == MACH_TICKERTAPE;
+}
+
+static int aquila_infineon_modem_on(void)
+{
+       unsigned int dat, exit = 0;
+       unsigned int nInfoSize;
+       unsigned char *pDataPSI;
+       int nCnt;
+       int nCoreVer, nSizePSI, nCRC;
+       int ack;
+       int i, tmp;
+
+       /* Infineon modem */
+       /* 1. Modem gpio init */
+       /* Phone_on */
+       gpio_direction_output(&gpio->gpio_j1, 0, 1);
+       gpio_set_pull(&gpio->gpio_j1, 0, GPIO_PULL_NONE);
+
+       /* CP_Reset */
+       gpio_direction_output(&gpio->gpio_h3, 7, 1);
+       gpio_set_pull(&gpio->gpio_h3, 7, GPIO_PULL_NONE);
+
+       /* nINT_ONEDRAN_AP */
+       gpio_direction_output(&gpio->gpio_h1, 3, 1);
+       gpio_set_pull(&gpio->gpio_h1, 3, GPIO_PULL_NONE);
+
+       /* 2. Uart3 init */
+       gpio_cfg_pin(&gpio->gpio_a1, 2, 0x2);
+       gpio_cfg_pin(&gpio->gpio_a1, 3, 0x2);
+       gpio_set_pull(&gpio->gpio_a1, 2, GPIO_PULL_NONE);
+       gpio_set_pull(&gpio->gpio_a1, 3, GPIO_PULL_NONE);
+
+       /* reset and enable FIFOs, set triggers to the maximum */
+       writel(0x0, 0xE2900C08);
+       writel(0x0, 0xE2900C0C);
+       /* 8N1 */
+       writel(0x3, 0xE2900C00);
+       /* No interrupts, no DMA, pure polling */
+       writel(0x245, 0xE2900C04);
+       s5pc1xx_serial3_device.setbrg();
+
+       /* 3. Modem reset */
+       while (1) {
+               /* PHONE_ON -> low */
+               gpio_set_value(&gpio->gpio_j1, 0, 0);
+
+               /* CP_RESET -> low */
+               gpio_set_value(&gpio->gpio_h3, 7, 0);
+
+               udelay(200*1000);       /* 200ms */
+
+               /* CP_RESET -> high */
+               gpio_set_value(&gpio->gpio_h3, 7, 1);
+
+               /* PHONE_ON -> high */
+               gpio_set_value(&gpio->gpio_j1, 0, 1);
+
+               udelay(27*1000);        /* > 26.6ms */
+
+               udelay(40*1000);        /* Power stabilization */
+
+               if (++exit > RETRY)
+                       break;
+
+               printf("********************************\n");
+               printf(" Reset and try to send PSI : #%d\n", exit);
+
+               /* Drain Rx Serial */
+               tmp = 0;
+               while (tmp != -1)
+                       tmp = uart_serial_pollc(&s5pc1xx_serial3_device, 5);
+
+               /* Sending "AT" in ASCII */
+               for (nCnt = 0; nCnt < 20; nCnt++) {
+                       s5pc1xx_serial3_device.puts("AT");
+                       nCoreVer =
+                               uart_serial_pollc(&s5pc1xx_serial3_device, 5);
+
+                       if (nCoreVer == VERS)
+                               break;
+
+                       /*
+                        * Send "AT" at 50ms internals till the bootcore
+                        * version is received
+                        */
+                       udelay(50*1000);        /* 50mec */
+               }
+
+               /* if fail to receive Modem core version restart all process */
+               if (nCnt == 20)
+                       continue;
+
+               nInfoSize = uart_serial_pollc(&s5pc1xx_serial3_device, 5);
+               printf("Got Bootcore version and related info!!!\n"
+                       " - nCoreVer = 0x%x \n - nInfoSize = 0x%x\n",
+                       nCoreVer, nInfoSize);
+
+               /* Drain Rx Serial */
+               tmp = 0;
+               while (tmp != -1)
+                       tmp = uart_serial_pollc(&s5pc1xx_serial3_device, 5);
+
+               /* INDICATION BYTE */
+               s5pc1xx_serial3_device.putc(IND);
+
+               /* 16 bit length in little endian format */
+               nSizePSI = sizeof(g_tblBin);
+               s5pc1xx_serial3_device.putc(nSizePSI & 0xff);
+               s5pc1xx_serial3_device.putc(nSizePSI >> 8);
+
+               printf("Sending PSI data!!!\n - Len = %d\n", nSizePSI);
+
+               /* Data bytes of PSI */
+               pDataPSI = g_tblBin;
+               nCRC = 0;
+               for (nCnt = 0; nCnt < nSizePSI ; nCnt++) {
+                       s5pc1xx_serial3_device.putc(*pDataPSI);
+                       nCRC ^= *pDataPSI++;
+               }
+
+               /* CRC of PSI */
+               s5pc1xx_serial3_device.putc(nCRC);
+
+               udelay(10*1000);        /* 10mec */
+
+               /* Getting ACK */
+               ack = uart_serial_pollc(&s5pc1xx_serial3_device, 5);
+
+               if (ack == CRC_OK) {
+                       printf("PSI sending was sucessful\n");
+               } else {
+                       printf("PSI sending was NOT sucessful\n"
+                               " - ack(0x%x)\n - nCRC(0x%x)\n", ack, nCRC);
+                       continue;
+               }
+
+               /* check Modem reaction */
+               while (gpio_get_value(&gpio->gpio_h1, 3))
+                       ;
+
+               if (rOneDRAM_MAILBOX_AB != IPC_CP_READY_FOR_LOADING) {
+                       printf("OneDRAM is NOT initialized for Modem\n");
+                       printf("Modem downloading is failed!!!\n");
+                       return 1;
+               }
+
+               printf("Modem is ready for loading\n");
+
+               /*
+                * Do not support full-booting sequence,
+                * Full support will be done by Kernel
+                */
+               return 0;
+
+               printf("OneDRAM is mailbox(expecting 0x21), "
+                       "rOneDRAM_MAILBOX_AB=%x\n",
+                       rOneDRAM_MAILBOX_AB);
+               while (rOneDRAM_SEMAPHORE == CP_HAS_SEM) {
+                       printf("OneDRAM semaphore is NOT available");
+                       udelay(100*1000);
+               }
+
+               /* load cp image */
+               printf("Now, load CP image and static EEP at B-bank of OneDRAM\n");
+               printf("By pausing and load .fls[0x51000000] and .eep[0x51870000]\n");
+               printf("images to memory through EJTAG\n");
+
+               for (i = 0; i < 60; i++) {
+                       udelay(100 * 1000);
+                       printf("*");
+               }
+               printf("\n");
+
+/*
+               break;
+               LoadCPImage();
+*/
+
+               printf("Thank you for loading\n");
+
+               rOneDRAM_SEMAPHORE = CP_HAS_SEM;
+               rOneDRAM_MAILBOX_BA = IPC_CP_IMG_LOADED;
+
+               /* check Modem reaction */
+               while (gpio_get_value(&gpio->gpio_h1, 3))
+                       ;
+
+               if (rOneDRAM_MAILBOX_AB != IPC_CP_READY) {
+                       printf("Modem is NOT ready to boot\n");
+                       printf("Modem booting is failed!!!\n");
+                       return 1;
+               }
+
+               printf("Modem is done copying CP images\n");
+               printf("OneDRAM is mailbox message(expecting 0x23), "
+                       "rOneDRAM_MAILBOX_AB=%x\n",
+                       rOneDRAM_MAILBOX_AB);
+               while (rOneDRAM_SEMAPHORE == CP_HAS_SEM) {
+                       printf("OneDRAM semaphore is NOT available");
+                       udelay(100*1000);
+               }
+
+               rOneDRAM_SEMAPHORE = CP_HAS_SEM;
+
+               rOneDRAM_MAILBOX_BA = IPC_BOOT_DONE;
+               printf("Modem is now running\n");
+
+               for (i = 0; i < 50; i++) {
+                       udelay(100 * 1000);
+                       if (rOneDRAM_SEMAPHORE == AP_HAS_SEM)
+                               printf("S");
+                       else
+                               printf("*");
+               }
+               printf("\n");
+
+               rOneDRAM_MAILBOX_BA = 0x05; /* FIXME */
+
+               for (i = 0; i < 50; i++) {
+                       udelay(100*1000);
+                       if (rOneDRAM_SEMAPHORE == AP_HAS_SEM)
+                               printf("S");
+                       else
+                               printf("*");
+               }
+               printf("\n");
+               printf("Waiting for 5 secs for modem to respond\n");
+
+               for (i = 0; i < 50000; i++) {
+                       dat = gpio_get_value(&gpio->gpio_h1, 3);
+                       if (dat == 0)
+                               break;
+                       udelay(100);
+               }
+
+               if (tmp == 1)
+                       printf("No response from Modem!!!\n");
+
+               break;
+       }
+
+       return 0;
+}
+
+static void mdelay(int msec)
+{
+       int i;
+       for (i = 0; i < msec; i++)
+               udelay(1000);
+}
+
+static void tickertape_modem_on(void)
+{
+       int gpio_phone_on, gpio_cp_rst;
+
+       printf("Tickertape phone on\n");
+
+       gpio_phone_on = 0;
+       gpio_cp_rst = 7;
+
+       gpio_direction_output(&gpio->gpio_j1, gpio_phone_on, 0);
+       gpio_direction_output(&gpio->gpio_h3, gpio_cp_rst, 0);
+
+       gpio_set_value(&gpio->gpio_h3, gpio_cp_rst, 0);
+       gpio_set_value(&gpio->gpio_j1, gpio_phone_on, 1);
+       mdelay(100);
+       gpio_set_value(&gpio->gpio_h3, gpio_cp_rst, 1);
+       mdelay(900);
+       gpio_set_value(&gpio->gpio_j1, gpio_phone_on, 0);
+}
+
+int do_modem(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+       char *cmd;
+
+       cmd = argv[1];
+
+       switch (argc) {
+       case 0:
+       case 1:
+               goto usage;
+
+       case 2:
+               if (strncmp(cmd, "on", 2) == 0) {
+                       if (machine_is_aquila())
+                               aquila_infineon_modem_on();
+                       if (machine_is_tickertape())
+                               tickertape_modem_on();
+                       return 0;
+               }
+               break;
+       }
+
+       return 0;
+usage:
+       cmd_usage(cmdtp);
+       return 1;
+}
+
+void LoadCPImage(void)
+{
+#if 0
+       /* load CP image */
+       LoadPartition(PARTITION_ID_MODEM_OS , (UINT8 *)MODEM_OS_BASEADDR, 0);
+       /* load CP EEP data */
+       LoadValidEEP();
+#endif
+}
+
+U_BOOT_CMD(modem,      CONFIG_SYS_MAXARGS,     1,      do_modem,
+       "initialize the Modem",
+       "on"
+);
diff --git a/board/samsung/p1p2/onenand.c b/board/samsung/p1p2/onenand.c
new file mode 100644 (file)
index 0000000..057bc6a
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2008-2009 Samsung Electronics
+ * Kyungmin Park <kyungmin.park@samsung.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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
+ */
+
+#include <common.h>
+#include <linux/mtd/compat.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/onenand.h>
+#include <linux/mtd/samsung_onenand.h>
+
+#include <onenand_uboot.h>
+
+#include <asm/io.h>
+#include <asm/arch/clock.h>
+
+void onenand_board_init(struct mtd_info *mtd)
+{
+       struct onenand_chip *this = mtd->priv;
+       int value;
+
+       if (cpu_is_s5pc110()) {
+               this->base = (void *) 0xB0000000;
+               this->options |= ONENAND_RUNTIME_BADBLOCK_CHECK;
+       } else {
+               struct s5pc100_clock *clk =
+                       (struct s5pc100_clock *)S5PC1XX_CLOCK_BASE;
+               struct samsung_onenand *onenand;
+
+               this->base = (void *) S5PC100_ONENAND_BASE;
+               onenand = (struct samsung_onenand *)this->base;
+
+               /* D0 Domain system 1 clock gating */
+               value = readl(&clk->gate_d00);
+               value &= ~(1 << 2);             /* CFCON */
+               value |= (1 << 2);
+               writel(value, &clk->gate_d00);
+
+               /* D0 Domain memory clock gating */
+               value = readl(&clk->gate_d01);
+               value &= ~(1 << 2);             /* CLK_ONENANDC */
+               value |= (1 << 2);
+               writel(value, &clk->gate_d01);
+
+               /* System Special clock gating */
+               value = readl(&clk->gate_sclk0);
+               value &= ~(1 << 2);             /* OneNAND */
+               value |= (1 << 2);
+               writel(value, &clk->gate_sclk0);
+
+               value = readl(&clk->src0);
+               value &= ~(1 << 24);            /* MUX_1nand: 0 from HCLKD0 */
+               value &= ~(1 << 20);            /* MUX_HREF: 0 from FIN_27M */
+               writel(value, &clk->src0);
+
+               value = readl(&clk->div1);
+               value &= ~(3 << 16);
+               value |= (1 << 16);
+               writel(value, &clk->div1);
+
+               writel(ONENAND_MEM_RESET_COLD, &onenand->mem_reset);
+
+               while (!(readl(&onenand->int_err_stat) & RST_CMP))
+                       continue;
+
+               writel(RST_CMP, &onenand->int_err_ack);
+
+               /*
+                * Access_Clock [2:0]
+                * 166 MHz, 134 Mhz : 3
+                * 100 Mhz, 60 Mhz  : 2
+                */
+               writel(0x3, &onenand->acc_clock);
+
+               writel(INT_ERR_ALL, &onenand->int_err_mask);
+               writel(1 << 0, &onenand->int_pin_en);   /* Enable */
+
+               value = readl(&onenand->int_err_mask);
+               value &= ~RDY_ACT;
+               writel(value, &onenand->int_err_mask);
+
+               s3c_onenand_init(mtd);
+       }
+}
diff --git a/board/samsung/p1p2/p1p2.c b/board/samsung/p1p2/p1p2.c
new file mode 100644 (file)
index 0000000..e498b03
--- /dev/null
@@ -0,0 +1,2408 @@
+/*
+ * Copyright (C) 2009 Samsung Electronics
+ * Kyungmin Park <kyungmin.park@samsung.com>
+ * Minkyu Kang <mk7.kang@samsung.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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
+ */
+
+#include <common.h>
+#include <i2c.h>
+#include <asm/io.h>
+#include <asm/arch/clk.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/keypad.h>
+#include <asm/arch/mmc.h>
+#include <asm/arch/power.h>
+#include <asm/arch/mem.h>
+#include <asm/errno.h>
+#include <fbutils.h>
+#include <lcd.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define C100_MACH_START                        3000
+#define C110_MACH_START                        3100
+
+static unsigned int board_rev;
+static unsigned int battery_soc;
+static struct s5pc110_gpio *s5pc110_gpio;
+
+enum {
+       I2C_2,
+       I2C_GPIO3,
+       I2C_PMIC,
+       I2C_GPIO5,
+       I2C_GPIO6,
+       I2C_GPIO7,
+};
+
+/*
+ * i2c 2
+ * SDA: GPD1[4]
+ * SCL: GPD1[5]
+ */
+static struct i2c_gpio_bus_data i2c_2 = {
+       .sda_pin        = 4,
+       .scl_pin        = 5,
+};
+
+/*
+ * i2c gpio3
+ * SDA: GPJ3[6]
+ * SCL: GPJ3[7]
+ */
+static struct i2c_gpio_bus_data i2c_gpio3 = {
+       .sda_pin        = 6,
+       .scl_pin        = 7,
+};
+
+/*
+ * i2c pmic
+ * SDA: GPJ4[0]
+ * SCL: GPJ4[3]
+ */
+static struct i2c_gpio_bus_data i2c_pmic = {
+       .sda_pin        = 0,
+       .scl_pin        = 3,
+};
+
+/*
+ * i2c gpio5
+ * SDA: MP05[3]
+ * SCL: MP05[2]
+ */
+static struct i2c_gpio_bus_data i2c_gpio5 = {
+       .sda_pin        = 3,
+       .scl_pin        = 2,
+};
+
+/*
+ * i2c gpio6
+ * SDA: GPJ3[0]
+ * SCL: GPJ3[1]
+ */
+static struct i2c_gpio_bus_data i2c_gpio6 = {
+       .sda_pin        = 0,
+       .scl_pin        = 1,
+};
+
+/*
+ * i2c gpio6 - cypress
+ * SDA: GPJ3[4]
+ * SCL: GPJ3[5]
+ */
+static struct i2c_gpio_bus_data i2c_cypress_gpio6 = {
+       .sda_pin        = 4,
+       .scl_pin        = 5,
+};
+
+/*
+ * i2c gpio7 - cypress
+ * SDA: MP05[6]
+ * SCL: MP05[4]
+ */
+static struct i2c_gpio_bus_data i2c_cypress_gpio7 = {
+       .sda_pin        = 6,
+       .scl_pin        = 4,
+};
+
+static struct i2c_gpio_bus i2c_gpio[] = {
+       {
+               .bus    = &i2c_2,
+       }, {
+               .bus    = &i2c_gpio3,
+       }, {
+               .bus    = &i2c_pmic,
+       }, {
+               .bus    = &i2c_gpio5,
+       }, {
+               .bus    = &i2c_gpio6,
+       }, {
+               .bus    = NULL,
+       }
+};
+
+u32 get_board_rev(void)
+{
+       return board_rev;
+}
+
+static int hwrevision(int rev)
+{
+       return (board_rev & 0xf) == rev;
+}
+
+enum {
+       MACH_UNIVERSAL,
+       MACH_TICKERTAPE,
+       MACH_AQUILA,
+       MACH_P1P2,
+       MACH_GEMINUS,
+       MACH_CYPRESS,
+};
+#ifdef CONFIG_LCD
+typedef enum {
+       LCD_NONE,
+       LCD_AMOLED,
+       LCD_TFT,
+} lcd_type_t;
+
+static lcd_type_t lcd_type;
+#endif
+
+#define SPLIT_SCREEN_FEATURE   0x100
+
+/* board is MACH_AQUILA and board is like below. */
+#define J1_B2_BOARD            0x200
+#define LIMO_UNIVERSAL_BOARD   0x400
+#define LIMO_REAL_BOARD                0x800
+#define MEDIA_BOARD            0x1000
+#define BAMBOO_BOARD           0x2000
+/* board is MACH_P1P2 and board is like below. */
+#define P1_REAL_BOARD          0x200
+#define P2_REAL_BOARD          0x400
+
+#define BOARD_MASK             0xF00
+
+static int c110_machine_id(void)
+{
+       return gd->bd->bi_arch_number - C110_MACH_START;
+}
+
+static int machine_is_aquila(void)
+{
+       return c110_machine_id() == MACH_AQUILA;
+}
+
+static int machine_is_p1p2(void)
+{
+       return c110_machine_id() == MACH_P1P2;
+}
+
+static int machine_is_tickertape(void)
+{
+       return c110_machine_id() == MACH_TICKERTAPE;
+}
+
+static int machine_is_geminus(void)
+{
+       return c110_machine_id() == MACH_GEMINUS;
+}
+
+static int machine_is_cypress(void)
+{
+       return c110_machine_id() == MACH_CYPRESS;
+}
+
+static int board_is_limo_universal(void)
+{
+       return machine_is_aquila() && (board_rev & LIMO_UNIVERSAL_BOARD);
+}
+
+static int board_is_limo_real(void)
+{
+       return machine_is_aquila() && (board_rev & LIMO_REAL_BOARD);
+}
+
+static int board_is_media(void)
+{
+       return machine_is_aquila() && (board_rev & MEDIA_BOARD);
+}
+
+static int board_is_bamboo(void)
+{
+       return machine_is_aquila() && (board_rev & BAMBOO_BOARD);
+}
+
+static int board_is_j1b2(void)
+{
+       return machine_is_aquila() && (board_rev & J1_B2_BOARD);
+}
+
+static int board_is_p2_real(void)
+{
+       return machine_is_p1p2() && (board_rev & P2_REAL_BOARD);
+}
+#ifdef CONFIG_LCD
+static int lcd_is_amoled(void)
+{
+       return lcd_type == LCD_AMOLED;
+}
+
+static int lcd_is_tft(void)
+{
+       return lcd_type == LCD_TFT;
+}
+#endif
+static void enable_battery(void);
+
+void i2c_init_board(void)
+{
+       struct s5pc110_gpio *gpio = (struct s5pc110_gpio *)S5PC110_GPIO_BASE;
+       int num_bus;
+
+       if (cpu_is_s5pc100())
+               return;
+
+       num_bus = ARRAY_SIZE(i2c_gpio);
+
+       if (machine_is_cypress()) {
+               i2c_gpio[I2C_GPIO6].bus = &i2c_cypress_gpio6;
+               i2c_gpio[I2C_GPIO7].bus = &i2c_cypress_gpio7;
+               i2c_gpio[I2C_GPIO7].bus->gpio_base =
+                       (unsigned int)&gpio->gpio_mp0_5;
+       } else {
+               num_bus--;
+       }
+
+       i2c_gpio[I2C_2].bus->gpio_base = (unsigned int)&gpio->gpio_d1;
+       i2c_gpio[I2C_GPIO3].bus->gpio_base = (unsigned int)&gpio->gpio_j3;
+       i2c_gpio[I2C_PMIC].bus->gpio_base = (unsigned int)&gpio->gpio_j4;
+       i2c_gpio[I2C_GPIO5].bus->gpio_base = (unsigned int)&gpio->gpio_mp0_5;
+       i2c_gpio[I2C_GPIO6].bus->gpio_base = (unsigned int)&gpio->gpio_j3;
+
+       i2c_gpio_init(i2c_gpio, num_bus, I2C_PMIC);
+
+       /* Reset on max17040 early */
+       if (battery_soc == 0)
+               enable_battery();
+}
+
+#ifdef CONFIG_MISC_INIT_R
+#define DEV_INFO_LEN           512
+static char device_info[DEV_INFO_LEN];
+static int display_info;
+
+static void dprintf(const char *fmt, ...)
+{
+       va_list args;
+       uint i;
+       char buf[128];
+
+       va_start(args, fmt);
+       i = vsprintf(buf, fmt, args);
+       va_end(args);
+
+       buf[127] = 0;
+
+       if ((strlen(device_info) + strlen(buf)) > (DEV_INFO_LEN - 1)) {
+               puts("Flushing device info...\n");
+               puts(device_info);
+               device_info[0] = 0;
+       }
+       strcat(device_info, buf);
+       puts(buf);
+}
+
+#ifdef CONFIG_S5PC1XXFB
+static void display_device_info(void)
+{
+       if (!display_info)
+               return;
+
+       init_font();
+       set_font_xy(0, 450);
+       set_font_color(FONT_WHITE);
+       fb_printf(device_info);
+       exit_font();
+
+       memset(device_info, 0x0, DEV_INFO_LEN);
+
+       udelay(5 * 1000 * 1000);
+}
+#endif
+
+static const char *board_name[] = {
+       "Universal",
+       "TickerTape",
+       "Aquila",
+       "P1P2",
+       "Geminus",
+       "Cypress",
+};
+
+enum {
+       MEM_4G1G1G,
+       MEM_4G2G1G,
+       MEM_4G3G1G,
+       MEM_4G4G1G,
+};
+
+static char feature_buffer[32];
+
+static char *display_features(int board, int board_rev)
+{
+       int count = 0;
+       char *buf = feature_buffer;
+
+       if (board == MACH_AQUILA) {
+               if (board_rev & SPLIT_SCREEN_FEATURE)
+                       count += sprintf(buf + count, " - SplitScreen");
+               if (board_rev & J1_B2_BOARD)
+                       count += sprintf(buf + count, " - J1 B2 board");
+               /* Limo Real or Universal */
+               if (board_rev & LIMO_REAL_BOARD)
+                       count += sprintf(buf + count, " - Limo Real");
+               else if (board_rev & LIMO_UNIVERSAL_BOARD)
+                       count += sprintf(buf + count, " - Limo Universal");
+               if (board_rev & MEDIA_BOARD)
+                       count += sprintf(buf + count, " - Media");
+               if (board_rev & BAMBOO_BOARD)
+                       count += sprintf(buf + count, " - Bamboo");
+       } else if (board == MACH_P1P2) {
+               /* P1P2 */
+               if (board_rev & P1_REAL_BOARD)
+                       count += sprintf(buf + count, " - P1 Real");
+               else if (board_rev & P2_REAL_BOARD)
+                       count += sprintf(buf + count, " - P2 Real");
+               else
+                       count += sprintf(buf + count, " - Universal");
+       }
+
+       return buf;
+}
+
+static void check_board_revision(int board, int rev)
+{
+       switch (board) {
+       case MACH_AQUILA:
+               /* Limo Real or Universal */
+               if (rev & LIMO_UNIVERSAL_BOARD)
+                       board_rev &= ~J1_B2_BOARD;
+               if (rev & LIMO_REAL_BOARD) {
+                       board_rev &= ~(J1_B2_BOARD |
+                                       LIMO_UNIVERSAL_BOARD);
+               }
+               if (rev & MEDIA_BOARD)
+                       board_rev &= ~(J1_B2_BOARD |
+                                       LIMO_UNIVERSAL_BOARD);
+               if (rev & BAMBOO_BOARD)
+                       board_rev &= ~(J1_B2_BOARD |
+                                       LIMO_UNIVERSAL_BOARD |
+                                       LIMO_REAL_BOARD |
+                                       MEDIA_BOARD);
+               break;
+       case MACH_P1P2:
+               break;
+       case MACH_CYPRESS:
+               /* There's no HWREV_MODE3 */
+               board_rev &= ~(1 << 3);
+               /* Fall through */
+       case MACH_TICKERTAPE:
+       case MACH_GEMINUS:
+               board_rev &= ~BOARD_MASK;
+               break;
+       default:
+               break;
+       }
+}
+
+static unsigned int get_hw_revision(struct s5pc1xx_gpio_bank *bank)
+{
+       unsigned int rev;
+
+       gpio_direction_input(bank, 1);
+       gpio_direction_input(bank, 2);
+       gpio_direction_input(bank, 3);
+       gpio_direction_input(bank, 4);
+
+       gpio_set_pull(bank, 1, GPIO_PULL_NONE);         /* HWREV_MODE3 */
+       gpio_set_pull(bank, 2, GPIO_PULL_NONE);         /* HWREV_MODE0 */
+       gpio_set_pull(bank, 3, GPIO_PULL_NONE);         /* HWREV_MODE1 */
+       gpio_set_pull(bank, 4, GPIO_PULL_NONE);         /* HWREV_MODE2 */
+
+       rev = gpio_get_value(bank, 2);
+       rev |= (gpio_get_value(bank, 3) << 1);
+       rev |= (gpio_get_value(bank, 4) << 2);
+       rev |= (gpio_get_value(bank, 1) << 3);
+
+       return rev;
+}
+
+static void check_hw_revision(void)
+{
+       unsigned int board = MACH_UNIVERSAL;    /* Default is Universal */
+               
+       if (cpu_is_s5pc100()) {
+               struct s5pc100_gpio *gpio =
+                       (struct s5pc100_gpio *)S5PC100_GPIO_BASE;
+
+               board_rev = get_hw_revision(&gpio->gpio_j0);
+
+               /* C100 TickerTape */
+               if (board_rev == 3)
+                       board = MACH_TICKERTAPE;
+       } else {
+               struct s5pc110_gpio *gpio =
+                       (struct s5pc110_gpio *)S5PC110_GPIO_BASE;
+
+               board_rev = get_hw_revision(&gpio->gpio_j0);
+
+               /*
+                * Note Check 'Aquila' board first
+                *
+                * TT: TickerTape
+                * SS: SplitScreen
+                * LRA: Limo Real Aquila
+                * LUA: Limo Universal Aquila
+                * OA: Old Aquila
+                * P1P2: Smart Book
+                * CYP: Cypress
+                * BB: Bamboo
+                *
+                * ADDR = 0xE0200000 + OFF
+                *
+                *       OFF    Universal BB   LRA  LUA  OA   TT   SS       P1P2 CYP
+                *   J1: 0x0264 0x10      0x10 0x00 0x00 0x00 0x00 0x00     0x00
+                *   J2: 0x0284           0x01 0x10 0x00 
+                *   H1: 0x0C24    W           0x28 0xA8 0x1C               0x18 0x0F
+                *   H3: 0x0C64                0x03 0x07 0x0F               0xff
+                *   D1: 0x00C4 0x0F           0x3F 0x3F 0x0F 0xXC 0x3F
+                *    I: 0x0224                          0x02 0x00 0x08
+                * MP03: 0x0324                          0x9x      0xbx 0x9x
+                * MP05: 0x0364                          0x80      0x88
+                */
+
+               /* C110 Aquila */
+               if (gpio_get_value(&gpio->gpio_j1, 4) == 0) {
+                       board = MACH_AQUILA;
+                       board_rev |= J1_B2_BOARD;
+
+                       gpio_set_pull(&gpio->gpio_j2, 6, GPIO_PULL_NONE);
+                       gpio_direction_input(&gpio->gpio_j2, 6);
+
+                       /* Check board */
+                       if (gpio_get_value(&gpio->gpio_h1, 2) == 0)
+                               board_rev |= LIMO_UNIVERSAL_BOARD;
+
+                       if (gpio_get_value(&gpio->gpio_h3, 2) == 0)
+                               board_rev |= LIMO_REAL_BOARD;
+
+                       if (gpio_get_value(&gpio->gpio_j2, 6) == 1)
+                               board_rev |= MEDIA_BOARD;
+
+                       /* set gpio to default value. */
+                       gpio_set_pull(&gpio->gpio_j2, 6, GPIO_PULL_DOWN);
+                       gpio_direction_output(&gpio->gpio_j2, 6, 0);
+               }
+               /* Workaround: C110 Aquila Rev0.6 */
+               if (board_rev == 6) {
+                       board = MACH_AQUILA;
+                       board_rev |= LIMO_REAL_BOARD;
+               }
+               /* C110 Aquila Bamboo */
+               if (gpio_get_value(&gpio->gpio_j2, 0) == 1) {
+                       board = MACH_AQUILA;
+                       board_rev |= BAMBOO_BOARD;
+               }
+
+               /* C110 TickerTape */
+               if (gpio_get_value(&gpio->gpio_d1, 0) == 0 &&
+                               gpio_get_value(&gpio->gpio_d1, 1) == 0)
+                       board = MACH_TICKERTAPE;
+
+               /* C110 Cypress: Do first this than P1P2 */
+               gpio_set_pull(&gpio->gpio_j2, 2, GPIO_PULL_NONE);
+               gpio_direction_input(&gpio->gpio_j2, 2);
+               if (gpio_get_value(&gpio->gpio_j2, 2) == 1)
+                       board = MACH_CYPRESS;
+               gpio_set_pull(&gpio->gpio_j2, 2, GPIO_PULL_DOWN);
+
+               /* C110 P1P2 */
+               if (gpio_get_value(&gpio->gpio_h3, 7) == 1) {
+                       board = MACH_P1P2;
+                       board_rev &= ~BOARD_MASK;
+               }
+
+               /* set gpio configuration for P1P2. */
+               gpio_direction_input(&gpio->gpio_j0, 6);
+               gpio_direction_input(&gpio->gpio_j0, 7);
+
+               /*
+                * do not change order below
+                * because it needs delay to get gpio value.
+                */
+               /* HWREV_MODE4 */
+               gpio_set_pull(&gpio->gpio_j0, 7, GPIO_PULL_NONE);
+               /* HWREV_MODE5 */
+               gpio_set_pull(&gpio->gpio_j0, 6, GPIO_PULL_NONE);
+
+               if (gpio_get_value(&gpio->gpio_j0, 7) == 1) {
+                       board = MACH_P1P2;
+                       board_rev &= ~BOARD_MASK;
+                       if (gpio_get_value(&gpio->gpio_j0, 6) == 1)     {
+                               board_rev |= P1_REAL_BOARD;
+               #ifdef CONFIG_LCD
+                               lcd_type = LCD_TFT;
+               #endif
+                       }
+                       if (gpio_get_value(&gpio->gpio_j0, 6) == 0)
+                               board_rev |= P2_REAL_BOARD;
+               }
+               #ifdef CONFIG_LCD
+               else    {
+                       if (gpio_get_value(&gpio->gpio_j0, 6) == 1)     {
+                               lcd_type = LCD_AMOLED;
+                       }
+               }
+               #endif
+
+               /* set gpio to default value. */
+               /* HWREV_MODE4 */
+               gpio_set_pull(&gpio->gpio_j0, 6, GPIO_PULL_DOWN);
+               /* HWREV_MODE5 */
+               gpio_set_pull(&gpio->gpio_j0, 7, GPIO_PULL_DOWN);
+
+               if(board != MACH_P1P2)
+               {
+                       /* C110 Geminus for rev0.0 */
+                       gpio_set_pull(&gpio->gpio_j1, 2, GPIO_PULL_NONE);
+                       gpio_direction_input(&gpio->gpio_j1, 2);
+                       if (gpio_get_value(&gpio->gpio_j1, 2) == 1) {
+                               board = MACH_GEMINUS;
+                               if ((board_rev & ~BOARD_MASK) == 3)
+                                       board_rev &= ~0xff;
+                       }
+                       gpio_set_pull(&gpio->gpio_j1, 2, GPIO_PULL_DOWN);
+                       gpio_direction_output(&gpio->gpio_j1, 2, 0);
+
+                       /* C110 Geminus for rev0.1 ~ */
+                       gpio_set_pull(&gpio->gpio_j0, 6, GPIO_PULL_NONE);
+                       gpio_direction_input(&gpio->gpio_j0, 6);
+                       if (gpio_get_value(&gpio->gpio_j0, 6) == 1)
+                               board = MACH_GEMINUS;
+                       gpio_set_pull(&gpio->gpio_j0, 6, GPIO_PULL_DOWN);
+               #ifdef CONFIG_LCD
+                       lcd_type = LCD_NONE;    /* TODO: if the board is not p1p2, this code should be modified */
+               #endif
+               }
+       }
+
+       /* Set machine id */
+       if (cpu_is_s5pc110())
+               gd->bd->bi_arch_number = C110_MACH_START + board;
+       else
+               gd->bd->bi_arch_number = C100_MACH_START + board;
+
+       /* Architecture Common settings */
+       if (cpu_is_s5pc110()) {
+               setenv("mtdparts", MTDPARTS_DEFAULT_4KB);
+       } else {
+               setenv("bootk", "onenand read 0x30007FC0 0x60000 0x300000; "
+                               "bootm 0x30007FC0");
+               setenv("updatek", "onenand erase 0x60000 0x300000; "
+                                 "onenand write 0x31008000 0x60000 0x300000");
+       }
+}
+
+static void show_hw_revision(void)
+{
+       int board;
+
+       /*
+        * Workaround for Rev 0.3 + CP Ver ES 3.1
+        * it's Rev 0.4
+        */
+       if (board_is_limo_real()) {
+               if (hwrevision(0)) {
+                       /* default is Rev 0.4 */
+                       board_rev &= ~0xf;
+                       board_rev |= 0x4;
+               }
+       }
+
+       if (cpu_is_s5pc110())
+               board = gd->bd->bi_arch_number - C110_MACH_START;
+       else
+               board = gd->bd->bi_arch_number - C100_MACH_START;
+
+       check_board_revision(board, board_rev);
+
+       /* Set CPU Revision */
+       if (board_is_limo_real()) {
+               if ((board_rev & 0xf) < 8)
+                       s5pc1xx_set_cpu_rev(0);
+       } else {
+               s5pc1xx_set_cpu_rev(0);
+       }
+
+       dprintf("HW Revision:\t%x (%s%s)\n", board_rev, board_name[board],
+               display_features(board, board_rev));
+}
+
+static void check_auto_burn(void)
+{
+       unsigned long magic_base = CONFIG_SYS_SDRAM_BASE + 0x02000000;
+       unsigned int count = 0;
+       char buf[64];
+
+       if (readl(magic_base) == 0x426f6f74) {  /* ASICC: Boot */
+               printf("Auto burning bootloader\n");
+               count += sprintf(buf + count, "run updateb; ");
+       }
+       if (readl(magic_base + 0x04) == 0x4b65726e) {   /* ASICC: Kern */
+               printf("Auto burning kernel\n");
+               count += sprintf(buf + count, "run updatek; ");
+       }
+
+       if (count) {
+               count += sprintf(buf + count, "reset");
+               setenv("bootcmd", buf);
+       }
+
+       /* Clear the magic value */
+       writel(0xa5a55a5a, magic_base);
+       writel(0xa5a55a5a, magic_base + 0x4);
+}
+
+static void pmic_pin_init(void)
+{
+       unsigned int reg, value;
+
+       if (cpu_is_s5pc100())
+               return;
+
+       /* AP_PS_HOLD: XEINT_0: GPH0[0]
+        * Note: Don't use GPIO PS_HOLD it doesn't work
+        */
+       reg = S5PC110_PS_HOLD_CONTROL;
+       value = readl(reg);
+       value |= S5PC110_PS_HOLD_DIR_OUTPUT |
+               S5PC110_PS_HOLD_DATA_HIGH |
+               S5PC110_PS_HOLD_OUT_EN;
+       writel(value, reg);
+
+       /* nPOWER: XEINT_22: GPH2[6] interrupt mode */
+       gpio_cfg_pin(&s5pc110_gpio->gpio_h2, 6, GPIO_IRQ);
+       gpio_set_pull(&s5pc110_gpio->gpio_h2, 6, GPIO_PULL_UP);
+}
+
+static void enable_ldos(void)
+{
+       if (cpu_is_s5pc100())
+               return;
+
+       if (machine_is_p1p2())
+               return;
+
+       /* TOUCH_EN: XMMC3DATA_3: GPG3[6] output high */
+       gpio_direction_output(&s5pc110_gpio->gpio_g3, 6, 1);
+}
+
+static void enable_t_flash(void)
+{
+       if (!(board_is_limo_universal() || board_is_limo_real()))
+               return;
+
+       /* T_FLASH_EN : XM0ADDR_13: MP0_5[4] output high */
+       gpio_direction_output(&s5pc110_gpio->gpio_mp0_5, 4, 1);
+}
+
+static void setup_limo_real_gpios(void)
+{
+       if (!board_is_limo_real())
+               return;
+
+       /*
+        * Note: Please write GPIO alphabet order
+        */
+       /* CODEC_LDO_EN: XVVSYNC_LDI: GPF3[4] output high */
+       gpio_direction_output(&s5pc110_gpio->gpio_f3, 4, 1);
+
+       if (hwrevision(0))
+               /* RESET_REQ_N: XM0BEN_1: MP0_2[1] output high */
+               gpio_direction_output(&s5pc110_gpio->gpio_mp0_2, 1, 1);
+       else
+               /* RESET_REQ_N: XM0CSn_2: MP0_1[2] output high */
+               gpio_direction_output(&s5pc110_gpio->gpio_mp0_1, 2, 1);
+
+       /* T_FLASH_DETECT: EINT28: GPH3[4] interrupt mode */
+       gpio_cfg_pin(&s5pc110_gpio->gpio_h3, 4, GPIO_IRQ);
+       gpio_set_pull(&s5pc110_gpio->gpio_h3, 4, GPIO_PULL_UP);
+}
+
+static void setup_media_gpios(void)
+{
+       if (!board_is_media())
+               return;
+
+       /*
+        * Note: Please write GPIO alphabet order
+        */
+       /* RESET_REQ_N: XM0CSn_2: MP0_1[2] output high */
+       gpio_direction_output(&s5pc110_gpio->gpio_mp0_1, 2, 1);
+
+       /* T_FLASH_DETECT: EINT28: GPH3[4] interrupt mode */
+       gpio_cfg_pin(&s5pc110_gpio->gpio_h3, 4, GPIO_IRQ);
+       gpio_set_pull(&s5pc110_gpio->gpio_h3, 4, GPIO_PULL_UP);
+}
+
+static void setup_p1p2_gpios(void)
+{
+       if (!machine_is_p1p2())
+               return;
+
+       /*
+        * Note: Please write GPIO alphabet order
+        */
+       /* RESET_REQ_N: XM0FRnB[1]: MP0_3[5] output high */
+       gpio_direction_output(&s5pc110_gpio->gpio_mp0_3, 5, 1);
+       /* CODEC_LDO_EN: XM0FRnB[2]: MP0_3[6] output high */
+       gpio_direction_output(&s5pc110_gpio->gpio_mp0_3, 6, 1);
+}
+
+#define KBR3           (1 << 3)
+#define KBR2           (1 << 2)
+#define KBR1           (1 << 1)
+#define KBR0           (1 << 0)
+
+static void check_p2_keypad(void)
+{
+       unsigned int auto_download = 0;
+       unsigned char addr = 0x34, val[2];      /* adp5587 key controller */
+       int i, ret;
+       i2c_set_bus_num(I2C_2);
+
+       if (i2c_probe(addr)) {
+               printf("Can't found adp5587 key controller\n");
+               return;
+       }
+       /* Row 8, Column 10 */
+       val[0] = 0xf;
+       ret = i2c_write(addr, 0x1D, 1, val, 1);         /* Set KP_GPIO1 */
+       val[0] = 0xf;
+       ret |= i2c_write(addr, 0x1E, 1, val, 1);        /* Set KP_GPIO2 */
+       val[0] = 0x3;
+       ret |= i2c_write(addr, 0x1F, 1, val, 1);        /* Set KP_GPIO3 */
+       val[0] = 0x3f;          /* CMP2_INT | CMP1_INT | OVR_FLOW_INT |
+                                  K_LCK_INT | GPI_INT | KE_INT */
+       ret |= i2c_write(addr, 0x02, 1, val, 1);        /* Status is W1C */
+       val[0] = 0x19;          /* INT_CFG | OVR_FLOW_IEN | KE_IEN */
+       ret |= i2c_write(addr, 0x01, 1, val, 1);
+       for (i = 0; i < 10; i++) {
+               udelay(1000);           /* FIXME */
+               i2c_read(addr, 0x04 + i, 1, val, 1);
+               if (val[0] == 0x94)
+                       auto_download = 1;
+       }
+
+       if (auto_download == 1)
+               setenv("bootcmd", "usbdown");
+}
+
+static void check_keypad(void)
+{
+       unsigned int reg, value;
+       unsigned int col_mask, row_mask;
+       unsigned int auto_download = 0;
+       unsigned int col_value[4], i;
+
+       if (cpu_is_s5pc100()) {
+               struct s5pc100_gpio *gpio =
+                       (struct s5pc100_gpio *)S5PC100_GPIO_BASE;
+
+               /* Set GPH2[2:0] to KP_COL[2:0] */
+               gpio_cfg_pin(&gpio->gpio_h2, 0, 0x3);
+               gpio_cfg_pin(&gpio->gpio_h2, 1, 0x3);
+               gpio_cfg_pin(&gpio->gpio_h2, 2, 0x3);
+
+               /* Set GPH3[2:0] to KP_ROW[2:0] */
+               gpio_cfg_pin(&gpio->gpio_h3, 0, 0x3);
+               gpio_cfg_pin(&gpio->gpio_h3, 1, 0x3);
+               gpio_cfg_pin(&gpio->gpio_h3, 2, 0x3);
+
+               reg = S5PC100_KEYPAD_BASE;
+       } else {
+               if (board_is_limo_real() || board_is_limo_universal()) {
+                       row_mask = 0x00FF;
+                       col_mask = 0x0FFF;
+               } else {
+                       row_mask = 0xFFFF;
+                       col_mask = 0xFFFF;
+               }
+
+               for (i = 0; i < 4; i++) {
+                       /* Set GPH3[3:0] to KP_ROW[3:0] */
+                       if (row_mask & (0xF << (i << 2))) {
+                               gpio_cfg_pin(&s5pc110_gpio->gpio_h3, i, 0x3);
+                               if (!machine_is_p1p2())
+                                       gpio_set_pull(&s5pc110_gpio->gpio_h3,
+                                                       i, GPIO_PULL_UP);
+                       }
+
+                       /* Set GPH2[3:0] to KP_COL[3:0] */
+                       if (col_mask & (0xF << (i << 2)))
+                               gpio_cfg_pin(&s5pc110_gpio->gpio_h2, i, 0x3);
+                       if (machine_is_p1p2())
+                               gpio_set_pull(&s5pc110_gpio->gpio_h2, i, GPIO_PULL_UP);
+               }
+
+               reg = S5PC110_KEYPAD_BASE;
+       }
+       /* init col */
+       value = 0x00;
+       writel(value, reg + S5PC1XX_KEYIFCOL_OFFSET);
+       value = readl(reg + S5PC1XX_KEYIFROW_OFFSET);
+       /* VOLUMEDOWN and CAM(Half shot) Button */
+       if ((value & KBR1) == 0) {
+               i = 0;
+               while (i < 4) {
+                       value = readl(reg + S5PC1XX_KEYIFCOL_OFFSET);
+                       value |= 0xff;
+                       value &= ~(1 << i);
+                       writel(value, reg + S5PC1XX_KEYIFCOL_OFFSET);
+                       udelay(10*1000);
+                       col_value[i++] = readl(reg + S5PC1XX_KEYIFROW_OFFSET);
+               }
+               writel(0x00, reg + S5PC1XX_KEYIFCOL_OFFSET);
+
+               /* expected value is row_value[0] = 0x00 row_value[1] = 0x01 */
+               /* workaround */
+               if ((col_value[0] & 0x3) == 0x3 && (col_value[1] & 0x3) == 0x3)
+                       auto_download = 1;
+
+               if ((col_value[0] & 0x3) == 0x3 && (col_value[1] & 0x3) != 0x3)
+                       display_info = 1;
+               if (machine_is_p1p2()) {
+                       if ((col_value[0] & 0xd) == 0xd)
+                               auto_download = 1;
+               }
+       }
+
+       if (auto_download)
+               setenv("bootcmd", "usbdown");
+}
+
+static void enable_battery(void)
+{
+       unsigned char val[2];
+       unsigned char addr = 0x36;      /* max17040 fuel gauge */
+
+       if (machine_is_aquila()) {
+               if (board_is_j1b2())
+                       return;
+       }
+
+       if (machine_is_tickertape())
+               return;
+
+       if (machine_is_cypress())
+               i2c_set_bus_num(I2C_GPIO7);
+       else
+               i2c_set_bus_num(I2C_GPIO3);
+
+       if(machine_is_p1p2())
+       {
+               return;
+       }
+
+       if (i2c_probe(addr)) {
+               printf("Can't found max17040 fuel gauge\n");
+               return;
+       }
+
+       val[0] = 0x54;
+       val[1] = 0x00;
+       i2c_write(addr, 0xfe, 1, val, 2);
+}
+
+static void check_battery(void)
+{
+       unsigned char val[2];
+       unsigned char addr = 0x36;      /* max17040 fuel gauge */
+
+       if(machine_is_p1p2())
+       {
+               return;
+       }
+
+       if (machine_is_aquila()) {
+               if (board_is_j1b2())
+                       return;
+       }
+
+       if (machine_is_tickertape())
+               return;
+
+       if (machine_is_cypress())
+               i2c_set_bus_num(I2C_GPIO7);
+       else
+               i2c_set_bus_num(I2C_GPIO3);
+
+       if (i2c_probe(addr)) {
+               printf("Can't found max17040 fuel gauge\n");
+               return;
+       }
+
+       i2c_read(addr, 0x04, 1, val, 1);
+
+       dprintf("battery:\t%d%%\n", val[0]);
+
+       battery_soc = val[0];
+}
+
+static void check_mhl(void)
+{
+       unsigned char val[2];
+       unsigned char addr = 0x39;      /* SIL9230 */
+
+       /* MHL Power enable */
+       /* HDMI_EN : GPJ2[2] XMSMDATA_2 output mode */
+       gpio_direction_output(&s5pc110_gpio->gpio_j2, 2, 1);
+
+       /* MHL_RST : MP0_4[7] XM0ADDR_7 output mode */
+       gpio_direction_output(&s5pc110_gpio->gpio_mp0_4, 7, 0);
+
+       /* 10ms required after reset */
+       udelay(10000);
+
+       /* output enable */
+       gpio_set_value(&s5pc110_gpio->gpio_mp0_4, 7, 1);
+
+       i2c_set_bus_num(I2C_GPIO5);
+
+       /* set usb path */
+       if (i2c_probe(addr)) {
+               printf("Can't found MHL Chip\n");
+               return;
+       }
+
+       /*
+        * System Control #1
+        * set to Normal operation
+        */
+       val[0] = 0x35;
+       i2c_write((0x72 >> 1), 0x08, 1, val, 1);
+       i2c_read((0x72 >> 1), 0x08, 1, val, 1);
+
+       /*
+        * MHL TX Control #1
+        * TERM_MODE [7:6]
+        * 00 = MHL termination ON
+        * 11 = MHL termination OFF
+        */
+       val[0] = 0xd0;
+       i2c_write((0x72 >> 1), 0xa0, 1, val, 1);
+       i2c_read((0x72 >> 1), 0xa0, 1, val, 1);
+}
+
+static void into_charge_mode(void)
+{
+       unsigned char addr = 0xCC >> 1; /* max8998 */;
+       unsigned char val[2];
+       unsigned int level;
+       int i, j;
+
+       i2c_set_bus_num(I2C_PMIC);
+
+       if (i2c_probe(addr)) {
+               printf("Can't found max8998\n");
+               return;
+       }
+
+       printf("Charge Mode\n");
+
+       i2c_read(addr, 0x0C, 1, val, 1);
+       val[0] &= ~(0x7 << 0);
+       val[0] |= 5;            /* 600mA */
+       i2c_write(addr, 0x0C, 1, val, 1);
+
+#ifdef CONFIG_S5PC1XXFB
+       /* TODO: change to Image animation */
+       init_font();
+       set_font_xy(0, 0);
+       set_font_color(FONT_WHITE);
+       fb_printf("charging");
+
+       level = battery_soc / 25;
+
+       for (i = 0; i < 3; i++) {
+               if (level == 0)
+                       udelay(1 * 1000 * 1000);
+
+               for (j = 0; j < 4; j++) {
+                       fb_printf("..");
+
+                       if (j >= level)
+                               udelay(1 * 1000 * 1000);
+               }
+
+               if (level <= 4)
+                       udelay(1 * 1000 * 1000);
+
+               set_font_xy(0, 0);
+               set_font_color(FONT_XOR);
+               fb_printf("charging........");
+
+               set_font_xy(0, 0);
+               set_font_color(FONT_WHITE);
+               fb_printf("charging");
+       }
+
+       exit_font();
+#endif
+
+       /* EVT0: sleep 1, EVT1: sleep */
+       if (s5pc1xx_get_cpu_rev() == 0) {
+               run_command("sleep 1", 0);
+               return;
+       }
+
+       run_command("sleep", 0);
+}
+
+static void check_micro_usb(int intr)
+{
+       unsigned char addr;
+       unsigned char val[2];
+
+       if (cpu_is_s5pc100())
+               return;
+
+       if (board_is_limo_real()) {
+               if (hwrevision(0) || hwrevision(1))
+                       return;
+       }
+
+       if (machine_is_cypress())
+               i2c_set_bus_num(I2C_GPIO6);
+       else
+               i2c_set_bus_num(I2C_PMIC);
+
+       addr = 0x25;            /* fsa9480 */
+       if (i2c_probe(addr)) {
+               printf("Can't found fsa9480\n");
+               return;
+       }
+
+       /* Clear Interrupt */
+       if (intr) {
+               i2c_read(addr, 0x03, 1, val, 2);
+               udelay(500 * 1000);
+       }
+
+       /* Read Device Type 1 */
+       i2c_read(addr, 0x0a, 1, val, 1);
+
+#define FSA_DEDICATED_CHARGER  (1 << 6)
+#define FSA_UART               (1 << 3)
+#define FSA_USB                        (1 << 2)
+
+       /*
+        * If USB, use default 475mA
+        * If Charger, use 600mA and go to charge mode
+        */
+       if (val[0] & FSA_DEDICATED_CHARGER)
+               into_charge_mode();
+
+       /* If Factory Mode is Boot ON-USB, go to download mode */
+       i2c_read(addr, 0x07, 1, val, 1);
+
+#define FSA_ADC_FAC_USB                0x19
+#define FSA_ADC_FAC_UART       0x1d
+
+       if (val[0] == FSA_ADC_FAC_USB)
+               setenv("bootcmd", "usbdown");
+}
+
+#define MAX8998_REG_ONOFF1     0x11
+#define MAX8998_REG_ONOFF2     0x12
+#define MAX8998_REG_ONOFF3     0x13
+#define MAX8998_LDO3           (1 << 2)
+#define MAX8998_LDO10          (1 << 3)
+#define MAX8998_LDO11          (1 << 2)
+#define MAX8998_LDO12          (1 << 1)
+#define MAX8998_LDO13          (1 << 0)
+#define MAX8998_LDO14          (1 << 7)
+#define MAX8998_LDO15          (1 << 6)
+#define MAX8998_LDO16          (1 << 5)
+#define MAX8998_LDO17          (1 << 4)
+
+static void init_pmic(void)
+{
+       unsigned char addr;
+       unsigned char val[2];
+
+       if (cpu_is_s5pc100())
+               return;
+
+       i2c_set_bus_num(I2C_PMIC);
+
+       addr = 0xCC >> 1;       /* max8998 */
+       if (i2c_probe(addr)) {
+               printf("Can't found max8998\n");
+               return;
+       }
+
+       /* ONOFF1 */
+       i2c_read(addr, MAX8998_REG_ONOFF1, 1, val, 1);
+       val[0] &= ~MAX8998_LDO3;
+       i2c_write(addr, MAX8998_REG_ONOFF1, 1, val, 1);
+
+       /* ONOFF2 */
+       i2c_read(addr, MAX8998_REG_ONOFF2, 1, val, 1);
+       /*
+        * Disable LDO10(VPLL_1.1V), LDO11(CAM_IO_2.8V),
+        * LDO12(CAM_ISP_1.2V), LDO13(CAM_A_2.8V)
+        */
+       val[0] &= ~(MAX8998_LDO10 | MAX8998_LDO11 |
+                       MAX8998_LDO12 | MAX8998_LDO13);
+       val[0] |= (1 << 7);
+       i2c_write(addr, MAX8998_REG_ONOFF2, 1, val, 1);
+       i2c_read(addr, MAX8998_REG_ONOFF2, 1, val, 1);
+       /* ONOFF3 */
+       i2c_read(addr, MAX8998_REG_ONOFF3, 1, val, 1);
+       /*
+        * Disable LDO14(CAM_CIF_1.8), LDO15(CAM_AF_3.3V),
+        * LDO16(VMIPI_1.8V), LDO17(CAM_8M_1.8V)
+        */
+       val[0] &= ~(MAX8998_LDO14 | MAX8998_LDO15 |
+                       MAX8998_LDO16 | MAX8998_LDO17);
+       i2c_write(addr, MAX8998_REG_ONOFF3, 1, val, 1);
+       i2c_read(addr, MAX8998_REG_ONOFF3, 1, val, 1);
+}
+
+#define PDN_MASK(x)            (0x3 << ((x) << 1))
+
+#define CON_INPUT(x)           (0x0 << ((x) << 2))
+#define CON_OUTPUT(x)          (0x1 << ((x) << 2))
+#define CON_IRQ(x)             (0xf << ((x) << 2))
+
+#define DAT_SET(x)             (0x1 << (x))
+#define DAT_CLEAR(x)           (0x0 << (x))
+
+#define OUTPUT0(x)             (0x0 << ((x) << 1))
+#define OUTPUT1(x)             (0x1 << ((x) << 1))
+#define INPUT(x)               (0x2 << ((x) << 1))
+
+#define PULL_DIS(x)            (0x0 << ((x) << 1))
+#define PULL_DOWN(x)           (0x1 << ((x) << 1))
+#define PULL_UP(x)             (0x2 << ((x) << 1))
+
+#define PREVIOUS(x)            (0x3 << ((x) << 1))
+
+struct gpio_powermode {
+       unsigned int    conpdn;
+       unsigned int    pudpdn;
+};
+
+struct gpio_external {
+       unsigned int    con;
+       unsigned int    dat;
+       unsigned int    pud;
+};
+
+static struct gpio_powermode powerdown_modes[] = {
+       {       /* S5PC110_GPIO_A0_OFFSET */
+               INPUT(0) | OUTPUT0(1) | INPUT(2) | OUTPUT0(3) |
+               INPUT(4) | OUTPUT0(5) | INPUT(6) | OUTPUT0(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_GPIO_A1_OFFSET */
+               INPUT(0) | OUTPUT0(1) | INPUT(2) | INPUT(3),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3),
+       }, {    /* S5PC110_GPIO_B_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               INPUT(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_GPIO_C0_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | INPUT(3) |
+               OUTPUT0(4),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4),
+       }, {    /* S5PC110_GPIO_C1_OFFSET */
+               /* OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               OUTPUT0(4), */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | INPUT(3) |
+               OUTPUT0(4),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4),
+       }, {    /* S5PC110_GPIO_D0_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3),
+       }, {    /* S5PC110_GPIO_D1_OFFSET */
+               INPUT(0) | INPUT(1) | INPUT(2) | INPUT(3) |
+               INPUT(4) | INPUT(5),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5),
+       }, {    /* S5PC110_GPIO_E0_OFFSET */
+               INPUT(0) | INPUT(1) | INPUT(2) | INPUT(3) |
+               INPUT(4) | INPUT(5) | INPUT(6) | INPUT(7),
+               PULL_DOWN(0) | PULL_DOWN(1) | PULL_DOWN(2) | PULL_DOWN(3) |
+               PULL_DOWN(4) | PULL_DOWN(5) | PULL_DOWN(6) | PULL_DOWN(7),
+       }, {    /* S5PC110_GPIO_E1_OFFSET */
+               INPUT(0) | INPUT(1) | INPUT(2) | OUTPUT0(3) |
+               OUTPUT0(4),
+               PULL_DOWN(0) | PULL_DOWN(1) | PULL_DOWN(2) | PULL_DIS(3) |
+               PULL_DIS(4),
+       }, {    /* S5PC110_GPIO_F0_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_GPIO_F1_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_GPIO_F2_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_GPIO_F3_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               OUTPUT0(4) | OUTPUT0(5),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5),
+       }, {    /* S5PC110_GPIO_G0_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6),
+       }, {    /* S5PC110_GPIO_G1_OFFSET */
+               OUTPUT0(0) | INPUT(1) | OUTPUT0(2) | INPUT(3) |
+               INPUT(4) | INPUT(5) | INPUT(6),
+               PULL_DIS(0) | PULL_UP(1) | PULL_DIS(2) | PULL_UP(3) |
+               PULL_UP(4) | PULL_UP(5) | PULL_UP(6),
+       }, {    /* S5PC110_GPIO_G2_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6),
+       }, {    /* S5PC110_GPIO_G3_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT1(2) | INPUT(3) |
+               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6),
+       }, {    /* S5PC110_GPIO_I_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | INPUT(3) |
+               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6),
+       }, {    /* S5PC110_GPIO_J0_OFFSET */
+               INPUT(0) | OUTPUT0(1) | INPUT(2) | INPUT(3) |
+               INPUT(4) | INPUT(5) | OUTPUT0(6) | OUTPUT0(7),
+               PULL_DOWN(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_GPIO_J1_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_GPIO_J2_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               INPUT(4) | OUTPUT0(5) | INPUT(6) | INPUT(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DOWN(6) | PULL_DOWN(7),
+       }, {    /* S5PC110_GPIO_J3_OFFSET */
+               INPUT(0) | INPUT(1) | OUTPUT0(2) | OUTPUT0(3) |
+               OUTPUT1(4) | OUTPUT0(5) | INPUT(6) | INPUT(7),
+               PULL_DOWN(0) | PULL_DOWN(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_GPIO_J4_OFFSET */
+               INPUT(0) | OUTPUT0(1) | OUTPUT0(2) | INPUT(3) |
+               OUTPUT0(4),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4),
+       }, {    /* S5PC110_MP0_1_OFFSET */
+               /* XM0CSN[4]: MP0_1[4] -> output high */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT1(2) | OUTPUT0(3) |
+               OUTPUT1(4) | OUTPUT0(5) | OUTPUT1(6) | OUTPUT1(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_MP0_2_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | INPUT(2) | OUTPUT0(3),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3),
+       }, {    /* S5PC110_MP0_3_OFFSET */
+               /* XM0FWEN: MP0_3[2] -> output high */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT1(2) | OUTPUT0(3) |
+               INPUT(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_MP0_4_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | INPUT(3) |
+               INPUT(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DOWN(3) |
+               PULL_DOWN(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_MP0_5_OFFSET */
+               INPUT(0) | OUTPUT0(1) | INPUT(2) | INPUT(3) |
+               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
+               PULL_DOWN(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_MP0_6_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       }, {    /* S5PC110_MP0_7_OFFSET */
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+       },
+};
+
+static struct gpio_external external_powerdown_modes[] = {
+       {       /* S5PC110_GPIO_H0_OFFSET */
+               CON_OUTPUT(0) | CON_INPUT(1) | CON_OUTPUT(2) | CON_OUTPUT(3) |
+               CON_OUTPUT(4) | CON_OUTPUT(5) | CON_INPUT(6) | CON_INPUT(7),
+               DAT_SET(0) | DAT_CLEAR(2) | DAT_CLEAR(3) |
+               DAT_CLEAR(4) | DAT_CLEAR(5),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5),
+       }, {    /* S5PC110_GPIO_H1_OFFSET */
+               /* CON_INPUT(0) | CON_INPUT(1) | CON_OUTPUT(2) | CON_IRQ(3) |
+               CON_IRQ(4) | CON_INPUT(5) | CON_INPUT(6) | CON_INPUT(7),
+               DAT_CLEAR(2),
+               PULL_DOWN(0) | PULL_DOWN(1) |
+               PULL_DOWN(6),           */
+               CON_INPUT(0) | CON_INPUT(1) | CON_OUTPUT(2) | CON_IRQ(3) |
+               CON_INPUT(4) | CON_INPUT(5) | CON_OUTPUT(6) | CON_INPUT(7),
+               DAT_SET(0),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DOWN(4),
+       }, {    /* S5PC110_GPIO_H2_OFFSET */
+               CON_OUTPUT(0) | CON_OUTPUT(1) | CON_OUTPUT(2) | CON_OUTPUT(3) |
+               CON_IRQ(4) | CON_IRQ(5) | CON_IRQ(6) | CON_IRQ(7),
+               DAT_CLEAR(0) | DAT_CLEAR(1) | DAT_CLEAR(2) | DAT_CLEAR(3),
+               0,
+       }, {    /* S5PC110_GPIO_H3_OFFSET */
+               CON_IRQ(0) | CON_IRQ(1) | CON_IRQ(2) | CON_OUTPUT(3) |
+               CON_IRQ(4) | CON_INPUT(5) | CON_IRQ(6) | CON_OUTPUT(7),
+               DAT_CLEAR(3) | DAT_CLEAR(7),
+               0,
+       },
+};
+
+static void setup_power_down_mode_registers(void)
+{
+       struct s5pc110_gpio *gpio = (struct s5pc110_gpio *)S5PC110_GPIO_BASE;
+       struct s5pc1xx_gpio_bank *bank;
+       struct gpio_powermode *p;
+       struct gpio_external *ge;
+       int i;
+
+       if (cpu_is_s5pc100())
+               return;
+
+       if (!(machine_is_aquila() && board_is_limo_real()))
+               return;
+
+       bank = &gpio->gpio_a0;
+       p = powerdown_modes;
+
+       for (i = 0; i < ARRAY_SIZE(powerdown_modes); i++, p++, bank++) {
+               writel(p->conpdn, &bank->pdn_con);
+               writel(p->pudpdn, &bank->pdn_pull);
+       }
+       /* M299 */
+       writel(0xff0022b0, (unsigned int *)0xF0000000);
+       writel(0xff0022b0, (unsigned int *)0xF1400000);
+
+
+       bank = &gpio->gpio_h0;
+       ge = external_powerdown_modes;
+
+       for (i = 0; i < ARRAY_SIZE(external_powerdown_modes); i++) {
+               writel(ge->con, &bank->con);
+               writel(ge->dat, &bank->dat);
+               writel(ge->pud, &bank->pull);
+
+               bank++;
+               ge++;
+       }
+}
+
+#ifdef CONFIG_LCD
+struct s6e63m0_platform_data {
+       struct s5pc1xx_gpio_bank *bank;
+       unsigned int num;
+};
+
+extern void s6e63m0_set_spi_interface(struct s6e63m0_platform_data *cs,
+       struct s6e63m0_platform_data *clk, struct s6e63m0_platform_data *si,
+       struct s6e63m0_platform_data *so);
+
+struct s6e63m0_platform_data pd_cs, pd_clk, pd_si, pd_so;
+struct s5pc110_gpio *gpio_base = (struct s5pc110_gpio *) S5PC110_GPIO_BASE;
+
+void lcd_cfg_gpio(void)
+{
+       unsigned int i, f3_end = 4;
+
+       for (i = 0; i < 8; i++) {
+               /* set GPF0,1,2[0:7] for RGB Interface and Data lines (32bit) */
+               gpio_cfg_pin(&gpio_base->gpio_f0, i, GPIO_FUNC(2));
+               gpio_cfg_pin(&gpio_base->gpio_f1, i, GPIO_FUNC(2));
+               gpio_cfg_pin(&gpio_base->gpio_f2, i, GPIO_FUNC(2));
+               /* pull-up/down disable */
+               gpio_set_pull(&gpio_base->gpio_f0, i, GPIO_PULL_NONE);
+               gpio_set_pull(&gpio_base->gpio_f1, i, GPIO_PULL_NONE);
+               gpio_set_pull(&gpio_base->gpio_f2, i, GPIO_PULL_NONE);
+
+               /* drive strength to max (24bit) */
+               gpio_set_drv(&gpio_base->gpio_f0, i, GPIO_DRV_4x);
+               gpio_set_rate(&gpio_base->gpio_f0, i, GPIO_DRV_SLOW);
+               gpio_set_drv(&gpio_base->gpio_f1, i, GPIO_DRV_4x);
+               gpio_set_rate(&gpio_base->gpio_f1, i, GPIO_DRV_SLOW);
+               gpio_set_drv(&gpio_base->gpio_f2, i, GPIO_DRV_4x);
+               gpio_set_rate(&gpio_base->gpio_f2, i, GPIO_DRV_SLOW);
+       }
+
+       /* set DISPLAY_DE_B pin for dual rgb mode. */
+       if (board_is_media())
+               f3_end = 5;
+
+       for (i = 0; i < f3_end; i++) {
+               /* set GPF3[0:3] for RGB Interface and Data lines (32bit) */
+               gpio_cfg_pin(&gpio_base->gpio_f3, i, GPIO_PULL_UP);
+               /* pull-up/down disable */
+               gpio_set_pull(&gpio_base->gpio_f3, i, GPIO_PULL_NONE);
+               /* drive strength to max (24bit) */
+               gpio_set_drv(&gpio_base->gpio_f3, i, GPIO_DRV_4x);
+               gpio_set_rate(&gpio_base->gpio_f3, i, GPIO_DRV_SLOW);
+       }
+       /* display output path selection (only [1:0] valid) */
+       writel(0x2, 0xE0107008);
+
+       /* gpio pad configuration for LCD reset. */
+       gpio_cfg_pin(&gpio_base->gpio_mp0_5, 5, GPIO_OUTPUT);
+
+       /* gpio pad configuration for LCD ON. */
+       gpio_cfg_pin(&gpio_base->gpio_j1, 3, GPIO_OUTPUT);
+
+       /* MLCD_ON2 */
+       
+       if (board_is_p2_real())
+            gpio_cfg_pin(&gpio_base->gpio_j1, 4, GPIO_OUTPUT);
+       else
+            gpio_cfg_pin(&gpio_base->gpio_j2, 6, GPIO_OUTPUT);
+
+       /* LCD_BACKLIGHT_EN */
+       if (machine_is_geminus())
+               gpio_cfg_pin(&gpio_base->gpio_mp0_5, 0, GPIO_OUTPUT);
+
+       /*
+        * gpio pad configuration for
+        * DISPLAY_CS, DISPLAY_CLK, DISPLAY_SO, DISPLAY_SI.
+        */
+       gpio_cfg_pin(&gpio_base->gpio_mp0_1, 1, GPIO_OUTPUT);
+       gpio_cfg_pin(&gpio_base->gpio_mp0_4, 1, GPIO_OUTPUT);
+       gpio_cfg_pin(&gpio_base->gpio_mp0_4, 2, GPIO_INPUT);
+       gpio_cfg_pin(&gpio_base->gpio_mp0_4, 3, GPIO_OUTPUT);
+
+       if (machine_is_aquila()) {
+               pd_cs.bank = &gpio_base->gpio_mp0_1;
+               pd_cs.num = 1;
+               pd_clk.bank = &gpio_base->gpio_mp0_4;
+               pd_clk.num = 1;
+               pd_si.bank = &gpio_base->gpio_mp0_4;
+               pd_si.num = 3;
+               pd_so.bank = &gpio_base->gpio_mp0_4;
+               pd_so.num = 2;
+
+               /* these data would be sent to s6e63m0 lcd panel driver. */
+               //s6e63m0_set_spi_interface(&pd_cs, &pd_clk, &pd_si, &pd_so);
+       }
+
+       if (machine_is_cypress()) {
+               /* FLCD_CS */
+               gpio_cfg_pin(&gpio_base->gpio_mp0_1, 0, GPIO_OUTPUT);
+               /* FLCD_CLK */
+               gpio_cfg_pin(&gpio_base->gpio_mp0_4, 0, GPIO_OUTPUT);
+               /* FLCD_SDI */
+               gpio_cfg_pin(&gpio_base->gpio_mp0_4, 2, GPIO_OUTPUT);
+               /* FLCD_RST_S */
+               gpio_cfg_pin(&gpio_base->gpio_mp0_4, 5, GPIO_OUTPUT);
+               /* FLCD_ON_S */
+               gpio_cfg_pin(&gpio_base->gpio_g2, 2, GPIO_OUTPUT);
+
+               pd_cs.bank = &gpio_base->gpio_mp0_1;
+               pd_cs.num = 0;
+               pd_clk.bank = &gpio_base->gpio_mp0_4;
+               pd_clk.num = 0;
+               pd_si.bank = &gpio_base->gpio_mp0_4;
+               pd_si.num = 2;
+
+               /* these data would be sent to s6e63m0 lcd panel driver. */
+               //s6e63m0_set_spi_interface(&pd_cs, &pd_clk, &pd_si, NULL);
+       }
+
+       return;
+}
+
+void backlight_on(unsigned int onoff)
+{
+       struct s5pc110_gpio *gpio = (struct s5pc110_gpio *) S5PC110_GPIO_BASE;
+
+       if (onoff) {
+               if (machine_is_geminus())
+                       gpio_set_value(&gpio->gpio_mp0_5, 0, 1);
+       } else {
+               if (machine_is_geminus())
+                       gpio_set_value(&gpio->gpio_mp0_5, 0, 0);
+       }
+}
+
+void reset_lcd(void)
+{
+       struct s5pc110_gpio *gpio = (struct s5pc110_gpio *) S5PC110_GPIO_BASE;
+
+       if (machine_is_aquila() || machine_is_geminus())
+               gpio_set_value(&gpio->gpio_mp0_5, 5, 1);
+       if (machine_is_cypress())
+               gpio_set_value(&gpio->gpio_mp0_4, 5, 1);
+}
+
+void lcd_power_on(unsigned int onoff)
+{
+       struct s5pc110_gpio *gpio = (struct s5pc110_gpio *) S5PC110_GPIO_BASE;
+
+       if (onoff) {
+               if (machine_is_aquila() || machine_is_geminus())
+                       gpio_set_value(&gpio->gpio_j1, 3, 1);
+
+               if (machine_is_cypress())
+                       gpio_set_value(&gpio->gpio_g2, 2, 1);
+
+               if (board_is_p2_real())
+                       gpio_set_value(&gpio->gpio_j1, 4, 1);
+               else
+                       gpio_set_value(&gpio->gpio_j2, 6, 1);
+       
+       } else {
+               if (machine_is_aquila() || machine_is_geminus())
+                       gpio_set_value(&gpio->gpio_j1, 3, 0);
+
+               if (machine_is_cypress())
+                       gpio_set_value(&gpio->gpio_g2, 2, 0);
+
+               if (board_is_p2_real())
+                    gpio_set_value(&gpio->gpio_j1, 4, 0);
+               else
+                    gpio_set_value(&gpio->gpio_j2, 6, 0);
+       }
+}
+
+extern void ams701ka_cfg_ldo(void);
+extern void ams701ka_enable_ldo(unsigned int onoff);
+
+void init_panel_info(vidinfo_t *vid)
+{
+       vid->cfg_gpio = NULL;
+       vid->reset_lcd = NULL;
+       vid->backlight_on = NULL;
+       vid->lcd_power_on = NULL;
+
+       vid->cfg_ldo = NULL;
+       vid->enable_ldo = NULL;
+
+       vid->init_delay = 0;
+       vid->reset_delay = 0;
+       vid->power_on_delay = 0;
+
+       vid->dual_lcd_enabled = 0;
+
+       vid->vl_freq    = 60;
+       vid->vl_col     = 1024,
+       vid->vl_row     = 600,
+       vid->vl_width   = 1024,
+       vid->vl_height  = 600,
+       vid->vl_clkp    = CONFIG_SYS_HIGH,
+       vid->vl_hsp     = CONFIG_SYS_HIGH,
+       vid->vl_vsp     = CONFIG_SYS_HIGH,
+       vid->vl_dp      = CONFIG_SYS_LOW,
+       vid->vl_bpix    = 32,
+
+       /* AMS701KA AMOLED Panel. */
+       vid->vl_hspw    = 30,
+       vid->vl_hbpd    = 114,
+       vid->vl_hfpd    = 48,
+
+       vid->vl_vspw    = 2,
+       vid->vl_vbpd    = 6,
+       vid->vl_vfpd    = 8,
+
+       vid->cfg_gpio = lcd_cfg_gpio;
+       vid->reset_lcd = reset_lcd;
+       vid->backlight_on = backlight_on;
+       vid->lcd_power_on = lcd_power_on;
+
+       vid->cfg_ldo = ams701ka_cfg_ldo;
+       vid->enable_ldo = ams701ka_enable_ldo;
+
+       vid->init_delay = 25000;
+       vid->reset_delay = 120000;
+
+#if 0
+       vid->vl_freq    = 60;
+       vid->vl_col     = 480,
+       vid->vl_row     = 800,
+       vid->vl_width   = 480,
+       vid->vl_height  = 800,
+       vid->vl_clkp    = CONFIG_SYS_HIGH,
+       vid->vl_hsp     = CONFIG_SYS_LOW,
+       vid->vl_vsp     = CONFIG_SYS_LOW,
+       vid->vl_dp      = CONFIG_SYS_HIGH,
+       vid->vl_bpix    = 32,
+
+       /* tl2796 panel. */
+       vid->vl_hpw     = 4,
+       vid->vl_blw     = 8,
+       vid->vl_elw     = 8,
+
+       vid->vl_vpw     = 4,
+       vid->vl_bfw     = 8,
+       vid->vl_efw     = 8,
+#endif
+#if 0
+       vid->vl_freq    = 60;
+       vid->vl_col     = 1024,
+       vid->vl_row     = 600,
+       vid->vl_width   = 1024,
+       vid->vl_height  = 600,
+       vid->vl_clkp    = CONFIG_SYS_HIGH,
+       vid->vl_hsp     = CONFIG_SYS_HIGH,
+       vid->vl_vsp     = CONFIG_SYS_HIGH,
+       vid->vl_dp      = CONFIG_SYS_LOW,
+       vid->vl_bpix    = 32,
+
+       /* AMS701KA AMOLED Panel. */
+       vid->vl_hpw     = 30,
+       vid->vl_blw     = 114,
+       vid->vl_elw     = 48,
+
+       vid->vl_vpw     = 2,
+       vid->vl_bfw     = 6,
+       vid->vl_efw     = 8,
+#endif
+}
+#endif
+
+static void setup_meminfo(void)
+{
+       char meminfo[64] = {0, };
+       int count = 0, size, real;
+
+       size = gd->bd->bi_dram[0].size >> 20;
+       count += sprintf(meminfo + count, "mem=%dM", size);
+
+       /* Each Chip Select can't exceed the 256MiB */
+       size = gd->bd->bi_dram[1].size >> 20;
+       real = min(size, 256);
+       count += sprintf(meminfo + count, " mem=%dM@0x%x",
+               real, (unsigned int)gd->bd->bi_dram[1].start);
+
+       size -= real;
+       if (size > 0) {
+               count += sprintf(meminfo + count, " mem=%dM@0x%x", size,
+                       (unsigned int)gd->bd->bi_dram[1].start + (real << 20));
+       }
+
+       setenv("meminfo", meminfo);
+}
+
+int misc_init_r(void)
+{
+#ifdef CONFIG_LCD
+       /* It should be located at first */
+       lcd_is_enabled = 0;
+
+       if (board_is_limo_real() ||
+               board_is_limo_universal() ||
+               board_is_j1b2())
+               setenv("lcdinfo", "lcd=s6e63m0");
+       /* it can't classify tl2796 with single-lcd and dual-lcd.
+       else
+               setenv("lcdinfo", "lcd=tl2796-dual");
+       */
+
+       /*
+        * env values below should be added in case that lcd panel of geminus,
+        * p1 and p2 are enabled at u-boot.
+        * setenv means that lcd panel has been turned on at u-boot.
+        */
+       if (machine_is_geminus())
+               setenv("lcdinfo", "lcd=lms480jc01");
+
+       if (board_is_p2_real()) {
+               setenv("lcdinfo", "lcd=ams701");
+       }       else if(lcd_is_amoled())        {
+               setenv("lcdinfo", "lcd=ams701");
+       }
+
+#endif
+       setup_meminfo();
+
+       show_hw_revision();
+
+       /* Set proper PMIC pins */
+       pmic_pin_init();
+
+       /* Check auto burning */
+       check_auto_burn();
+
+       /* To power up I2C2 */
+       enable_ldos();
+
+       /* Enable T-Flash at Limo Real or Limo Universal */
+       enable_t_flash();
+
+       /* Setup Limo Real board GPIOs */
+       setup_limo_real_gpios();
+
+       /* Setup Media board GPIOs */
+       setup_media_gpios();
+
+       /* Setup P1P2 board GPIOS */
+       setup_p1p2_gpios();
+
+       /* To usbdown automatically */
+       if (board_is_p2_real())
+               check_p2_keypad();
+       else
+               check_keypad();
+
+       /* check max8998 */
+       init_pmic();
+
+#ifdef CONFIG_S5PC1XXFB
+       display_device_info();
+#endif
+
+       setup_power_down_mode_registers();
+
+       /* check max17040 */
+       check_battery();
+
+       /* check fsa9480 */
+       check_micro_usb(0);
+
+       return 0;
+}
+#endif
+
+int board_init(void)
+{
+       /* Set Initial global variables */
+       s5pc110_gpio = (struct s5pc110_gpio *) S5PC110_GPIO_BASE;
+
+       gd->bd->bi_arch_number = MACH_TYPE;
+       gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
+
+       /* Check H/W Revision */
+       check_hw_revision();
+
+       return 0;
+}
+
+int dram_init(void)
+{
+       unsigned int base, memconfig0, size;
+       unsigned int memconfig1, sz = 0;
+
+       if (cpu_is_s5pc100()) {
+               /* In mem setup, we swap the bank. So below size is correct */
+               gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
+               gd->bd->bi_dram[0].size = PHYS_SDRAM_2_SIZE;
+               gd->bd->bi_dram[1].start = S5PC100_PHYS_SDRAM_2;
+               size = 128;
+       } else {
+               /* In S5PC110, we can't swap the DMC0/1 */
+               gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
+               gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
+
+               base = S5PC110_DMC1_BASE;
+               /* DMC configuration */
+               memconfig0 = readl(base + MEMCONFIG0_OFFSET);
+               gd->bd->bi_dram[1].start = memconfig0 & 0xFF000000;
+
+               size = (memconfig0 >> 16) & 0xFF;
+               size = ((unsigned char) ~size) + 1;
+
+               /*
+                * (0x07 + 1) * 16 = 128 MiB
+                * (0x0f + 1) * 16 = 256 MiB
+                */
+               size = size << 4;
+
+               /*
+                * Aquila Rev0.5 4G3G1G
+                * Aquila Rev0.8 4G3G1G
+                */
+               if (machine_is_aquila() && (hwrevision(5) || hwrevision(8))) {
+                       memconfig1 = readl(base + MEMCONFIG1_OFFSET);
+
+                       sz = (memconfig1 >> 16) & 0xFF;
+                       sz = ((unsigned char) ~sz) + 1;
+                       sz = sz << 4;
+               }
+
+       }
+       /*
+        * bi_dram[1].size contains all DMC1 memory size
+        */
+       gd->bd->bi_dram[1].size = (size + sz) << 20;
+
+       return 0;
+}
+
+/* Used for sleep test */
+static unsigned char saved_val[4][2];
+void board_sleep_init_late(void)
+{
+       /* CODEC_LDO_EN: GPF3[4] */
+       gpio_direction_output(&s5pc110_gpio->gpio_f3, 4, 0);
+       /* CODEC_XTAL_EN: GPH3[2] */
+       gpio_direction_output(&s5pc110_gpio->gpio_h3, 2, 0);
+
+       /* MMC T_FLASH off */
+       gpio_direction_output(&s5pc110_gpio->gpio_mp0_5, 4, 0);
+       /* MHL off */
+       gpio_direction_output(&s5pc110_gpio->gpio_j2, 2, 0);
+       gpio_direction_output(&s5pc110_gpio->gpio_mp0_4, 7, 0);
+       gpio_direction_output(&s5pc110_gpio->gpio_j2, 3, 0); /* MHL_ON for REV02 or higher */
+
+
+}
+void board_sleep_init(void)
+{
+       unsigned char addr;
+       unsigned char val[2];
+
+       i2c_set_bus_num(I2C_PMIC);
+       addr = 0xCC >> 1;
+       if (i2c_probe(addr)) {
+               printf("Can't find max8998\n");
+               return;
+       }
+
+       /* Set ONOFF1 */
+       i2c_read(addr, MAX8998_REG_ONOFF1, 1, val, 1);
+       saved_val[0][0] = val[0];
+       saved_val[0][1] = val[1];
+       val[0] &= ~((1 << 7) | (1 << 6) | (1 << 4) | (1 << 2) |
+                       (1 << 1) | (1 << 0));
+       i2c_write(addr, MAX8998_REG_ONOFF1, 1, val, 1);
+       i2c_read(addr, MAX8998_REG_ONOFF1, 1, val, 1);
+       /* Set ONOFF2 */
+       i2c_read(addr, MAX8998_REG_ONOFF2, 1, val, 1);
+       saved_val[1][0] = val[0];
+       saved_val[1][1] = val[1];
+       val[0] &= ~((1 << 7) | (1 << 6) | (1 << 5) | (1 << 3) |
+                       (1 << 2) | (1 << 1) | (1 << 0));
+       val[0] |= (1 << 7);
+       i2c_write(addr, MAX8998_REG_ONOFF2, 1, val, 1);
+       i2c_read(addr, MAX8998_REG_ONOFF2, 1, val, 1);
+       /* Set ONOFF3 */
+       i2c_read(addr, MAX8998_REG_ONOFF3, 1, val, 1);
+       saved_val[2][0] = val[0];
+       saved_val[2][1] = val[1];
+       val[0] &= ~((1 << 7) | (1 << 6) | (1 << 5) | (1 << 4));
+       i2c_write(addr, MAX8998_REG_ONOFF3, 1, val, 1);
+       i2c_read(addr, MAX8998_REG_ONOFF3, 1, val, 1);
+       /* Set ONOFF4 */
+       i2c_read(addr, MAX8998_REG_ONOFF3+1, 1, val, 1);
+       saved_val[3][0] = val[0];
+       saved_val[3][1] = val[1];
+       val[0] &= ~((1 << 7) | (1 << 6) | (1 << 4));
+       i2c_write(addr, MAX8998_REG_ONOFF3+1, 1, val, 1);
+       i2c_read(addr, MAX8998_REG_ONOFF3+1, 1, val, 1);
+       printf("Turned off regulators. Preparing to sleep. [%s:%d]\n",
+                       __FILE__, __LINE__);
+}
+
+void board_sleep_resume(void)
+{
+       unsigned char addr;
+       unsigned char val[2];
+
+       show_hw_revision();
+
+       i2c_set_bus_num(I2C_PMIC);
+       addr = 0xCC >> 1;
+       if (i2c_probe(addr)) {
+               printf("Can't find max8998\n");
+               return;
+       }
+
+       /* Set ONOFF1 */
+       i2c_write(addr, MAX8998_REG_ONOFF1, 1, saved_val[0], 1);
+       i2c_read(addr, MAX8998_REG_ONOFF1, 1, val, 1);
+       /* Set ONOFF2 */
+       i2c_write(addr, MAX8998_REG_ONOFF2, 1, saved_val[1], 1);
+       i2c_read(addr, MAX8998_REG_ONOFF2, 1, val, 1);
+       /* Set ONOFF3 */
+       i2c_write(addr, MAX8998_REG_ONOFF3, 1, saved_val[2], 1);
+       i2c_read(addr, MAX8998_REG_ONOFF3, 1, val, 1);
+       /* Set ONOFF4 */
+       i2c_write(addr, MAX8998_REG_ONOFF3+1, 1, saved_val[3], 1);
+       i2c_read(addr, MAX8998_REG_ONOFF3+1, 1, val, 1);
+       printf("Waked up.\n");
+
+       /* check max17040 */
+       check_battery();
+
+       /* check fsa9480 */
+       check_micro_usb(1);
+}
+
+#ifdef CONFIG_CMD_USBDOWN
+int usb_board_init(void)
+{
+#ifdef CONFIG_CMD_PMIC
+       run_command("pmic ldo 3 on", 0);
+#endif
+
+       if (cpu_is_s5pc100()) {
+#ifdef CONFIG_HARD_I2C
+               uchar val[2] = {0,};
+
+               /* PMIC */
+               if (i2c_read(0x66, 0, 1, val, 2)) {
+                       printf("i2c_read error\n");
+                       return 1;
+               }
+
+               val[0] |= (1 << 3);
+               val[1] |= (1 << 5);
+
+               if (i2c_write(0x66, 0, 1, val, 2)) {
+                       printf("i2c_write error\n");
+                       return 1;
+               }
+               i2c_read(0x66, 0, 1, val, 2);
+#endif
+               return 0;
+       }
+
+       /* S5PC110 */
+       if (board_is_limo_universal() ||
+               board_is_limo_real() ||
+               board_is_media()) {
+               /* check usb path */
+               if (board_is_limo_real() && !hwrevision(6))
+                       check_mhl();
+       }
+
+       if (machine_is_tickertape())
+               /* USB_SEL: XM0ADDR_0: MP04[0] output mode */
+               gpio_direction_output(&s5pc110_gpio->gpio_mp0_4, 0, 0);
+
+       return 0;
+}
+#endif
+
+#ifdef CONFIG_GENERIC_MMC
+int board_mmc_init(bd_t *bis)
+{
+       unsigned int reg;
+       unsigned int clock;
+       struct s5pc110_clock *clk = (struct s5pc110_clock *)S5PC1XX_CLOCK_BASE;
+       int i;
+
+       /* MMC0 Clock source = SCLKMPLL */
+       reg = readl(&clk->src4);
+       reg &= ~0xf;
+       reg |= 0x6;
+       writel(reg, &clk->src4);
+
+       reg = readl(&clk->div4);
+       reg &= ~0xf;
+
+       /* set div value near 50MHz */
+       clock = get_pll_clk(MPLL) / 1000000;
+       for (i = 0; i < 0xf; i++) {
+               if ((clock / (i + 1)) <= 50) {
+                       reg |= i << 0;
+                       break;
+               }
+       }
+
+       writel(reg, &clk->div4);
+
+       /*
+        * MMC0 GPIO
+        * GPG0[0]      SD_0_CLK
+        * GPG0[1]      SD_0_CMD
+        * GPG0[2]      SD_0_CDn        -> Not used
+        * GPG0[3:6]    SD_0_DATA[0:3]
+        */
+       for (i = 0; i < 7; i++) {
+               if (i == 2)
+                       continue;
+               /* GPG0[0:6] special function 2 */
+               gpio_cfg_pin(&s5pc110_gpio->gpio_g0, i, 0x2);
+               /* GPG0[0:6] pull disable */
+               gpio_set_pull(&s5pc110_gpio->gpio_g0, i, GPIO_PULL_NONE);
+               /* GPG0[0:6] drv 4x */
+               gpio_set_drv(&s5pc110_gpio->gpio_g0, i, GPIO_DRV_4x);
+       }
+
+       return s5pc1xx_mmc_init(0);
+}
+#endif
+
+#ifdef CONFIG_CMD_PMIC
+static int pmic_status(void)
+{
+       unsigned char addr, val[2];
+       int reg, i;
+
+       i2c_set_bus_num(I2C_PMIC);
+       addr = 0xCC >> 1;
+       if (i2c_probe(addr)) {
+               printf("Can't found max8998\n");
+               return -1;
+       }
+
+       reg = 0x11;
+       i2c_read(addr, reg, 1, val, 1);
+       for (i = 7; i >= 4; i--)
+               printf("BUCK%d %s\n", 7 - i + 1,
+                       val[0] & (1 << i) ? "on" : "off");
+       for (; i >= 0; i--)
+               printf("LDO%d %s\n", 5 - i,
+                       val[0] & (1 << i) ? "on" : "off");
+       reg = 0x12;
+       i2c_read(addr, reg, 1, val, 1);
+       for (i = 7; i >= 0; i--)
+               printf("LDO%d %s\n", 7 - i + 6,
+                       val[0] & (1 << i) ? "on" : "off");
+       reg = 0x13;
+       i2c_read(addr, reg, 1, val, 1);
+       for (i = 7; i >= 4; i--)
+               printf("LDO%d %s\n", 7 - i + 14,
+                       val[0] & (1 << i) ? "on" : "off");
+       return 0;
+}
+
+static int pmic_ldo_control(int buck, int ldo, int on)
+{
+       unsigned char addr, val[2];
+       unsigned int reg, shift;
+
+       if (ldo) {
+               if (ldo < 2)
+                       return -1;
+               if (ldo <= 5) {
+                       reg = 0x11;
+                       shift = 5 - ldo;
+               } else if (ldo <= 13) {
+                       reg = 0x12;
+                       shift = 13 - ldo;
+               } else if (ldo <= 17) {
+                       reg = 0x13;
+                       shift = 17 - ldo + 4;
+               } else
+                       return -1;
+       } else if (buck) {
+               if (buck > 4)
+                       return -1;
+               reg = 0x11;
+               shift = 4 - buck + 4;
+       } else
+               return -1;
+
+       i2c_set_bus_num(I2C_PMIC);
+       addr = 0xCC >> 1;
+       if (i2c_probe(addr)) {
+               printf("Can't found max8998\n");
+               return -1;
+       }
+
+       i2c_read(addr, reg, 1, val, 1);
+       if (on)
+               val[0] |= (1 << shift);
+       else
+               val[0] &= ~(1 << shift);
+       i2c_write(addr, reg, 1, val, 1);
+       i2c_read(addr, reg, 1, val, 1);
+       printf("%s %d value 0x%x, %s\n", buck ? "buck" : "ldo", buck ? : ldo,
+               val[0], val[0] & (1 << shift) ? "on" : "off");
+
+       return 0;
+}
+
+static int do_pmic(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+       int buck = 0, ldo = 0, on = -1;
+
+       switch (argc) {
+       case 2:
+               if (strncmp(argv[1], "status", 6) == 0)
+                       return pmic_status();
+               break;
+       case 4:
+               if (strncmp(argv[1], "ldo", 3) == 0) {
+                       ldo = simple_strtoul(argv[2], NULL, 10);
+                       if (strncmp(argv[3], "on", 2) == 0)
+                               on = 1;
+                       else if (strncmp(argv[3], "off", 3) == 0)
+                               on = 0;
+                       else
+                               break;
+                       return pmic_ldo_control(buck, ldo, on);
+               }
+               if (strncmp(argv[1], "buck", 4) == 0) {
+                       buck = simple_strtoul(argv[2], NULL, 10);
+                       if (strncmp(argv[3], "on", 2) == 0)
+                               on = 1;
+                       else if (strncmp(argv[3], "off", 3) == 0)
+                               on = 0;
+                       else
+                               break;
+                       return pmic_ldo_control(buck, ldo, on);
+               }
+
+       default:
+               break;
+       }
+
+       cmd_usage(cmdtp);
+       return 1;
+}
+
+U_BOOT_CMD(
+       pmic,           CONFIG_SYS_MAXARGS,     1, do_pmic,
+       "PMIC LDO & BUCK control",
+       "status - Display PMIC LDO & BUCK status\n"
+       "pmic ldo num on/off - Turn on/off the LDO\n"
+       "pmic buck num on/off - Turn on/off the BUCK\n"
+);
+#endif
+
+#ifdef CONFIG_CMD_DEVICE_POWER
+
+enum {
+       POWER_NONE,
+       POWER_TOUCH,
+       POWER_3_TOUCHKEY,
+       POWER_LCD,
+       POWER_HAPTIC,
+       POWER_AUDIO_CODEC,
+       POWER_FM_RADIO,
+       POWER_BT_WIFI,
+       POWER_HDMI,
+};
+
+static void power_display_devices(void)
+{
+       printf("devices:\n");
+       printf("\t%d - touch\n", POWER_TOUCH);
+       printf("\t%d - 3 touchkey\n", POWER_3_TOUCHKEY);
+       printf("\t%d - LCD\n", POWER_LCD);
+       printf("\t%d - Haptic\n", POWER_HAPTIC);
+       printf("\t%d - Audio Codec\n", POWER_AUDIO_CODEC);
+       printf("\t%d - FM Radio\n", POWER_FM_RADIO);
+       printf("\t%d - BT/WiFi\n", POWER_BT_WIFI);
+       printf("\t%d - HDMI\n", POWER_HDMI);
+}
+
+static int power_hdmi(int on)
+{
+       /* HDMI_EN1: GPJ2[2] */
+       gpio_direction_output(&s5pc110_gpio->gpio_j2, 2, on);
+       /* MHL_ON: GPJ2[3] */
+       gpio_direction_output(&s5pc110_gpio->gpio_j2, 3, on);
+       return 0;
+}
+
+static int power_bt_wifi(int on)
+{
+       /* WLAN_BT_EN: GPB[5] */
+       gpio_direction_output(&s5pc110_gpio->gpio_b, 5, on);
+       return 0;
+}
+
+static int power_fm_radio(int on)
+{
+       /* FM_BUS_nRST: GPJ2[5] */
+       gpio_direction_output(&s5pc110_gpio->gpio_j2, 5, !on);
+       return 0;
+}
+
+static int power_audio_codec(int on)
+{
+       /* CODEC_LDO_EN: GPF3[4] */
+       gpio_direction_output(&s5pc110_gpio->gpio_f3, 4, on);
+       /* CODEC_XTAL_EN: GPH3[2] */
+       gpio_direction_output(&s5pc110_gpio->gpio_h3, 2, on);
+       return 0;
+}
+
+static int power_haptic(int on)
+{
+       /* HAPTIC_ON: GPJ1[1] */
+       gpio_direction_output(&s5pc110_gpio->gpio_j1, 1, on);
+       return 0;
+}
+
+static int power_lcd(int on)
+{
+       /* MLCD_ON: GPJ1[3] */
+       gpio_direction_output(&s5pc110_gpio->gpio_j1, 3, on);
+       return 0;
+}
+
+static int power_touch(int on)
+{
+       /* TOUCH_EN: GPG3[6] */
+       gpio_direction_output(&s5pc110_gpio->gpio_g3, 6, on);
+       return 0;
+}
+
+static int power_3_touchkey(int on)
+{
+       if (on) {
+               /* 3_TOUCH_EN - GPJ3[0] : (J1B2) */
+               /* 3_TOUCH_EN - GPJ3[5] : (not J1B2) */
+               if (board_rev & J1_B2_BOARD)
+                       gpio_direction_output(&s5pc110_gpio->gpio_j3, 0, on);
+               else
+                       gpio_direction_output(&s5pc110_gpio->gpio_j3, 5, on);
+
+               /* 3_TOUCH_CE - GPJ2[6] */
+               gpio_direction_output(&s5pc110_gpio->gpio_j2, 6, on);   /* TOUCH_CE */
+       } else {
+               /* 3_TOUCH_CE - GPJ2[6] */
+               gpio_direction_output(&s5pc110_gpio->gpio_j2, 6, on);   /* TOUCH_CE */
+       }
+
+       if (on) {
+               unsigned int reg;
+               unsigned char val[2];
+               unsigned char addr = 0x20;              /* mcs5000 3-touchkey */
+
+               /* Require 100ms */
+               udelay(80 * 1000);
+
+               /* 3 touchkey */
+               i2c_set_bus_num(I2C_GPIO6);
+
+               /* Workaround to probe */
+               if (i2c_probe(addr)) {
+                       if (i2c_probe(addr)) {
+                               printf("Can't found 3 touchkey\n");
+                               return -ENODEV;
+                       }
+               }
+
+#define MCS5000_TK_HW_VERSION  0x06
+#define MCS5000_TK_FW_VERSION  0x0A
+#define MCS5000_TK_MI_VERSION  0x0B
+
+               reg = MCS5000_TK_MI_VERSION;
+               i2c_read(addr, reg, 1, val, 1);
+               printf("3-touchkey:\tM/I 0x%x, ", val[0]);
+               reg = MCS5000_TK_HW_VERSION;
+               i2c_read(addr, reg, 1, val, 1);
+               printf("H/W 0x%x, ", val[0]);
+               reg = MCS5000_TK_FW_VERSION;
+               i2c_read(addr, reg, 1, val, 1);
+               printf("F/W 0x%x\n", val[0]);
+       }
+       return 0;
+}
+
+static int power_control(int device, int on)
+{
+       switch (device) {
+       case POWER_TOUCH:
+               return power_touch(on);
+       case POWER_3_TOUCHKEY:
+               return power_3_touchkey(on);
+       case POWER_LCD:
+               return power_lcd(on);
+       case POWER_HAPTIC:
+               return power_haptic(on);
+       case POWER_AUDIO_CODEC:
+               return power_audio_codec(on);
+       case POWER_FM_RADIO:
+               return power_fm_radio(on);
+       case POWER_BT_WIFI:
+               return power_bt_wifi(on);
+       case POWER_HDMI:
+               return power_hdmi(on);
+       default:
+               printf("I don't know device %d\n", device);
+               break;
+       }
+       return 0;
+}
+
+static int power_on(int on)
+{
+       power_touch(on);
+       power_3_touchkey(on);
+       power_lcd(on);
+       power_haptic(on);
+       power_audio_codec(on);
+       power_fm_radio(on);
+       power_bt_wifi(on);
+       power_hdmi(on);
+
+       return 0;
+}
+
+static int do_power(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+       int device, on;
+
+       if (!machine_is_aquila())
+               goto out;
+
+       switch (argc) {
+       case 2:
+               if (strncmp(argv[1], "on", 2) == 0)
+                       return power_on(1);
+               if (strncmp(argv[1], "off", 3) == 0)
+                       return power_on(0);
+               break;
+       case 3:
+               device = simple_strtoul(argv[1], NULL, 10);
+               if (device < 0)
+                       break;
+
+               if (strncmp(argv[2], "on", 2) == 0)
+                       on = 1;
+               else if (strncmp(argv[2], "off", 3) == 0)
+                       on = 0;
+               else
+                       break;
+               return power_control(device, on);
+       default:
+               break;
+       }
+out:
+       cmd_usage(cmdtp);
+       power_display_devices();
+       return 1;
+}
+
+U_BOOT_CMD(
+       power,          CONFIG_SYS_MAXARGS,     1, do_power,
+       "Device Power Management control",
+       "device on/off - Turn on/off the device\n"
+);
+#endif
diff --git a/board/samsung/p1p2/psi_ram.h b/board/samsung/p1p2/psi_ram.h
new file mode 100644 (file)
index 0000000..a9da4a0
--- /dev/null
@@ -0,0 +1,941 @@
+unsigned char g_tblBin[] =
+{
+       0x87, 0x0d, 0x00, 0xea, 0x6c, 0x69, 0x48, 0x55, 0x01, 0xa0, 0xfe, 0xfd, 0x07, 0x00, 0x01, 0x00,
+       0x00, 0xff, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+       0x00, 0x00, 0x08, 0x00, 0xff, 0xff, 0xf7, 0xff, 0x00, 0x02, 0x08, 0x00, 0x43, 0x4a, 0x4b, 0x54,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xda, 0xfe, 0x02,
+       0x0b, 0x04, 0x00, 0xea, 0x06, 0x0d, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0xea, 0x65, 0x06, 0x00, 0xea, 0x28, 0x00, 0x8f, 0xe2, 0x00, 0x0c, 0x90, 0xe8,
+       0x00, 0xa0, 0x8a, 0xe0, 0x01, 0x70, 0x4a, 0xe2, 0x00, 0xb0, 0x8b, 0xe0, 0x0b, 0x00, 0x5a, 0xe1,
+       0x5e, 0x06, 0x00, 0x0a, 0x0f, 0x00, 0xba, 0xe8, 0x14, 0xe0, 0x4f, 0xe2, 0x01, 0x00, 0x13, 0xe3,
+       0x03, 0xf0, 0x47, 0x10, 0x03, 0xf0, 0xa0, 0xe1, 0xac, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00,
+       0x01, 0x20, 0x82, 0xe0, 0x01, 0x40, 0xd0, 0xe4, 0x0f, 0x50, 0x14, 0xe2, 0x01, 0x50, 0xd0, 0x04,
+       0x24, 0x42, 0xb0, 0xe1, 0x01, 0x40, 0xd0, 0x04, 0x01, 0x50, 0x55, 0xe2, 0x03, 0x00, 0x00, 0x0a,
+       0x01, 0x30, 0xd0, 0xe4, 0x01, 0x50, 0x55, 0xe2, 0x01, 0x30, 0xc1, 0xe4, 0xfb, 0xff, 0xff, 0x1a,
+       0x01, 0x40, 0x54, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x01, 0x40, 0x54, 0xe2, 0x01, 0x50, 0xc1, 0xe4,
+       0xfc, 0xff, 0xff, 0x1a, 0x02, 0x00, 0x51, 0xe1, 0xed, 0xff, 0xff, 0x3a, 0x0e, 0xf0, 0xa0, 0xe1,
+       0x10, 0x20, 0x52, 0xe2, 0x78, 0x00, 0xb0, 0x28, 0x78, 0x00, 0xa1, 0x28, 0xfb, 0xff, 0xff, 0x8a,
+       0x82, 0x2e, 0xb0, 0xe1, 0x30, 0x00, 0xb0, 0x28, 0x30, 0x00, 0xa1, 0x28, 0x00, 0x40, 0x90, 0x45,
+       0x00, 0x40, 0x81, 0x45, 0x0e, 0xf0, 0xa0, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0x40, 0xa0, 0xe3,
+       0x00, 0x50, 0xa0, 0xe3, 0x00, 0x60, 0xa0, 0xe3, 0x10, 0x20, 0x52, 0xe2, 0x78, 0x00, 0xa1, 0x28,
+       0xfc, 0xff, 0xff, 0x8a, 0x82, 0x2e, 0xb0, 0xe1, 0x30, 0x00, 0xa1, 0x28, 0x00, 0x30, 0x81, 0x45,
+       0x0e, 0xf0, 0xa0, 0xe1, 0x3c, 0x39, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00,
+       0x90, 0x11, 0x08, 0x00, 0xb0, 0x39, 0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00,
+       0x90, 0x11, 0x08, 0x00, 0x80, 0x3a, 0x08, 0x00, 0x00, 0x30, 0xff, 0xff, 0x38, 0x06, 0x00, 0x00,
+       0x40, 0x11, 0x08, 0x00, 0x3c, 0x39, 0x08, 0x00, 0x3c, 0x39, 0x08, 0x00, 0x40, 0x01, 0x00, 0x00,
+       0xb8, 0x11, 0x08, 0x00, 0x9c, 0x3a, 0x08, 0x00, 0x38, 0x36, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00,
+       0xb8, 0x11, 0x08, 0x00, 0x10, 0x40, 0x2d, 0xe9, 0x00, 0xf0, 0x20, 0xe3, 0x1c, 0x10, 0x9f, 0xe5,
+       0x78, 0x10, 0x91, 0xe5, 0x02, 0x11, 0x01, 0xe2, 0x02, 0x21, 0xa0, 0xe3, 0xa1, 0x0f, 0x82, 0xe1,
+       0x08, 0x10, 0x9f, 0xe5, 0x78, 0x00, 0x81, 0xe5, 0x1d, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8,
+       0x00, 0x00, 0x90, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3,
+       0x00, 0x10, 0x80, 0xe5, 0x1a, 0x00, 0x00, 0xeb, 0x08, 0x00, 0x00, 0xeb, 0x10, 0x0f, 0x11, 0xee,
+       0x01, 0x0a, 0xc0, 0xe3, 0x10, 0x0f, 0x01, 0xee, 0x00, 0x00, 0x0f, 0xe1, 0x80, 0x00, 0xc0, 0xe3,
+       0x00, 0xf0, 0x21, 0xe1, 0x99, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0x7c, 0x00, 0x90, 0xe4,
+       0x11, 0x0f, 0x19, 0xee, 0x20, 0x10, 0x9f, 0xe5, 0x01, 0x00, 0x80, 0xe1, 0x01, 0x00, 0x80, 0xe3,
+       0x11, 0x0f, 0x09, 0xee, 0x31, 0x0f, 0x19, 0xee, 0x10, 0x10, 0x9f, 0xe5, 0x01, 0x00, 0x80, 0xe1,
+       0x01, 0x00, 0x80, 0xe3, 0x31, 0x0f, 0x09, 0xee, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x30, 0xff, 0xff,
+       0x00, 0x00, 0xff, 0xff, 0x10, 0x40, 0x2d, 0xe9, 0xb7, 0x01, 0x00, 0xeb, 0xe1, 0xff, 0xff, 0xeb,
+       0x10, 0x80, 0xbd, 0xe8, 0x00, 0x10, 0x0f, 0xe1, 0xa4, 0x00, 0x9f, 0xe5, 0x07, 0x00, 0xc0, 0xe3,
+       0x00, 0x20, 0x0f, 0xe1, 0x1f, 0x20, 0xc2, 0xe3, 0x12, 0x20, 0x82, 0xe3, 0x02, 0xf0, 0x2f, 0xe1,
+       0x00, 0xd0, 0xa0, 0xe1, 0x88, 0x00, 0x9f, 0xe5, 0x07, 0x00, 0xc0, 0xe3, 0x00, 0x20, 0x0f, 0xe1,
+       0x1f, 0x20, 0xc2, 0xe3, 0x11, 0x20, 0x82, 0xe3, 0x02, 0xf0, 0x2f, 0xe1, 0x00, 0xd0, 0xa0, 0xe1,
+       0x70, 0x00, 0x9f, 0xe5, 0x07, 0x00, 0xc0, 0xe3, 0x00, 0x20, 0x0f, 0xe1, 0x1f, 0x20, 0xc2, 0xe3,
+       0x1b, 0x20, 0x82, 0xe3, 0x02, 0xf0, 0x2f, 0xe1, 0x00, 0xd0, 0xa0, 0xe1, 0x58, 0x00, 0x9f, 0xe5,
+       0x00, 0x20, 0x0f, 0xe1, 0x1f, 0x20, 0xc2, 0xe3, 0x17, 0x20, 0x82, 0xe3, 0x02, 0xf0, 0x2f, 0xe1,
+       0x00, 0xd0, 0xa0, 0xe1, 0x44, 0x00, 0x9f, 0xe5, 0x07, 0x00, 0xc0, 0xe3, 0x00, 0x20, 0x0f, 0xe1,
+       0x1f, 0x20, 0xc2, 0xe3, 0x13, 0x20, 0x82, 0xe3, 0x02, 0xf0, 0x2f, 0xe1, 0x00, 0xd0, 0xa0, 0xe1,
+       0x2c, 0x00, 0x9f, 0xe5, 0x07, 0x00, 0xc0, 0xe3, 0x00, 0x20, 0x0f, 0xe1, 0x1f, 0x20, 0xc2, 0xe3,
+       0x1f, 0x20, 0x82, 0xe3, 0x02, 0xf0, 0x2f, 0xe1, 0x00, 0xd0, 0xa0, 0xe1, 0x01, 0xf0, 0x2f, 0xe1,
+       0x1e, 0xff, 0x2f, 0xe1, 0x80, 0xd2, 0x09, 0x00, 0x00, 0xe4, 0x09, 0x00, 0x00, 0xd1, 0x09, 0x00,
+       0x80, 0xe2, 0x09, 0x00, 0x00, 0xe3, 0x09, 0x00, 0x04, 0x30, 0x9f, 0xe5, 0x03, 0x30, 0x8f, 0xe0,
+       0x03, 0xf0, 0xa0, 0xe1, 0x7c, 0x22, 0x00, 0x00, 0x10, 0x40, 0x2d, 0xe9, 0x77, 0x02, 0x00, 0xeb,
+       0xb0, 0x04, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x77, 0x40, 0x2d, 0xe9, 0x04, 0xd0, 0x4d, 0xe2,
+       0x01, 0x50, 0xa0, 0xe1, 0x02, 0x40, 0xa0, 0xe1, 0x04, 0x00, 0xdd, 0xe5, 0x04, 0x00, 0x50, 0xe3,
+       0x04, 0x00, 0x00, 0xba, 0x04, 0x00, 0xdd, 0xe5, 0xc6, 0x00, 0x50, 0xe3, 0x01, 0x00, 0x00, 0xca,
+       0x01, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x50, 0xe3,
+       0x09, 0x00, 0x00, 0x1a, 0x97, 0x3f, 0x8f, 0xe2, 0x00, 0x30, 0x8d, 0xe5, 0x81, 0x30, 0xa0, 0xe3,
+       0x04, 0x20, 0x8d, 0xe2, 0x01, 0x10, 0xa0, 0xe3, 0x74, 0x02, 0x9f, 0xe5, 0xad, 0x03, 0x00, 0xeb,
+       0x01, 0x00, 0xe0, 0xe3, 0x10, 0xd0, 0x8d, 0xe2, 0x70, 0x80, 0xbd, 0xe8, 0x00, 0x00, 0x54, 0xe3,
+       0x03, 0x00, 0x00, 0x0a, 0x5c, 0x02, 0x9f, 0xe5, 0x04, 0x10, 0xdd, 0xe5, 0x81, 0x01, 0x90, 0xe7,
+       0x00, 0x00, 0x84, 0xe5, 0x4c, 0x02, 0x9f, 0xe5, 0x04, 0x10, 0xdd, 0xe5, 0x81, 0x51, 0x80, 0xe7,
+       0x00, 0x00, 0xa0, 0xe3, 0xf2, 0xff, 0xff, 0xea, 0x11, 0x40, 0x2d, 0xe9, 0x04, 0xd0, 0x4d, 0xe2,
+       0x04, 0x00, 0xdd, 0xe5, 0x04, 0x00, 0x50, 0xe3, 0x04, 0x00, 0x00, 0xba, 0x04, 0x00, 0xdd, 0xe5,
+       0xc6, 0x00, 0x50, 0xe3, 0x01, 0x00, 0x00, 0xca, 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x00, 0xea,
+       0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x50, 0xe3, 0x08, 0x00, 0x00, 0x1a, 0x75, 0x3f, 0x8f, 0xe2,
+       0x00, 0x30, 0x8d, 0xe5, 0xc4, 0x30, 0xa0, 0xe3, 0x04, 0x20, 0x8d, 0xe2, 0x01, 0x10, 0xa0, 0xe3,
+       0xec, 0x01, 0x9f, 0xe5, 0x8b, 0x03, 0x00, 0xeb, 0x01, 0x00, 0xe0, 0xe3, 0x1c, 0x80, 0xbd, 0xe8,
+       0x01, 0x00, 0xa0, 0xe3, 0xdc, 0x11, 0x9f, 0xe5, 0x04, 0x20, 0xdd, 0xe5, 0x82, 0x11, 0x81, 0xe0,
+       0x04, 0x00, 0xc1, 0xe5, 0x04, 0x00, 0xdd, 0xe5, 0xc8, 0x21, 0x9f, 0xe5, 0x80, 0x21, 0x82, 0xe0,
+       0x05, 0x10, 0xd2, 0xe5, 0xc0, 0x21, 0x9f, 0xe5, 0x00, 0x11, 0x82, 0xe7, 0x00, 0xf0, 0x20, 0xe3,
+       0xb8, 0x01, 0x9f, 0xe5, 0x00, 0x00, 0x90, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x08, 0x00, 0x00, 0x1a,
+       0x00, 0xf0, 0x20, 0xe3, 0x50, 0x00, 0x42, 0xe2, 0x80, 0x04, 0x90, 0xe5, 0x01, 0x00, 0x80, 0xe3,
+       0x50, 0x10, 0x42, 0xe2, 0x80, 0x04, 0x81, 0xe5, 0x01, 0x00, 0xa0, 0xe3, 0x8c, 0x11, 0x9f, 0xe5,
+       0x00, 0x00, 0x81, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0xe3, 0xff, 0xff, 0xea, 0x11, 0x40, 0x2d, 0xe9,
+       0x04, 0xd0, 0x4d, 0xe2, 0x04, 0x00, 0xdd, 0xe5, 0x04, 0x00, 0x50, 0xe3, 0x04, 0x00, 0x00, 0xba,
+       0x04, 0x00, 0xdd, 0xe5, 0xc6, 0x00, 0x50, 0xe3, 0x01, 0x00, 0x00, 0xca, 0x01, 0x00, 0xa0, 0xe3,
+       0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x50, 0xe3, 0x08, 0x00, 0x00, 0x1a,
+       0x11, 0x3e, 0x8f, 0xe2, 0x00, 0x30, 0x8d, 0xe5, 0xde, 0x30, 0xa0, 0xe3, 0x04, 0x20, 0x8d, 0xe2,
+       0x01, 0x10, 0xa0, 0xe3, 0x28, 0x01, 0x9f, 0xe5, 0x5a, 0x03, 0x00, 0xeb, 0x01, 0x00, 0xe0, 0xe3,
+       0x1c, 0x80, 0xbd, 0xe8, 0x00, 0x00, 0xa0, 0xe3, 0x18, 0x11, 0x9f, 0xe5, 0x04, 0x20, 0xdd, 0xe5,
+       0x82, 0x11, 0x81, 0xe0, 0x04, 0x00, 0xc1, 0xe5, 0x04, 0x00, 0xdd, 0xe5, 0x08, 0x11, 0x9f, 0xe5,
+       0x00, 0x20, 0xa0, 0xe3, 0x00, 0x21, 0x81, 0xe7, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0xa0, 0xe3,
+       0xf2, 0xff, 0xff, 0xea, 0x77, 0x40, 0x2d, 0xe9, 0x04, 0xd0, 0x4d, 0xe2, 0x01, 0x40, 0xa0, 0xe1,
+       0x02, 0x50, 0xa0, 0xe1, 0x04, 0x00, 0xdd, 0xe5, 0x04, 0x00, 0x50, 0xe3, 0x04, 0x00, 0x00, 0xba,
+       0x04, 0x00, 0xdd, 0xe5, 0xc6, 0x00, 0x50, 0xe3, 0x01, 0x00, 0x00, 0xca, 0x01, 0x00, 0xa0, 0xe3,
+       0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x50, 0xe3, 0x08, 0x00, 0x00, 0x0a,
+       0x00, 0x00, 0x54, 0xe3, 0x03, 0x00, 0x00, 0xba, 0x0f, 0x00, 0x54, 0xe3, 0x01, 0x00, 0x00, 0xca,
+       0x01, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x50, 0xe3,
+       0x09, 0x00, 0x00, 0x1a, 0x5c, 0x30, 0x8f, 0xe2, 0x00, 0x30, 0x8d, 0xe5, 0xa7, 0x30, 0xa0, 0xe3,
+       0x04, 0x20, 0x8d, 0xe2, 0x01, 0x10, 0xa0, 0xe3, 0x74, 0x00, 0x9f, 0xe5, 0x2d, 0x03, 0x00, 0xeb,
+       0x01, 0x00, 0xe0, 0xe3, 0x10, 0xd0, 0x8d, 0xe2, 0x70, 0x80, 0xbd, 0xe8, 0x00, 0x00, 0x55, 0xe3,
+       0x04, 0x00, 0x00, 0x0a, 0x5c, 0x00, 0x9f, 0xe5, 0x04, 0x10, 0xdd, 0xe5, 0x81, 0x01, 0x80, 0xe0,
+       0x05, 0x00, 0xd0, 0xe5, 0x00, 0x00, 0x85, 0xe5, 0x00, 0x00, 0x54, 0xe3, 0x02, 0x00, 0x00, 0x1a,
+       0x04, 0x00, 0xdd, 0xe5, 0xb0, 0xff, 0xff, 0xeb, 0xf1, 0xff, 0xff, 0xea, 0x04, 0x00, 0xdd, 0xe5,
+       0x7c, 0xff, 0xff, 0xeb, 0xee, 0xff, 0xff, 0xea, 0x64, 0x77, 0x64, 0x74, 0x6f, 0x6f, 0x6c, 0x73,
+       0x72, 0x63, 0x5c, 0x62, 0x6f, 0x6f, 0x74, 0x63, 0x6f, 0x72, 0x65, 0x5c, 0x64, 0x72, 0x69, 0x76,
+       0x65, 0x72, 0x73, 0x5c, 0x49, 0x63, 0x75, 0x5c, 0x73, 0x72, 0x63, 0x5c, 0x69, 0x63, 0x75, 0x2e,
+       0x63, 0x00, 0x00, 0x00, 0xfc, 0x08, 0x00, 0x00, 0x00, 0x30, 0xff, 0xff, 0x50, 0x00, 0x00, 0xe0,
+       0x38, 0x36, 0xff, 0xff, 0x00, 0xf0, 0x20, 0xe3, 0x28, 0x02, 0x9f, 0xe5, 0x88, 0x04, 0x90, 0xe5,
+       0x0f, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x50, 0xe3, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0xa0, 0xe3,
+       0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0xa0, 0xe3,
+       0x1e, 0xff, 0x2f, 0xe1, 0xf3, 0x40, 0x2d, 0xe9, 0x04, 0xd0, 0x4d, 0xe2, 0x01, 0x40, 0xa0, 0xe1,
+       0x04, 0x00, 0xdd, 0xe5, 0x04, 0x00, 0x50, 0xe3, 0x04, 0x00, 0x00, 0xba, 0x04, 0x00, 0xdd, 0xe5,
+       0xc6, 0x00, 0x50, 0xe3, 0x01, 0x00, 0x00, 0xca, 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x00, 0xea,
+       0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x50, 0xe3, 0x08, 0x00, 0x00, 0x1a, 0xac, 0x30, 0x4f, 0xe2,
+       0x00, 0x30, 0x8d, 0xe5, 0x45, 0x3f, 0xa0, 0xe3, 0x04, 0x20, 0x8d, 0xe2, 0x01, 0x10, 0xa0, 0xe3,
+       0x94, 0x00, 0x1f, 0xe5, 0xeb, 0x02, 0x00, 0xeb, 0x01, 0x00, 0xe0, 0xe3, 0xfe, 0x80, 0xbd, 0xe8,
+       0x04, 0x20, 0xdd, 0xe5, 0x00, 0x00, 0x54, 0xe3, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0xa0, 0xe3,
+       0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0xc0, 0xa0, 0xe1, 0x84, 0x01, 0x9f, 0xe5,
+       0xa2, 0x12, 0xa0, 0xe1, 0x1f, 0x30, 0x02, 0xe2, 0x00, 0x00, 0x5c, 0xe3, 0x04, 0x00, 0x00, 0x0a,
+       0x01, 0xe1, 0x90, 0xe7, 0x01, 0x50, 0xa0, 0xe3, 0x15, 0xe3, 0x8e, 0xe1, 0x01, 0xe1, 0x80, 0xe7,
+       0x04, 0x00, 0x00, 0xea, 0x01, 0xe1, 0x90, 0xe7, 0x01, 0x50, 0xa0, 0xe3, 0x15, 0x53, 0xe0, 0xe1,
+       0x05, 0xe0, 0x0e, 0xe0, 0x01, 0xe1, 0x80, 0xe7, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3,
+       0x00, 0x00, 0xa0, 0xe3, 0xe4, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0x1e, 0xff, 0x2f, 0xe1,
+       0x10, 0x40, 0x2d, 0xe9, 0x04, 0x40, 0xa0, 0xe3, 0x08, 0x00, 0x00, 0xea, 0x1c, 0x01, 0x1f, 0xe5,
+       0x84, 0x01, 0x80, 0xe0, 0x04, 0x00, 0xd0, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x01, 0x00, 0x00, 0x0a,
+       0x04, 0x00, 0xa0, 0xe1, 0x23, 0xff, 0xff, 0xeb, 0x01, 0x00, 0x84, 0xe2, 0xff, 0x40, 0x00, 0xe2,
+       0xc6, 0x00, 0x54, 0xe3, 0xf4, 0xff, 0xff, 0xda, 0x40, 0x01, 0x1f, 0xe5, 0x00, 0x00, 0x90, 0xe5,
+       0x00, 0x00, 0x50, 0xe3, 0x06, 0x00, 0x00, 0x0a, 0x00, 0xf0, 0x20, 0xe3, 0xe4, 0x00, 0x9f, 0xe5,
+       0x80, 0x04, 0x90, 0xe5, 0x01, 0x00, 0x80, 0xe3, 0xd8, 0x10, 0x9f, 0xe5, 0x80, 0x04, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0xa0, 0xe3, 0x10, 0x80, 0xbd, 0xe8, 0x00, 0x10, 0xa0, 0xe1,
+       0x00, 0x00, 0xa0, 0xe3, 0x1e, 0xff, 0x2f, 0xe1, 0x71, 0x40, 0x2d, 0xe9, 0x04, 0xd0, 0x4d, 0xe2,
+       0x00, 0x40, 0xa0, 0xe3, 0x04, 0x00, 0xdd, 0xe5, 0x0f, 0x00, 0x50, 0xe3, 0x07, 0x00, 0x00, 0xda,
+       0x1d, 0x3e, 0x4f, 0xe2, 0x00, 0x30, 0x8d, 0xe5, 0x9c, 0x30, 0x9f, 0xe5, 0x04, 0x20, 0x8d, 0xe2,
+       0x01, 0x10, 0xa0, 0xe3, 0xb8, 0x01, 0x1f, 0xe5, 0xa2, 0x02, 0x00, 0xeb, 0x10, 0x00, 0x00, 0xea,
+       0x34, 0x03, 0x00, 0xeb, 0x00, 0x50, 0xa0, 0xe1, 0x00, 0xf0, 0x20, 0xe3, 0x74, 0x00, 0x9f, 0xe5,
+       0x70, 0x04, 0x90, 0xe5, 0x0f, 0x00, 0x00, 0xe2, 0x00, 0x40, 0xa0, 0xe1, 0x04, 0x00, 0xdd, 0xe5,
+       0x60, 0x10, 0x9f, 0xe5, 0x70, 0x14, 0x91, 0xe5, 0x0f, 0x10, 0xc1, 0xe3, 0x0f, 0x20, 0x00, 0xe2,
+       0x02, 0x10, 0x81, 0xe1, 0x4c, 0x20, 0x9f, 0xe5, 0x70, 0x14, 0x82, 0xe5, 0x05, 0x00, 0xa0, 0xe1,
+       0x30, 0x03, 0x00, 0xeb, 0x04, 0x00, 0xa0, 0xe1, 0x7c, 0x80, 0xbd, 0xe8, 0x00, 0x00, 0xa0, 0xe3,
+       0x00, 0x00, 0x0f, 0xe1, 0xa0, 0x03, 0xe0, 0xe1, 0x01, 0x00, 0x00, 0xe2, 0x1e, 0xff, 0x2f, 0xe1,
+       0x00, 0x00, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0x0f, 0xe1, 0x80, 0x10, 0x80, 0xe3,
+       0x01, 0xf0, 0x21, 0xe1, 0xa0, 0x03, 0xe0, 0xe1, 0x01, 0x00, 0x00, 0xe2, 0x00, 0x10, 0xa0, 0xe1,
+       0x01, 0x00, 0xa0, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x00, 0xe0, 0x7b, 0x01, 0x00, 0x00,
+       0x00, 0xf0, 0x20, 0xe3, 0x80, 0x32, 0x9f, 0xe5, 0x24, 0x30, 0x93, 0xe5, 0x03, 0x10, 0xa0, 0xe1,
+       0x00, 0xf0, 0x20, 0xe3, 0x70, 0x32, 0x9f, 0xe5, 0x24, 0x30, 0x93, 0xe5, 0x01, 0x30, 0x03, 0xe2,
+       0x00, 0x00, 0x53, 0xe3, 0x03, 0x00, 0x00, 0x0a, 0x00, 0xf0, 0x20, 0xe3, 0x58, 0x32, 0x9f, 0xe5,
+       0x2c, 0x00, 0x93, 0xe5, 0x03, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x48, 0x32, 0x9f, 0xe5,
+       0x28, 0x00, 0x93, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0xff, 0x3c, 0xc1, 0xe3, 0xfe, 0x30, 0xc3, 0xe3,
+       0x0c, 0xc0, 0x00, 0xe2, 0x0c, 0x30, 0x83, 0xe1, 0xf0, 0x20, 0x83, 0xe3, 0x00, 0xf0, 0x20, 0xe3,
+       0x24, 0x32, 0x9f, 0xe5, 0x24, 0x20, 0x83, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x10, 0x40, 0x2d, 0xe9,
+       0xe2, 0xff, 0xff, 0xeb, 0x00, 0xf0, 0x20, 0xe3, 0x0c, 0x02, 0x9f, 0xe5, 0x24, 0x00, 0x90, 0xe5,
+       0x00, 0x40, 0xa0, 0xe1, 0x74, 0x40, 0xff, 0xe6, 0xf0, 0x40, 0x84, 0xe3, 0x02, 0x40, 0x84, 0xe3,
+       0x01, 0x40, 0xc4, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0xec, 0x01, 0x9f, 0xe5, 0x24, 0x40, 0x80, 0xe5,
+       0x10, 0x80, 0xbd, 0xe8, 0x10, 0x40, 0x2d, 0xe9, 0xd4, 0xff, 0xff, 0xeb, 0x00, 0xf0, 0x20, 0xe3,
+       0xd4, 0x01, 0x9f, 0xe5, 0x24, 0x00, 0x90, 0xe5, 0x00, 0x40, 0xa0, 0xe1, 0x74, 0x40, 0xff, 0xe6,
+       0xf0, 0x40, 0x84, 0xe3, 0x02, 0x40, 0x84, 0xe3, 0x01, 0x40, 0x84, 0xe3, 0x00, 0xf0, 0x20, 0xe3,
+       0xb4, 0x01, 0x9f, 0xe5, 0x24, 0x40, 0x80, 0xe5, 0x10, 0x80, 0xbd, 0xe8, 0x04, 0xe0, 0x2d, 0xe5,
+       0xe1, 0xff, 0xff, 0xeb, 0x00, 0xf0, 0x20, 0xe3, 0x9c, 0x01, 0x9f, 0xe5, 0x28, 0x00, 0x90, 0xe5,
+       0x04, 0x00, 0xc0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x04, 0x20, 0xa0, 0xe3, 0x01, 0x11, 0x02, 0xe0,
+       0x01, 0x00, 0x80, 0xe1, 0x80, 0x11, 0x9f, 0xe5, 0x28, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3,
+       0x00, 0x00, 0x81, 0xe2, 0x28, 0x00, 0x90, 0xe5, 0x08, 0x00, 0xc0, 0xe3, 0x01, 0x10, 0xa0, 0xe3,
+       0x08, 0x20, 0xa0, 0xe3, 0x81, 0x11, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0x58, 0x11, 0x9f, 0xe5,
+       0x28, 0x00, 0x81, 0xe5, 0xda, 0xff, 0xff, 0xeb, 0x04, 0xf0, 0x9d, 0xe4, 0x00, 0xf0, 0x20, 0xe3,
+       0x44, 0x01, 0x9f, 0xe5, 0x60, 0x00, 0x90, 0xe5, 0x00, 0x08, 0xa0, 0xe1, 0x20, 0x0c, 0xa0, 0xe1,
+       0x1e, 0xff, 0x2f, 0xe1, 0x70, 0x40, 0x2d, 0xe9, 0x00, 0x50, 0xa0, 0xe1, 0x01, 0x40, 0xa0, 0xe1,
+       0x00, 0x60, 0xa0, 0xe3, 0x01, 0x00, 0x55, 0xe3, 0x04, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x55, 0xe3,
+       0x05, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x55, 0xe3, 0x09, 0x00, 0x00, 0x1a, 0x05, 0x00, 0x00, 0xea,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0x07, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3,
+       0x02, 0x62, 0x86, 0xe3, 0x04, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x03, 0x62, 0x86, 0xe3,
+       0x01, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3,
+       0x01, 0x00, 0x14, 0xe3, 0x00, 0x00, 0x00, 0x0a, 0x10, 0x60, 0x86, 0xe3, 0x02, 0x00, 0x14, 0xe3,
+       0x00, 0x00, 0x00, 0x0a, 0x08, 0x60, 0x86, 0xe3, 0x04, 0x00, 0x14, 0xe3, 0x00, 0x00, 0x00, 0x0a,
+       0x04, 0x60, 0x86, 0xe3, 0x08, 0x00, 0x14, 0xe3, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x60, 0x86, 0xe3,
+       0x98, 0x02, 0x00, 0xeb, 0xa0, 0xff, 0xff, 0xeb, 0x00, 0xf0, 0x20, 0xe3, 0x98, 0x00, 0x9f, 0xe5,
+       0x14, 0x60, 0x80, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0xfe, 0xff, 0xff, 0xea, 0x10, 0x40, 0x2d, 0xe9,
+       0x0f, 0x40, 0xa0, 0xe3, 0x04, 0x10, 0xa0, 0xe1, 0x01, 0x00, 0xa0, 0xe3, 0xd0, 0xff, 0xff, 0xeb,
+       0x10, 0x80, 0xbd, 0xe8, 0x00, 0xf0, 0x20, 0xe3, 0x6c, 0x00, 0x9f, 0xe5, 0x18, 0x07, 0x90, 0xe5,
+       0x03, 0x00, 0x00, 0xe2, 0x01, 0x00, 0x50, 0xe3, 0x05, 0x00, 0x00, 0x0a, 0x00, 0xf0, 0x20, 0xe3,
+       0x54, 0x00, 0x9f, 0xe5, 0x18, 0x07, 0x90, 0xe5, 0x03, 0x00, 0x00, 0xe2, 0x03, 0x00, 0x50, 0xe3,
+       0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0xa0, 0xe3, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0xa0, 0xe3,
+       0xfc, 0xff, 0xff, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x2c, 0x00, 0x9f, 0xe5, 0x78, 0x00, 0x90, 0xe5,
+       0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xf0, 0x20, 0xe3, 0x1c, 0x10, 0x9f, 0xe5, 0x78, 0x00, 0x81, 0xe5,
+       0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xf0, 0x20, 0xe3, 0x0c, 0x00, 0x9f, 0xe5, 0x10, 0x00, 0x90, 0xe5,
+       0x00, 0x06, 0xa0, 0xe1, 0x20, 0x0e, 0xa0, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x90, 0xe4,
+       0x00, 0xf0, 0x20, 0xe3, 0x48, 0x01, 0x9f, 0xe5, 0x00, 0x00, 0x90, 0xe5, 0x01, 0x0c, 0x50, 0xe3,
+       0x04, 0x00, 0x00, 0x0a, 0x00, 0xf0, 0x20, 0xe3, 0x01, 0x0c, 0xa0, 0xe3, 0x30, 0x11, 0x9f, 0xe5,
+       0x00, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xf0, 0x20, 0xe3,
+       0x03, 0x00, 0xa0, 0xe3, 0x18, 0x11, 0x9f, 0xe5, 0x00, 0x00, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1,
+       0x70, 0x40, 0x2d, 0xe9, 0x00, 0xf0, 0x20, 0xe3, 0x04, 0x01, 0x9f, 0xe5, 0x24, 0x00, 0x90, 0xe5,
+       0x00, 0x50, 0xa0, 0xe1, 0xfc, 0x10, 0x9f, 0xe5, 0xf3, 0x04, 0x00, 0xeb, 0x00, 0x40, 0xa0, 0xe1,
+       0xf4, 0x00, 0x9f, 0xe5, 0x08, 0x00, 0x90, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x0b, 0x00, 0x00, 0x0a,
+       0xe4, 0x00, 0x9f, 0xe5, 0x04, 0x00, 0x90, 0xe5, 0x04, 0x00, 0x50, 0xe1, 0x03, 0x00, 0x00, 0x8a,
+       0xd4, 0x00, 0x9f, 0xe5, 0x00, 0x00, 0x90, 0xe5, 0x04, 0x00, 0x50, 0xe1, 0x01, 0x00, 0x00, 0x8a,
+       0x00, 0x00, 0xa0, 0xe3, 0x70, 0x80, 0xbd, 0xe8, 0x01, 0x00, 0xa0, 0xe3, 0xfc, 0xff, 0xff, 0xea,
+       0xb4, 0x00, 0x9f, 0xe5, 0x04, 0x00, 0x90, 0xe5, 0x04, 0x00, 0x50, 0xe1, 0x01, 0x00, 0x00, 0x9a,
+       0x00, 0x00, 0xa0, 0xe3, 0xf6, 0xff, 0xff, 0xea, 0x01, 0x00, 0xa0, 0xe3, 0xf4, 0xff, 0xff, 0xea,
+       0x70, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0xcc, 0xff, 0xff, 0xeb, 0x00, 0xf0, 0x20, 0xe3,
+       0x7c, 0x00, 0x9f, 0xe5, 0x24, 0x00, 0x90, 0xe5, 0x00, 0x50, 0xa0, 0xe1, 0x74, 0x10, 0x9f, 0xe5,
+       0xd1, 0x04, 0x00, 0xeb, 0x70, 0x10, 0x9f, 0xe5, 0x00, 0x00, 0x81, 0xe5, 0x00, 0x00, 0x81, 0xe2,
+       0x00, 0x00, 0x90, 0xe5, 0x04, 0x00, 0x80, 0xe0, 0x04, 0x00, 0x81, 0xe5, 0x00, 0x00, 0x81, 0xe2,
+       0x04, 0x00, 0x90, 0xe5, 0x00, 0x10, 0x91, 0xe5, 0x01, 0x00, 0x50, 0xe1, 0x03, 0x00, 0x00, 0x9a,
+       0x00, 0x00, 0xa0, 0xe3, 0x40, 0x10, 0x9f, 0xe5, 0x08, 0x00, 0x81, 0xe5, 0x02, 0x00, 0x00, 0xea,
+       0x01, 0x00, 0xa0, 0xe3, 0x30, 0x10, 0x9f, 0xe5, 0x08, 0x00, 0x81, 0xe5, 0x70, 0x80, 0xbd, 0xe8,
+       0x10, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x04, 0x00, 0xa0, 0xe1, 0xdf, 0xff, 0xff, 0xeb,
+       0x00, 0xf0, 0x20, 0xe3, 0xbd, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0xfc, 0xff, 0xff, 0x0a,
+       0x10, 0x80, 0xbd, 0xe8, 0x00, 0x00, 0x50, 0xe4, 0x59, 0x06, 0x00, 0x00, 0x3c, 0x39, 0x08, 0x00,
+       0x10, 0x40, 0x2d, 0xe9, 0x86, 0xff, 0xff, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x10, 0x40, 0x2d, 0xe9,
+       0x93, 0xff, 0xff, 0xeb, 0x00, 0x40, 0xa0, 0xe1, 0x07, 0x00, 0xa0, 0xe3, 0x24, 0x0e, 0x00, 0xe0,
+       0x10, 0x80, 0xbd, 0xe8, 0x10, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe3, 0x8c, 0xff, 0xff, 0xeb,
+       0x00, 0x40, 0xa0, 0xe1, 0x0e, 0x46, 0xc4, 0xe3, 0x04, 0x00, 0xa0, 0xe1, 0x8c, 0xff, 0xff, 0xeb,
+       0x10, 0x80, 0xbd, 0xe8, 0xf0, 0x41, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x00, 0x50, 0xa0, 0xe3,
+       0x00, 0x70, 0xa0, 0xe3, 0x04, 0x60, 0xa0, 0xe1, 0x06, 0x40, 0xa0, 0xe1, 0x07, 0x60, 0x06, 0xe2,
+       0x7f, 0xff, 0xff, 0xeb, 0x00, 0x50, 0xa0, 0xe1, 0x0e, 0x56, 0xc5, 0xe3, 0x86, 0x7a, 0x85, 0xe1,
+       0x07, 0x00, 0xa0, 0xe1, 0x7e, 0xff, 0xff, 0xeb, 0xf0, 0x81, 0xbd, 0xe8, 0x70, 0x40, 0x2d, 0xe9,
+       0x00, 0x50, 0xa0, 0xe3, 0x00, 0x40, 0xa0, 0xe3, 0x75, 0xff, 0xff, 0xeb, 0x00, 0x50, 0xa0, 0xe1,
+       0x07, 0x00, 0xa0, 0xe3, 0xa5, 0x4a, 0x00, 0xe0, 0x04, 0x00, 0xa0, 0xe1, 0x70, 0x80, 0xbd, 0xe8,
+       0x70, 0x40, 0x2d, 0xe9, 0x00, 0x50, 0xa0, 0xe3, 0x00, 0x40, 0xa0, 0xe3, 0x6c, 0xff, 0xff, 0xeb,
+       0x00, 0x50, 0xa0, 0xe1, 0x07, 0x00, 0xa0, 0xe3, 0x25, 0x4e, 0x00, 0xe0, 0x04, 0x00, 0xa0, 0xe1,
+       0x70, 0x80, 0xbd, 0xe8, 0x10, 0x40, 0x2d, 0xe9, 0x4f, 0xff, 0xff, 0xeb, 0x10, 0x80, 0xbd, 0xe8,
+       0x10, 0x40, 0x2d, 0xe9, 0x25, 0x05, 0x00, 0xeb, 0xa1, 0x04, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8,
+       0x10, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe3, 0x65, 0xff, 0xff, 0xeb, 0x01, 0x00, 0x50, 0xe3,
+       0x04, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x50, 0xe3, 0x0c, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x50, 0xe3,
+       0x1e, 0x00, 0x00, 0x1a, 0x13, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3,
+       0x8c, 0x00, 0x9f, 0xe5, 0x10, 0x00, 0x90, 0xe5, 0x00, 0x09, 0xa0, 0xe1, 0xa0, 0x0f, 0xa0, 0xe1,
+       0x00, 0x00, 0x50, 0xe3, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x40, 0xa0, 0xe3, 0x16, 0x00, 0x00, 0xea,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0x64, 0x00, 0x9f, 0xe5, 0x10, 0x00, 0x90, 0xe5,
+       0x00, 0x09, 0xa0, 0xe1, 0xa0, 0x0f, 0xa0, 0xe1, 0x01, 0x00, 0x50, 0xe3, 0x00, 0x00, 0x00, 0x1a,
+       0x02, 0x40, 0xa0, 0xe3, 0x0c, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3,
+       0x3c, 0x00, 0x9f, 0xe5, 0x10, 0x00, 0x90, 0xe5, 0x00, 0x09, 0xa0, 0xe1, 0xa0, 0x0f, 0xa0, 0xe1,
+       0x00, 0x00, 0x50, 0xe3, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x40, 0xa0, 0xe3, 0x02, 0x00, 0x00, 0xea,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x40, 0xa0, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3,
+       0x04, 0x00, 0xa0, 0xe1, 0x10, 0x80, 0xbd, 0xe8, 0x00, 0x20, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3,
+       0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x00, 0xe8, 0x00, 0xf0, 0x20, 0xe3, 0xfe, 0xff, 0xff, 0xea,
+       0x00, 0xf0, 0x20, 0xe3, 0xfe, 0xff, 0xff, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0xfe, 0xff, 0xff, 0xea,
+       0x00, 0xf0, 0x20, 0xe3, 0xfe, 0xff, 0xff, 0xea, 0xff, 0x20, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3,
+       0x00, 0x00, 0x50, 0xe3, 0x03, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xea, 0x01, 0x10, 0x81, 0xe2,
+       0x00, 0x00, 0x52, 0xe3, 0xfc, 0xff, 0xff, 0xca, 0x01, 0x20, 0xa0, 0xe1, 0x1e, 0xff, 0x2f, 0xe1,
+       0x10, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x04, 0x00, 0xa0, 0xe1, 0xf1, 0xff, 0xff, 0xeb,
+       0x10, 0x80, 0xbd, 0xe8, 0x3f, 0x40, 0x2d, 0xe9, 0x00, 0xe0, 0xa0, 0xe1, 0x01, 0xc0, 0xa0, 0xe1,
+       0x02, 0x40, 0xa0, 0xe1, 0x03, 0x50, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x8d, 0xe5,
+       0x04, 0xc0, 0x8d, 0xe5, 0x08, 0x00, 0x8d, 0xe5, 0x0c, 0x00, 0x8d, 0xe5, 0x0f, 0x00, 0x9d, 0xe8,
+       0x10, 0xd0, 0x8d, 0xe2, 0x30, 0x80, 0xbd, 0xe8, 0x04, 0xe0, 0x2d, 0xe5, 0x00, 0xc0, 0xa0, 0xe1,
+       0x00, 0x00, 0xe0, 0xe3, 0x05, 0x00, 0x51, 0xe3, 0x01, 0xf1, 0x8f, 0x90, 0x17, 0x00, 0x00, 0xea,
+       0x04, 0x00, 0x00, 0xea, 0x06, 0x00, 0x00, 0xea, 0x08, 0x00, 0x00, 0xea, 0x0d, 0x00, 0x00, 0xea,
+       0x0f, 0x00, 0x00, 0xea, 0x08, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0xe0, 0xe3,
+       0x10, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0xe0, 0xe3, 0x0d, 0x00, 0x00, 0xea,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0xe0, 0xe3, 0x0a, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3,
+       0x00, 0x00, 0xe0, 0xe3, 0x07, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0xe0, 0xe3,
+       0x04, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0xe0, 0xe3, 0x01, 0x00, 0x00, 0xea,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0x04, 0xf0, 0x9d, 0xe4,
+       0x70, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x00, 0x50, 0xe0, 0xe3, 0x0c, 0x00, 0x94, 0xe5,
+       0x00, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x00, 0x0a, 0x0c, 0x00, 0x94, 0xe5, 0x30, 0xff, 0x2f, 0xe1,
+       0x00, 0x50, 0xa0, 0xe1, 0x05, 0x00, 0xa0, 0xe1, 0x70, 0x80, 0xbd, 0xe8, 0xf0, 0x41, 0x2d, 0xe9,
+       0x00, 0x40, 0xa0, 0xe1, 0x01, 0x60, 0xa0, 0xe1, 0x02, 0x70, 0xa0, 0xe1, 0x03, 0x80, 0xa0, 0xe1,
+       0x00, 0x50, 0xe0, 0xe3, 0x10, 0x00, 0x94, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x05, 0x00, 0x00, 0x0a,
+       0x08, 0x20, 0xa0, 0xe1, 0x07, 0x10, 0xa0, 0xe1, 0x06, 0x00, 0xa0, 0xe1, 0x10, 0x30, 0x94, 0xe5,
+       0x33, 0xff, 0x2f, 0xe1, 0x00, 0x50, 0xa0, 0xe1, 0x05, 0x00, 0xa0, 0xe1, 0xf0, 0x81, 0xbd, 0xe8,
+       0xf0, 0x41, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x01, 0x60, 0xa0, 0xe1, 0x02, 0x70, 0xa0, 0xe1,
+       0x03, 0x80, 0xa0, 0xe1, 0x00, 0x50, 0xe0, 0xe3, 0x14, 0x00, 0x94, 0xe5, 0x00, 0x00, 0x50, 0xe3,
+       0x05, 0x00, 0x00, 0x0a, 0x08, 0x20, 0xa0, 0xe1, 0x07, 0x10, 0xa0, 0xe1, 0x06, 0x00, 0xa0, 0xe1,
+       0x14, 0x30, 0x94, 0xe5, 0x33, 0xff, 0x2f, 0xe1, 0x00, 0x50, 0xa0, 0xe1, 0x05, 0x00, 0xa0, 0xe1,
+       0xf0, 0x81, 0xbd, 0xe8, 0xf0, 0x41, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x01, 0x60, 0xa0, 0xe1,
+       0x02, 0x70, 0xa0, 0xe1, 0x00, 0x50, 0xe0, 0xe3, 0x18, 0x00, 0x94, 0xe5, 0x00, 0x00, 0x50, 0xe3,
+       0x04, 0x00, 0x00, 0x0a, 0x07, 0x10, 0xa0, 0xe1, 0x06, 0x00, 0xa0, 0xe1, 0x18, 0x20, 0x94, 0xe5,
+       0x32, 0xff, 0x2f, 0xe1, 0x00, 0x50, 0xa0, 0xe1, 0x05, 0x00, 0xa0, 0xe1, 0xf0, 0x81, 0xbd, 0xe8,
+       0x10, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x1c, 0x00, 0x94, 0xe5, 0x00, 0x00, 0x50, 0xe3,
+       0x01, 0x00, 0x00, 0x0a, 0x1c, 0x00, 0x94, 0xe5, 0x30, 0xff, 0x2f, 0xe1, 0x10, 0x80, 0xbd, 0xe8,
+       0x10, 0x40, 0x2d, 0xe9, 0x70, 0x10, 0xa0, 0xe3, 0xc8, 0x01, 0x9f, 0xe5, 0xa4, 0x01, 0x00, 0xeb,
+       0x00, 0x00, 0xa0, 0xe3, 0x10, 0x80, 0xbd, 0xe8, 0x70, 0x40, 0x2d, 0xe9, 0x00, 0x20, 0xa0, 0xe1,
+       0x00, 0xc0, 0xa0, 0xe3, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0xe0, 0xa0, 0xe3, 0x00, 0x00, 0xe0, 0xe3,
+       0xff, 0x40, 0xa0, 0xe3, 0x04, 0x50, 0x92, 0xe5, 0x01, 0x00, 0x55, 0xe1, 0x20, 0x00, 0x00, 0x3a,
+       0x04, 0xe0, 0x92, 0xe5, 0x8c, 0x51, 0x9f, 0xe5, 0x00, 0x20, 0x85, 0xe5, 0x00, 0xc0, 0x92, 0xe5,
+       0x01, 0x30, 0xa0, 0xe3, 0x12, 0x00, 0x00, 0xea, 0x01, 0x00, 0x5e, 0xe1, 0x0f, 0x00, 0x00, 0x3a,
+       0x74, 0x51, 0x9f, 0xe5, 0x03, 0x52, 0x85, 0xe0, 0x0c, 0xc0, 0x85, 0xe5, 0x68, 0x51, 0x9f, 0xe5,
+       0x03, 0x52, 0x85, 0xe0, 0x04, 0x10, 0x85, 0xe5, 0x00, 0x50, 0xa0, 0xe3, 0x58, 0x61, 0x9f, 0xe5,
+       0x03, 0x62, 0x86, 0xe0, 0x08, 0x50, 0x86, 0xe5, 0x4c, 0x61, 0x9f, 0xe5, 0x03, 0x52, 0x86, 0xe7,
+       0x01, 0xc0, 0x8c, 0xe0, 0x01, 0xe0, 0x4e, 0xe0, 0x01, 0x30, 0x83, 0xe2, 0x00, 0x00, 0x00, 0xea,
+       0x00, 0x40, 0xa0, 0xe3, 0x00, 0x00, 0x54, 0xe3, 0x01, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x53, 0xe3,
+       0xe8, 0xff, 0xff, 0x3a, 0x01, 0x50, 0x43, 0xe2, 0x18, 0x61, 0x9f, 0xe5, 0x44, 0x50, 0x86, 0xe5,
+       0x00, 0x00, 0xa0, 0xe3, 0x00, 0x50, 0xa0, 0xe3, 0x08, 0x61, 0x9f, 0xe5, 0x48, 0x50, 0x86, 0xe5,
+       0xff, 0x50, 0xa0, 0xe3, 0x4c, 0x50, 0x86, 0xe5, 0x70, 0x80, 0xbd, 0xe8, 0x00, 0x00, 0xa0, 0xe3,
+       0x00, 0x10, 0xa0, 0xe3, 0xec, 0x20, 0x9f, 0xe5, 0x4c, 0x20, 0x92, 0xe5, 0xff, 0x00, 0x52, 0xe3,
+       0x19, 0x00, 0x00, 0x1a, 0x01, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0x00, 0xea, 0x01, 0x10, 0x81, 0xe2,
+       0xd4, 0x20, 0x9f, 0xe5, 0x01, 0x22, 0x82, 0xe0, 0x08, 0x20, 0x92, 0xe5, 0xff, 0x00, 0x52, 0xe3,
+       0xf9, 0xff, 0xff, 0x0a, 0xbc, 0x20, 0x9f, 0xe5, 0x44, 0x20, 0x92, 0xe5, 0x01, 0x00, 0x52, 0xe1,
+       0x0a, 0x00, 0x00, 0x3a, 0xb0, 0x20, 0x9f, 0xe5, 0x01, 0x02, 0x82, 0xe0, 0x00, 0x10, 0x80, 0xe5,
+       0xff, 0x20, 0xa0, 0xe3, 0x08, 0x20, 0x80, 0xe5, 0xa0, 0x20, 0x9f, 0xe5, 0x01, 0x21, 0x92, 0xe7,
+       0x01, 0x20, 0x82, 0xe2, 0x94, 0x30, 0x9f, 0xe5, 0x01, 0x21, 0x83, 0xe7, 0x02, 0x00, 0x00, 0xea,
+       0xff, 0x20, 0xa0, 0xe3, 0x7c, 0x30, 0x9f, 0xe5, 0x48, 0x20, 0x83, 0xe5, 0x1e, 0xff, 0x2f, 0xe1,
+       0x00, 0x10, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 0x68, 0x20, 0x9f, 0xe5, 0x4c, 0x20, 0x92, 0xe5,
+       0xff, 0x00, 0x52, 0xe3, 0x15, 0x00, 0x00, 0x1a, 0x58, 0x30, 0x9f, 0xe5, 0x00, 0x20, 0x91, 0xe5,
+       0x44, 0x30, 0x93, 0xe5, 0x03, 0x00, 0x52, 0xe1, 0x01, 0x00, 0x00, 0x9a, 0x00, 0x00, 0xe0, 0xe3,
+       0x0f, 0x00, 0x00, 0xea, 0x48, 0x30, 0x9f, 0xe5, 0x00, 0x20, 0x91, 0xe5, 0x02, 0x21, 0x93, 0xe7,
+       0x01, 0x20, 0x82, 0xe2, 0x00, 0xc0, 0x83, 0xe2, 0x00, 0x30, 0x91, 0xe5, 0x03, 0x21, 0x8c, 0xe7,
+       0x00, 0x20, 0xa0, 0xe3, 0x5c, 0xc0, 0x4c, 0xe2, 0x00, 0x30, 0x91, 0xe5, 0x03, 0x32, 0x8c, 0xe0,
+       0x08, 0x20, 0x83, 0xe5, 0x00, 0x30, 0x91, 0xe5, 0x03, 0x22, 0x8c, 0xe7, 0x00, 0x00, 0x00, 0xea,
+       0x00, 0x00, 0xe0, 0xe3, 0x1e, 0xff, 0x2f, 0xe1, 0x48, 0x39, 0x08, 0x00, 0x4c, 0x39, 0x08, 0x00,
+       0x98, 0x39, 0x08, 0x00, 0xa8, 0x39, 0x08, 0x00, 0xff, 0x30, 0xa0, 0xe3, 0x00, 0xf0, 0x20, 0xe3,
+       0x00, 0x00, 0x53, 0xe3, 0xfd, 0xff, 0xff, 0xca, 0x1e, 0xff, 0x2f, 0xe1, 0xff, 0x20, 0xa0, 0xe3,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x52, 0xe3, 0xfd, 0xff, 0xff, 0xca, 0x1e, 0xff, 0x2f, 0xe1,
+       0x1e, 0xff, 0x2f, 0xe1, 0x70, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x01, 0x50, 0xa0, 0xe1,
+       0x02, 0x60, 0xa0, 0xe1, 0x06, 0x20, 0xa0, 0xe1, 0x05, 0x10, 0xa0, 0xe1, 0x04, 0x00, 0xa0, 0xe1,
+       0xec, 0xff, 0xff, 0xeb, 0x70, 0x80, 0xbd, 0xe8, 0xf0, 0x47, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1,
+       0x01, 0x50, 0xa0, 0xe1, 0x02, 0x60, 0xa0, 0xe1, 0x03, 0x90, 0xa0, 0xe1, 0x20, 0x70, 0x9d, 0xe5,
+       0xff, 0x80, 0xa0, 0xe3, 0x00, 0x00, 0x57, 0xe3, 0x03, 0x00, 0x00, 0x1a, 0x78, 0x10, 0x8f, 0xe2,
+       0x7c, 0x00, 0x9f, 0xe5, 0x3e, 0x01, 0x00, 0xeb, 0x0b, 0x00, 0x00, 0xea, 0x07, 0x00, 0xa0, 0xe1,
+       0x70, 0x01, 0x00, 0xeb, 0x16, 0x00, 0x50, 0xe3, 0x03, 0x00, 0x00, 0x9a, 0x07, 0x00, 0xa0, 0xe1,
+       0x6c, 0x01, 0x00, 0xeb, 0x15, 0x00, 0x40, 0xe2, 0x07, 0x70, 0x80, 0xe0, 0x16, 0x20, 0xa0, 0xe3,
+       0x07, 0x10, 0xa0, 0xe1, 0x48, 0x00, 0x9f, 0xe5, 0x4b, 0x01, 0x00, 0xeb, 0x06, 0x10, 0xa0, 0xe1,
+       0x05, 0x00, 0xa0, 0xe1, 0xd4, 0xff, 0xff, 0xeb, 0x38, 0x00, 0x9f, 0xe5, 0xb0, 0x40, 0xc0, 0xe1,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x58, 0xe3, 0xfd, 0xff, 0xff, 0xca, 0xf0, 0x87, 0xbd, 0xe8,
+       0x10, 0x40, 0x2d, 0xe9, 0x08, 0xc0, 0x9d, 0xe5, 0xff, 0xe0, 0xa0, 0xe3, 0x00, 0xf0, 0x20, 0xe3,
+       0x00, 0x00, 0x5e, 0xe3, 0xfd, 0xff, 0xff, 0xca, 0x10, 0x80, 0xbd, 0xe8, 0x4e, 0x55, 0x4c, 0x4c,
+       0x00, 0x00, 0x00, 0x00, 0xb8, 0x39, 0x08, 0x00, 0x38, 0x39, 0x08, 0x00, 0x00, 0x00, 0xa0, 0xe3,
+       0x1e, 0xff, 0x2f, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x10, 0xa0, 0xe1,
+       0x04, 0x00, 0x51, 0xe3, 0x03, 0x00, 0x00, 0xba, 0xc6, 0x00, 0x51, 0xe3, 0x01, 0x00, 0x00, 0xca,
+       0x01, 0x20, 0xa0, 0xe3, 0x00, 0x00, 0x00, 0xea, 0x00, 0x20, 0xa0, 0xe3, 0x02, 0x00, 0xa0, 0xe1,
+       0x1e, 0xff, 0x2f, 0xe1, 0xf0, 0x47, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x01, 0x50, 0xa0, 0xe1,
+       0x02, 0x60, 0xa0, 0xe1, 0x03, 0x70, 0xa0, 0xe1, 0x20, 0xa0, 0x9d, 0xe5, 0x04, 0x80, 0xa0, 0xe1,
+       0x00, 0x90, 0xa0, 0xe3, 0x08, 0x40, 0xb0, 0xe1, 0x01, 0x00, 0x00, 0x1a, 0x64, 0x00, 0xe0, 0xe3,
+       0xf0, 0x87, 0xbd, 0xe8, 0x00, 0x00, 0x55, 0xe3, 0x05, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x57, 0xe3,
+       0x03, 0x00, 0x00, 0x0a, 0x06, 0x00, 0xa0, 0xe1, 0xe3, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3,
+       0x01, 0x00, 0x00, 0x1a, 0x04, 0x00, 0xe0, 0xe3, 0xf4, 0xff, 0xff, 0xea, 0x08, 0x20, 0x88, 0xe2,
+       0x07, 0x10, 0xa0, 0xe1, 0x06, 0x00, 0xa0, 0xe1, 0xe6, 0xfb, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3,
+       0x05, 0x00, 0x00, 0x1a, 0x08, 0x20, 0xa0, 0xe3, 0x05, 0x10, 0xa0, 0xe1, 0x08, 0x00, 0xa0, 0xe1,
+       0xd5, 0x00, 0x00, 0xeb, 0x0c, 0x60, 0xc8, 0xe5, 0x00, 0x00, 0x00, 0xea, 0x00, 0x90, 0xe0, 0xe3,
+       0x09, 0x00, 0xa0, 0xe1, 0xe5, 0xff, 0xff, 0xea, 0xf8, 0x43, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1,
+       0x04, 0x50, 0xa0, 0xe1, 0x00, 0x60, 0xa0, 0xe3, 0x05, 0x40, 0xb0, 0xe1, 0x01, 0x00, 0x00, 0x1a,
+       0x64, 0x00, 0xe0, 0xe3, 0xf8, 0x83, 0xbd, 0xe8, 0x0c, 0x80, 0xd5, 0xe5, 0x08, 0x70, 0x95, 0xe5,
+       0x0d, 0x20, 0xa0, 0xe1, 0x07, 0x10, 0xa0, 0xe1, 0x08, 0x00, 0xa0, 0xe1, 0xcd, 0xfb, 0xff, 0xeb,
+       0x00, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x00, 0x1a, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x85, 0xe5,
+       0x00, 0x00, 0x00, 0xea, 0x00, 0x60, 0xe0, 0xe3, 0x06, 0x00, 0xa0, 0xe1, 0xf0, 0xff, 0xff, 0xea,
+       0x70, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x04, 0x50, 0xa0, 0xe1, 0x00, 0x60, 0xa0, 0xe3,
+       0x05, 0x40, 0xb0, 0xe1, 0x01, 0x00, 0x00, 0x1a, 0x64, 0x00, 0xe0, 0xe3, 0x70, 0x80, 0xbd, 0xe8,
+       0x0c, 0x00, 0xd5, 0xe5, 0x10, 0xfc, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0x00, 0x00, 0x00, 0x0a,
+       0x00, 0x60, 0xe0, 0xe3, 0x06, 0x00, 0xa0, 0xe1, 0xf7, 0xff, 0xff, 0xea, 0x70, 0x40, 0x2d, 0xe9,
+       0x00, 0x40, 0xa0, 0xe1, 0x04, 0x50, 0xa0, 0xe1, 0x00, 0x60, 0xa0, 0xe3, 0x05, 0x40, 0xb0, 0xe1,
+       0x01, 0x00, 0x00, 0x1a, 0x64, 0x00, 0xe0, 0xe3, 0x70, 0x80, 0xbd, 0xe8, 0x0c, 0x00, 0xd5, 0xe5,
+       0xd0, 0xfb, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x60, 0xe0, 0xe3,
+       0x06, 0x00, 0xa0, 0xe1, 0xf7, 0xff, 0xff, 0xea, 0x70, 0x40, 0x2d, 0xe9, 0x00, 0x50, 0xa0, 0xe3,
+       0x00, 0x40, 0xa0, 0xe3, 0xdd, 0xfc, 0xff, 0xeb, 0x00, 0x40, 0xa0, 0xe1, 0x00, 0x00, 0x54, 0xe3,
+       0x01, 0x00, 0x00, 0x0a, 0x01, 0x50, 0xa0, 0xe3, 0x00, 0x00, 0x00, 0xea, 0x00, 0x50, 0xa0, 0xe3,
+       0x05, 0x00, 0xa0, 0xe1, 0x70, 0x80, 0xbd, 0xe8, 0x10, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1,
+       0x00, 0x00, 0x54, 0xe3, 0x00, 0x00, 0x00, 0x0a, 0xcb, 0xfc, 0xff, 0xeb, 0x10, 0x80, 0xbd, 0xe8,
+       0x00, 0xf0, 0x20, 0xe3, 0x94, 0x01, 0x9f, 0xe5, 0x1c, 0x02, 0x90, 0xe5, 0x02, 0x09, 0xc0, 0xe3,
+       0x00, 0x10, 0xa0, 0xe3, 0x02, 0x29, 0xa0, 0xe3, 0x81, 0x17, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1,
+       0x78, 0x11, 0x9f, 0xe5, 0x1c, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2,
+       0x1c, 0x02, 0x90, 0xe5, 0x01, 0x0b, 0xc0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x01, 0x2b, 0xa0, 0xe3,
+       0x01, 0x15, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0x50, 0x11, 0x9f, 0xe5, 0x1c, 0x02, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x1c, 0x02, 0x90, 0xe5, 0x06, 0x0a, 0xc0, 0xe3,
+       0x00, 0x10, 0xa0, 0xe3, 0x06, 0x2a, 0xa0, 0xe3, 0x81, 0x16, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1,
+       0x28, 0x11, 0x9f, 0xe5, 0x1c, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2,
+       0x1c, 0x02, 0x90, 0xe5, 0x01, 0x0c, 0xc0, 0xe3, 0x01, 0x10, 0xa0, 0xe3, 0x01, 0x2c, 0xa0, 0xe3,
+       0x01, 0x14, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0x00, 0x11, 0x9f, 0xe5, 0x1c, 0x02, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x1c, 0x02, 0x90, 0xe5, 0x08, 0x00, 0xc0, 0xe3,
+       0x00, 0x10, 0xa0, 0xe3, 0x08, 0x20, 0xa0, 0xe3, 0x81, 0x11, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1,
+       0xd8, 0x10, 0x9f, 0xe5, 0x1c, 0x02, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xf0, 0x20, 0xe3,
+       0xc8, 0x00, 0x9f, 0xe5, 0x1c, 0x06, 0x90, 0xe5, 0x00, 0x0b, 0xa0, 0xe1, 0xa0, 0x0f, 0xa0, 0xe1,
+       0x1e, 0xff, 0x2f, 0xe1, 0x04, 0xe0, 0x2d, 0xe5, 0x00, 0x10, 0xa0, 0xe1, 0x00, 0xf0, 0x20, 0xe3,
+       0xf5, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0xfc, 0xff, 0xff, 0x1a, 0xa0, 0x00, 0x9f, 0xe5,
+       0x40, 0x08, 0x90, 0xe5, 0x00, 0x00, 0x81, 0xe5, 0x04, 0xf0, 0x9d, 0xe4, 0x90, 0x10, 0x9f, 0xe5,
+       0x20, 0x08, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0xf8, 0x40, 0x2d, 0xe9, 0xb7, 0xff, 0xff, 0xeb,
+       0x80, 0x00, 0x9f, 0xe5, 0xf8, 0xff, 0xff, 0xeb, 0x0d, 0x00, 0xa0, 0xe1, 0xec, 0xff, 0xff, 0xeb,
+       0x00, 0x00, 0x9d, 0xe5, 0x70, 0x10, 0x9f, 0xe5, 0x01, 0x00, 0x50, 0xe1, 0x01, 0x00, 0x00, 0x0a,
+       0x01, 0x00, 0xa0, 0xe3, 0x1c, 0x00, 0x00, 0xeb, 0x62, 0x54, 0xa0, 0xe3, 0x06, 0x42, 0xa0, 0xe3,
+       0x3f, 0x67, 0x84, 0xe2, 0xfe, 0x6b, 0x86, 0xe2, 0x01, 0x00, 0x00, 0xea, 0x04, 0x00, 0x95, 0xe4,
+       0x04, 0x00, 0x84, 0xe4, 0x06, 0x00, 0x54, 0xe1, 0xfb, 0xff, 0xff, 0x3a, 0x0d, 0x00, 0xa0, 0xe1,
+       0xdb, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x9d, 0xe5, 0x30, 0x10, 0x9f, 0xe5, 0x01, 0x00, 0x50, 0xe1,
+       0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0xa0, 0xe3, 0x0b, 0x00, 0x00, 0xeb, 0x6b, 0xfc, 0xff, 0xeb,
+       0x1c, 0x70, 0x9f, 0xe5, 0x37, 0xff, 0x2f, 0xe1, 0x00, 0xf0, 0x20, 0xe3, 0xfe, 0xff, 0xff, 0xea,
+       0x00, 0x00, 0x80, 0xe4, 0x00, 0xf0, 0xff, 0x62, 0x34, 0x12, 0x34, 0x12, 0x67, 0x45, 0x67, 0x45,
+       0xef, 0x89, 0xef, 0x89, 0x00, 0x00, 0x10, 0x60, 0x0e, 0xf0, 0xa0, 0xe1, 0x10, 0x40, 0x2d, 0xe9,
+       0x00, 0x40, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, 0x04, 0x00, 0xa0, 0xe1, 0x10, 0x40, 0xbd, 0xe8,
+       0xe1, 0x00, 0x00, 0xea, 0x00, 0x20, 0xa0, 0xe3, 0x20, 0x10, 0x51, 0xe2, 0x00, 0x40, 0x2d, 0xe9,
+       0x02, 0xe0, 0xa0, 0xe1, 0x02, 0x30, 0xa0, 0xe1, 0x02, 0xc0, 0xa0, 0xe1, 0x0c, 0x50, 0xa0, 0x28,
+       0x0c, 0x50, 0xa0, 0x28, 0x20, 0x10, 0x51, 0x22, 0xfb, 0xff, 0xff, 0x2a, 0x01, 0x1e, 0xb0, 0xe1,
+       0x0c, 0x50, 0xa0, 0x28, 0x0c, 0x00, 0xa0, 0x48, 0x01, 0x11, 0xb0, 0xe1, 0x00, 0x40, 0xbd, 0xe8,
+       0x04, 0x20, 0x80, 0x24, 0x0e, 0xf0, 0xa0, 0x01, 0x01, 0x20, 0xc0, 0x44, 0x01, 0x20, 0xc0, 0x44,
+       0x01, 0x01, 0x11, 0xe3, 0x01, 0x20, 0xc0, 0x14, 0x0e, 0xf0, 0xa0, 0xe1, 0x03, 0x00, 0x52, 0xe3,
+       0xe4, 0x00, 0x00, 0x9a, 0x03, 0xc0, 0x10, 0xe2, 0x08, 0x00, 0x00, 0x0a, 0x01, 0x30, 0xd1, 0xe4,
+       0x02, 0x00, 0x5c, 0xe3, 0x0c, 0x20, 0x82, 0xe0, 0x01, 0xc0, 0xd1, 0x94, 0x01, 0x30, 0xc0, 0xe4,
+       0x01, 0x30, 0xd1, 0x34, 0x01, 0xc0, 0xc0, 0x94, 0x04, 0x20, 0x42, 0xe2, 0x01, 0x30, 0xc0, 0x34,
+       0x03, 0x30, 0x11, 0xe2, 0xc4, 0x00, 0x00, 0x0a, 0x08, 0x20, 0x52, 0xe2, 0x04, 0x00, 0x00, 0x3a,
+       0x04, 0x30, 0x91, 0xe4, 0x04, 0xc0, 0x91, 0xe4, 0x04, 0x30, 0x80, 0xe4, 0x04, 0xc0, 0x80, 0xe4,
+       0xf8, 0xff, 0xff, 0xea, 0x04, 0x20, 0x92, 0xe2, 0x04, 0x30, 0x91, 0x54, 0x04, 0x30, 0x80, 0x54,
+       0xcc, 0x00, 0x00, 0xea, 0x01, 0x30, 0x80, 0xe1, 0x03, 0x00, 0x13, 0xe3, 0x00, 0x20, 0xa0, 0xe1,
+       0x04, 0xe0, 0x2d, 0xe5, 0x0b, 0x00, 0x00, 0x1a, 0x48, 0xc0, 0x9f, 0xe5, 0x04, 0x30, 0x91, 0xe4,
+       0x0c, 0xe0, 0x43, 0xe0, 0x03, 0xe0, 0xce, 0xe1, 0x8c, 0x03, 0x1e, 0xe1, 0x04, 0x30, 0x82, 0x04,
+       0xf9, 0xff, 0xff, 0x0a, 0xff, 0x10, 0x13, 0xe2, 0x23, 0x34, 0xa0, 0x11, 0x01, 0x10, 0xc2, 0xe4,
+       0xfb, 0xff, 0xff, 0x1a, 0x04, 0xf0, 0x9d, 0xe4, 0x01, 0x30, 0xd1, 0xe4, 0x00, 0x00, 0x53, 0xe3,
+       0x01, 0x30, 0xc2, 0xe4, 0x01, 0x30, 0xd1, 0x14, 0x01, 0x30, 0xc2, 0x14, 0x00, 0x00, 0x53, 0x13,
+       0xf8, 0xff, 0xff, 0x1a, 0x04, 0xf0, 0x9d, 0xe4, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x10, 0xe3,
+       0x10, 0x40, 0x2d, 0xe9, 0x03, 0x00, 0x11, 0x03, 0x00, 0x40, 0xa0, 0xe1, 0x0a, 0x00, 0x00, 0x1a,
+       0x4c, 0xe0, 0x9f, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0x06, 0x00, 0x00, 0xba, 0x04, 0x30, 0x91, 0xe4,
+       0x0e, 0xc0, 0x43, 0xe0, 0x03, 0xc0, 0xcc, 0xe1, 0x8e, 0xc3, 0x1c, 0xe0, 0x04, 0x30, 0x80, 0x04,
+       0xf7, 0xff, 0xff, 0x0a, 0x04, 0x10, 0x41, 0xe2, 0x04, 0x20, 0x82, 0xe2, 0x01, 0x20, 0x52, 0xe2,
+       0x05, 0x00, 0x00, 0xba, 0x01, 0x30, 0xd1, 0xe4, 0x00, 0x00, 0x53, 0xe3, 0x01, 0x30, 0xc0, 0xe4,
+       0xf9, 0xff, 0xff, 0x1a, 0x02, 0x10, 0xa0, 0xe1, 0xa2, 0x00, 0x00, 0xeb, 0x04, 0x00, 0xa0, 0xe1,
+       0x10, 0x80, 0xbd, 0xe8, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc0, 0x80, 0xe2, 0x03, 0x00, 0x00, 0xea,
+       0x01, 0x10, 0xd0, 0xe4, 0x00, 0x00, 0x51, 0xe3, 0x0c, 0x00, 0x40, 0x00, 0x0e, 0xf0, 0xa0, 0x01,
+       0x03, 0x00, 0x10, 0xe3, 0xf9, 0xff, 0xff, 0x1a, 0x38, 0x20, 0x9f, 0xe5, 0x04, 0x10, 0x90, 0xe4,
+       0x02, 0x30, 0x41, 0xe0, 0x01, 0x30, 0xc3, 0xe1, 0x82, 0x03, 0x13, 0xe1, 0xfa, 0xff, 0xff, 0x0a,
+       0xff, 0x00, 0x11, 0xe3, 0x0c, 0x00, 0x40, 0xe0, 0x03, 0x00, 0x40, 0x02, 0x0e, 0xf0, 0xa0, 0x01,
+       0xff, 0x0c, 0x11, 0xe3, 0x02, 0x00, 0x40, 0x02, 0x0e, 0xf0, 0xa0, 0x01, 0xff, 0x08, 0x11, 0xe3,
+       0x01, 0x00, 0x40, 0x02, 0x0e, 0xf0, 0xa0, 0xe1, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc0, 0x90, 0xe1,
+       0x21, 0x00, 0x00, 0x4a, 0xa0, 0xc0, 0x71, 0xe0, 0x00, 0x20, 0xa0, 0xe3, 0x1a, 0x00, 0x00, 0x3a,
+       0x20, 0xc2, 0x71, 0xe0, 0x0f, 0x00, 0x00, 0x3a, 0x20, 0xc4, 0x71, 0xe0, 0x01, 0x00, 0x00, 0x3a,
+       0x00, 0x30, 0xa0, 0xe3, 0x20, 0x00, 0x00, 0xea, 0xa0, 0xc3, 0x71, 0xe0, 0x81, 0x03, 0x40, 0x20,
+       0x02, 0x20, 0xa2, 0xe0, 0x20, 0xc3, 0x71, 0xe0, 0x01, 0x03, 0x40, 0x20, 0x02, 0x20, 0xa2, 0xe0,
+       0xa0, 0xc2, 0x71, 0xe0, 0x81, 0x02, 0x40, 0x20, 0x02, 0x20, 0xa2, 0xe0, 0x20, 0xc2, 0x71, 0xe0,
+       0x01, 0x02, 0x40, 0x20, 0x02, 0x20, 0xa2, 0xe0, 0xa0, 0xc1, 0x71, 0xe0, 0x81, 0x01, 0x40, 0x20,
+       0x02, 0x20, 0xa2, 0xe0, 0x20, 0xc1, 0x71, 0xe0, 0x01, 0x01, 0x40, 0x20, 0x02, 0x20, 0xb2, 0xe0,
+       0xa0, 0xc0, 0x71, 0xe0, 0x81, 0x00, 0x40, 0x20, 0x02, 0x20, 0xa2, 0xe0, 0x01, 0x10, 0x50, 0xe0,
+       0x00, 0x10, 0xa0, 0x31, 0x02, 0x00, 0xa2, 0xe0, 0x0e, 0xf0, 0xa0, 0xe1, 0x02, 0x21, 0x11, 0xe2,
+       0x00, 0x10, 0x61, 0x42, 0x40, 0x30, 0x32, 0xe0, 0x00, 0x00, 0x60, 0x22, 0x20, 0xc2, 0x71, 0xe0,
+       0x1d, 0x00, 0x00, 0x3a, 0x20, 0xc4, 0x71, 0xe0, 0x0f, 0x00, 0x00, 0x3a, 0x01, 0x13, 0xa0, 0xe1,
+       0x20, 0xc4, 0x71, 0xe0, 0x3f, 0x23, 0x82, 0xe3, 0x0b, 0x00, 0x00, 0x3a, 0x01, 0x13, 0xa0, 0xe1,
+       0x20, 0xc4, 0x71, 0xe0, 0x3f, 0x26, 0x82, 0xe3, 0x07, 0x00, 0x00, 0x3a, 0x01, 0x13, 0xa0, 0xe1,
+       0x20, 0xc4, 0x71, 0xe0, 0x3f, 0x29, 0x82, 0xe3, 0x3f, 0x2c, 0x82, 0x23, 0x01, 0x13, 0xa0, 0x21,
+       0x00, 0xc0, 0x71, 0xe2, 0x2f, 0x00, 0x00, 0x2a, 0x21, 0x13, 0xa0, 0x21, 0xa0, 0xc3, 0x71, 0xe0,
+       0x81, 0x03, 0x40, 0x20, 0x02, 0x20, 0xa2, 0xe0, 0x20, 0xc3, 0x71, 0xe0, 0x01, 0x03, 0x40, 0x20,
+       0x02, 0x20, 0xa2, 0xe0, 0xa0, 0xc2, 0x71, 0xe0, 0x81, 0x02, 0x40, 0x20, 0x02, 0x20, 0xa2, 0xe0,
+       0x20, 0xc2, 0x71, 0xe0, 0x01, 0x02, 0x40, 0x20, 0x02, 0x20, 0xa2, 0xe0, 0xa0, 0xc1, 0x71, 0xe0,
+       0x81, 0x01, 0x40, 0x20, 0x02, 0x20, 0xa2, 0xe0, 0x20, 0xc1, 0x71, 0xe0, 0x01, 0x01, 0x40, 0x20,
+       0x02, 0x20, 0xb2, 0xe0, 0xeb, 0xff, 0xff, 0x2a, 0xa0, 0xc0, 0x71, 0xe0, 0x81, 0x00, 0x40, 0x20,
+       0x02, 0x20, 0xa2, 0xe0, 0x01, 0x10, 0x50, 0xe0, 0x00, 0x10, 0xa0, 0x31, 0x02, 0x00, 0xa2, 0xe0,
+       0xc3, 0x3f, 0xb0, 0xe1, 0x00, 0x00, 0x60, 0x42, 0x00, 0x10, 0x61, 0x22, 0x0e, 0xf0, 0xa0, 0xe1,
+       0xc1, 0x00, 0x00, 0xeb, 0x3f, 0x00, 0x00, 0xeb, 0x03, 0x00, 0x2d, 0xe9, 0xbf, 0x00, 0x00, 0xeb,
+       0x03, 0x00, 0xbd, 0xe8, 0x7a, 0x00, 0x00, 0xeb, 0x0f, 0x00, 0x2d, 0xe9, 0xbe, 0x00, 0x00, 0xeb,
+       0x0f, 0x00, 0xbd, 0xe8, 0x3b, 0xfa, 0xff, 0xeb, 0x17, 0xff, 0xff, 0xea, 0x01, 0x40, 0x2d, 0xe9,
+       0xbc, 0x00, 0x00, 0xeb, 0xae, 0x00, 0x00, 0xeb, 0x01, 0x40, 0xbd, 0xe8, 0x00, 0x00, 0x00, 0xea,
+       0x00, 0x00, 0xe0, 0xe3, 0xe7, 0xfc, 0xff, 0xea, 0x2b, 0x00, 0x00, 0xea, 0x20, 0x20, 0x52, 0xe2,
+       0x10, 0x40, 0x2d, 0xe9, 0x05, 0x00, 0x00, 0x3a, 0x18, 0x50, 0xb1, 0x28, 0x18, 0x50, 0xa0, 0x28,
+       0x18, 0x50, 0xb1, 0x28, 0x18, 0x50, 0xa0, 0x28, 0x20, 0x20, 0x52, 0x22, 0xf9, 0xff, 0xff, 0x2a,
+       0x02, 0xce, 0xb0, 0xe1, 0x18, 0x50, 0xb1, 0x28, 0x18, 0x50, 0xa0, 0x28, 0x18, 0x00, 0xb1, 0x48,
+       0x18, 0x00, 0xa0, 0x48, 0x02, 0xcf, 0xb0, 0xe1, 0x10, 0x40, 0xbd, 0xe8, 0x04, 0x30, 0x91, 0x24,
+       0x04, 0x30, 0x80, 0x24, 0x0e, 0xf0, 0xa0, 0x01, 0x82, 0x2f, 0xb0, 0xe1, 0x01, 0x20, 0xd1, 0x44,
+       0x01, 0x30, 0xd1, 0x24, 0x01, 0xc0, 0xd1, 0x24, 0x01, 0x20, 0xc0, 0x44, 0x01, 0x30, 0xc0, 0x24,
+       0x01, 0xc0, 0xc0, 0x24, 0x0e, 0xf0, 0xa0, 0xe1, 0x00, 0x20, 0xa0, 0xe3, 0x04, 0x00, 0x51, 0xe3,
+       0x08, 0x00, 0x00, 0x3a, 0x03, 0xc0, 0x10, 0xe2, 0xf6, 0xfe, 0xff, 0x0a, 0x04, 0xc0, 0x6c, 0xe2,
+       0x01, 0x20, 0xc0, 0xe4, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x20, 0xc0, 0xa4, 0x0c, 0x10, 0x41, 0xe0,
+       0x01, 0x20, 0xc0, 0xc4, 0xef, 0xfe, 0xff, 0xea, 0x81, 0xcf, 0xb0, 0xe1, 0x01, 0x20, 0xc0, 0x24,
+       0x01, 0x20, 0xc0, 0x24, 0x01, 0x20, 0xc0, 0x44, 0x0e, 0xf0, 0xa0, 0xe1, 0x02, 0x00, 0xa0, 0xe3,
+       0x02, 0x10, 0xa0, 0xe3, 0x8b, 0x00, 0x00, 0xea, 0x0e, 0x50, 0xa0, 0xe1, 0x86, 0x00, 0x00, 0xeb,
+       0x00, 0x40, 0xa0, 0xe1, 0x07, 0x00, 0xc0, 0xe3, 0x0d, 0x10, 0xa0, 0xe1, 0x60, 0xd0, 0x80, 0xe2,
+       0x05, 0xe0, 0xa0, 0xe1, 0x10, 0x40, 0x2d, 0xe9, 0x0a, 0x30, 0xa0, 0xe1, 0xc0, 0xfc, 0xff, 0xeb,
+       0x00, 0x60, 0xa0, 0xe3, 0x00, 0x70, 0xa0, 0xe3, 0x00, 0x80, 0xa0, 0xe3, 0x00, 0xb0, 0xa0, 0xe3,
+       0x10, 0x40, 0xbd, 0xe8, 0x07, 0xd0, 0xc1, 0xe3, 0x04, 0xc0, 0xa0, 0xe1, 0xc0, 0x09, 0xac, 0xe8,
+       0xc0, 0x09, 0xac, 0xe8, 0xc0, 0x09, 0xac, 0xe8, 0xc0, 0x09, 0xac, 0xe8, 0x13, 0x40, 0x2d, 0xe9,
+       0x00, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0xa0, 0xe1, 0x40, 0x10, 0x81, 0xe2,
+       0x01, 0x20, 0x80, 0xe0, 0x11, 0x2e, 0x82, 0xe2, 0x1c, 0x20, 0x84, 0xe5, 0x01, 0x00, 0xa0, 0xe3,
+       0x18, 0x10, 0x84, 0xe5, 0x10, 0x00, 0x84, 0xe5, 0x13, 0x40, 0xbd, 0xe8, 0x00, 0x10, 0xa0, 0xe1,
+       0x14, 0x00, 0x84, 0xe5, 0x0e, 0xf0, 0xa0, 0xe1, 0x10, 0x40, 0x2d, 0xe9, 0x03, 0x00, 0x2d, 0xe9,
+       0x61, 0x00, 0x00, 0xeb, 0x00, 0x40, 0xa0, 0xe1, 0x03, 0x00, 0xbd, 0xe8, 0x14, 0x20, 0x94, 0xe5,
+       0x1c, 0x30, 0x94, 0xe5, 0x00, 0xe0, 0x82, 0xe0, 0x03, 0x30, 0x4d, 0xe0, 0x03, 0x00, 0x5e, 0xe1,
+       0x00, 0x20, 0x81, 0xe5, 0x0a, 0x00, 0x00, 0x8a, 0x0e, 0x30, 0x93, 0xe0, 0x01, 0x1a, 0x8e, 0xe2,
+       0x07, 0x10, 0x81, 0xe2, 0x63, 0x30, 0xa0, 0xe1, 0x07, 0x30, 0xc3, 0xe3, 0x07, 0x10, 0xc1, 0xe3,
+       0x03, 0x00, 0x51, 0xe1, 0x03, 0x10, 0xa0, 0x81, 0x02, 0x00, 0x41, 0xe0, 0x14, 0x10, 0x84, 0xe5,
+       0x10, 0x80, 0xbd, 0xe8, 0x00, 0x20, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0xa0, 0xe1,
+       0x10, 0x80, 0xbd, 0xe8, 0xc0, 0x43, 0x2d, 0xe9, 0x3e, 0x00, 0x2d, 0xe9, 0x01, 0x50, 0xa0, 0xe1,
+       0x00, 0x40, 0xa0, 0xe1, 0xc3, 0x02, 0x00, 0xeb, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x40, 0x8d, 0xe5,
+       0x04, 0x50, 0x8d, 0xe5, 0x00, 0x00, 0xa0, 0xe1, 0x08, 0x00, 0x8d, 0xe5, 0x0d, 0x00, 0xa0, 0xe1,
+       0xb4, 0xf9, 0xff, 0xeb, 0x00, 0x40, 0xa0, 0xe1, 0x01, 0x50, 0xa0, 0xe1, 0x03, 0x00, 0x9d, 0xe8,
+       0x02, 0x60, 0xa0, 0xe1, 0x03, 0x70, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1,
+       0x00, 0x00, 0xa0, 0xe1, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0xa0, 0xe1,
+       0x00, 0x80, 0xa0, 0xe1, 0x30, 0x00, 0x00, 0xeb, 0x00, 0x90, 0xa0, 0xe1, 0x20, 0x80, 0x80, 0xe5,
+       0x00, 0x00, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0xa0, 0xe1, 0x01, 0x10, 0x80, 0xe2,
+       0x24, 0x10, 0x89, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0xa0, 0xe1,
+       0x28, 0x00, 0x89, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0xa0, 0xe1,
+       0x2c, 0x00, 0x89, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0xa0, 0xe1,
+       0x30, 0x00, 0x89, 0xe5, 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1,
+       0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1,
+       0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, 0x0c, 0xd0, 0x8d, 0xe2, 0x04, 0x00, 0xa0, 0xe1,
+       0x05, 0x10, 0xa0, 0xe1, 0x06, 0x20, 0xa0, 0xe1, 0x07, 0x30, 0xa0, 0xe1, 0xf0, 0x01, 0xbd, 0xe8,
+       0x00, 0x82, 0xbd, 0xe8, 0x00, 0x00, 0xa0, 0xe3, 0x10, 0x40, 0x2d, 0xe9, 0x00, 0x00, 0xa0, 0xe1,
+       0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, 0x10, 0x80, 0xbd, 0xe8, 0x0e, 0xf0, 0xa0, 0xe1,
+       0x00, 0x00, 0xe0, 0xe3, 0x02, 0x10, 0xe0, 0xe3, 0x0e, 0xf0, 0xa0, 0xe1, 0x10, 0x40, 0x2d, 0xe9,
+       0x0a, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x0e, 0xf0, 0xa0, 0xe1, 0x00, 0x00, 0x9f, 0xe5,
+       0x0e, 0xf0, 0xa0, 0xe1, 0x1c, 0x3a, 0x08, 0x00, 0x10, 0x40, 0x2d, 0xe9, 0x08, 0x00, 0x00, 0xeb,
+       0x00, 0x00, 0x50, 0xe3, 0x10, 0x80, 0xbd, 0x08, 0x10, 0x40, 0xbd, 0xe8, 0x25, 0xfc, 0xff, 0xea,
+       0x0e, 0xf0, 0xa0, 0xe1, 0x10, 0x40, 0x2d, 0xe9, 0xf3, 0xff, 0xff, 0xeb, 0x04, 0x00, 0x80, 0xe2,
+       0x10, 0x80, 0xbd, 0xe8, 0x70, 0x40, 0x2d, 0xe9, 0x01, 0x50, 0xa0, 0xe1, 0x00, 0x10, 0xa0, 0xe1,
+       0x00, 0x40, 0xa0, 0xe1, 0x00, 0x00, 0xe0, 0xe3, 0x00, 0x00, 0xa0, 0xe1, 0x01, 0x00, 0x70, 0xe3,
+       0x00, 0x20, 0xa0, 0xe1, 0x04, 0x00, 0xa0, 0x01, 0x05, 0x10, 0xa0, 0x01, 0x70, 0x40, 0xbd, 0x08,
+       0x06, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x72, 0xe3, 0x05, 0x10, 0xa0, 0x11, 0x04, 0x00, 0xa0, 0x11,
+       0x0f, 0xe0, 0xa0, 0x11, 0x02, 0xf0, 0xa0, 0x11, 0x00, 0x00, 0xa0, 0xe3, 0x70, 0x80, 0xbd, 0xe8,
+       0x01, 0x20, 0x40, 0xe2, 0x70, 0x40, 0x2d, 0xe9, 0x0e, 0x00, 0x52, 0xe3, 0xc0, 0x50, 0x8f, 0x22,
+       0xb8, 0x40, 0x8f, 0xe2, 0x1c, 0x00, 0x00, 0x2a, 0x17, 0x20, 0xa0, 0xe3, 0xc0, 0x30, 0x9f, 0xe5,
+       0x90, 0x02, 0x02, 0xe0, 0x03, 0x30, 0x8f, 0xe0, 0x02, 0x00, 0x50, 0xe3, 0x03, 0x20, 0x82, 0xe0,
+       0x17, 0x50, 0x42, 0xe2, 0x0e, 0x00, 0x00, 0x1a, 0x01, 0x03, 0x11, 0xe3, 0xa4, 0x40, 0x8f, 0x12,
+       0x11, 0x00, 0x00, 0x1a, 0x82, 0x03, 0x11, 0xe3, 0xac, 0x40, 0x8f, 0x12, 0x0e, 0x00, 0x00, 0x1a,
+       0x01, 0x02, 0x11, 0xe3, 0xb0, 0x40, 0x8f, 0x12, 0x0b, 0x00, 0x00, 0x1a, 0x02, 0x02, 0x11, 0xe3,
+       0xb0, 0x40, 0x8f, 0x12, 0x08, 0x00, 0x00, 0x1a, 0x01, 0x01, 0x11, 0xe3, 0xb0, 0x40, 0x8f, 0x12,
+       0x05, 0x00, 0x00, 0xea, 0x08, 0x00, 0x50, 0xe3, 0x01, 0x40, 0xa0, 0x01, 0x02, 0x00, 0x00, 0x0a,
+       0x09, 0x00, 0x50, 0xe3, 0x01, 0x00, 0x51, 0x03, 0xa4, 0x50, 0x8f, 0x02, 0x0a, 0x00, 0xa0, 0xe3,
+       0x00, 0x00, 0x00, 0xea, 0x01, 0x50, 0x85, 0xe2, 0xe8, 0xfb, 0xff, 0xeb, 0x00, 0x00, 0xd5, 0xe5,
+       0x00, 0x00, 0x50, 0xe3, 0xfa, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x00, 0xea, 0x01, 0x40, 0x84, 0xe2,
+       0xe2, 0xfb, 0xff, 0xeb, 0x00, 0x00, 0xd4, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0xfa, 0xff, 0xff, 0x1a,
+       0x0a, 0x00, 0xa0, 0xe3, 0xdd, 0xfb, 0xff, 0xeb, 0x01, 0x00, 0xa0, 0xe3, 0x70, 0x80, 0xbd, 0xe8,
+       0x00, 0x00, 0x00, 0x00, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x73, 0x69, 0x67, 0x6e,
+       0x61, 0x6c, 0x00, 0x00, 0x60, 0x09, 0x00, 0x00, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20,
+       0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x44, 0x69, 0x76, 0x69,
+       0x64, 0x65, 0x20, 0x42, 0x79, 0x20, 0x5a, 0x65, 0x72, 0x6f, 0x00, 0x00, 0x4f, 0x76, 0x65, 0x72,
+       0x66, 0x6c, 0x6f, 0x77, 0x00, 0x00, 0x00, 0x00, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x66, 0x6c, 0x6f,
+       0x77, 0x00, 0x00, 0x00, 0x49, 0x6e, 0x65, 0x78, 0x61, 0x63, 0x74, 0x20, 0x52, 0x65, 0x73, 0x75,
+       0x6c, 0x74, 0x00, 0x00, 0x3a, 0x20, 0x48, 0x65, 0x61, 0x70, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72,
+       0x79, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x75, 0x70, 0x74, 0x65, 0x64, 0x00, 0x20, 0xc2, 0x71, 0xe0,
+       0x00, 0x20, 0xa0, 0xe3, 0x7b, 0xfe, 0xff, 0x3a, 0x20, 0xc4, 0x71, 0xe0, 0x6d, 0xfe, 0xff, 0x3a,
+       0x00, 0x30, 0xa0, 0xe3, 0x8c, 0xfe, 0xff, 0xea, 0x00, 0x30, 0xa0, 0xe3, 0x02, 0x00, 0x00, 0xea,
+       0x00, 0xc0, 0xa0, 0xe3, 0x03, 0xc0, 0xc0, 0xe7, 0x01, 0x30, 0x83, 0xe2, 0x01, 0x00, 0x53, 0xe1,
+       0xfa, 0xff, 0xff, 0x3a, 0x00, 0x20, 0xa0, 0xe1, 0x00, 0xf0, 0x20, 0xe3, 0x30, 0xc0, 0x9f, 0xe5,
+       0x6c, 0xc0, 0x9c, 0xe5, 0x00, 0xc0, 0x82, 0xe5, 0x02, 0x00, 0xa0, 0xe1, 0x04, 0x20, 0x82, 0xe2,
+       0x00, 0xf0, 0x20, 0xe3, 0x18, 0xc0, 0x9f, 0xe5, 0x70, 0xc0, 0x9c, 0xe5, 0x04, 0xc0, 0x82, 0xe4,
+       0x00, 0xf0, 0x20, 0xe3, 0x08, 0xc0, 0x9f, 0xe5, 0x74, 0xc0, 0x9c, 0xe5, 0x04, 0xc0, 0x82, 0xe4,
+       0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x90, 0xe4, 0x70, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1,
+       0x01, 0x50, 0xa0, 0xe1, 0x05, 0x10, 0xa0, 0xe1, 0x04, 0x00, 0xa0, 0xe1, 0xe1, 0xff, 0xff, 0xeb,
+       0x70, 0x80, 0xbd, 0xe8, 0x10, 0x40, 0x2d, 0xe9, 0x00, 0xf0, 0x20, 0xe3, 0xc0, 0x05, 0x9f, 0xe5,
+       0xc0, 0x15, 0x9f, 0xe5, 0x60, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2,
+       0x70, 0x00, 0x90, 0xe5, 0x07, 0x04, 0xc0, 0xe3, 0x03, 0x10, 0xa0, 0xe3, 0x07, 0x24, 0xa0, 0xe3,
+       0x01, 0x1c, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0x98, 0x15, 0x9f, 0xe5, 0x70, 0x00, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x70, 0x00, 0x90, 0xe5, 0x01, 0x09, 0xc0, 0xe3,
+       0x00, 0x10, 0xa0, 0xe3, 0x01, 0x29, 0xa0, 0xe3, 0x01, 0x17, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1,
+       0x70, 0x15, 0x9f, 0xe5, 0x70, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2,
+       0x70, 0x00, 0x90, 0xe5, 0x02, 0x09, 0xc0, 0xe3, 0x01, 0x10, 0xa0, 0xe3, 0x02, 0x29, 0xa0, 0xe3,
+       0x81, 0x17, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0x48, 0x15, 0x9f, 0xe5, 0x70, 0x00, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x68, 0x00, 0x90, 0xe5, 0x02, 0x0a, 0xc0, 0xe3,
+       0x00, 0x10, 0xa0, 0xe3, 0x02, 0x2a, 0xa0, 0xe3, 0x81, 0x16, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1,
+       0x20, 0x15, 0x9f, 0xe5, 0x68, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2,
+       0x68, 0x00, 0x90, 0xe5, 0x01, 0x0a, 0xc0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x01, 0x2a, 0xa0, 0xe3,
+       0x01, 0x16, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0xf8, 0x14, 0x9f, 0xe5, 0x68, 0x00, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x68, 0x00, 0x90, 0xe5, 0x01, 0x0b, 0xc0, 0xe3,
+       0x01, 0x10, 0xa0, 0xe3, 0x01, 0x2b, 0xa0, 0xe3, 0x01, 0x15, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1,
+       0xd0, 0x14, 0x9f, 0xe5, 0x68, 0x00, 0x81, 0xe5, 0x00, 0x40, 0xa0, 0xe3, 0x00, 0x00, 0x00, 0xea,
+       0x01, 0x40, 0x84, 0xe2, 0x06, 0xc9, 0x54, 0xe2, 0x6a, 0xce, 0x5c, 0x22, 0xfb, 0xff, 0xff, 0x3a,
+       0x00, 0xf0, 0x20, 0xe3, 0xb0, 0x04, 0x9f, 0xe5, 0x00, 0x00, 0x90, 0xe5, 0x03, 0x10, 0xc0, 0xe3,
+       0x02, 0x00, 0x81, 0xe3, 0xa0, 0x14, 0x9f, 0xe5, 0x00, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3,
+       0x00, 0x00, 0x81, 0xe2, 0x00, 0x00, 0x90, 0xe5, 0x0c, 0x00, 0xc0, 0xe3, 0x01, 0x10, 0xa0, 0xe3,
+       0x0c, 0x20, 0xa0, 0xe3, 0x01, 0x11, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0x78, 0x14, 0x9f, 0xe5,
+       0x00, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x00, 0x00, 0x90, 0xe5,
+       0x10, 0x00, 0xc0, 0xe3, 0x01, 0x10, 0xa0, 0xe3, 0x10, 0x20, 0xa0, 0xe3, 0x01, 0x12, 0x02, 0xe0,
+       0x01, 0x00, 0x80, 0xe1, 0x50, 0x14, 0x9f, 0xe5, 0x00, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3,
+       0x00, 0xf0, 0x20, 0xe3, 0x40, 0x04, 0x9f, 0xe5, 0x04, 0x00, 0x90, 0xe5, 0x00, 0x0f, 0xa0, 0xe1,
+       0xa0, 0x0f, 0xa0, 0xe1, 0x01, 0x00, 0x50, 0xe3, 0xf8, 0xff, 0xff, 0x1a, 0x00, 0xf0, 0x20, 0xe3,
+       0x28, 0x04, 0x9f, 0xe5, 0x1c, 0x14, 0x9f, 0xe5, 0x20, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3,
+       0x28, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x11, 0x00, 0xa0, 0xe3, 0x24, 0x00, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x2c, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x3f, 0x0c, 0xa0, 0xe3,
+       0x54, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0xf4, 0x03, 0x9f, 0xe5, 0x64, 0x00, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0xec, 0x03, 0x9f, 0xe5, 0x68, 0x00, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3,
+       0xe4, 0x03, 0x9f, 0xe5, 0x0c, 0x00, 0x81, 0xe5, 0x4c, 0xfa, 0xff, 0xeb, 0x10, 0x80, 0xbd, 0xe8,
+       0x00, 0xf0, 0x20, 0xe3, 0x01, 0x0c, 0xa0, 0xe3, 0xd0, 0x13, 0x9f, 0xe5, 0x04, 0x00, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0xc0, 0x03, 0x9f, 0xe5, 0x04, 0x00, 0x90, 0xe5,
+       0x00, 0x0f, 0xa0, 0xe1, 0xa0, 0x0f, 0xa0, 0xe1, 0x00, 0x00, 0x50, 0xe3, 0xf8, 0xff, 0xff, 0x1a,
+       0x00, 0xf0, 0x20, 0xe3, 0xa4, 0x03, 0x9f, 0xe5, 0x60, 0x03, 0x90, 0xe5, 0x07, 0x00, 0x80, 0xe3,
+       0x98, 0x13, 0x9f, 0xe5, 0x60, 0x03, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2,
+       0x60, 0x03, 0x90, 0xe5, 0x07, 0x0c, 0xc0, 0xe3, 0x07, 0x10, 0xa0, 0xe3, 0x07, 0x2c, 0xa0, 0xe3,
+       0x01, 0x14, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0x70, 0x13, 0x9f, 0xe5, 0x60, 0x03, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x60, 0x03, 0x90, 0xe5, 0x07, 0x08, 0xc0, 0xe3,
+       0x07, 0x10, 0xa0, 0xe3, 0x07, 0x28, 0xa0, 0xe3, 0x01, 0x18, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1,
+       0x48, 0x13, 0x9f, 0xe5, 0x60, 0x03, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2,
+       0x64, 0x03, 0x90, 0xe5, 0x07, 0x10, 0xc0, 0xe3, 0x01, 0x00, 0x81, 0xe3, 0x2c, 0x13, 0x9f, 0xe5,
+       0x64, 0x03, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x64, 0x03, 0x90, 0xe5,
+       0x07, 0x0c, 0xc0, 0xe3, 0x01, 0x10, 0xa0, 0xe3, 0x07, 0x2c, 0xa0, 0xe3, 0x01, 0x14, 0x02, 0xe0,
+       0x01, 0x00, 0x80, 0xe1, 0x04, 0x13, 0x9f, 0xe5, 0x64, 0x03, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3,
+       0x00, 0x00, 0x81, 0xe2, 0x64, 0x03, 0x90, 0xe5, 0x07, 0x08, 0xc0, 0xe3, 0x01, 0x10, 0xa0, 0xe3,
+       0x07, 0x28, 0xa0, 0xe3, 0x01, 0x18, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0xdc, 0x12, 0x9f, 0xe5,
+       0x64, 0x03, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x68, 0x03, 0x90, 0xe5,
+       0x07, 0x10, 0xc0, 0xe3, 0x03, 0x00, 0x81, 0xe3, 0xc0, 0x12, 0x9f, 0xe5, 0x68, 0x03, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x68, 0x03, 0x90, 0xe5, 0x07, 0x0c, 0xc0, 0xe3,
+       0x03, 0x10, 0xa0, 0xe3, 0x07, 0x2c, 0xa0, 0xe3, 0x01, 0x14, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1,
+       0x98, 0x12, 0x9f, 0xe5, 0x68, 0x03, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2,
+       0x68, 0x03, 0x90, 0xe5, 0x07, 0x08, 0xc0, 0xe3, 0x03, 0x10, 0xa0, 0xe3, 0x07, 0x28, 0xa0, 0xe3,
+       0x01, 0x18, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0x70, 0x12, 0x9f, 0xe5, 0x68, 0x03, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x38, 0x02, 0x90, 0xe5, 0x01, 0x08, 0xc0, 0xe3,
+       0x00, 0x10, 0xa0, 0xe3, 0x01, 0x28, 0xa0, 0xe3, 0x01, 0x18, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1,
+       0x48, 0x12, 0x9f, 0xe5, 0x38, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2,
+       0x20, 0x02, 0x90, 0xe5, 0x07, 0x10, 0xc0, 0xe3, 0x02, 0x00, 0x81, 0xe3, 0x2c, 0x12, 0x9f, 0xe5,
+       0x20, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x20, 0x02, 0x90, 0xe5,
+       0x78, 0x00, 0xc0, 0xe3, 0x01, 0x10, 0xa0, 0xe3, 0x78, 0x20, 0xa0, 0xe3, 0x81, 0x11, 0x02, 0xe0,
+       0x01, 0x00, 0x80, 0xe1, 0x04, 0x12, 0x9f, 0xe5, 0x20, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3,
+       0x00, 0x00, 0x81, 0xe2, 0x10, 0x02, 0x90, 0xe5, 0x02, 0x00, 0xc0, 0xe3, 0x01, 0x10, 0xa0, 0xe3,
+       0x02, 0x20, 0xa0, 0xe3, 0x81, 0x10, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0xdc, 0x11, 0x9f, 0xe5,
+       0x10, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x10, 0x02, 0x90, 0xe5,
+       0x02, 0x0c, 0xc0, 0xe3, 0x01, 0x10, 0xa0, 0xe3, 0x02, 0x2c, 0xa0, 0xe3, 0x81, 0x14, 0x02, 0xe0,
+       0x01, 0x00, 0x80, 0xe1, 0xb4, 0x11, 0x9f, 0xe5, 0x10, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3,
+       0x00, 0x00, 0x81, 0xe2, 0x44, 0x02, 0x90, 0xe5, 0xff, 0x10, 0xc0, 0xe3, 0x20, 0x00, 0x81, 0xe3,
+       0x98, 0x11, 0x9f, 0xe5, 0x44, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2,
+       0x44, 0x02, 0x90, 0xe5, 0xff, 0x0c, 0xc0, 0xe3, 0x20, 0x10, 0xa0, 0xe3, 0xff, 0x2c, 0xa0, 0xe3,
+       0x01, 0x14, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0x70, 0x11, 0x9f, 0xe5, 0x44, 0x02, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x44, 0x02, 0x90, 0xe5, 0xff, 0x08, 0xc0, 0xe3,
+       0x20, 0x10, 0xa0, 0xe3, 0xff, 0x28, 0xa0, 0xe3, 0x01, 0x18, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1,
+       0x48, 0x11, 0x9f, 0xe5, 0x44, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2,
+       0x78, 0x02, 0x90, 0xe5, 0xff, 0x08, 0xc0, 0xe3, 0x10, 0x10, 0xa0, 0xe3, 0x01, 0x18, 0x02, 0xe0,
+       0x01, 0x00, 0x80, 0xe1, 0x24, 0x11, 0x9f, 0xe5, 0x78, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3,
+       0x01, 0x00, 0xa0, 0xe3, 0x80, 0x0a, 0xa0, 0xe1, 0xdc, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3,
+       0x00, 0x00, 0x81, 0xe2, 0x04, 0x02, 0x90, 0xe5, 0x02, 0x0b, 0xc0, 0xe3, 0x01, 0x10, 0xa0, 0xe3,
+       0x02, 0x2b, 0xa0, 0xe3, 0x81, 0x15, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0xec, 0x10, 0x9f, 0xe5,
+       0x04, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x54, 0x02, 0x90, 0xe5,
+       0xff, 0x08, 0xc0, 0xe3, 0x08, 0x10, 0xa0, 0xe3, 0xff, 0x28, 0xa0, 0xe3, 0x01, 0x18, 0x02, 0xe0,
+       0x01, 0x00, 0x80, 0xe1, 0xc4, 0x10, 0x9f, 0xe5, 0x54, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3,
+       0x00, 0x00, 0x81, 0xe2, 0x54, 0x02, 0x90, 0xe5, 0xff, 0x0c, 0xc0, 0xe3, 0x08, 0x10, 0xa0, 0xe3,
+       0xff, 0x2c, 0xa0, 0xe3, 0x01, 0x14, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0x9c, 0x10, 0x9f, 0xe5,
+       0x54, 0x02, 0x81, 0xe5, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0x00, 0x81, 0xe2, 0x54, 0x02, 0x90, 0xe5,
+       0xff, 0x10, 0xc0, 0xe3, 0x08, 0x00, 0x81, 0xe3, 0x80, 0x10, 0x9f, 0xe5, 0x54, 0x02, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x06, 0xa0, 0xe1, 0xf8, 0x02, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x01, 0x00, 0xa0, 0xe3, 0x80, 0x06, 0xa0, 0xe1, 0xf8, 0x02, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x07, 0xa0, 0xe1, 0xf8, 0x02, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x06, 0xa0, 0xe1, 0xdc, 0x02, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x04, 0xa0, 0xe1, 0xdc, 0x02, 0x81, 0xe5,
+       0x00, 0xf0, 0x20, 0xe3, 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x02, 0xa0, 0xe1, 0xe4, 0x02, 0x81, 0xe5,
+       0x1e, 0xff, 0x2f, 0xe1, 0x15, 0xf8, 0x41, 0x83, 0x00, 0x00, 0x00, 0xe8, 0xb4, 0x03, 0xd0, 0xe4,
+       0x01, 0x00, 0x30, 0x84, 0x33, 0x00, 0x20, 0x80, 0x23, 0x01, 0x14, 0x00, 0x41, 0xf0, 0x00, 0x00,
+       0x00, 0x00, 0xd0, 0xe4, 0x10, 0x40, 0x2d, 0xe9, 0x29, 0xf7, 0xff, 0xeb, 0x10, 0x80, 0xbd, 0xe8,
+       0x1e, 0xff, 0x2f, 0xe1, 0x50, 0xd0, 0x4d, 0xe2, 0xff, 0x00, 0x8d, 0xe8, 0x00, 0x50, 0x4f, 0xe1,
+       0x08, 0xe0, 0x4e, 0xe2, 0x4c, 0xe0, 0x8d, 0xe5, 0x20, 0x00, 0x8d, 0xe2, 0x0f, 0x10, 0x15, 0xe2,
+       0x00, 0x7f, 0xc0, 0x08, 0x1c, 0x00, 0x80, 0x02, 0x00, 0x40, 0xa0, 0x08, 0x06, 0x00, 0x00, 0x0a,
+       0x00, 0x20, 0x0f, 0xe1, 0x0f, 0x30, 0xc2, 0xe3, 0x01, 0x10, 0x83, 0xe1, 0x01, 0xf0, 0x2f, 0xe1,
+       0x00, 0x7f, 0xa0, 0xe8, 0x02, 0xf0, 0x2f, 0xe1, 0x00, 0x40, 0xa0, 0xe8, 0x10, 0x6f, 0x16, 0xee,
+       0x10, 0x7f, 0x15, 0xee, 0xe0, 0x00, 0x80, 0xe8, 0x0c, 0x30, 0x40, 0xe2, 0x00, 0x10, 0x93, 0xe5,
+       0x0d, 0x00, 0xa0, 0xe1, 0x14, 0x21, 0x9f, 0xe5, 0x14, 0x81, 0x9f, 0xe5, 0xb0, 0x80, 0xd8, 0xe1,
+       0x10, 0x91, 0x9f, 0xe5, 0x09, 0x00, 0x58, 0xe1, 0x00, 0x00, 0x00, 0x0a, 0x08, 0x21, 0x9f, 0xe5,
+       0xff, 0xfa, 0xff, 0xeb, 0xff, 0x1f, 0xbd, 0xe8, 0x18, 0xd0, 0x8d, 0xe2, 0x00, 0x80, 0xfd, 0xe8,
+       0x50, 0xd0, 0x4d, 0xe2, 0xff, 0x00, 0x8d, 0xe8, 0x00, 0x50, 0x4f, 0xe1, 0x04, 0xe0, 0x4e, 0xe2,
+       0x4c, 0xe0, 0x8d, 0xe5, 0x20, 0x00, 0x8d, 0xe2, 0x0f, 0x10, 0x15, 0xe2, 0x00, 0x7f, 0xc0, 0x08,
+       0x1c, 0x00, 0x80, 0x02, 0x00, 0x40, 0xa0, 0x08, 0x06, 0x00, 0x00, 0x0a, 0x00, 0x20, 0x0f, 0xe1,
+       0x0f, 0x30, 0xc2, 0xe3, 0x01, 0x10, 0x83, 0xe1, 0x01, 0xf0, 0x2f, 0xe1, 0x00, 0x7f, 0xa0, 0xe8,
+       0x02, 0xf0, 0x2f, 0xe1, 0x00, 0x40, 0xa0, 0xe8, 0x10, 0x6f, 0x16, 0xee, 0x10, 0x7f, 0x15, 0xee,
+       0xe0, 0x00, 0x80, 0xe8, 0x0c, 0x30, 0x40, 0xe2, 0x00, 0x10, 0x93, 0xe5, 0x0d, 0x00, 0xa0, 0xe1,
+       0x98, 0x20, 0x9f, 0xe5, 0xe2, 0xfa, 0xff, 0xeb, 0xff, 0x1f, 0xbd, 0xe8, 0x18, 0xd0, 0x8d, 0xe2,
+       0x00, 0x80, 0xfd, 0xe8, 0x50, 0xd0, 0x4d, 0xe2, 0xff, 0x00, 0x8d, 0xe8, 0x00, 0x50, 0x4f, 0xe1,
+       0x04, 0xe0, 0x4e, 0xe2, 0x4c, 0xe0, 0x8d, 0xe5, 0x20, 0x00, 0x8d, 0xe2, 0x0f, 0x10, 0x15, 0xe2,
+       0x00, 0x7f, 0xc0, 0x08, 0x1c, 0x00, 0x80, 0x02, 0x00, 0x40, 0xa0, 0x08, 0x06, 0x00, 0x00, 0x0a,
+       0x00, 0x20, 0x0f, 0xe1, 0x0f, 0x30, 0xc2, 0xe3, 0x01, 0x10, 0x83, 0xe1, 0x01, 0xf0, 0x2f, 0xe1,
+       0x00, 0x7f, 0xa0, 0xe8, 0x02, 0xf0, 0x2f, 0xe1, 0x00, 0x40, 0xa0, 0xe8, 0x10, 0x6f, 0x16, 0xee,
+       0x30, 0x7f, 0x15, 0xee, 0xe0, 0x00, 0x80, 0xe8, 0x0c, 0x30, 0x40, 0xe2, 0x00, 0x10, 0x93, 0xe5,
+       0x0d, 0x00, 0xa0, 0xe1, 0x28, 0x20, 0x9f, 0xe5, 0xc5, 0xfa, 0xff, 0xeb, 0xff, 0x1f, 0xbd, 0xe8,
+       0x18, 0xd0, 0x8d, 0xe2, 0x00, 0x80, 0xfd, 0xe8, 0x70, 0x00, 0x20, 0xe1, 0x1e, 0xff, 0x2f, 0xe1,
+       0xaa, 0xaa, 0x00, 0x00, 0x38, 0x39, 0x08, 0x00, 0xff, 0xff, 0x00, 0x00, 0xdd, 0xdd, 0x00, 0x00,
+       0xcc, 0xcc, 0x00, 0x00, 0xbb, 0xbb, 0x00, 0x00, 0x10, 0x40, 0x2d, 0xe9, 0x88, 0xfd, 0xff, 0xeb,
+       0x00, 0x10, 0xa0, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0x10, 0x80, 0xbd, 0xe8, 0x41, 0x62, 0x6e, 0x6f,
+       0x72, 0x6d, 0x61, 0x6c, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+       0x00, 0x00, 0x00, 0x41, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x20, 0x65, 0x78,
+       0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x00, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61,
+       0x6c, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00,
+       0x00, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69,
+       0x76, 0x65, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x20,
+       0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54,
+       0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65,
+       0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x20, 0x6f, 0x76, 0x65, 0x72,
+       0x66, 0x6c, 0x6f, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x65, 0x64,
+       0x69, 0x72, 0x65, 0x63, 0x74, 0x3a, 0x20, 0x63, 0x61, 0x6e, 0x27, 0x74, 0x20, 0x6f, 0x70, 0x65,
+       0x6e, 0x3a, 0x20, 0x00, 0x4f, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x68, 0x65, 0x61, 0x70, 0x20,
+       0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x73, 0x65, 0x72, 0x2d,
+       0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x31,
+       0x00, 0x00, 0x55, 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x73,
+       0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x32, 0x00, 0x00, 0x50, 0x75, 0x72, 0x65, 0x20, 0x76, 0x69,
+       0x72, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x66, 0x6e, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x00,
+       0x43, 0x2b, 0x2b, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x65, 0x78, 0x63, 0x65,
+       0x70, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x4f, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x68, 0x65,
+       0x61, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x02,
+       0x00, 0x20, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x18, 0xf0, 0x9f, 0xe5,
+       0x18, 0xf0, 0x9f, 0xe5, 0x18, 0xf0, 0x9f, 0xe5, 0x18, 0xf0, 0x9f, 0xe5, 0x18, 0xf0, 0x9f, 0xe5,
+       0x18, 0xf0, 0x9f, 0xe5, 0x18, 0xf0, 0x9f, 0xe5, 0x18, 0xf0, 0x9f, 0xe5, 0x68, 0x12, 0x08, 0x00,
+       0x40, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
+       0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0xff, 0x40, 0x2d, 0xe9,
+       0xfe, 0xff, 0xff, 0xea, 0xff, 0x80, 0xfd, 0xe8, 0xfe, 0xff, 0xff, 0xea, 0x04, 0xe0, 0x4e, 0xe2,
+       0xff, 0x40, 0x2d, 0xe9, 0xfe, 0xff, 0xff, 0xea, 0xff, 0x80, 0xfd, 0xe8, 0x04, 0xe0, 0x4e, 0xe2,
+       0xff, 0x40, 0x2d, 0xe9, 0xfe, 0xff, 0xff, 0xea, 0xff, 0x80, 0xfd, 0xe8, 0xfe, 0xff, 0xff, 0xea,
+       0x04, 0xe0, 0x4e, 0xe2, 0x00, 0x40, 0x2d, 0xe9, 0x00, 0xe0, 0x4f, 0xe1, 0x1f, 0x40, 0x2d, 0xe9,
+       0x00, 0x00, 0x0f, 0xe1, 0x00, 0x20, 0xa0, 0xe1, 0xe0, 0x00, 0x00, 0xe2, 0x13, 0x00, 0x80, 0xe3,
+       0x00, 0xf0, 0x21, 0xe1, 0x04, 0x00, 0x2d, 0xe9, 0x8c, 0x30, 0x9f, 0xe5, 0x00, 0x40, 0x93, 0xe5,
+       0xff, 0x40, 0x04, 0xe2, 0x84, 0x30, 0x9f, 0xe5, 0x00, 0x00, 0x93, 0xe5, 0x00, 0x00, 0x10, 0xe1,
+       0x13, 0x00, 0x00, 0x0a, 0x78, 0x30, 0x9f, 0xe5, 0x00, 0x20, 0x93, 0xe5, 0x04, 0x00, 0x2d, 0xe9,
+       0x0f, 0x00, 0x50, 0xe3, 0x01, 0x00, 0x80, 0x12, 0x00, 0x00, 0x83, 0xe5, 0xff, 0x5f, 0x2d, 0xe9,
+       0x60, 0x20, 0x9f, 0xe5, 0x84, 0x11, 0xa0, 0xe1, 0x01, 0x20, 0x82, 0xe0, 0x01, 0x40, 0x2d, 0xe9,
+       0x04, 0x00, 0xa0, 0xe1, 0x0f, 0xe0, 0xa0, 0xe1, 0x04, 0xe0, 0x8e, 0xe2, 0x00, 0xf0, 0x92, 0xe5,
+       0x01, 0x40, 0xbd, 0xe8, 0xff, 0x5f, 0xbd, 0xe8, 0x04, 0x00, 0xbd, 0xe8, 0x30, 0x30, 0x9f, 0xe5,
+       0x00, 0x20, 0x83, 0xe5, 0x04, 0x00, 0xbd, 0xe8, 0x80, 0x20, 0x82, 0xe3, 0x02, 0xf0, 0x21, 0xe1,
+       0x01, 0x10, 0xa0, 0xe3, 0x20, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x80, 0xe5, 0x1f, 0x40, 0xbd, 0xe8,
+       0x0e, 0xf0, 0x69, 0xe1, 0x00, 0x80, 0xfd, 0xe8, 0xfe, 0xff, 0xff, 0xea, 0x84, 0x04, 0x00, 0xe0,
+       0x88, 0x04, 0x00, 0xe0, 0x70, 0x04, 0x00, 0xe0, 0x00, 0x30, 0xff, 0xff, 0x14, 0x00, 0x80, 0xf2,
+       0x01, 0xff, 0x01, 0xff, 0x01, 0xff, 0x01, 0xff, 0x01, 0x2e, 0x82, 0x01, 0x82, 0x01, 0x82, 0x01,
+       0x82, 0x01, 0x82, 0x01, 0x02, 0xff, 0x01, 0x01, 0xed, 0x00, 0x00, 0x00
+};
\ No newline at end of file
diff --git a/board/samsung/p1p2/psi_ram.hex b/board/samsung/p1p2/psi_ram.hex
new file mode 100644 (file)
index 0000000..c6e66f8
--- /dev/null
@@ -0,0 +1,938 @@
+0000000    0d87    ea00    696c    5548    a001    fdfe    0007    0001
+0000010    ff00    0000    0210    0000    0200    0000    0204    0000
+0000020    ffff    ffff    ffff    ffff    fe00    0000    ffff    ffff
+0000030    0000    0008    ffff    fff7    0200    0008    4a43    544b
+0000040    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000050    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000060    0000    0000    0000    0000    0000    0000    0000    0000
+0000070    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000080    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000090    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+00000a0    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+00000b0    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+00000c0    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+00000d0    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+00000e0    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+00000f0    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000100    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000110    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000120    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000130    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000140    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000150    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000160    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000170    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000180    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+0000190    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+00001a0    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+00001b0    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+00001c0    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+00001d0    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+00001e0    ffff    ffff    ffff    ffff    ffff    ffff    ffff    ffff
+00001f0    ffff    ffff    ffff    ffff    ffff    ffff    dabe    02fe
+0000200    040b    ea00    0d06    ea00    0000    0000    0000    0000
+0000210    0000    0000    0000    0000    0000    0000    0000    0000
+0000220    0000    0000    0000    0000    0000    0000    0000    0000
+0000230    0000    0000    0000    0000    0000    0000    0000    0000
+0000240    0000    0000    0000    0000    0000    0000    0000    0000
+0000250    0000    0000    0000    0000    0000    0000    0000    0000
+0000260    0000    0000    0000    0000    0000    0000    0000    0000
+0000270    0000    0000    0000    0000    0000    0000    0000    0000
+0000280    0000    0000    0000    0000    0000    0000    0000    0000
+0000290    0000    0000    0000    0000    0000    0000    0000    0000
+00002a0    0000    0000    0000    0000    0000    0000    0000    0000
+00002b0    0000    0000    0000    0000    0000    0000    0000    0000
+00002c0    0000    0000    0000    0000    0000    0000    0000    0000
+00002d0    0000    0000    0000    0000    0000    0000    0000    0000
+00002e0    0000    0000    0000    0000    0000    0000    0000    0000
+00002f0    0000    0000    0000    0000    0000    0000    0000    0000
+0000300    0000    0000    0000    0000    0000    0000    0000    0000
+0000310    0000    0000    0000    0000    0000    0000    0000    0000
+0000320    0000    0000    0000    0000    0000    0000    0000    0000
+0000330    0000    0000    0000    0000    0000    0000    0000    0000
+0000340    0000    0000    0000    0000    0000    0000    0000    0000
+0000350    0000    0000    0000    0000    0000    0000    0000    0000
+0000360    0000    0000    0000    0000    0000    0000    0000    0000
+0000370    0000    0000    0000    0000    0000    0000    0000    0000
+0000380    0000    0000    0000    0000    0000    0000    0000    0000
+0000390    0000    0000    0000    0000    0000    0000    0000    0000
+00003a0    0000    0000    0000    0000    0000    0000    0000    0000
+00003b0    0000    0000    0000    0000    0000    0000    0000    0000
+00003c0    0000    0000    0000    0000    0000    0000    0000    0000
+00003d0    0000    0000    0000    0000    0000    0000    0000    0000
+00003e0    0000    0000    0000    0000    0000    0000    0000    0000
+00003f0    0000    0000    0000    0000    0000    0000    0000    0000
+0000400    0000    0000    0000    0000    0000    0000    0000    0000
+0000410    0000    0000    0000    0000    0000    0000    0000    0000
+0000420    0000    0000    0000    0000    0000    0000    0000    0000
+0000430    0000    0000    0000    0000    0000    0000    0000    0000
+0000440    0000    0000    0000    0000    0000    0000    0000    0000
+0000450    0000    0000    0000    0000    0000    0000    0000    0000
+0000460    0000    0000    0000    0000    0000    0000    0000    0000
+0000470    0000    0000    0000    0000    0000    0000    0000    0000
+0000480    0000    0000    0000    0000    0000    0000    0000    0000
+0000490    0000    0000    0000    0000    0000    0000    0000    0000
+00004a0    0000    0000    0000    0000    0000    0000    0000    0000
+00004b0    0000    0000    0000    0000    0000    0000    0000    0000
+00004c0    0000    0000    0000    0000    0000    0000    0000    0000
+00004d0    0000    0000    0000    0000    0000    0000    0000    0000
+00004e0    0000    0000    0000    0000    0000    0000    0000    0000
+00004f0    0000    0000    0000    0000    0000    0000    0000    0000
+0000500    0000    0000    0000    0000    0000    0000    0000    0000
+0000510    0000    0000    0000    0000    0000    0000    0000    0000
+0000520    0000    0000    0000    0000    0000    0000    0000    0000
+0000530    0000    0000    0000    0000    0000    0000    0000    0000
+0000540    0000    0000    0000    0000    0000    0000    0000    0000
+0000550    0000    0000    0000    0000    0000    0000    0000    0000
+0000560    0000    0000    0000    0000    0000    0000    0000    0000
+0000570    0000    0000    0000    0000    0000    0000    0000    0000
+0000580    0000    0000    0000    0000    0000    0000    0000    0000
+0000590    0000    0000    0000    0000    0000    0000    0000    0000
+00005a0    0000    0000    0000    0000    0000    0000    0000    0000
+00005b0    0000    0000    0000    0000    0000    0000    0000    0000
+00005c0    0000    0000    0000    0000    0000    0000    0000    0000
+00005d0    0000    0000    0000    0000    0000    0000    0000    0000
+00005e0    0000    0000    0000    0000    0000    0000    0000    0000
+00005f0    0000    0000    0000    0000    0000    0000    0000    0000
+0000600    0000    0000    0000    0000    0000    0000    0000    0000
+0000610    0000    0000    0000    0000    0000    0000    0000    0000
+0000620    0000    0000    0000    0000    0000    0000    0000    0000
+0000630    0000    0000    0000    0000    0000    0000    0000    0000
+0000640    0000    0000    0000    0000    0000    0000    0000    0000
+0000650    0000    0000    0000    0000    0000    0000    0000    0000
+0000660    0000    0000    0000    0000    0000    0000    0000    0000
+0000670    0000    0000    0000    0000    0000    0000    0000    0000
+0000680    0000    0000    0000    0000    0000    0000    0000    0000
+0000690    0000    0000    0000    0000    0000    0000    0000    0000
+00006a0    0000    0000    0000    0000    0000    0000    0000    0000
+00006b0    0000    0000    0000    0000    0000    0000    0000    0000
+00006c0    0000    0000    0000    0000    0000    0000    0000    0000
+00006d0    0000    0000    0000    0000    0000    0000    0000    0000
+00006e0    0000    0000    0000    0000    0000    0000    0000    0000
+00006f0    0000    0000    0000    0000    0000    0000    0000    0000
+0000700    0000    0000    0000    0000    0000    0000    0000    0000
+0000710    0000    0000    0000    0000    0000    0000    0000    0000
+0000720    0000    0000    0000    0000    0000    0000    0000    0000
+0000730    0000    0000    0000    0000    0000    0000    0000    0000
+0000740    0000    0000    0000    0000    0000    0000    0000    0000
+0000750    0000    0000    0000    0000    0000    0000    0000    0000
+0000760    0000    0000    0000    0000    0000    0000    0000    0000
+0000770    0000    0000    0000    0000    0000    0000    0000    0000
+0000780    0000    0000    0000    0000    0000    0000    0000    0000
+0000790    0000    0000    0000    0000    0000    0000    0000    0000
+00007a0    0000    0000    0000    0000    0000    0000    0000    0000
+00007b0    0000    0000    0000    0000    0000    0000    0000    0000
+00007c0    0000    0000    0000    0000    0000    0000    0000    0000
+00007d0    0000    0000    0000    0000    0000    0000    0000    0000
+00007e0    0000    0000    0000    0000    0000    0000    0000    0000
+00007f0    0000    0000    0000    0000    0000    0000    0000    0000
+0000800    0000    0000    0000    0000    0000    0000    0000    0000
+0000810    0000    0000    0000    0000    0000    0000    0000    0000
+0000820    0000    0000    0000    0000    0000    0000    0000    0000
+0000830    0000    0000    0000    0000    0000    0000    0000    0000
+0000840    0000    0000    0000    0000    0000    0000    0000    0000
+0000850    0000    0000    0000    0000    0000    0000    0000    0000
+0000860    0000    0000    0000    0000    0000    0000    0000    0000
+0000870    0000    0000    0000    0000    0000    0000    0000    0000
+0000880    0000    0000    0000    0000    0000    0000    0000    0000
+0000890    0000    0000    0000    0000    0000    0000    0000    0000
+00008a0    0000    0000    0000    0000    0000    0000    0000    0000
+00008b0    0000    0000    0000    0000    0000    0000    0000    0000
+00008c0    0000    0000    0000    0000    0000    0000    0000    0000
+00008d0    0000    0000    0000    0000    0000    0000    0000    0000
+00008e0    0000    0000    0000    0000    0000    0000    0000    0000
+00008f0    0000    0000    0000    0000    0000    0000    0000    0000
+0000900    0000    0000    0000    0000    0000    0000    0000    0000
+0000910    0000    0000    0000    0000    0000    0000    0000    0000
+0000920    0000    0000    0000    0000    0000    0000    0000    0000
+0000930    0000    0000    0000    0000    0000    0000    0000    0000
+0000940    0000    0000    0000    0000    0000    0000    0000    0000
+0000950    0000    0000    0000    0000    0000    0000    0000    0000
+0000960    0000    0000    0000    0000    0000    0000    0000    0000
+0000970    0000    0000    0000    0000    0000    0000    0000    0000
+0000980    0000    0000    0000    0000    0000    0000    0000    0000
+0000990    0000    0000    0000    0000    0000    0000    0000    0000
+00009a0    0000    0000    0000    0000    0000    0000    0000    0000
+00009b0    0000    0000    0000    0000    0000    0000    0000    0000
+00009c0    0000    0000    0000    0000    0000    0000    0000    0000
+00009d0    0000    0000    0000    0000    0000    0000    0000    0000
+00009e0    0000    0000    0000    0000    0000    0000    0000    0000
+00009f0    0000    0000    0000    0000    0000    0000    0000    0000
+0000a00    0000    0000    0000    0000    0000    0000    0000    0000
+0000a10    0000    0000    0000    0000    0000    0000    0000    0000
+0000a20    0000    0000    0000    0000    0000    0000    0000    0000
+0000a30    0000    0000    0000    0000    0000    0000    0000    0000
+0000a40    0000    0000    0000    0000    0000    0000    0000    0000
+0000a50    0000    0000    0000    0000    0000    0000    0000    0000
+0000a60    0000    0000    0000    0000    0000    0000    0000    0000
+0000a70    0000    0000    0000    0000    0000    0000    0000    0000
+0000a80    0000    0000    0000    0000    0000    0000    0000    0000
+0000a90    0000    0000    0000    0000    0000    0000    0000    0000
+0000aa0    0000    0000    0000    0000    0000    0000    0000    0000
+0000ab0    0000    0000    0000    0000    0000    0000    0000    0000
+0000ac0    0000    0000    0000    0000    0000    0000    0000    0000
+0000ad0    0000    0000    0000    0000    0000    0000    0000    0000
+0000ae0    0000    0000    0000    0000    0000    0000    0000    0000
+0000af0    0000    0000    0000    0000    0000    0000    0000    0000
+0000b00    0000    0000    0000    0000    0000    0000    0000    0000
+0000b10    0000    0000    0000    0000    0000    0000    0000    0000
+0000b20    0000    0000    0000    0000    0000    0000    0000    0000
+0000b30    0000    0000    0000    0000    0000    0000    0000    0000
+0000b40    0000    0000    0000    0000    0000    0000    0000    0000
+0000b50    0000    0000    0000    0000    0000    0000    0000    0000
+0000b60    0000    0000    0000    0000    0000    0000    0000    0000
+0000b70    0000    0000    0000    0000    0000    0000    0000    0000
+0000b80    0000    0000    0000    0000    0000    0000    0000    0000
+0000b90    0000    0000    0000    0000    0000    0000    0000    0000
+0000ba0    0000    0000    0000    0000    0000    0000    0000    0000
+0000bb0    0000    0000    0000    0000    0000    0000    0000    0000
+0000bc0    0000    0000    0000    0000    0000    0000    0000    0000
+0000bd0    0000    0000    0000    0000    0000    0000    0000    0000
+0000be0    0000    0000    0000    0000    0000    0000    0000    0000
+0000bf0    0000    0000    0000    0000    0000    0000    0000    0000
+0000c00    0000    0000    0000    0000    0000    0000    0000    0000
+0000c10    0000    0000    0000    0000    0000    0000    0000    0000
+0000c20    0000    0000    0000    0000    0000    0000    0000    0000
+0000c30    0000    0000    0000    0000    0000    0000    0000    0000
+0000c40    0000    0000    0000    0000    0000    0000    0000    0000
+0000c50    0000    0000    0000    0000    0000    0000    0000    0000
+0000c60    0000    0000    0000    0000    0000    0000    0000    0000
+0000c70    0000    0000    0000    0000    0000    0000    0000    0000
+0000c80    0000    0000    0000    0000    0000    0000    0000    0000
+0000c90    0000    0000    0000    0000    0000    0000    0000    0000
+0000ca0    0000    0000    0000    0000    0000    0000    0000    0000
+0000cb0    0000    0000    0000    0000    0000    0000    0000    0000
+0000cc0    0000    0000    0000    0000    0000    0000    0000    0000
+0000cd0    0000    0000    0000    0000    0000    0000    0000    0000
+0000ce0    0000    0000    0000    0000    0000    0000    0000    0000
+0000cf0    0000    0000    0000    0000    0000    0000    0000    0000
+0000d00    0000    0000    0000    0000    0000    0000    0000    0000
+0000d10    0000    0000    0000    0000    0000    0000    0000    0000
+0000d20    0000    0000    0000    0000    0000    0000    0000    0000
+0000d30    0000    0000    0000    0000    0000    0000    0000    0000
+0000d40    0000    0000    0000    0000    0000    0000    0000    0000
+0000d50    0000    0000    0000    0000    0000    0000    0000    0000
+0000d60    0000    0000    0000    0000    0000    0000    0000    0000
+0000d70    0000    0000    0000    0000    0000    0000    0000    0000
+0000d80    0000    0000    0000    0000    0000    0000    0000    0000
+0000d90    0000    0000    0000    0000    0000    0000    0000    0000
+0000da0    0000    0000    0000    0000    0000    0000    0000    0000
+0000db0    0000    0000    0000    0000    0000    0000    0000    0000
+0000dc0    0000    0000    0000    0000    0000    0000    0000    0000
+0000dd0    0000    0000    0000    0000    0000    0000    0000    0000
+0000de0    0000    0000    0000    0000    0000    0000    0000    0000
+0000df0    0000    0000    0000    0000    0000    0000    0000    0000
+0000e00    0000    0000    0000    0000    0000    0000    0000    0000
+0000e10    0000    0000    0000    0000    0000    0000    0000    0000
+0000e20    0000    0000    0000    0000    0000    0000    0000    0000
+0000e30    0000    0000    0000    0000    0000    0000    0000    0000
+0000e40    0000    0000    0000    0000    0000    0000    0000    0000
+0000e50    0000    0000    0000    0000    0000    0000    0000    0000
+0000e60    0000    0000    0000    0000    0000    0000    0000    0000
+0000e70    0000    0000    0000    0000    0000    0000    0000    0000
+0000e80    0000    0000    0000    0000    0000    0000    0000    0000
+0000e90    0000    0000    0000    0000    0000    0000    0000    0000
+0000ea0    0000    0000    0000    0000    0000    0000    0000    0000
+0000eb0    0000    0000    0000    0000    0000    0000    0000    0000
+0000ec0    0000    0000    0000    0000    0000    0000    0000    0000
+0000ed0    0000    0000    0000    0000    0000    0000    0000    0000
+0000ee0    0000    0000    0000    0000    0000    0000    0000    0000
+0000ef0    0000    0000    0000    0000    0000    0000    0000    0000
+0000f00    0000    0000    0000    0000    0000    0000    0000    0000
+0000f10    0000    0000    0000    0000    0000    0000    0000    0000
+0000f20    0000    0000    0000    0000    0000    0000    0000    0000
+0000f30    0000    0000    0000    0000    0000    0000    0000    0000
+0000f40    0000    0000    0000    0000    0000    0000    0000    0000
+0000f50    0000    0000    0000    0000    0000    0000    0000    0000
+0000f60    0000    0000    0000    0000    0000    0000    0000    0000
+0000f70    0000    0000    0000    0000    0000    0000    0000    0000
+0000f80    0000    0000    0000    0000    0000    0000    0000    0000
+0000f90    0000    0000    0000    0000    0000    0000    0000    0000
+0000fa0    0000    0000    0000    0000    0000    0000    0000    0000
+0000fb0    0000    0000    0000    0000    0000    0000    0000    0000
+0000fc0    0000    0000    0000    0000    0000    0000    0000    0000
+0000fd0    0000    0000    0000    0000    0000    0000    0000    0000
+0000fe0    0000    0000    0000    0000    0000    0000    0000    0000
+0000ff0    0000    0000    0000    0000    0000    0000    0000    0000
+0001000    0000    0000    0000    0000    0000    0000    0000    0000
+0001010    0000    0000    0000    0000    0000    0000    0000    0000
+0001020    0000    0000    0000    0000    0000    0000    0000    0000
+0001030    0000    0000    0000    0000    0000    0000    0000    0000
+0001040    0000    0000    0000    0000    0000    0000    0000    0000
+0001050    0000    0000    0000    0000    0000    0000    0000    0000
+0001060    0000    0000    0000    0000    0000    0000    0000    0000
+0001070    0000    0000    0000    0000    0000    0000    0000    0000
+0001080    0000    0000    0000    0000    0000    0000    0000    0000
+0001090    0000    0000    0000    0000    0000    0000    0000    0000
+00010a0    0000    0000    0000    0000    0000    0000    0000    0000
+00010b0    0000    0000    0000    0000    0000    0000    0000    0000
+00010c0    0000    0000    0000    0000    0000    0000    0000    0000
+00010d0    0000    0000    0000    0000    0000    0000    0000    0000
+00010e0    0000    0000    0000    0000    0000    0000    0000    0000
+00010f0    0000    0000    0000    0000    0000    0000    0000    0000
+0001100    0000    ea00    0665    ea00    0028    e28f    0c00    e890
+0001110    a000    e08a    7001    e24a    b000    e08b    000b    e15a
+0001120    065e    0a00    000f    e8ba    e014    e24f    0001    e313
+0001130    f003    1047    f003    e1a0    00ac    0000    00fc    0000
+0001140    2001    e082    4001    e4d0    500f    e214    5001    04d0
+0001150    4224    e1b0    4001    04d0    5001    e255    0003    0a00
+0001160    3001    e4d0    5001    e255    3001    e4c1    fffb    1aff
+0001170    4001    e254    0002    0a00    4001    e254    5001    e4c1
+0001180    fffc    1aff    0002    e151    ffed    3aff    f00e    e1a0
+0001190    2010    e252    0078    28b0    0078    28a1    fffb    8aff
+00011a0    2e82    e1b0    0030    28b0    0030    28a1    4000    4590
+00011b0    4000    4581    f00e    e1a0    3000    e3a0    4000    e3a0
+00011c0    5000    e3a0    6000    e3a0    2010    e252    0078    28a1
+00011d0    fffc    8aff    2e82    e1b0    0030    28a1    3000    4581
+00011e0    f00e    e1a0    393c    0008    0000    0000    0074    0000
+00011f0    1190    0008    39b0    0008    0000    ffff    00d0    0000
+0001200    1190    0008    3a80    0008    3000    ffff    0638    0000
+0001210    1140    0008    393c    0008    393c    0008    0140    0000
+0001220    11b8    0008    3a9c    0008    3638    ffff    0004    0000
+0001230    11b8    0008    4010    e92d    f000    e320    101c    e59f
+0001240    1078    e591    1102    e201    2102    e3a0    0fa1    e182
+0001250    1008    e59f    0078    e581    001d    eb00    8010    e8bd
+0001260    0000    e490    0000    0000    002c    e59f    1000    e3a0
+0001270    1000    e580    001a    eb00    0008    eb00    0f10    ee11
+0001280    0a01    e3c0    0f10    ee01    0000    e10f    0080    e3c0
+0001290    f000    e121    ff99    eaff    fffe    eaff    007c    e490
+00012a0    0f11    ee19    1020    e59f    0001    e180    0001    e380
+00012b0    0f11    ee09    0f31    ee19    1010    e59f    0001    e180
+00012c0    0001    e380    0f31    ee09    ff1e    e12f    3000    ffff
+00012d0    0000    ffff    4010    e92d    01b7    eb00    ffe1    ebff
+00012e0    8010    e8bd    1000    e10f    00a4    e59f    0007    e3c0
+00012f0    2000    e10f    201f    e3c2    2012    e382    f002    e12f
+0001300    d000    e1a0    0088    e59f    0007    e3c0    2000    e10f
+0001310    201f    e3c2    2011    e382    f002    e12f    d000    e1a0
+0001320    0070    e59f    0007    e3c0    2000    e10f    201f    e3c2
+0001330    201b    e382    f002    e12f    d000    e1a0    0058    e59f
+0001340    2000    e10f    201f    e3c2    2017    e382    f002    e12f
+0001350    d000    e1a0    0044    e59f    0007    e3c0    2000    e10f
+0001360    201f    e3c2    2013    e382    f002    e12f    d000    e1a0
+0001370    002c    e59f    0007    e3c0    2000    e10f    201f    e3c2
+0001380    201f    e382    f002    e12f    d000    e1a0    f001    e12f
+0001390    ff1e    e12f    d280    0009    e400    0009    d100    0009
+00013a0    e280    0009    e300    0009    3004    e59f    3003    e08f
+00013b0    f003    e1a0    227c    0000    4010    e92d    0277    eb00
+00013c0    04b0    eb00    8010    e8bd    4077    e92d    d004    e24d
+00013d0    5001    e1a0    4002    e1a0    0004    e5dd    0004    e350
+00013e0    0004    ba00    0004    e5dd    00c6    e350    0001    ca00
+00013f0    0001    e3a0    0000    ea00    0000    e3a0    0000    e350
+0001400    0009    1a00    3f97    e28f    3000    e58d    3081    e3a0
+0001410    2004    e28d    1001    e3a0    0274    e59f    03ad    eb00
+0001420    0001    e3e0    d010    e28d    8070    e8bd    0000    e354
+0001430    0003    0a00    025c    e59f    1004    e5dd    0181    e790
+0001440    0000    e584    024c    e59f    1004    e5dd    5181    e780
+0001450    0000    e3a0    fff2    eaff    4011    e92d    d004    e24d
+0001460    0004    e5dd    0004    e350    0004    ba00    0004    e5dd
+0001470    00c6    e350    0001    ca00    0001    e3a0    0000    ea00
+0001480    0000    e3a0    0000    e350    0008    1a00    3f75    e28f
+0001490    3000    e58d    30c4    e3a0    2004    e28d    1001    e3a0
+00014a0    01ec    e59f    038b    eb00    0001    e3e0    801c    e8bd
+00014b0    0001    e3a0    11dc    e59f    2004    e5dd    1182    e081
+00014c0    0004    e5c1    0004    e5dd    21c8    e59f    2180    e082
+00014d0    1005    e5d2    21c0    e59f    1100    e782    f000    e320
+00014e0    01b8    e59f    0000    e590    0000    e350    0008    1a00
+00014f0    f000    e320    0050    e242    0480    e590    0001    e380
+0001500    1050    e242    0480    e581    0001    e3a0    118c    e59f
+0001510    0000    e581    0000    e3a0    ffe3    eaff    4011    e92d
+0001520    d004    e24d    0004    e5dd    0004    e350    0004    ba00
+0001530    0004    e5dd    00c6    e350    0001    ca00    0001    e3a0
+0001540    0000    ea00    0000    e3a0    0000    e350    0008    1a00
+0001550    3e11    e28f    3000    e58d    30de    e3a0    2004    e28d
+0001560    1001    e3a0    0128    e59f    035a    eb00    0001    e3e0
+0001570    801c    e8bd    0000    e3a0    1118    e59f    2004    e5dd
+0001580    1182    e081    0004    e5c1    0004    e5dd    1108    e59f
+0001590    2000    e3a0    2100    e781    f000    e320    0000    e3a0
+00015a0    fff2    eaff    4077    e92d    d004    e24d    4001    e1a0
+00015b0    5002    e1a0    0004    e5dd    0004    e350    0004    ba00
+00015c0    0004    e5dd    00c6    e350    0001    ca00    0001    e3a0
+00015d0    0000    ea00    0000    e3a0    0000    e350    0008    0a00
+00015e0    0000    e354    0003    ba00    000f    e354    0001    ca00
+00015f0    0001    e3a0    0000    ea00    0000    e3a0    0000    e350
+0001600    0009    1a00    305c    e28f    3000    e58d    30a7    e3a0
+0001610    2004    e28d    1001    e3a0    0074    e59f    032d    eb00
+0001620    0001    e3e0    d010    e28d    8070    e8bd    0000    e355
+0001630    0004    0a00    005c    e59f    1004    e5dd    0181    e080
+0001640    0005    e5d0    0000    e585    0000    e354    0002    1a00
+0001650    0004    e5dd    ffb0    ebff    fff1    eaff    0004    e5dd
+0001660    ff7c    ebff    ffee    eaff    7764    7464    6f6f    736c
+0001670    6372    625c    6f6f    6374    726f    5c65    7264    7669
+0001680    7265    5c73    6349    5c75    7273    5c63    6369    2e75
+0001690    0063    0000    08fc    0000    3000    ffff    0050    e000
+00016a0    3638    ffff    f000    e320    0228    e59f    0488    e590
+00016b0    000f    e200    0000    e350    0001    0a00    0001    e3a0
+00016c0    0000    ea00    0000    e3a0    ff1e    e12f    0000    e3a0
+00016d0    ff1e    e12f    40f3    e92d    d004    e24d    4001    e1a0
+00016e0    0004    e5dd    0004    e350    0004    ba00    0004    e5dd
+00016f0    00c6    e350    0001    ca00    0001    e3a0    0000    ea00
+0001700    0000    e3a0    0000    e350    0008    1a00    30ac    e24f
+0001710    3000    e58d    3f45    e3a0    2004    e28d    1001    e3a0
+0001720    0094    e51f    02eb    eb00    0001    e3e0    80fe    e8bd
+0001730    2004    e5dd    0000    e354    0001    0a00    0001    e3a0
+0001740    0000    ea00    0000    e3a0    c000    e1a0    0184    e59f
+0001750    12a2    e1a0    301f    e202    0000    e35c    0004    0a00
+0001760    e101    e790    5001    e3a0    e315    e18e    e101    e780
+0001770    0004    ea00    e101    e790    5001    e3a0    5315    e1e0
+0001780    e005    e00e    e101    e780    f000    e320    f000    e320
+0001790    0000    e3a0    ffe4    eaff    0000    e3a0    ff1e    e12f
+00017a0    4010    e92d    4004    e3a0    0008    ea00    011c    e51f
+00017b0    0184    e080    0004    e5d0    0000    e350    0001    0a00
+00017c0    0004    e1a0    ff23    ebff    0001    e284    40ff    e200
+00017d0    00c6    e354    fff4    daff    0140    e51f    0000    e590
+00017e0    0000    e350    0006    0a00    f000    e320    00e4    e59f
+00017f0    0480    e590    0001    e380    10d8    e59f    0480    e581
+0001800    f000    e320    0000    e3a0    8010    e8bd    1000    e1a0
+0001810    0000    e3a0    ff1e    e12f    4071    e92d    d004    e24d
+0001820    4000    e3a0    0004    e5dd    000f    e350    0007    da00
+0001830    3e1d    e24f    3000    e58d    309c    e59f    2004    e28d
+0001840    1001    e3a0    01b8    e51f    02a2    eb00    0010    ea00
+0001850    0334    eb00    5000    e1a0    f000    e320    0074    e59f
+0001860    0470    e590    000f    e200    4000    e1a0    0004    e5dd
+0001870    1060    e59f    1470    e591    100f    e3c1    200f    e200
+0001880    1002    e181    204c    e59f    1470    e582    0005    e1a0
+0001890    0330    eb00    0004    e1a0    807c    e8bd    0000    e3a0
+00018a0    0000    e10f    03a0    e1e0    0001    e200    ff1e    e12f
+00018b0    0000    e3a0    1000    e3a0    0000    e10f    1080    e380
+00018c0    f001    e121    03a0    e1e0    0001    e200    1000    e1a0
+00018d0    0001    e1a0    ff1e    e12f    0000    e000    017b    0000
+00018e0    f000    e320    3280    e59f    3024    e593    1003    e1a0
+00018f0    f000    e320    3270    e59f    3024    e593    3001    e203
+0001900    0000    e353    0003    0a00    f000    e320    3258    e59f
+0001910    002c    e593    0003    ea00    f000    e320    3248    e59f
+0001920    0028    e593    f000    e320    3cff    e3c1    30fe    e3c3
+0001930    c00c    e200    300c    e183    20f0    e383    f000    e320
+0001940    3224    e59f    2024    e583    ff1e    e12f    4010    e92d
+0001950    ffe2    ebff    f000    e320    020c    e59f    0024    e590
+0001960    4000    e1a0    4074    e6ff    40f0    e384    4002    e384
+0001970    4001    e3c4    f000    e320    01ec    e59f    4024    e580
+0001980    8010    e8bd    4010    e92d    ffd4    ebff    f000    e320
+0001990    01d4    e59f    0024    e590    4000    e1a0    4074    e6ff
+00019a0    40f0    e384    4002    e384    4001    e384    f000    e320
+00019b0    01b4    e59f    4024    e580    8010    e8bd    e004    e52d
+00019c0    ffe1    ebff    f000    e320    019c    e59f    0028    e590
+00019d0    0004    e3c0    1000    e3a0    2004    e3a0    1101    e002
+00019e0    0001    e180    1180    e59f    0028    e581    f000    e320
+00019f0    0000    e281    0028    e590    0008    e3c0    1001    e3a0
+0001a00    2008    e3a0    1181    e002    0001    e180    1158    e59f
+0001a10    0028    e581    ffda    ebff    f004    e49d    f000    e320
+0001a20    0144    e59f    0060    e590    0800    e1a0    0c20    e1a0
+0001a30    ff1e    e12f    4070    e92d    5000    e1a0    4001    e1a0
+0001a40    6000    e3a0    0001    e355    0004    0a00    0002    e355
+0001a50    0005    0a00    0003    e355    0009    1a00    0005    ea00
+0001a60    f000    e320    f000    e320    0007    ea00    f000    e320
+0001a70    6202    e386    0004    ea00    f000    e320    6203    e386
+0001a80    0001    ea00    f000    e320    f000    e320    f000    e320
+0001a90    0001    e314    0000    0a00    6010    e386    0002    e314
+0001aa0    0000    0a00    6008    e386    0004    e314    0000    0a00
+0001ab0    6004    e386    0008    e314    0000    0a00    6001    e386
+0001ac0    0298    eb00    ffa0    ebff    f000    e320    0098    e59f
+0001ad0    6014    e580    f000    e320    fffe    eaff    4010    e92d
+0001ae0    400f    e3a0    1004    e1a0    0001    e3a0    ffd0    ebff
+0001af0    8010    e8bd    f000    e320    006c    e59f    0718    e590
+0001b00    0003    e200    0001    e350    0005    0a00    f000    e320
+0001b10    0054    e59f    0718    e590    0003    e200    0003    e350
+0001b20    0001    1a00    0001    e3a0    ff1e    e12f    0000    e3a0
+0001b30    fffc    eaff    f000    e320    002c    e59f    0078    e590
+0001b40    ff1e    e12f    f000    e320    101c    e59f    0078    e581
+0001b50    ff1e    e12f    f000    e320    000c    e59f    0010    e590
+0001b60    0600    e1a0    0e20    e1a0    ff1e    e12f    0000    e490
+0001b70    f000    e320    0148    e59f    0000    e590    0c01    e350
+0001b80    0004    0a00    f000    e320    0c01    e3a0    1130    e59f
+0001b90    0000    e581    f000    e320    ff1e    e12f    f000    e320
+0001ba0    0003    e3a0    1118    e59f    0000    e581    ff1e    e12f
+0001bb0    4070    e92d    f000    e320    0104    e59f    0024    e590
+0001bc0    5000    e1a0    10fc    e59f    04f3    eb00    4000    e1a0
+0001bd0    00f4    e59f    0008    e590    0000    e350    000b    0a00
+0001be0    00e4    e59f    0004    e590    0004    e150    0003    8a00
+0001bf0    00d4    e59f    0000    e590    0004    e150    0001    8a00
+0001c00    0000    e3a0    8070    e8bd    0001    e3a0    fffc    eaff
+0001c10    00b4    e59f    0004    e590    0004    e150    0001    9a00
+0001c20    0000    e3a0    fff6    eaff    0001    e3a0    fff4    eaff
+0001c30    4070    e92d    4000    e1a0    ffcc    ebff    f000    e320
+0001c40    007c    e59f    0024    e590    5000    e1a0    1074    e59f
+0001c50    04d1    eb00    1070    e59f    0000    e581    0000    e281
+0001c60    0000    e590    0004    e080    0004    e581    0000    e281
+0001c70    0004    e590    1000    e591    0001    e150    0003    9a00
+0001c80    0000    e3a0    1040    e59f    0008    e581    0002    ea00
+0001c90    0001    e3a0    1030    e59f    0008    e581    8070    e8bd
+0001ca0    4010    e92d    4000    e1a0    0004    e1a0    ffdf    ebff
+0001cb0    f000    e320    ffbd    ebff    0000    e350    fffc    0aff
+0001cc0    8010    e8bd    0000    e450    0659    0000    393c    0008
+0001cd0    4010    e92d    ff86    ebff    8010    e8bd    4010    e92d
+0001ce0    ff93    ebff    4000    e1a0    0007    e3a0    0e24    e000
+0001cf0    8010    e8bd    4010    e92d    4000    e3a0    ff8c    ebff
+0001d00    4000    e1a0    460e    e3c4    0004    e1a0    ff8c    ebff
+0001d10    8010    e8bd    41f0    e92d    4000    e1a0    5000    e3a0
+0001d20    7000    e3a0    6004    e1a0    4006    e1a0    6007    e206
+0001d30    ff7f    ebff    5000    e1a0    560e    e3c5    7a86    e185
+0001d40    0007    e1a0    ff7e    ebff    81f0    e8bd    4070    e92d
+0001d50    5000    e3a0    4000    e3a0    ff75    ebff    5000    e1a0
+0001d60    0007    e3a0    4aa5    e000    0004    e1a0    8070    e8bd
+0001d70    4070    e92d    5000    e3a0    4000    e3a0    ff6c    ebff
+0001d80    5000    e1a0    0007    e3a0    4e25    e000    0004    e1a0
+0001d90    8070    e8bd    4010    e92d    ff4f    ebff    8010    e8bd
+0001da0    4010    e92d    0525    eb00    04a1    eb00    8010    e8bd
+0001db0    4010    e92d    4000    e3a0    ff65    ebff    0001    e350
+0001dc0    0004    0a00    0002    e350    000c    0a00    0003    e350
+0001dd0    001e    1a00    0013    ea00    f000    e320    f000    e320
+0001de0    008c    e59f    0010    e590    0900    e1a0    0fa0    e1a0
+0001df0    0000    e350    0000    1a00    4001    e3a0    0016    ea00
+0001e00    f000    e320    f000    e320    0064    e59f    0010    e590
+0001e10    0900    e1a0    0fa0    e1a0    0001    e350    0000    1a00
+0001e20    4002    e3a0    000c    ea00    f000    e320    f000    e320
+0001e30    003c    e59f    0010    e590    0900    e1a0    0fa0    e1a0
+0001e40    0000    e350    0000    1a00    4003    e3a0    0002    ea00
+0001e50    f000    e320    4000    e3a0    f000    e320    f000    e320
+0001e60    0004    e1a0    8010    e8bd    2000    e1a0    0000    e3a0
+0001e70    ff1e    e12f    0000    e800    f000    e320    fffe    eaff
+0001e80    f000    e320    fffe    eaff    f000    e320    fffe    eaff
+0001e90    f000    e320    fffe    eaff    20ff    e3a0    1000    e3a0
+0001ea0    0000    e350    0003    1a00    0000    ea00    1001    e281
+0001eb0    0000    e352    fffc    caff    2001    e1a0    ff1e    e12f
+0001ec0    4010    e92d    4000    e1a0    0004    e1a0    fff1    ebff
+0001ed0    8010    e8bd    403f    e92d    e000    e1a0    c001    e1a0
+0001ee0    4002    e1a0    5003    e1a0    0000    e3a0    0000    e58d
+0001ef0    c004    e58d    0008    e58d    000c    e58d    000f    e89d
+0001f00    d010    e28d    8030    e8bd    e004    e52d    c000    e1a0
+0001f10    0000    e3e0    0005    e351    f101    908f    0017    ea00
+0001f20    0004    ea00    0006    ea00    0008    ea00    000d    ea00
+0001f30    000f    ea00    0008    ea00    f000    e320    0000    e3e0
+0001f40    0010    ea00    f000    e320    0000    e3e0    000d    ea00
+0001f50    f000    e320    0000    e3e0    000a    ea00    f000    e320
+0001f60    0000    e3e0    0007    ea00    f000    e320    0000    e3e0
+0001f70    0004    ea00    f000    e320    0000    e3e0    0001    ea00
+0001f80    f000    e320    f000    e320    f000    e320    f004    e49d
+0001f90    4070    e92d    4000    e1a0    5000    e3e0    000c    e594
+0001fa0    0000    e350    0002    0a00    000c    e594    ff30    e12f
+0001fb0    5000    e1a0    0005    e1a0    8070    e8bd    41f0    e92d
+0001fc0    4000    e1a0    6001    e1a0    7002    e1a0    8003    e1a0
+0001fd0    5000    e3e0    0010    e594    0000    e350    0005    0a00
+0001fe0    2008    e1a0    1007    e1a0    0006    e1a0    3010    e594
+0001ff0    ff33    e12f    5000    e1a0    0005    e1a0    81f0    e8bd
+0002000    41f0    e92d    4000    e1a0    6001    e1a0    7002    e1a0
+0002010    8003    e1a0    5000    e3e0    0014    e594    0000    e350
+0002020    0005    0a00    2008    e1a0    1007    e1a0    0006    e1a0
+0002030    3014    e594    ff33    e12f    5000    e1a0    0005    e1a0
+0002040    81f0    e8bd    41f0    e92d    4000    e1a0    6001    e1a0
+0002050    7002    e1a0    5000    e3e0    0018    e594    0000    e350
+0002060    0004    0a00    1007    e1a0    0006    e1a0    2018    e594
+0002070    ff32    e12f    5000    e1a0    0005    e1a0    81f0    e8bd
+0002080    4010    e92d    4000    e1a0    001c    e594    0000    e350
+0002090    0001    0a00    001c    e594    ff30    e12f    8010    e8bd
+00020a0    4010    e92d    1070    e3a0    01c8    e59f    01a4    eb00
+00020b0    0000    e3a0    8010    e8bd    4070    e92d    2000    e1a0
+00020c0    c000    e3a0    3000    e3a0    e000    e3a0    0000    e3e0
+00020d0    40ff    e3a0    5004    e592    0001    e155    0020    3a00
+00020e0    e004    e592    518c    e59f    2000    e585    c000    e592
+00020f0    3001    e3a0    0012    ea00    0001    e15e    000f    3a00
+0002100    5174    e59f    5203    e085    c00c    e585    5168    e59f
+0002110    5203    e085    1004    e585    5000    e3a0    6158    e59f
+0002120    6203    e086    5008    e586    614c    e59f    5203    e786
+0002130    c001    e08c    e001    e04e    3001    e283    0000    ea00
+0002140    4000    e3a0    0000    e354    0001    0a00    0004    e353
+0002150    ffe8    3aff    5001    e243    6118    e59f    5044    e586
+0002160    0000    e3a0    5000    e3a0    6108    e59f    5048    e586
+0002170    50ff    e3a0    504c    e586    8070    e8bd    0000    e3a0
+0002180    1000    e3a0    20ec    e59f    204c    e592    00ff    e352
+0002190    0019    1a00    1001    e3a0    0000    ea00    1001    e281
+00021a0    20d4    e59f    2201    e082    2008    e592    00ff    e352
+00021b0    fff9    0aff    20bc    e59f    2044    e592    0001    e152
+00021c0    000a    3a00    20b0    e59f    0201    e082    1000    e580
+00021d0    20ff    e3a0    2008    e580    20a0    e59f    2101    e792
+00021e0    2001    e282    3094    e59f    2101    e783    0002    ea00
+00021f0    20ff    e3a0    307c    e59f    2048    e583    ff1e    e12f
+0002200    1000    e1a0    0000    e3a0    2068    e59f    204c    e592
+0002210    00ff    e352    0015    1a00    3058    e59f    2000    e591
+0002220    3044    e593    0003    e152    0001    9a00    0000    e3e0
+0002230    000f    ea00    3048    e59f    2000    e591    2102    e793
+0002240    2001    e282    c000    e283    3000    e591    2103    e78c
+0002250    2000    e3a0    c05c    e24c    3000    e591    3203    e08c
+0002260    2008    e583    3000    e591    2203    e78c    0000    ea00
+0002270    0000    e3e0    ff1e    e12f    3948    0008    394c    0008
+0002280    3998    0008    39a8    0008    30ff    e3a0    f000    e320
+0002290    0000    e353    fffd    caff    ff1e    e12f    20ff    e3a0
+00022a0    f000    e320    0000    e352    fffd    caff    ff1e    e12f
+00022b0    ff1e    e12f    4070    e92d    4000    e1a0    5001    e1a0
+00022c0    6002    e1a0    2006    e1a0    1005    e1a0    0004    e1a0
+00022d0    ffec    ebff    8070    e8bd    47f0    e92d    4000    e1a0
+00022e0    5001    e1a0    6002    e1a0    9003    e1a0    7020    e59d
+00022f0    80ff    e3a0    0000    e357    0003    1a00    1078    e28f
+0002300    007c    e59f    013e    eb00    000b    ea00    0007    e1a0
+0002310    0170    eb00    0016    e350    0003    9a00    0007    e1a0
+0002320    016c    eb00    0015    e240    7007    e080    2016    e3a0
+0002330    1007    e1a0    0048    e59f    014b    eb00    1006    e1a0
+0002340    0005    e1a0    ffd4    ebff    0038    e59f    40b0    e1c0
+0002350    f000    e320    0000    e358    fffd    caff    87f0    e8bd
+0002360    4010    e92d    c008    e59d    e0ff    e3a0    f000    e320
+0002370    0000    e35e    fffd    caff    8010    e8bd    554e    4c4c
+0002380    0000    0000    39b8    0008    3938    0008    0000    e3a0
+0002390    ff1e    e12f    ff1e    e12f    ff1e    e12f    1000    e1a0
+00023a0    0004    e351    0003    ba00    00c6    e351    0001    ca00
+00023b0    2001    e3a0    0000    ea00    2000    e3a0    0002    e1a0
+00023c0    ff1e    e12f    47f0    e92d    4000    e1a0    5001    e1a0
+00023d0    6002    e1a0    7003    e1a0    a020    e59d    8004    e1a0
+00023e0    9000    e3a0    4008    e1b0    0001    1a00    0064    e3e0
+00023f0    87f0    e8bd    0000    e355    0005    0a00    0000    e357
+0002400    0003    0a00    0006    e1a0    ffe3    ebff    0000    e350
+0002410    0001    1a00    0004    e3e0    fff4    eaff    2008    e288
+0002420    1007    e1a0    0006    e1a0    fbe6    ebff    0000    e350
+0002430    0005    1a00    2008    e3a0    1005    e1a0    0008    e1a0
+0002440    00d5    eb00    600c    e5c8    0000    ea00    9000    e3e0
+0002450    0009    e1a0    ffe5    eaff    43f8    e92d    4000    e1a0
+0002460    5004    e1a0    6000    e3a0    4005    e1b0    0001    1a00
+0002470    0064    e3e0    83f8    e8bd    800c    e5d5    7008    e595
+0002480    200d    e1a0    1007    e1a0    0008    e1a0    fbcd    ebff
+0002490    0000    e350    0002    1a00    0000    e3a0    0000    e585
+00024a0    0000    ea00    6000    e3e0    0006    e1a0    fff0    eaff
+00024b0    4070    e92d    4000    e1a0    5004    e1a0    6000    e3a0
+00024c0    4005    e1b0    0001    1a00    0064    e3e0    8070    e8bd
+00024d0    000c    e5d5    fc10    ebff    0000    e350    0000    0a00
+00024e0    6000    e3e0    0006    e1a0    fff7    eaff    4070    e92d
+00024f0    4000    e1a0    5004    e1a0    6000    e3a0    4005    e1b0
+0002500    0001    1a00    0064    e3e0    8070    e8bd    000c    e5d5
+0002510    fbd0    ebff    0000    e350    0000    0a00    6000    e3e0
+0002520    0006    e1a0    fff7    eaff    4070    e92d    5000    e3a0
+0002530    4000    e3a0    fcdd    ebff    4000    e1a0    0000    e354
+0002540    0001    0a00    5001    e3a0    0000    ea00    5000    e3a0
+0002550    0005    e1a0    8070    e8bd    4010    e92d    4000    e1a0
+0002560    0000    e354    0000    0a00    fccb    ebff    8010    e8bd
+0002570    f000    e320    0194    e59f    021c    e590    0902    e3c0
+0002580    1000    e3a0    2902    e3a0    1781    e002    0001    e180
+0002590    1178    e59f    021c    e581    f000    e320    0000    e281
+00025a0    021c    e590    0b01    e3c0    1000    e3a0    2b01    e3a0
+00025b0    1501    e002    0001    e180    1150    e59f    021c    e581
+00025c0    f000    e320    0000    e281    021c    e590    0a06    e3c0
+00025d0    1000    e3a0    2a06    e3a0    1681    e002    0001    e180
+00025e0    1128    e59f    021c    e581    f000    e320    0000    e281
+00025f0    021c    e590    0c01    e3c0    1001    e3a0    2c01    e3a0
+0002600    1401    e002    0001    e180    1100    e59f    021c    e581
+0002610    f000    e320    0000    e281    021c    e590    0008    e3c0
+0002620    1000    e3a0    2008    e3a0    1181    e002    0001    e180
+0002630    10d8    e59f    021c    e581    ff1e    e12f    f000    e320
+0002640    00c8    e59f    061c    e590    0b00    e1a0    0fa0    e1a0
+0002650    ff1e    e12f    e004    e52d    1000    e1a0    f000    e320
+0002660    fff5    ebff    0000    e350    fffc    1aff    00a0    e59f
+0002670    0840    e590    0000    e581    f004    e49d    1090    e59f
+0002680    0820    e581    ff1e    e12f    40f8    e92d    ffb7    ebff
+0002690    0080    e59f    fff8    ebff    000d    e1a0    ffec    ebff
+00026a0    0000    e59d    1070    e59f    0001    e150    0001    0a00
+00026b0    0001    e3a0    001c    eb00    5462    e3a0    4206    e3a0
+00026c0    673f    e284    6bfe    e286    0001    ea00    0004    e495
+00026d0    0004    e484    0006    e154    fffb    3aff    000d    e1a0
+00026e0    ffdb    ebff    0000    e59d    1030    e59f    0001    e150
+00026f0    0001    0a00    0001    e3a0    000b    eb00    fc6b    ebff
+0002700    701c    e59f    ff37    e12f    f000    e320    fffe    eaff
+0002710    0000    e480    f000    62ff    1234    1234    4567    4567
+0002720    89ef    89ef    0000    6010    f00e    e1a0    4010    e92d
+0002730    4000    e1a0    0000    e1a0    0004    e1a0    4010    e8bd
+0002740    00e1    ea00    2000    e3a0    1020    e251    4000    e92d
+0002750    e002    e1a0    3002    e1a0    c002    e1a0    500c    28a0
+0002760    500c    28a0    1020    2251    fffb    2aff    1e01    e1b0
+0002770    500c    28a0    000c    48a0    1101    e1b0    4000    e8bd
+0002780    2004    2480    f00e    01a0    2001    44c0    2001    44c0
+0002790    0101    e311    2001    14c0    f00e    e1a0    0003    e352
+00027a0    00e4    9a00    c003    e210    0008    0a00    3001    e4d1
+00027b0    0002    e35c    200c    e082    c001    94d1    3001    e4c0
+00027c0    3001    34d1    c001    94c0    2004    e242    3001    34c0
+00027d0    3003    e211    00c4    0a00    2008    e252    0004    3a00
+00027e0    3004    e491    c004    e491    3004    e480    c004    e480
+00027f0    fff8    eaff    2004    e292    3004    5491    3004    5480
+0002800    00cc    ea00    3001    e180    0003    e313    2000    e1a0
+0002810    e004    e52d    000b    1a00    c048    e59f    3004    e491
+0002820    e00c    e043    e003    e1ce    038c    e11e    3004    0482
+0002830    fff9    0aff    10ff    e213    3423    11a0    1001    e4c2
+0002840    fffb    1aff    f004    e49d    3001    e4d1    0000    e353
+0002850    3001    e4c2    3001    14d1    3001    14c2    0000    1353
+0002860    fff8    1aff    f004    e49d    0101    0101    0003    e310
+0002870    4010    e92d    0003    0311    4000    e1a0    000a    1a00
+0002880    e04c    e59f    2004    e252    0006    ba00    3004    e491
+0002890    c00e    e043    c003    e1cc    c38e    e01c    3004    0480
+00028a0    fff7    0aff    1004    e241    2004    e282    2001    e252
+00028b0    0005    ba00    3001    e4d1    0000    e353    3001    e4c0
+00028c0    fff9    1aff    1002    e1a0    00a2    eb00    0004    e1a0
+00028d0    8010    e8bd    0101    0101    c001    e280    0003    ea00
+00028e0    1001    e4d0    0000    e351    000c    0040    f00e    01a0
+00028f0    0003    e310    fff9    1aff    2038    e59f    1004    e490
+0002900    3002    e041    3001    e1c3    0382    e113    fffa    0aff
+0002910    00ff    e311    000c    e040    0003    0240    f00e    01a0
+0002920    0cff    e311    0002    0240    f00e    01a0    08ff    e311
+0002930    0001    0240    f00e    e1a0    0101    0101    c001    e190
+0002940    0021    4a00    c0a0    e071    2000    e3a0    001a    3a00
+0002950    c220    e071    000f    3a00    c420    e071    0001    3a00
+0002960    3000    e3a0    0020    ea00    c3a0    e071    0381    2040
+0002970    2002    e0a2    c320    e071    0301    2040    2002    e0a2
+0002980    c2a0    e071    0281    2040    2002    e0a2    c220    e071
+0002990    0201    2040    2002    e0a2    c1a0    e071    0181    2040
+00029a0    2002    e0a2    c120    e071    0101    2040    2002    e0b2
+00029b0    c0a0    e071    0081    2040    2002    e0a2    1001    e050
+00029c0    1000    31a0    0002    e0a2    f00e    e1a0    2102    e211
+00029d0    1000    4261    3040    e032    0000    2260    c220    e071
+00029e0    001d    3a00    c420    e071    000f    3a00    1301    e1a0
+00029f0    c420    e071    233f    e382    000b    3a00    1301    e1a0
+0002a00    c420    e071    263f    e382    0007    3a00    1301    e1a0
+0002a10    c420    e071    293f    e382    2c3f    2382    1301    21a0
+0002a20    c000    e271    002f    2a00    1321    21a0    c3a0    e071
+0002a30    0381    2040    2002    e0a2    c320    e071    0301    2040
+0002a40    2002    e0a2    c2a0    e071    0281    2040    2002    e0a2
+0002a50    c220    e071    0201    2040    2002    e0a2    c1a0    e071
+0002a60    0181    2040    2002    e0a2    c120    e071    0101    2040
+0002a70    2002    e0b2    ffeb    2aff    c0a0    e071    0081    2040
+0002a80    2002    e0a2    1001    e050    1000    31a0    0002    e0a2
+0002a90    3fc3    e1b0    0000    4260    1000    2261    f00e    e1a0
+0002aa0    00c1    eb00    003f    eb00    0003    e92d    00bf    eb00
+0002ab0    0003    e8bd    007a    eb00    000f    e92d    00be    eb00
+0002ac0    000f    e8bd    fa3b    ebff    ff17    eaff    4001    e92d
+0002ad0    00bc    eb00    00ae    eb00    4001    e8bd    0000    ea00
+0002ae0    0000    e3e0    fce7    eaff    002b    ea00    2020    e252
+0002af0    4010    e92d    0005    3a00    5018    28b1    5018    28a0
+0002b00    5018    28b1    5018    28a0    2020    2252    fff9    2aff
+0002b10    ce02    e1b0    5018    28b1    5018    28a0    0018    48b1
+0002b20    0018    48a0    cf02    e1b0    4010    e8bd    3004    2491
+0002b30    3004    2480    f00e    01a0    2f82    e1b0    2001    44d1
+0002b40    3001    24d1    c001    24d1    2001    44c0    3001    24c0
+0002b50    c001    24c0    f00e    e1a0    2000    e3a0    0004    e351
+0002b60    0008    3a00    c003    e210    fef6    0aff    c004    e26c
+0002b70    2001    e4c0    0002    e35c    2001    a4c0    100c    e041
+0002b80    2001    c4c0    feef    eaff    cf81    e1b0    2001    24c0
+0002b90    2001    24c0    2001    44c0    f00e    e1a0    0002    e3a0
+0002ba0    1002    e3a0    008b    ea00    500e    e1a0    0086    eb00
+0002bb0    4000    e1a0    0007    e3c0    100d    e1a0    d060    e280
+0002bc0    e005    e1a0    4010    e92d    300a    e1a0    fcc0    ebff
+0002bd0    6000    e3a0    7000    e3a0    8000    e3a0    b000    e3a0
+0002be0    4010    e8bd    d007    e3c1    c004    e1a0    09c0    e8ac
+0002bf0    09c0    e8ac    09c0    e8ac    09c0    e8ac    4013    e92d
+0002c00    1000    e3a0    0000    e3a0    0000    e1a0    1040    e281
+0002c10    2001    e080    2e11    e282    201c    e584    0001    e3a0
+0002c20    1018    e584    0010    e584    4013    e8bd    1000    e1a0
+0002c30    0014    e584    f00e    e1a0    4010    e92d    0003    e92d
+0002c40    0061    eb00    4000    e1a0    0003    e8bd    2014    e594
+0002c50    301c    e594    e000    e082    3003    e04d    0003    e15e
+0002c60    2000    e581    000a    8a00    300e    e093    1a01    e28e
+0002c70    1007    e281    3063    e1a0    3007    e3c3    1007    e3c1
+0002c80    0003    e151    1003    81a0    0002    e041    1014    e584
+0002c90    8010    e8bd    2000    e1a0    0000    e3a0    0000    e1a0
+0002ca0    8010    e8bd    43c0    e92d    003e    e92d    5001    e1a0
+0002cb0    4000    e1a0    02c3    eb00    0000    e3a0    4000    e58d
+0002cc0    5004    e58d    0000    e1a0    0008    e58d    000d    e1a0
+0002cd0    f9b4    ebff    4000    e1a0    5001    e1a0    0003    e89d
+0002ce0    6002    e1a0    7003    e1a0    0000    e1a0    0000    e1a0
+0002cf0    0000    e1a0    1000    e3a0    0000    e3a0    0000    e1a0
+0002d00    8000    e1a0    0030    eb00    9000    e1a0    8020    e580
+0002d10    0000    e3a0    1000    e3a0    0000    e1a0    1001    e280
+0002d20    1024    e589    1000    e3a0    0000    e3a0    0000    e1a0
+0002d30    0028    e589    0000    e3a0    1000    e3a0    0000    e1a0
+0002d40    002c    e589    0000    e3a0    1000    e3a0    0000    e1a0
+0002d50    0030    e589    0000    e1a0    0000    e1a0    0000    e1a0
+0002d60    0000    e1a0    0000    e1a0    0000    e1a0    0000    e1a0
+0002d70    0000    e1a0    0000    e1a0    d00c    e28d    0004    e1a0
+0002d80    1005    e1a0    2006    e1a0    3007    e1a0    01f0    e8bd
+0002d90    8200    e8bd    0000    e3a0    4010    e92d    0000    e1a0
+0002da0    0000    e1a0    0000    e1a0    8010    e8bd    f00e    e1a0
+0002db0    0000    e3e0    1002    e3e0    f00e    e1a0    4010    e92d
+0002dc0    000a    eb00    8010    e8bd    f00e    e1a0    0000    e59f
+0002dd0    f00e    e1a0    3a1c    0008    4010    e92d    0008    eb00
+0002de0    0000    e350    8010    08bd    4010    e8bd    fc25    eaff
+0002df0    f00e    e1a0    4010    e92d    fff3    ebff    0004    e280
+0002e00    8010    e8bd    4070    e92d    5001    e1a0    1000    e1a0
+0002e10    4000    e1a0    0000    e3e0    0000    e1a0    0001    e370
+0002e20    2000    e1a0    0004    01a0    1005    01a0    4070    08bd
+0002e30    0006    0a00    0003    e372    1005    11a0    0004    11a0
+0002e40    e00f    11a0    f002    11a0    0000    e3a0    8070    e8bd
+0002e50    2001    e240    4070    e92d    000e    e352    50c0    228f
+0002e60    40b8    e28f    001c    2a00    2017    e3a0    30c0    e59f
+0002e70    0290    e002    3003    e08f    0002    e350    2003    e082
+0002e80    5017    e242    000e    1a00    0301    e311    40a4    128f
+0002e90    0011    1a00    0382    e311    40ac    128f    000e    1a00
+0002ea0    0201    e311    40b0    128f    000b    1a00    0202    e311
+0002eb0    40b0    128f    0008    1a00    0101    e311    40b0    128f
+0002ec0    0005    ea00    0008    e350    4001    01a0    0002    0a00
+0002ed0    0009    e350    0001    0351    50a4    028f    000a    e3a0
+0002ee0    0000    ea00    5001    e285    fbe8    ebff    0000    e5d5
+0002ef0    0000    e350    fffa    1aff    0001    ea00    4001    e284
+0002f00    fbe2    ebff    0000    e5d4    0000    e350    fffa    1aff
+0002f10    000a    e3a0    fbdd    ebff    0001    e3a0    8070    e8bd
+0002f20    0000    0000    6e55    6e6b    776f    206e    6973    6e67
+0002f30    6c61    0000    0960    0000    6e49    6176    696c    2064
+0002f40    704f    7265    7461    6f69    006e    0000    6944    6976
+0002f50    6564    4220    2079    655a    6f72    0000    764f    7265
+0002f60    6c66    776f    0000    0000    6e55    6564    6672    6f6c
+0002f70    0077    0000    6e49    7865    6361    2074    6552    7573
+0002f80    746c    0000    203a    6548    7061    6d20    6d65    726f
+0002f90    2079    6f63    7272    7075    6574    0064    c220    e071
+0002fa0    2000    e3a0    fe7b    3aff    c420    e071    fe6d    3aff
+0002fb0    3000    e3a0    fe8c    eaff    3000    e3a0    0002    ea00
+0002fc0    c000    e3a0    c003    e7c0    3001    e283    0001    e153
+0002fd0    fffa    3aff    2000    e1a0    f000    e320    c030    e59f
+0002fe0    c06c    e59c    c000    e582    0002    e1a0    2004    e282
+0002ff0    f000    e320    c018    e59f    c070    e59c    c004    e482
+0003000    f000    e320    c008    e59f    c074    e59c    c004    e482
+0003010    ff1e    e12f    0000    e490    4070    e92d    4000    e1a0
+0003020    5001    e1a0    1005    e1a0    0004    e1a0    ffe1    ebff
+0003030    8070    e8bd    4010    e92d    f000    e320    05c0    e59f
+0003040    15c0    e59f    0060    e581    f000    e320    0000    e281
+0003050    0070    e590    0407    e3c0    1003    e3a0    2407    e3a0
+0003060    1c01    e002    0001    e180    1598    e59f    0070    e581
+0003070    f000    e320    0000    e281    0070    e590    0901    e3c0
+0003080    1000    e3a0    2901    e3a0    1701    e002    0001    e180
+0003090    1570    e59f    0070    e581    f000    e320    0000    e281
+00030a0    0070    e590    0902    e3c0    1001    e3a0    2902    e3a0
+00030b0    1781    e002    0001    e180    1548    e59f    0070    e581
+00030c0    f000    e320    0000    e281    0068    e590    0a02    e3c0
+00030d0    1000    e3a0    2a02    e3a0    1681    e002    0001    e180
+00030e0    1520    e59f    0068    e581    f000    e320    0000    e281
+00030f0    0068    e590    0a01    e3c0    1000    e3a0    2a01    e3a0
+0003100    1601    e002    0001    e180    14f8    e59f    0068    e581
+0003110    f000    e320    0000    e281    0068    e590    0b01    e3c0
+0003120    1001    e3a0    2b01    e3a0    1501    e002    0001    e180
+0003130    14d0    e59f    0068    e581    4000    e3a0    0000    ea00
+0003140    4001    e284    c906    e254    ce6a    225c    fffb    3aff
+0003150    f000    e320    04b0    e59f    0000    e590    1003    e3c0
+0003160    0002    e381    14a0    e59f    0000    e581    f000    e320
+0003170    0000    e281    0000    e590    000c    e3c0    1001    e3a0
+0003180    200c    e3a0    1101    e002    0001    e180    1478    e59f
+0003190    0000    e581    f000    e320    0000    e281    0000    e590
+00031a0    0010    e3c0    1001    e3a0    2010    e3a0    1201    e002
+00031b0    0001    e180    1450    e59f    0000    e581    f000    e320
+00031c0    f000    e320    0440    e59f    0004    e590    0f00    e1a0
+00031d0    0fa0    e1a0    0001    e350    fff8    1aff    f000    e320
+00031e0    0428    e59f    141c    e59f    0020    e581    f000    e320
+00031f0    0028    e581    f000    e320    0011    e3a0    0024    e581
+0003200    f000    e320    002c    e581    f000    e320    0c3f    e3a0
+0003210    0054    e581    f000    e320    03f4    e59f    0064    e581
+0003220    f000    e320    03ec    e59f    0068    e581    f000    e320
+0003230    03e4    e59f    000c    e581    fa4c    ebff    8010    e8bd
+0003240    f000    e320    0c01    e3a0    13d0    e59f    0004    e581
+0003250    f000    e320    f000    e320    03c0    e59f    0004    e590
+0003260    0f00    e1a0    0fa0    e1a0    0000    e350    fff8    1aff
+0003270    f000    e320    03a4    e59f    0360    e590    0007    e380
+0003280    1398    e59f    0360    e581    f000    e320    0000    e281
+0003290    0360    e590    0c07    e3c0    1007    e3a0    2c07    e3a0
+00032a0    1401    e002    0001    e180    1370    e59f    0360    e581
+00032b0    f000    e320    0000    e281    0360    e590    0807    e3c0
+00032c0    1007    e3a0    2807    e3a0    1801    e002    0001    e180
+00032d0    1348    e59f    0360    e581    f000    e320    0000    e281
+00032e0    0364    e590    1007    e3c0    0001    e381    132c    e59f
+00032f0    0364    e581    f000    e320    0000    e281    0364    e590
+0003300    0c07    e3c0    1001    e3a0    2c07    e3a0    1401    e002
+0003310    0001    e180    1304    e59f    0364    e581    f000    e320
+0003320    0000    e281    0364    e590    0807    e3c0    1001    e3a0
+0003330    2807    e3a0    1801    e002    0001    e180    12dc    e59f
+0003340    0364    e581    f000    e320    0000    e281    0368    e590
+0003350    1007    e3c0    0003    e381    12c0    e59f    0368    e581
+0003360    f000    e320    0000    e281    0368    e590    0c07    e3c0
+0003370    1003    e3a0    2c07    e3a0    1401    e002    0001    e180
+0003380    1298    e59f    0368    e581    f000    e320    0000    e281
+0003390    0368    e590    0807    e3c0    1003    e3a0    2807    e3a0
+00033a0    1801    e002    0001    e180    1270    e59f    0368    e581
+00033b0    f000    e320    0000    e281    0238    e590    0801    e3c0
+00033c0    1000    e3a0    2801    e3a0    1801    e002    0001    e180
+00033d0    1248    e59f    0238    e581    f000    e320    0000    e281
+00033e0    0220    e590    1007    e3c0    0002    e381    122c    e59f
+00033f0    0220    e581    f000    e320    0000    e281    0220    e590
+0003400    0078    e3c0    1001    e3a0    2078    e3a0    1181    e002
+0003410    0001    e180    1204    e59f    0220    e581    f000    e320
+0003420    0000    e281    0210    e590    0002    e3c0    1001    e3a0
+0003430    2002    e3a0    1081    e002    0001    e180    11dc    e59f
+0003440    0210    e581    f000    e320    0000    e281    0210    e590
+0003450    0c02    e3c0    1001    e3a0    2c02    e3a0    1481    e002
+0003460    0001    e180    11b4    e59f    0210    e581    f000    e320
+0003470    0000    e281    0244    e590    10ff    e3c0    0020    e381
+0003480    1198    e59f    0244    e581    f000    e320    0000    e281
+0003490    0244    e590    0cff    e3c0    1020    e3a0    2cff    e3a0
+00034a0    1401    e002    0001    e180    1170    e59f    0244    e581
+00034b0    f000    e320    0000    e281    0244    e590    08ff    e3c0
+00034c0    1020    e3a0    28ff    e3a0    1801    e002    0001    e180
+00034d0    1148    e59f    0244    e581    f000    e320    0000    e281
+00034e0    0278    e590    08ff    e3c0    1010    e3a0    1801    e002
+00034f0    0001    e180    1124    e59f    0278    e581    f000    e320
+0003500    0001    e3a0    0a80    e1a0    02dc    e581    f000    e320
+0003510    0000    e281    0204    e590    0b02    e3c0    1001    e3a0
+0003520    2b02    e3a0    1581    e002    0001    e180    10ec    e59f
+0003530    0204    e581    f000    e320    0000    e281    0254    e590
+0003540    08ff    e3c0    1008    e3a0    28ff    e3a0    1801    e002
+0003550    0001    e180    10c4    e59f    0254    e581    f000    e320
+0003560    0000    e281    0254    e590    0cff    e3c0    1008    e3a0
+0003570    2cff    e3a0    1401    e002    0001    e180    109c    e59f
+0003580    0254    e581    f000    e320    0000    e281    0254    e590
+0003590    10ff    e3c0    0008    e381    1080    e59f    0254    e581
+00035a0    f000    e320    0001    e3a0    0600    e1a0    02f8    e581
+00035b0    f000    e320    0001    e3a0    0680    e1a0    02f8    e581
+00035c0    f000    e320    0001    e3a0    0700    e1a0    02f8    e581
+00035d0    f000    e320    0001    e3a0    0600    e1a0    02dc    e581
+00035e0    f000    e320    0001    e3a0    0400    e1a0    02dc    e581
+00035f0    f000    e320    0001    e3a0    0200    e1a0    02e4    e581
+0003600    ff1e    e12f    f815    8341    0000    e800    03b4    e4d0
+0003610    0001    8430    0033    8020    0123    0014    f041    0000
+0003620    0000    e4d0    4010    e92d    f729    ebff    8010    e8bd
+0003630    ff1e    e12f    d050    e24d    00ff    e88d    5000    e14f
+0003640    e008    e24e    e04c    e58d    0020    e28d    100f    e215
+0003650    7f00    08c0    001c    0280    4000    08a0    0006    0a00
+0003660    2000    e10f    300f    e3c2    1001    e183    f001    e12f
+0003670    7f00    e8a0    f002    e12f    4000    e8a0    6f10    ee16
+0003680    7f10    ee15    00e0    e880    300c    e240    1000    e593
+0003690    000d    e1a0    2114    e59f    8114    e59f    80b0    e1d8
+00036a0    9110    e59f    0009    e158    0000    0a00    2108    e59f
+00036b0    faff    ebff    1fff    e8bd    d018    e28d    8000    e8fd
+00036c0    d050    e24d    00ff    e88d    5000    e14f    e004    e24e
+00036d0    e04c    e58d    0020    e28d    100f    e215    7f00    08c0
+00036e0    001c    0280    4000    08a0    0006    0a00    2000    e10f
+00036f0    300f    e3c2    1001    e183    f001    e12f    7f00    e8a0
+0003700    f002    e12f    4000    e8a0    6f10    ee16    7f10    ee15
+0003710    00e0    e880    300c    e240    1000    e593    000d    e1a0
+0003720    2098    e59f    fae2    ebff    1fff    e8bd    d018    e28d
+0003730    8000    e8fd    d050    e24d    00ff    e88d    5000    e14f
+0003740    e004    e24e    e04c    e58d    0020    e28d    100f    e215
+0003750    7f00    08c0    001c    0280    4000    08a0    0006    0a00
+0003760    2000    e10f    300f    e3c2    1001    e183    f001    e12f
+0003770    7f00    e8a0    f002    e12f    4000    e8a0    6f10    ee16
+0003780    7f30    ee15    00e0    e880    300c    e240    1000    e593
+0003790    000d    e1a0    2028    e59f    fac5    ebff    1fff    e8bd
+00037a0    d018    e28d    8000    e8fd    0070    e120    ff1e    e12f
+00037b0    aaaa    0000    3938    0008    ffff    0000    dddd    0000
+00037c0    cccc    0000    bbbb    0000    4010    e92d    fd88    ebff
+00037d0    1000    e3a0    1000    e580    8010    e8bd    6241    6f6e
+00037e0    6d72    6c61    7420    7265    696d    616e    6974    6e6f
+00037f0    0000    4100    6972    6874    656d    6974    2063    7865
+0003800    6563    7470    6f69    3a6e    0020    6c49    656c    6167
+0003810    206c    6e69    7473    7572    7463    6f69    006e    0000
+0003820    4900    746e    7265    7572    7470    7220    6365    6965
+0003830    6576    0064    0000    0000    6c49    656c    6167    206c
+0003840    6461    7264    7365    0073    0000    0000    0000    5400
+0003850    7265    696d    616e    6974    6e6f    7220    7165    6575
+0003860    7473    0000    0000    7453    6361    206b    766f    7265
+0003870    6c66    776f    0000    0000    0000    0000    5200    6465
+0003880    7269    6365    3a74    6320    6e61    7427    6f20    6570
+0003890    3a6e    0020    754f    2074    666f    6820    6165    2070
+00038a0    656d    6f6d    7972    0000    0000    5500    6573    2d72
+00038b0    6564    6966    656e    2064    6973    6e67    6c61    3120
+00038c0    0000    7355    7265    642d    6665    6e69    6465    7320
+00038d0    6769    616e    206c    0032    5000    7275    2065    6976
+00038e0    7472    6175    206c    6e66    6320    6c61    656c    0064
+00038f0    2b43    202b    696c    7262    7261    2079    7865    6563
+0003900    7470    6f69    006e    4f00    7475    6f20    2066    6568
+0003910    7061    0000    0000    0000    0000    0000    0000    0000
+0003920    0000    0008    0000    0002    0000    6000    0000    0200
+0003930    2000    ffff    2000    0000    ffff    0000    f018    e59f
+0003940    f018    e59f    f018    e59f    f018    e59f    f018    e59f
+0003950    f018    e59f    f018    e59f    f018    e59f    1268    0008
+0003960    0040    0000    004c    0000    0050    0000    0060    0000
+0003970    0070    0000    0000    ffff    0070    0000    40ff    e92d
+0003980    fffe    eaff    80ff    e8fd    fffe    eaff    e004    e24e
+0003990    40ff    e92d    fffe    eaff    80ff    e8fd    e004    e24e
+00039a0    40ff    e92d    fffe    eaff    80ff    e8fd    fffe    eaff
+00039b0    e004    e24e    4000    e92d    e000    e14f    401f    e92d
+00039c0    0000    e10f    2000    e1a0    00e0    e200    0013    e380
+00039d0    f000    e121    0004    e92d    308c    e59f    4000    e593
+00039e0    40ff    e204    3084    e59f    0000    e593    0000    e110
+00039f0    0013    0a00    3078    e59f    2000    e593    0004    e92d
+0003a00    000f    e350    0001    1280    0000    e583    5fff    e92d
+0003a10    2060    e59f    1184    e1a0    2001    e082    4001    e92d
+0003a20    0004    e1a0    e00f    e1a0    e004    e28e    f000    e592
+0003a30    4001    e8bd    5fff    e8bd    0004    e8bd    3030    e59f
+0003a40    2000    e583    0004    e8bd    2080    e382    f002    e121
+0003a50    1001    e3a0    0020    e59f    1000    e580    401f    e8bd
+0003a60    f00e    e169    8000    e8fd    fffe    eaff    0484    e000
+0003a70    0488    e000    0470    e000    3000    ffff    0014    f280
+0003a80    ff01    ff01    ff01    ff01    2e01    0182    0182    0182
+0003a90    0182    0182    ff02    0101    00ed    0000