P: add support the Always Innovating Touchbook
authorKoen Kooi <koen@dominion.thruhere.net>
Sat, 8 Jan 2011 19:03:43 +0000 (20:03 +0100)
committerKoen Kooi <koen@dominion.thruhere.net>
Sat, 8 Jan 2011 19:03:43 +0000 (20:03 +0100)
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
15 files changed:
conf/machine/omap3-touchbook.conf [new file with mode: 0644]
recipes-bsp/u-boot/u-boot/600mhz.patch [new file with mode: 0644]
recipes-bsp/u-boot/u-boot/ai-logo.patch [new file with mode: 0644]
recipes-bsp/u-boot/u-boot/dont-inline-weak-symbols.patch
recipes-bsp/u-boot/u-boot/dss2.patch [new file with mode: 0644]
recipes-bsp/u-boot/u-boot/headphone.patch [new file with mode: 0644]
recipes-bsp/u-boot/u-boot/mmcinit.patch [new file with mode: 0644]
recipes-bsp/u-boot/u-boot/new-pinmux.patch [new file with mode: 0644]
recipes-bsp/u-boot/u-boot/omap3-touchbook/fw_env.config [new file with mode: 0644]
recipes-bsp/u-boot/u-boot/power.patch [new file with mode: 0644]
recipes-bsp/u-boot/u-boot/spi3.patch [new file with mode: 0644]
recipes-bsp/u-boot/u-boot/spi4.patch [new file with mode: 0644]
recipes-bsp/u-boot/u-boot/touchbook-config.patch [new file with mode: 0644]
recipes-bsp/u-boot/u-boot_git.bb
recipes-bsp/x-load/x-load_git.bb

diff --git a/conf/machine/omap3-touchbook.conf b/conf/machine/omap3-touchbook.conf
new file mode 100644 (file)
index 0000000..95d93ac
--- /dev/null
@@ -0,0 +1,49 @@
+#@TYPE: Machine
+#@NAME: Always Innovating touchbook
+#@DESCRIPTION: Machine configuration for the http://www.alwaysinnovating.com/touchbook/
+TARGET_ARCH = "arm"
+
+PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
+XSERVER = "xserver-xorg \
+           xf86-input-evdev \
+           xf86-input-mouse \
+           xf86-input-tslib \
+           xf86-video-fbdev \
+           xf86-video-omapfb \
+           xf86-input-keyboard"
+
+# Only has DVI connector for external screen
+GUI_MACHINE_CLASS = "bigscreen"
+
+require conf/machine/include/omap3.inc
+
+PREFERRED_PROVIDER_virtual/kernel = "linux-omap-psp"
+
+IMAGE_FSTYPES += "tar.bz2"
+EXTRA_IMAGECMD_jffs2 = "-lnp "
+
+# Guesswork
+SERIAL_CONSOLE = "115200 ttyS2"
+
+UBOOT_MACHINE = "omap3_beagle_config"
+XLOAD_MACHINE = "beagleboard_config"
+
+# do ubiattach /dev/ubi_ctrl -m 4
+# From dmesg:
+# UBI: smallest flash I/O unit:    2048
+# UBI: logical eraseblock size:    129024 bytes
+# from ubiattach stdout:
+# UBI device number 0, total 1996 LEBs
+MKUBIFS_ARGS = "-m 2048 -e 129024 -c 1996"
+
+# do ubiattach /dev/ubi_ctrl -m 4
+# from dmesg:
+# UBI: smallest flash I/O unit:    2048
+# UBI: physical eraseblock size:   131072 bytes (128 KiB)
+# UBI: sub-page size:              512
+UBINIZE_ARGS = "-m 2048 -p 128KiB -s 512"
+
+
+
+# and sdio
+MACHINE_FEATURES = "kernel26 screen apm usbgadget usbhost vfat alsa touchscreen"
diff --git a/recipes-bsp/u-boot/u-boot/600mhz.patch b/recipes-bsp/u-boot/u-boot/600mhz.patch
new file mode 100644 (file)
index 0000000..3a7fce2
--- /dev/null
@@ -0,0 +1,25 @@
+From 7189f933a151c3f2f4778aaaefa1a3b037368bed Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 8 Jan 2011 19:13:31 +0100
+Subject: [PATCH 02/10] 600mhz.patch
+
+---
+ include/asm-arm/arch-omap3/clocks_omap3.h |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/include/asm-arm/arch-omap3/clocks_omap3.h b/include/asm-arm/arch-omap3/clocks_omap3.h
+index 661407b..e148d68 100644
+--- a/include/asm-arm/arch-omap3/clocks_omap3.h
++++ b/include/asm-arm/arch-omap3/clocks_omap3.h
+@@ -71,7 +71,7 @@
+ #define MPU_FSEL_13_ES1               0x03
+ #define MPU_M2_13_ES1         0x01
+-#define MPU_M_13_ES2          0x1F4
++#define MPU_M_13_ES2          0x258
+ #define MPU_N_13_ES2          0x0C
+ #define MPU_FSEL_13_ES2               0x03
+ #define MPU_M2_13_ES2         0x01
+-- 
+1.6.6.1
+
diff --git a/recipes-bsp/u-boot/u-boot/ai-logo.patch b/recipes-bsp/u-boot/u-boot/ai-logo.patch
new file mode 100644 (file)
index 0000000..53f06b8
--- /dev/null
@@ -0,0 +1,1353 @@
+From b5c3e2dae5e435a1429239b4e53a45a992415cdd Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 8 Jan 2011 19:16:51 +0100
+Subject: [PATCH 08/10] ai-logo.patch
+
+---
+ board/omap3/beagle/beagle.c |  141 ++++++
+ board/omap3/beagle/logo.h   | 1171 +++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 1312 insertions(+), 0 deletions(-)
+ create mode 100644 board/omap3/beagle/logo.h
+
+diff --git a/board/omap3/beagle/beagle.c b/board/omap3/beagle/beagle.c
+index 39073db..d5ec63e 100644
+--- a/board/omap3/beagle/beagle.c
++++ b/board/omap3/beagle/beagle.c
+@@ -35,9 +35,147 @@
+ #include <asm/arch/sys_proto.h>
+ #include <asm/mach-types.h>
+ #include "beagle.h"
++#include "logo.h"
++
++#define LOGO_SCREEN_WIDTH  1024
++#define LOGO_SCREEN_HEIGHT 600
++#define LOGO_FILL_COLOUR   0x0
+ static int beagle_revision_c;
++void dss_init(void)
++{
++      unsigned int i, k=0;
++      unsigned char pixel[3];
++      int offset = 0;
++
++      /* Fill up to the logo */
++      for (i = 0; i < 2 * (LOGO_SCREEN_WIDTH * ((LOGO_SCREEN_HEIGHT/2) - (height/2))); i += 2) {
++              *((unsigned short *)(0x85000000 + i)) = LOGO_FILL_COLOUR;
++      }
++      offset += i;
++
++      /* Paint the image data */
++      for (i = 0; i < height; i++) {
++              for (k = 0; k < LOGO_SCREEN_WIDTH; k++) {
++                      if(k < (LOGO_SCREEN_WIDTH / 2 - width / 2) || k >= (LOGO_SCREEN_WIDTH / 2 + width / 2))
++                              *((unsigned short *)(0x85000000 + offset + 2*k)) = LOGO_FILL_COLOUR;
++                      else {
++                              HEADER_PIXEL(header_data, pixel);
++                              *((unsigned short *)(0x85000000 + offset + 2*k)) =
++                                      ((((pixel[0])&0xf8) << 8) |
++                                       (((pixel[1])&0xfc) << 3) |
++                                       (((pixel[2])&0xf8) >> 3));
++                      }
++              }
++
++              offset += 2 * LOGO_SCREEN_WIDTH;
++      }
++
++      /* Fill the rest */
++      for (i = 0; i < 2 * (LOGO_SCREEN_WIDTH * ((LOGO_SCREEN_HEIGHT/2) - (height/2))); i += 2) {
++              *((unsigned short *)(0x85000000 + offset + i)) = LOGO_FILL_COLOUR;
++      }       
++
++      *((uint *) 0x48310034) = 0xfefffedf;
++      *((uint *) 0x48310094) = 0x01000120;
++      *((uint *) 0x48004D44) = 0x0001b00c;
++      *((uint *) 0x48004E40) = 0x00001002;
++      *((uint *) 0x48004D00) = 0x00370037;
++
++      *((uint *) 0x48050C00) = 0x00000002;
++      *((uint *) 0x48050C04) = 0x0000001B;
++      *((uint *) 0x48050C08) = 0x00000040;
++      *((uint *) 0x48050C0C) = 0x00000000;
++      *((uint *) 0x48050C10) = 0x00000000;
++      *((uint *) 0x48050C14) = 0x00008000;
++      *((uint *) 0x48050C18) = 0x00000000;
++      *((uint *) 0x48050C1C) = 0x00008359;
++      *((uint *) 0x48050C20) = 0x0000020C;
++      *((uint *) 0x48050C24) = 0x00000000;
++      *((uint *) 0x48050C28) = 0x043F2631;
++      *((uint *) 0x48050C2C) = 0x00000024;
++      *((uint *) 0x48050C30) = 0x00000130;
++      *((uint *) 0x48050C34) = 0x00000198;
++      *((uint *) 0x48050C38) = 0x000001C0;
++      *((uint *) 0x48050C3C) = 0x0000006A;
++      *((uint *) 0x48050C40) = 0x0000005C;
++      *((uint *) 0x48050C44) = 0x00000000;
++      *((uint *) 0x48050C48) = 0x00000001;
++      *((uint *) 0x48050C4C) = 0x0000003F;
++      *((uint *) 0x48050C50) = 0x21F07C1F;
++      *((uint *) 0x48050C54) = 0x00000000;
++      *((uint *) 0x48050C58) = 0x00000015;
++      *((uint *) 0x48050C5C) = 0x00001400;
++      *((uint *) 0x48050C60) = 0x00000000;
++      *((uint *) 0x48050C64) = 0x069300F4;
++      *((uint *) 0x48050C68) = 0x0016020C;
++      *((uint *) 0x48050C6C) = 0x00060107;
++      *((uint *) 0x48050C70) = 0x008D034E;
++      *((uint *) 0x48050C74) = 0x000F0359;
++      *((uint *) 0x48050C78) = 0x01A00000;
++      *((uint *) 0x48050C7C) = 0x020501A0;
++      *((uint *) 0x48050C80) = 0x01AC0024;
++      *((uint *) 0x48050C84) = 0x020D01AC;
++      *((uint *) 0x48050C88) = 0x00000006;
++      *((uint *) 0x48050C8C) = 0x00000000;
++      *((uint *) 0x48050C90) = 0x03480079;
++      *((uint *) 0x48050C94) = 0x02040024;
++      *((uint *) 0x48050C98) = 0x00000000;
++      *((uint *) 0x48050C9C) = 0x00000000;
++      *((uint *) 0x48050CA0) = 0x0001008A;
++      *((uint *) 0x48050CA4) = 0x01AC0106;
++      *((uint *) 0x48050CA8) = 0x01060006;
++      *((uint *) 0x48050CAC) = 0x00000000;
++      *((uint *) 0x48050CB0) = 0x00140001;
++      *((uint *) 0x48050CB4) = 0x00010001;
++      *((uint *) 0x48050CB8) = 0x00FF0000;
++      *((uint *) 0x48050CBC) = 0x00000000;
++      *((uint *) 0x48050CC0) = 0x00000000;
++      *((uint *) 0x48050CC4) = 0x0000000D;
++      *((uint *) 0x48050CC8) = 0x00000000;
++      *((uint *) 0x48050010) = 0x00000001;
++      *((uint *) 0x48050040) = 0x00000078;
++      *((uint *) 0x48050044) = 0x00000000;
++      *((uint *) 0x48050048) = 0x00000000;
++      *((uint *) 0x48050050) = 0x00000000;
++      *((uint *) 0x48050058) = 0x00000000;
++      *((uint *) 0x48050410) = 0x00002015;
++      *((uint *) 0x48050414) = 0x00000001;
++      *((uint *) 0x48050444) = 0x00000004;
++      *((uint *) 0x4805044c) = 0xFFFFFFFF;
++      *((uint *) 0x48050450) = 0x00000000;
++      *((uint *) 0x48050454) = 0x00000000;
++      *((uint *) 0x48050458) = 0x00000000;
++      *((uint *) 0x48050464) = 0x02600202;
++      *((uint *) 0x48050468) = 0x00700200;
++      *((uint *) 0x4805046c) = 0x00000000;
++      *((uint *) 0x48050470) = 0x00010007;
++      *((uint *) 0x48050478) = 0x00ef027f;
++      *((uint *) 0x4805047c) = 0x02ff03ff;
++      *((uint *) 0x48050480) = 0x85000000;
++      *((uint *) 0x48050484) = 0x85000000;
++      *((uint *) 0x48050488) = 0x00000000;
++      *((uint *) 0x4805048c) = 0x02ff03ff;
++      *((uint *) 0x480504a0) = 0x0000008d;
++      *((uint *) 0x480504a4) = 0x03fc03bc;
++      *((uint *) 0x480504a8) = 0x00000400;
++      *((uint *) 0x480504ac) = 0x00000001;
++      *((uint *) 0x480504b0) = 0x00000001;
++      *((uint *) 0x480504b4) = 0x00000000;
++      *((uint *) 0x480504b8) = 0x807ff000;
++      udelay(1000);
++      *((uint *) 0x48050440) = 0x0001836b;
++      udelay(1000);
++      *((uint *) 0x48050440) = 0x0001836b;
++      udelay(1000);
++      *((uint *) 0x48050440) = 0x0001836b;
++      udelay(1000);
++      
++      /* Turn on GPT9 PWM */
++      *((uint *) 0x49040024) = 0x80;
++}
++
+ /*
+  * Routine: board_init
+  * Description: Early hardware init.
+@@ -118,6 +256,9 @@ int misc_init_r(void)
+       dieid_num_r();
++      /* Touch Book logo */
++      dss_init();
++
+       return 0;
+ }
+diff --git a/board/omap3/beagle/logo.h b/board/omap3/beagle/logo.h
+new file mode 100644
+index 0000000..c0996ac
+--- /dev/null
++++ b/board/omap3/beagle/logo.h
+@@ -0,0 +1,1171 @@
++/*  GIMP header image file format (RGB): /Documents/Desktop/u-boot-black.h  */
++
++static unsigned int width = 136;
++static unsigned int height = 136;
++
++/*  Call this macro repeatedly.  After each use, the pixel data can be extracted  */
++
++#define HEADER_PIXEL(data,pixel) {\
++  pixel[0] = (((data[0] - 33) << 2) | ((data[1] - 33) >> 4)); \
++  pixel[1] = ((((data[1] - 33) & 0xF) << 4) | ((data[2] - 33) >> 2)); \
++  pixel[2] = ((((data[2] - 33) & 0x3) << 6) | ((data[3] - 33))); \
++  data += 4; \
++}
++static char *header_data =
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!(R]?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(RY?7VB9F:+3YO$A````````````"
++      "````````O,;WB)'#1E\"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(RY?"
++      "B)'\"````````````````````````````````````````````````Y?$@:W2E%2%2"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!%2%2>H.S````````````````````````````````````"
++      "````````````````````````````YO(A1E!`!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIKO,;W````````"
++      "````````````````````````````````````````````````````````````````"
++      "````B)'\"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!+SEJY?$@````````````````````````````````````````````"
++      "````````````````````````````````````````JK3D%B)3!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(RY?YO$@````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````B9+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!O<;W````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````;'6E!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:W2E````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````+SIK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "(RY?YO$A````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````JK3E!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>8*S````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````+SIJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "YO$@````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````B9+#!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!1E!`````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````YO$A!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!;'6F"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````+SIK"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!J[3E````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````4EN,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````:W2E"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````:W2E!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````:W2E"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!O<;W````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````;'6F!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.D1U.T5U.T5V.T5U"
++      ".T5V.T5V.T5U.T5U%2%2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````7F>8"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.T5U:W6E"
++      "F:+3JK3D````````````````````````````````````````````````T-L+JK/D"
++      ":W2E1E!`(R]@!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!>8*S````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````.D1U!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!(R]?7FB8JK3E````````````````````````````````````````````"
++      "````````````````````````````````````````````O<;W>H*S+SIK!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1D]`"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!%B)24ER,O<;W````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````T-L,>H*S)\"]@!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!%B)2````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````F:+3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)\"]@B)'\"YO(A"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````J[3E.T5U!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "B)'\"````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````1E\"!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!)\"]@B)'\"````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````J[3E.T5V!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIJ````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````T-H+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:W2EYO$A````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````FJ/3(RY?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!B)'\"````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````1D]`!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      ".T5VT-L+````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````YO$A7VB9"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%2%2YO$A````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````F:+3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!>8*S````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````J[3E(RY?!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!+SIJ````````````````````````````````````````````````````"
++      "````````````````````````````````````````````O<;W%2%2!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%2%2O<;W````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````YO$A.T5U!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4EN,````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````O<;W%B%2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!+SEJYO$A````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````4ER,!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!1E!`YO$A````````````````````````````````````````"
++      "````````````````````````````````````O<;W%B)2!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIJYO$A````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````B)'\"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIJO<;W````"
++      "````````````````````````````````````````````````````````````````"
++      ">H*S%B)3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!1D]`YO$A````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````B)'\"!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!4UR,T=L,````````````````````````````"
++      "````````````````````````JK/D.T5V!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIKYO$@````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````B)'\"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!1D]`B)'\"YO$@````````````````````````````T-L,>8*S+SIK!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      ",#IKYO$A````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````4UR,"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)\"]@.T5V.D5U.T5V"
++      ".T5U.T5U%2%2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!%2%2T-L+````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````1D]`!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "Y?$@)\"]@!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!7F>8````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````JK/D!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(R]?YO$A````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````7F>8!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````YO$A(R]?!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1D]`````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````B)'\"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!T-L+````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````+SEJ!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4EN,````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````B)'\"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!O<;W````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````(R]?!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!(R]@7F>8F:+3T=L,````````````O<;WB9+#4ER,%B)3!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIK````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````YO$AJ[3E:W2E:W2E"
++      ";'6F:W2EFJ+3T-L+````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````>8*S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(RY?B9+#````````````````````````"
++      "````````````````YO$@;'6E%2%2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!B)'\"````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````F:+31E!`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,#IK>H*SYO$@````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````Y?$@!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!;'6E"
++      "````````````````````````````````````````````````````````YO$A.T5V"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!YO(A````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````O<;W.T5V!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!%2%2>8*S````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````1E\"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!B)'\"````````````````````````````````````"
++      "````````````````````````````````4ER,!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!.T5U````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````B)'\""
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "1E!`Y?$@````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````>8*S!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!B)'\"````````"
++      "````````````````````````````````````````````````````````````````"
++      "````4EN,!!!!!!!!!!!!!!!!!!!!!!!!!!!!;'6E````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````4ER,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIJYO$A````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````T-L+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!:W2E````````````````````````````````````````````"
++      "````````````````````````````````````````+SIK!!!!!!!!!!!!!!!!!!!!"
++      "!!!!JK3D````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````B9+#!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!.T5V````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````%2%2"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(R]?````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````T-L+!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````T-H+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:W2E````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````.D1U!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!B)'\"````````````````````````````````````````````````"
++      "````````````````````````````````````````````4EN,!!!!!!!!!!!!!!!!"
++      "+SIK````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````.D1U!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!%2%2YO(A````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````:W2E"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)\"]@````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````T=L,!!!!!!!!!!!!!!!!.T5U````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````T=L,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!;'6F````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````B)'\"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!7F>8````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````+SIK!!!!!!!!!!!!"
++      "7F>8````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````;'6F!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!+SIJ````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````J[3E"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!F:+3````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````7F>8!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````.T5V!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!YO$A````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````JK/D!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!O<;W````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````>8*S!!!!!!!!!!!!"
++      ";'6F````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````+SIJ!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK3D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````O<;W"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK/D!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!J[3E````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK3D!!!!!!!!!!!!"
++      ";'6F````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK/D!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ";'6F````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK3E````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK3E!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!J[3E````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ";'6F````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK3E!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!J[3E````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!J[3E````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK/D!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK3E````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK3D!!!!!!!!!!!!"
++      ";'6E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!J[3E````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK/D!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK3E!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK3E````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK/D!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK/D!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK3E````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ";'6E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK3E````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK3E!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK3D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK3E!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````J[3E!!!!!!!!!!!!;'6F````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````J[3E!!!!!!!!!!!!"
++      ";'6F````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK/D!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK3D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK3D!!!!!!!!!!!!"
++      ";'6F````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!J[3E````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK/D!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK3D!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK3D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK/D!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!J[3E````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ";'6E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````J[3E!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ";'6E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK3D!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK3D!!!!!!!!!!!!"
++      ";'6E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````J[3E!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK3E````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK3D!!!!!!!!!!!!"
++      ";'6E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK3D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````J[3E!!!!!!!!!!!!;'6F````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!J[3E````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````J[3E!!!!!!!!!!!!;'6F````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````J[3E!!!!!!!!!!!!;'6F````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK3D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ";'6E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK3E````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````J[3E!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK3E````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK3E!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK/D!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JK/D````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK/D!!!!!!!!!!!!"
++      ";'6E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!JK/D````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````JK3D!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!J[3E````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````JK3E!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!J[3E````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "%2%2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIK````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````:W2E!!!!!!!!!!!!;'6E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>8*S````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````1E!`!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!7F>8````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````;'6F!!!!!!!!!!!!"
++      ";'6F````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!:W2E````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "B)'\"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O<;X````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````7FB8!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1E!`````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````(RY?!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      ".T5U````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````.D1U!!!!!!!!!!!!"
++      ";'6F````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!+SIK````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````JK/D!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O<;W````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````%2%2!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!YO$A````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````7F>8!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>8*S"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````T=L,!!!!!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!F:+3````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````4EN,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!4EN,````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````B)'\"!!!!!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!7F>8````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````;'6F!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!B)'\"````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````1E\"!!!!!!!!!!!!!!!!!"
++      ";'6E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!(RY?````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````JK3E.D1U!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!.T5UO<;W````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````%2%2!!!!!!!!!!!!!!!!;'6F````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O<;W"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````JK3E"
++      "1E!`%2%2!!!!!!!!!!!!!!!!!!!!!!!!%2%24UR,JK3D````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````F:+3!!!!!!!!!!!!!!!!!!!!"
++      ";'6E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!4ER,````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````O<?XF:+3;'6E:W2EJ[3EO<;W"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````1D]`!!!!!!!!!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%B)2"
++      "YO$A````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````T-L+!!!!!!!!!!!!!!!!!!!!!!!!"
++      ";'6E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!;'6F````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````4UR,!!!!!!!!!!!!!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "%B%2YO(A````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````T=L,!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!;'6E````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "4EN,!!!!!!!!!!!!!!!!!!!!!!!!!!!!:W2E````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!T-H+````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````JK/D!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      ":W2E````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.T5V````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````+SIJ"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.D5U````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````JK/D!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!>8*S````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````;'6F!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "%B)2````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````>8*S!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%B)3O,;W````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````JK3E!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!F:+2````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````+SIK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!(RY?YO$@````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````T-L+%B)3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!.D1U````````````````````````````````````````````````````````"
++      "````````````````````````````````````JK/D!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIK````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````YO$A+SIK!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!F:+3````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````.T5U!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!4EN,````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````+SIJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!%2%2YO$@````````````````````````````````````````````````"
++      "````````````````````````````````>8*S!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4EN,"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````4EN,!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIK````````````````"
++      "````````````````````````````````````````````````````````````JK3E"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4UR,````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "YO$@+SIJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!.T5UYO$A````````````````````````````````````````"
++      "````````````````````````F:+2%2%2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!+SIKYO(A````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````YO$@+SIK!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIJO<;W````"
++      "````````````````````````````````````````````````````;'6E!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)\"]@O<;W````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````JK/D%B)3"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!4ER,T=L,````````````````````````````"
++      "````````````B9+#(R]@!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!%2%2>8*S````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````;'6F!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!1E!`>H*SJK/DT-L+````````JK3EF:+37F>8(R]?!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.D1UT-L+````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````O<;W+SIJ!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!%B)2:W2EYO$A````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````Y?$@:W2E!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "(R]?B)'\"````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````YO$@:W2E%B)2!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(R]?>8*SYO$@````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````````````````````````````````````````````YO$@;'6E%2%2"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!%2%24UR,JK/D````````````````````````````````````"
++      "````````````````````````````````````````````````````````````````"
++      "````````````F:+34EN,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(R]?"
++      "4EN,F:+3YO(A````````````````````````````````````````````````````"
++      "````````````````````````````YO(AF:+34ER,%B)2!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIJ4ER,>8*SJK/DT=L,"
++      "````````````````````````````````````````T-L+JK/D>8*S4ER,+SEJ!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+SIK.T5U.D1U.T5V.T5U(R]?"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
++      "";
+-- 
+1.6.6.1
+
index 5931ccf00bf1526171202cbb444342148a3109f2..4c37e0065b0e9282cc188289293e8ffea82755d9 100644 (file)
@@ -1,45 +1,39 @@
-Patch initially created by Ron Lee and archived in OE patchwork at
-http://patchwork.openembedded.org/patch/1534/.
-
-GCC 4.4 complains about this now.
-
-Signed-off-by: Ron Lee <ron@debian.org>
----
- lib_arm/board.c |   18 +++++++++---------
- 1 files changed, 9 insertions(+), 9 deletions(-)
-
+diff --git a/lib_arm/board.c b/lib_arm/board.c
+index 5d05d9b..0e7fa9a 100644
 --- a/lib_arm/board.c
 +++ b/lib_arm/board.c
-@@ -124,23 +124,23 @@
+@@ -122,20 +122,20 @@ void *sbrk (ptrdiff_t increment)
+  ************************************************************************
   * May be supplied by boards if desired
   */
- void inline __coloured_LED_init (void) {}
+-void inline __coloured_LED_init (void) {}
 -void inline coloured_LED_init (void) __attribute__((weak, alias("__coloured_LED_init")));
-+void coloured_LED_init (void) __attribute__((weak, alias("__coloured_LED_init")));
- void inline __red_LED_on (void) {}
+-void inline __red_LED_on (void) {}
 -void inline red_LED_on (void) __attribute__((weak, alias("__red_LED_on")));
-+void red_LED_on (void) __attribute__((weak, alias("__red_LED_on")));
- void inline __red_LED_off(void) {}
+-void inline __red_LED_off(void) {}
 -void inline red_LED_off(void)      __attribute__((weak, alias("__red_LED_off")));
-+void red_LED_off(void)             __attribute__((weak, alias("__red_LED_off")));
- void inline __green_LED_on(void) {}
+-void inline __green_LED_on(void) {}
 -void inline green_LED_on(void) __attribute__((weak, alias("__green_LED_on")));
-+void green_LED_on(void) __attribute__((weak, alias("__green_LED_on")));
- void inline __green_LED_off(void) {}
+-void inline __green_LED_off(void) {}
 -void inline green_LED_off(void)__attribute__((weak, alias("__green_LED_off")));
-+void green_LED_off(void)__attribute__((weak, alias("__green_LED_off")));
- void inline __yellow_LED_on(void) {}
+-void inline __yellow_LED_on(void) {}
 -void inline yellow_LED_on(void)__attribute__((weak, alias("__yellow_LED_on")));
-+void yellow_LED_on(void)__attribute__((weak, alias("__yellow_LED_on")));
- void inline __yellow_LED_off(void) {}
+-void inline __yellow_LED_off(void) {}
 -void inline yellow_LED_off(void)__attribute__((weak, alias("__yellow_LED_off")));
++void __coloured_LED_init (void) {}
++void coloured_LED_init (void) __attribute__((weak, alias("__coloured_LED_init")));
++void __red_LED_on (void) {}
++void red_LED_on (void) __attribute__((weak, alias("__red_LED_on")));
++void __red_LED_off(void) {}
++void red_LED_off(void)             __attribute__((weak, alias("__red_LED_off")));
++void __green_LED_on(void) {}
++void green_LED_on(void) __attribute__((weak, alias("__green_LED_on")));
++void __green_LED_off(void) {}
++void green_LED_off(void)__attribute__((weak, alias("__green_LED_off")));
++void __yellow_LED_on(void) {}
++void yellow_LED_on(void)__attribute__((weak, alias("__yellow_LED_on")));
++void __yellow_LED_off(void) {}
 +void yellow_LED_off(void)__attribute__((weak, alias("__yellow_LED_off")));
- void inline __blue_LED_on(void) {}
--void inline blue_LED_on(void)__attribute__((weak, alias("__blue_LED_on")));
-+void blue_LED_on(void)__attribute__((weak, alias("__blue_LED_on")));
- void inline __blue_LED_off(void) {}
--void inline blue_LED_off(void)__attribute__((weak, alias("__blue_LED_off")));
-+void blue_LED_off(void)__attribute__((weak, alias("__blue_LED_off")));
  
  /************************************************************************
   * Init Utilities                                                     *
diff --git a/recipes-bsp/u-boot/u-boot/dss2.patch b/recipes-bsp/u-boot/u-boot/dss2.patch
new file mode 100644 (file)
index 0000000..768743f
--- /dev/null
@@ -0,0 +1,73 @@
+From af839210aa4c643506c6c27270a7f823c6bd0d58 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 8 Jan 2011 19:12:59 +0100
+Subject: [PATCH 01/10] dss2.patch
+
+---
+ include/configs/omap3_beagle.h |   15 +++++++++++----
+ include/configs/omap3_overo.h  |   15 +++++++++++----
+ 2 files changed, 22 insertions(+), 8 deletions(-)
+
+diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
+index a3d9cf6..f7899b9 100644
+--- a/include/configs/omap3_beagle.h
++++ b/include/configs/omap3_beagle.h
+@@ -156,14 +156,21 @@
+ #define CONFIG_EXTRA_ENV_SETTINGS \
+       "loadaddr=0x82000000\0" \
+       "console=ttyS2,115200n8\0" \
+-      "videomode=1024x768@60,vxres=1024,vyres=768\0" \
+-      "videospec=omapfb:vram:2M,vram:4M\0" \
++      "vram=12M\0" \
++      "dvimode=1024x768MR-16@60\0" \
++      "defaultdisplay=dvi\0" \
+       "mmcargs=setenv bootargs console=${console} " \
+-              "video=${videospec},mode:${videomode} " \
++              "vram=${vram} " \
++              "omapfb.mode=dvi:${dvimode} " \
++              "omapfb.debug=y " \
++              "omapdss.def_disp=${defaultdisplay} " \
+               "root=/dev/mmcblk0p2 rw " \
+               "rootfstype=ext3 rootwait\0" \
+       "nandargs=setenv bootargs console=${console} " \
+-              "video=${videospec},mode:${videomode} " \
++              "vram=${vram} " \
++              "omapfb.mode=dvi:${dvimode} " \
++              "omapfb.debug=y " \
++              "omapdss.def_disp=${defaultdisplay} " \
+               "root=/dev/mtdblock4 rw " \
+               "rootfstype=jffs2\0" \
+       "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \
+diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h
+index fed6ff5..6162d6c 100644
+--- a/include/configs/omap3_overo.h
++++ b/include/configs/omap3_overo.h
+@@ -147,14 +147,21 @@
+ #define CONFIG_EXTRA_ENV_SETTINGS \
+       "loadaddr=0x82000000\0" \
+       "console=ttyS2,115200n8\0" \
+-      "videomode=1024x768@60,vxres=1024,vyres=768\0" \
+-      "videospec=omapfb:vram:2M,vram:4M\0" \
++      "vram=12M\0" \
++      "dvimode=1024x768MR-16@60\0" \
++      "defaultdisplay=dvi\0" \
+       "mmcargs=setenv bootargs console=${console} " \
+-              "video=${videospec},mode:${videomode} " \
++              "vram=${vram} " \
++              "omapfb.mode=dvi:${dvimode} " \
++              "omapfb.debug=y " \
++              "omapdss.def_disp=${defaultdisplay} " \
+               "root=/dev/mmcblk0p2 rw " \
+               "rootfstype=ext3 rootwait\0" \
+       "nandargs=setenv bootargs console=${console} " \
+-              "video=${videospec},mode:${videomode} " \
++              "vram=${vram} " \
++              "omapfb.mode=dvi:${dvimode} " \
++              "omapfb.debug=y " \
++              "omapdss.def_disp=${defaultdisplay} " \
+               "root=/dev/mtdblock4 rw " \
+               "rootfstype=jffs2\0" \
+       "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \
+-- 
+1.6.6.1
+
diff --git a/recipes-bsp/u-boot/u-boot/headphone.patch b/recipes-bsp/u-boot/u-boot/headphone.patch
new file mode 100644 (file)
index 0000000..dacb30b
--- /dev/null
@@ -0,0 +1,47 @@
+From c26fbaf25d06dcec26e1c2b6669345bd08c8be5f Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 8 Jan 2011 19:16:16 +0100
+Subject: [PATCH 06/10] headphone.patch
+
+---
+ board/omap3/beagle/beagle.c |    4 ++--
+ board/omap3/beagle/beagle.h |    4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/board/omap3/beagle/beagle.c b/board/omap3/beagle/beagle.c
+index 7eb70ee..39073db 100644
+--- a/board/omap3/beagle/beagle.c
++++ b/board/omap3/beagle/beagle.c
+@@ -104,12 +104,12 @@ int misc_init_r(void)
+       power_init_r();
+       /* Configure GPIOs to output */
+-      writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe);
++      writel(~(GPIO16 | GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe);
+       writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
+               GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe);
+       /* Set GPIOs */
+-      writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1,
++      writel(GPIO16 | GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1,
+               &gpio6_base->setdataout);
+       writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
+               GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout);
+diff --git a/board/omap3/beagle/beagle.h b/board/omap3/beagle/beagle.h
+index 876dd4f..e77ab43 100644
+--- a/board/omap3/beagle/beagle.h
++++ b/board/omap3/beagle/beagle.h
+@@ -115,8 +115,8 @@ const omap3_sysinfo sysinfo = {
+  MUX_VAL(CP(GPMC_NCS1),               (IDIS | PTU | EN  | M0)) /*GPMC_nCS1*/\
+  MUX_VAL(CP(GPMC_NCS2),               (IDIS | PTU | EN  | M0)) /*GPMC_nCS2*/\
+  MUX_VAL(CP(GPMC_NCS3),               (IDIS | PTU | EN  | M0)) /*GPMC_nCS3*/\
+- MUX_VAL(CP(GPMC_NCS4),               (IDIS | PTU | EN  | M0)) /*GPMC_nCS4*/\
+- MUX_VAL(CP(GPMC_NCS5),               (IDIS | PTD | DIS | M0)) /*GPMC_nCS5*/\
++ MUX_VAL(CP(GPMC_NCS4),               (IDIS | PTU | DIS | M3)) /*GPMC_nCS4 -- GPT9_PWM*/\
++ MUX_VAL(CP(GPMC_NCS5),               (IEN  | PTD | DIS | M4)) /*GPMC_nCS5 -- PHONES_DETECT GPIO_56*/\
+  MUX_VAL(CP(GPMC_NCS6),               (IEN  | PTD | DIS | M1)) /*SYS_nDMA_REQ2*/\
+  MUX_VAL(CP(GPMC_NCS7),               (IEN  | PTU | EN  | M1)) /*SYS_nDMA_REQ3*/\
+  MUX_VAL(CP(GPMC_NBE1),               (IEN  | PTD | DIS | M0)) /*GPMC_nBE1*/\
+-- 
+1.6.6.1
+
diff --git a/recipes-bsp/u-boot/u-boot/mmcinit.patch b/recipes-bsp/u-boot/u-boot/mmcinit.patch
new file mode 100644 (file)
index 0000000..a48d9eb
--- /dev/null
@@ -0,0 +1,34 @@
+From 412e0ab7334defa38c8d3732fb0076f4957843f0 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 8 Jan 2011 19:17:07 +0100
+Subject: [PATCH 09/10] mmcinit.patch
+
+---
+ common/cmd_mmc.c |   11 +++++++++++
+ 1 files changed, 11 insertions(+), 0 deletions(-)
+
+diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
+index 039fe59..c1958ba 100644
+--- a/common/cmd_mmc.c
++++ b/common/cmd_mmc.c
+@@ -91,6 +91,17 @@ U_BOOT_CMD(
+       "init [dev] - init MMC sub system\n"
+       "mmc device [dev] - show or set current device\n"
+ );
++int do_mmcinit (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
++{
++      char *argv2[] = {"mmc", "init"};
++      return do_mmc (cmdtp, flag, 2, argv2);
++}
++
++U_BOOT_CMD(
++      mmcinit,        1,      0,      do_mmcinit,
++      "mmcinit - init mmc card\n",
++      NULL
++);
+ #else /* !CONFIG_GENERIC_MMC */
+ static void print_mmcinfo(struct mmc *mmc)
+-- 
+1.6.6.1
+
diff --git a/recipes-bsp/u-boot/u-boot/new-pinmux.patch b/recipes-bsp/u-boot/u-boot/new-pinmux.patch
new file mode 100644 (file)
index 0000000..b64204d
--- /dev/null
@@ -0,0 +1,82 @@
+From 71a2717bf4f85bf4cb55b9cad653a4b9bb966489 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 8 Jan 2011 19:15:25 +0100
+Subject: [PATCH 03/10] newpinmux.patch
+
+---
+ board/omap3/beagle/beagle.h |   38 +++++++++++++++++++-------------------
+ 1 files changed, 19 insertions(+), 19 deletions(-)
+
+diff --git a/board/omap3/beagle/beagle.h b/board/omap3/beagle/beagle.h
+index 00b15cb..2ba6a12 100644
+--- a/board/omap3/beagle/beagle.h
++++ b/board/omap3/beagle/beagle.h
+@@ -201,16 +201,16 @@ const omap3_sysinfo sysinfo = {
+  MUX_VAL(CP(MMC1_DAT6),               (IEN  | PTU | EN  | M0)) /*MMC1_DAT6*/\
+  MUX_VAL(CP(MMC1_DAT7),               (IEN  | PTU | EN  | M0)) /*MMC1_DAT7*/\
+  /*Wireless LAN */\
+- MUX_VAL(CP(MMC2_CLK),                (IEN  | PTU | EN  | M4)) /*GPIO_130*/\
+- MUX_VAL(CP(MMC2_CMD),                (IEN  | PTU | EN  | M4)) /*GPIO_131*/\
+- MUX_VAL(CP(MMC2_DAT0),               (IEN  | PTU | EN  | M4)) /*GPIO_132*/\
+- MUX_VAL(CP(MMC2_DAT1),               (IEN  | PTU | EN  | M4)) /*GPIO_133*/\
+- MUX_VAL(CP(MMC2_DAT2),               (IEN  | PTU | EN  | M4)) /*GPIO_134*/\
+- MUX_VAL(CP(MMC2_DAT3),               (IEN  | PTU | EN  | M4)) /*GPIO_135*/\
+- MUX_VAL(CP(MMC2_DAT4),               (IEN  | PTU | EN  | M4)) /*GPIO_136*/\
+- MUX_VAL(CP(MMC2_DAT5),               (IEN  | PTU | EN  | M4)) /*GPIO_137*/\
+- MUX_VAL(CP(MMC2_DAT6),               (IEN  | PTU | EN  | M4)) /*GPIO_138*/\
+- MUX_VAL(CP(MMC2_DAT7),               (IEN  | PTU | EN  | M4)) /*GPIO_139*/\
++ MUX_VAL(CP(MMC2_CLK),                (IEN  | PTU | EN  | M0)) /*MMC2_CLK*/\
++ MUX_VAL(CP(MMC2_CMD),                (IEN  | PTU | EN  | M0)) /*MMC2_CMD*/\
++ MUX_VAL(CP(MMC2_DAT0),               (IEN  | PTU | EN  | M0)) /*MMC2_DAT0*/\
++ MUX_VAL(CP(MMC2_DAT1),               (IEN  | PTU | EN  | M0)) /*MMC2_DAT1*/\
++ MUX_VAL(CP(MMC2_DAT2),               (IEN  | PTU | EN  | M0)) /*MMC2_DAT2*/\
++ MUX_VAL(CP(MMC2_DAT3),               (IEN  | PTU | EN  | M0)) /*MMC2_DAT3*/\
++ MUX_VAL(CP(MMC2_DAT4),               (IEN  | PTU | EN  | M1)) /*MMC2_DIR_DAT0*/\
++ MUX_VAL(CP(MMC2_DAT5),               (IEN  | PTU | EN  | M1)) /*MMC2_DIR_DAT1*/\
++ MUX_VAL(CP(MMC2_DAT6),               (IEN  | PTU | EN  | M1)) /*MMC2_DIR_CMD*/\
++ MUX_VAL(CP(MMC2_DAT7),               (IEN  | PTU | EN  | M1)) /*MMC2_CLKIN*/\
+  /*Bluetooth*/\
+  MUX_VAL(CP(MCBSP3_DX),               (IEN  | PTD | DIS | M1)) /*UART2_CTS*/\
+  MUX_VAL(CP(MCBSP3_DR),               (IDIS | PTD | DIS | M1)) /*UART2_RTS*/\
+@@ -225,10 +225,10 @@ const omap3_sysinfo sysinfo = {
+  MUX_VAL(CP(UART1_RTS),               (IDIS | PTD | DIS | M4)) /*GPIO_149*/ \
+  MUX_VAL(CP(UART1_CTS),               (IDIS | PTD | DIS | M4)) /*GPIO_150*/ \
+  MUX_VAL(CP(UART1_RX),                (IEN  | PTD | DIS | M0)) /*UART1_RX*/\
+- MUX_VAL(CP(MCBSP4_CLKX),     (IEN  | PTD | DIS | M1)) /*SSI1_DAT_RX*/\
+- MUX_VAL(CP(MCBSP4_DR),               (IEN  | PTD | DIS | M1)) /*SSI1_FLAG_RX*/\
+- MUX_VAL(CP(MCBSP4_DX),               (IEN  | PTD | DIS | M1)) /*SSI1_RDY_RX*/\
+- MUX_VAL(CP(MCBSP4_FSX),      (IEN  | PTD | DIS | M1)) /*SSI1_WAKE*/\
++ MUX_VAL(CP(MCBSP4_CLKX),     (IEN | PTU | EN  | M4)) /*GPIO_152*/\
++ MUX_VAL(CP(MCBSP4_DR),               (IEN | PTU | EN  | M4)) /*GPIO_153*/\
++ MUX_VAL(CP(MCBSP4_DX),               (IEN | PTU | EN  | M4)) /*GPIO_154*/\
++ MUX_VAL(CP(MCBSP4_FSX),      (IEN | PTU | EN  | M4)) /*GPIO_155*/\
+  MUX_VAL(CP(MCBSP1_CLKR),     (IDIS | PTD | DIS | M4)) /*GPIO_156*/\
+  MUX_VAL(CP(MCBSP1_FSR),      (IDIS | PTU | EN  | M4)) /*GPIO_157*/\
+  MUX_VAL(CP(MCBSP1_DX),               (IDIS | PTD | DIS | M4)) /*GPIO_158*/\
+@@ -255,8 +255,8 @@ const omap3_sysinfo sysinfo = {
+  MUX_VAL(CP(HSUSB0_DATA7),    (IEN  | PTD | DIS | M0)) /*HSUSB0_DATA7*/\
+  MUX_VAL(CP(I2C1_SCL),                (IEN  | PTU | EN  | M0)) /*I2C1_SCL*/\
+  MUX_VAL(CP(I2C1_SDA),                (IEN  | PTU | EN  | M0)) /*I2C1_SDA*/\
+- MUX_VAL(CP(I2C2_SCL),                (IEN  | PTU | EN  | M4)) /*GPIO_168*/\
+- MUX_VAL(CP(I2C2_SDA),                (IEN  | PTU | EN  | M4)) /*GPIO_183*/\
++ MUX_VAL(CP(I2C2_SCL),                (IEN  | PTU | EN  | M0)) /*I2C2_SCL*/\
++ MUX_VAL(CP(I2C2_SDA),                (IEN  | PTU | EN  | M0)) /*I2C2_SDA*/\
+  MUX_VAL(CP(I2C3_SCL),                (IEN  | PTU | EN  | M0)) /*I2C3_SCL*/\
+  MUX_VAL(CP(I2C3_SDA),                (IEN  | PTU | EN  | M0)) /*I2C3_SDA*/\
+  MUX_VAL(CP(I2C4_SCL),                (IEN  | PTU | EN  | M0)) /*I2C4_SCL*/\
+@@ -374,9 +374,9 @@ const omap3_sysinfo sysinfo = {
+  MUX_VAL(CP(SDRC_CKE1),               (IDIS | PTU | EN  | M0)) /*sdrc_cke1*/
+ #define MUX_BEAGLE_C() \
+- MUX_VAL(CP(MCBSP3_DX),               (IEN | PTD | DIS | M4)) /*GPIO_140*/\
+- MUX_VAL(CP(MCBSP3_DR),               (IEN | PTD | DIS | M4)) /*GPIO_142*/\
+- MUX_VAL(CP(MCBSP3_CLKX),     (IEN | PTD | DIS | M4)) /*GPIO_141*/\
++ MUX_VAL(CP(MCBSP3_DX),               (IEN  | PTD | DIS | M4)) /*GPIO_140*/\
++ MUX_VAL(CP(MCBSP3_DR),               (IEN  | PTD | DIS | M4)) /*GPIO_142*/\
++ MUX_VAL(CP(MCBSP3_CLKX),     (IEN  | PTD | DIS | M4)) /*GPIO_141*/\
+  MUX_VAL(CP(UART2_CTS),               (IEN  | PTU | EN  | M0)) /*UART2_CTS*/\
+  MUX_VAL(CP(UART2_RTS),               (IDIS | PTD | DIS | M0)) /*UART2_RTS*/\
+  MUX_VAL(CP(UART2_TX),                (IDIS | PTD | DIS | M0)) /*UART2_TX*/
+-- 
+1.6.6.1
+
diff --git a/recipes-bsp/u-boot/u-boot/omap3-touchbook/fw_env.config b/recipes-bsp/u-boot/u-boot/omap3-touchbook/fw_env.config
new file mode 100644 (file)
index 0000000..a7bfec1
--- /dev/null
@@ -0,0 +1,6 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundand
+# environment sector is assumed present.
+
+# MTD device name      Device offset   Env. size       Flash sector size
+/dev/mtd2              0x0000          0x20000         0x20000
diff --git a/recipes-bsp/u-boot/u-boot/power.patch b/recipes-bsp/u-boot/u-boot/power.patch
new file mode 100644 (file)
index 0000000..6403e29
--- /dev/null
@@ -0,0 +1,27 @@
+From 62d6dee28046b333125ebbd1f0c5d946a3ea329a Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 8 Jan 2011 19:16:32 +0100
+Subject: [PATCH 07/10] power.patch
+
+---
+ board/omap3/beagle/beagle.h |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/board/omap3/beagle/beagle.h b/board/omap3/beagle/beagle.h
+index e77ab43..1828153 100644
+--- a/board/omap3/beagle/beagle.h
++++ b/board/omap3/beagle/beagle.h
+@@ -255,8 +255,8 @@ const omap3_sysinfo sysinfo = {
+  MUX_VAL(CP(HSUSB0_DATA7),    (IEN  | PTD | DIS | M0)) /*HSUSB0_DATA7*/\
+  MUX_VAL(CP(I2C1_SCL),                (IEN  | PTU | EN  | M0)) /*I2C1_SCL*/\
+  MUX_VAL(CP(I2C1_SDA),                (IEN  | PTU | EN  | M0)) /*I2C1_SDA*/\
+- MUX_VAL(CP(I2C2_SCL),                (IEN  | PTU | EN  | M0)) /*I2C2_SCL*/\
+- MUX_VAL(CP(I2C2_SDA),                (IEN  | PTU | EN  | M0)) /*I2C2_SDA*/\
++ MUX_VAL(CP(I2C2_SCL),                (IEN  | PTU | EN  | M4)) /*GPIO_168*/\
++ MUX_VAL(CP(I2C2_SDA),                (IEN  | PTU | EN  | M4)) /*GPIO_183*/\
+  MUX_VAL(CP(I2C3_SCL),                (IEN  | PTU | EN  | M0)) /*I2C3_SCL*/\
+  MUX_VAL(CP(I2C3_SDA),                (IEN  | PTU | EN  | M0)) /*I2C3_SDA*/\
+  MUX_VAL(CP(I2C4_SCL),                (IEN  | PTU | EN  | M0)) /*I2C4_SCL*/\
+-- 
+1.6.6.1
+
diff --git a/recipes-bsp/u-boot/u-boot/spi3.patch b/recipes-bsp/u-boot/u-boot/spi3.patch
new file mode 100644 (file)
index 0000000..5c46ed5
--- /dev/null
@@ -0,0 +1,43 @@
+From 17d40dae02b56f1f4c4f3766e20b7b4c69596049 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 8 Jan 2011 19:15:52 +0100
+Subject: [PATCH 04/10] spi3.patch
+
+---
+ board/omap3/beagle/beagle.h |   20 ++++++++++----------
+ 1 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/board/omap3/beagle/beagle.h b/board/omap3/beagle/beagle.h
+index 2ba6a12..743e32c 100644
+--- a/board/omap3/beagle/beagle.h
++++ b/board/omap3/beagle/beagle.h
+@@ -201,16 +201,16 @@ const omap3_sysinfo sysinfo = {
+  MUX_VAL(CP(MMC1_DAT6),               (IEN  | PTU | EN  | M0)) /*MMC1_DAT6*/\
+  MUX_VAL(CP(MMC1_DAT7),               (IEN  | PTU | EN  | M0)) /*MMC1_DAT7*/\
+  /*Wireless LAN */\
+- MUX_VAL(CP(MMC2_CLK),                (IEN  | PTU | EN  | M0)) /*MMC2_CLK*/\
+- MUX_VAL(CP(MMC2_CMD),                (IEN  | PTU | EN  | M0)) /*MMC2_CMD*/\
+- MUX_VAL(CP(MMC2_DAT0),               (IEN  | PTU | EN  | M0)) /*MMC2_DAT0*/\
+- MUX_VAL(CP(MMC2_DAT1),               (IEN  | PTU | EN  | M0)) /*MMC2_DAT1*/\
+- MUX_VAL(CP(MMC2_DAT2),               (IEN  | PTU | EN  | M0)) /*MMC2_DAT2*/\
+- MUX_VAL(CP(MMC2_DAT3),               (IEN  | PTU | EN  | M0)) /*MMC2_DAT3*/\
+- MUX_VAL(CP(MMC2_DAT4),               (IEN  | PTU | EN  | M1)) /*MMC2_DIR_DAT0*/\
+- MUX_VAL(CP(MMC2_DAT5),               (IEN  | PTU | EN  | M1)) /*MMC2_DIR_DAT1*/\
+- MUX_VAL(CP(MMC2_DAT6),               (IEN  | PTU | EN  | M1)) /*MMC2_DIR_CMD*/\
+- MUX_VAL(CP(MMC2_DAT7),               (IEN  | PTU | EN  | M1)) /*MMC2_CLKIN*/\
++ MUX_VAL(CP(MMC2_CLK),                (IEN  | PTU | DIS  | M1)) /*MCSPI3_CLK*/\
++ MUX_VAL(CP(MMC2_CMD),                (IEN  | PTU | DIS  | M1)) /*MCSPI3_SIMO*/\
++ MUX_VAL(CP(MMC2_DAT0),               (IEN  | PTU | EN  | M1)) /*MCSPI3_SOMI*/\
++ MUX_VAL(CP(MMC2_DAT1),               (IEN  | PTU | EN  | M4)) /*GPIO_133*/\
++ MUX_VAL(CP(MMC2_DAT2),               (IEN  | PTU | EN  | M1)) /*MCSPI3_CS1*/\
++ MUX_VAL(CP(MMC2_DAT3),               (IEN  | PTU | EN  | M1)) /*MCSPI3_CS0*/\
++ MUX_VAL(CP(MMC2_DAT4),               (IEN  | PTU | EN  | M4)) /*GPIO_136*/\
++ MUX_VAL(CP(MMC2_DAT5),               (IEN  | PTU | EN  | M4)) /*GPIO_137*/\
++ MUX_VAL(CP(MMC2_DAT6),               (IEN  | PTU | EN  | M4)) /*GPIO_138*/\
++ MUX_VAL(CP(MMC2_DAT7),               (IEN  | PTU | EN  | M4)) /*GPIO_139*/\
+  /*Bluetooth*/\
+  MUX_VAL(CP(MCBSP3_DX),               (IEN  | PTD | DIS | M1)) /*UART2_CTS*/\
+  MUX_VAL(CP(MCBSP3_DR),               (IDIS | PTD | DIS | M1)) /*UART2_RTS*/\
+-- 
+1.6.6.1
+
diff --git a/recipes-bsp/u-boot/u-boot/spi4.patch b/recipes-bsp/u-boot/u-boot/spi4.patch
new file mode 100644 (file)
index 0000000..4c92a7e
--- /dev/null
@@ -0,0 +1,36 @@
+From b2b7765ad59b5422df9337ee6c6f838a381b86c0 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 8 Jan 2011 19:15:59 +0100
+Subject: [PATCH 05/10] spi4.patch
+
+---
+ board/omap3/beagle/beagle.h |   12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/board/omap3/beagle/beagle.h b/board/omap3/beagle/beagle.h
+index 743e32c..876dd4f 100644
+--- a/board/omap3/beagle/beagle.h
++++ b/board/omap3/beagle/beagle.h
+@@ -229,13 +229,13 @@ const omap3_sysinfo sysinfo = {
+  MUX_VAL(CP(MCBSP4_DR),               (IEN | PTU | EN  | M4)) /*GPIO_153*/\
+  MUX_VAL(CP(MCBSP4_DX),               (IEN | PTU | EN  | M4)) /*GPIO_154*/\
+  MUX_VAL(CP(MCBSP4_FSX),      (IEN | PTU | EN  | M4)) /*GPIO_155*/\
+- MUX_VAL(CP(MCBSP1_CLKR),     (IDIS | PTD | DIS | M4)) /*GPIO_156*/\
+- MUX_VAL(CP(MCBSP1_FSR),      (IDIS | PTU | EN  | M4)) /*GPIO_157*/\
+- MUX_VAL(CP(MCBSP1_DX),               (IDIS | PTD | DIS | M4)) /*GPIO_158*/\
+- MUX_VAL(CP(MCBSP1_DR),               (IDIS | PTD | DIS | M4)) /*GPIO_159*/\
++ MUX_VAL(CP(MCBSP1_CLKR),     (IEN | PTU | DIS | M1)) /*MCSPI4_CLK*/\
++ MUX_VAL(CP(MCBSP1_FSR),      (IEN | PTU | EN  | M4)) /*GPIO_157*/\
++ MUX_VAL(CP(MCBSP1_DX),               (IEN | PTU | DIS | M1)) /*MCSPI4_SIMO*/\
++ MUX_VAL(CP(MCBSP1_DR),               (IEN | PTU | EN | M1)) /*MCSPI4_SOMI*/\
+  MUX_VAL(CP(MCBSP_CLKS),      (IEN  | PTU | DIS | M0)) /*McBSP_CLKS*/\
+- MUX_VAL(CP(MCBSP1_FSX),      (IDIS | PTD | DIS | M4)) /*GPIO_161*/\
+- MUX_VAL(CP(MCBSP1_CLKX),     (IDIS | PTD | DIS | M4)) /*GPIO_162*/\
++ MUX_VAL(CP(MCBSP1_FSX),      (IEN | PTU | EN | M1)) /*MCSPI4_CS0*/\
++ MUX_VAL(CP(MCBSP1_CLKX),     (IEN | PTU | EN | M4)) /*GPIO_162*/\
+  /*Serial Interface*/\
+  MUX_VAL(CP(UART3_CTS_RCTX),  (IEN  | PTD | EN  | M0)) /*UART3_CTS_RCTX*/\
+  MUX_VAL(CP(UART3_RTS_SD),    (IDIS | PTD | DIS | M0)) /*UART3_RTS_SD */\
+-- 
+1.6.6.1
+
diff --git a/recipes-bsp/u-boot/u-boot/touchbook-config.patch b/recipes-bsp/u-boot/u-boot/touchbook-config.patch
new file mode 100644 (file)
index 0000000..9af49bf
--- /dev/null
@@ -0,0 +1,25 @@
+From eb13d25ad907314a5dd712ad7de59ca260968e61 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 8 Jan 2011 19:17:24 +0100
+Subject: [PATCH 10/10] touchbook-config.patch
+
+---
+ board/omap3/beagle/beagle.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/board/omap3/beagle/beagle.c b/board/omap3/beagle/beagle.c
+index d5ec63e..cc6e20d 100644
+--- a/board/omap3/beagle/beagle.c
++++ b/board/omap3/beagle/beagle.c
+@@ -186,7 +186,7 @@ int board_init(void)
+       gpmc_init(); /* in SRAM or SDRAM, finish GPMC */
+       /* board id for Linux */
+-      gd->bd->bi_arch_number = MACH_TYPE_OMAP3_BEAGLE;
++      gd->bd->bi_arch_number = 2393;
+       /* boot param addr */
+       gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
+-- 
+1.6.6.1
+
index f7423c951be62665e3be03d64b549699996e3775..313cf7406efeb314b76639d91cf31b0194a8d141 100644 (file)
@@ -73,6 +73,24 @@ SRC_URI_am37x-evm = "git://arago-project.org/git/projects/u-boot-omap3.git;proto
 SRCREV_am37x-evm = "c0a8fb217fdca7888d89f9a3dee74a4cec865620"
 PV_am37x-evm = "2009.11+${PR}+gitr${SRCREV}"
 
+SRC_URI_omap3-touchbook = "git://gitorious.org/u-boot-omap3/mainline.git;branch=omap3-dev;protocol=git \
+                 file://fw_env.config \
+                 file://dss2.patch \
+                 file://600mhz.patch \
+                 file://new-pinmux.patch \
+                 file://spi3.patch \
+                 file://spi4.patch \
+                 file://headphone.patch \
+                 file://power.patch \
+                 file://ai-logo.patch \
+                 file://mmcinit.patch \
+                 file://touchbook-config.patch \
+                 file://dont-inline-weak-symbols.patch \
+"
+SRCREV_omap3-touchbook = "d363f9cb0918a1b6b92e2e20d01543d0c4f53274"
+PV_omap3-touchbook = "2009.05+${PR}+gitr${SRCREV}"
+
+
 # hawkboard - master branch (hawk still .07beta)
 SRC_URI_hawkboard          = "git://arago-project.org/git/people/sekhar/u-boot-omapl1.git;protocol=git;branch=master"
 SRC_URI_hawkboard         += "file://dont-inline-weak-symbols.patch"
index ddb20907ec49a61572d28ca3ad2eefa88f858598..4ab0a34f226d6a1a4f5424969167074d6c7bf65a 100644 (file)
@@ -18,5 +18,6 @@ SRC_URI = "git://gitorious.org/x-loader/x-loader.git;branch=master;protocol=git
 S = "${WORKDIR}/git"
 
 XLOAD_MACHINE_beagleboard = "omap3530beagle_config"
+XLOAD_MACHINE_omap3-touchbook = "omap3530beagle_config"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"