]> git.proxmox.com Git - grub2.git/commitdiff
* include/grub/vga.h (grub_vga_gr_write): Add GRUB_MACHINE_PCI_IO_BASE.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Tue, 10 Aug 2010 11:43:43 +0000 (13:43 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Tue, 10 Aug 2010 11:43:43 +0000 (13:43 +0200)
(grub_vga_gr_read): Likewise.
(grub_vga_cr_write): Likewise.
(grub_vga_cr_read): Likewise.
(grub_vga_sr_write): Likewise.
(grub_vga_sr_read): Likewise.
(grub_vga_palette_read): Likewise.
(grub_vga_palette_write): Likewise.
* video/sm712.c (GRUB_SM712_REG_BASE): New definition.
(grub_sm712_sr_read): New function.
(grub_video_sm712_setup): Use grub_vga_sr_write and grub_sm712_sr_read.
* video/sm712_init.c (sm712_init): Substract GRUB_MACHINE_PCI_IO_BASE.

ChangeLog
include/grub/vga.h
video/sm712.c
video/sm712_init.c

index b0cbd54a0dc2363cf6504fdf393cc97e5ea5406a..0829eb83ec479cb2dbaceb9b80f2ded6282fe4f1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2010-08-10  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * include/grub/vga.h (grub_vga_gr_write): Add GRUB_MACHINE_PCI_IO_BASE.
+       (grub_vga_gr_read): Likewise.
+       (grub_vga_cr_write): Likewise.
+       (grub_vga_cr_read): Likewise.
+       (grub_vga_sr_write): Likewise.
+       (grub_vga_sr_read): Likewise.
+       (grub_vga_palette_read): Likewise.
+       (grub_vga_palette_write): Likewise.
+       * video/sm712.c (GRUB_SM712_REG_BASE): New definition.
+       (grub_sm712_sr_read): New function.
+       (grub_video_sm712_setup): Use grub_vga_sr_write and grub_sm712_sr_read.
+       * video/sm712_init.c (sm712_init): Substract GRUB_MACHINE_PCI_IO_BASE.
+
 2010-08-09  Robert Millan  <rmh@gnu.org>
 
        * kern/emu/misc.c (grub_make_system_path_relative_to_its_root): Filter
index d4a1523a7df22e4ceac71d99d4222dd33f4c3faf..0ca56e37fe39ecf917ff01e4f2353877b82bb2c3 100644 (file)
@@ -132,64 +132,63 @@ enum
 static inline void
 grub_vga_gr_write (grub_uint8_t val, grub_uint8_t addr)
 {
-  grub_outb (addr, GRUB_VGA_IO_GR_INDEX);
-  grub_outb (val, GRUB_VGA_IO_GR_DATA);
+  grub_outb (addr, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_GR_INDEX);
+  grub_outb (val, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_GR_DATA);
 }
 
 static inline grub_uint8_t
 grub_vga_gr_read (grub_uint8_t addr)
 {
-  grub_outb (addr, GRUB_VGA_IO_GR_INDEX);
-  return grub_inb (GRUB_VGA_IO_GR_DATA);
+  grub_outb (addr, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_GR_INDEX);
+  return grub_inb (GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_GR_DATA);
 }
 
 static inline void
 grub_vga_cr_write (grub_uint8_t val, grub_uint8_t addr)
 {
-  grub_outb (addr, GRUB_VGA_IO_CR_INDEX);
-  grub_outb (val, GRUB_VGA_IO_CR_DATA);
+  grub_outb (addr, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_CR_INDEX);
+  grub_outb (val, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_CR_DATA);
 }
 
 static inline grub_uint8_t
 grub_vga_cr_read (grub_uint8_t addr)
 {
-  grub_outb (addr, GRUB_VGA_IO_CR_INDEX);
-  return grub_inb (GRUB_VGA_IO_CR_DATA);
+  grub_outb (addr, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_CR_INDEX);
+  return grub_inb (GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_CR_DATA);
 }
 
 static inline void
 grub_vga_sr_write (grub_uint8_t val, grub_uint8_t addr)
 {
-  grub_outb (addr, GRUB_VGA_IO_SR_INDEX);
-  grub_outb (val, GRUB_VGA_IO_SR_DATA);
+  grub_outb (addr, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_SR_INDEX);
+  grub_outb (val, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_SR_DATA);
 }
 
 static inline grub_uint8_t
 grub_vga_sr_read (grub_uint8_t addr)
 {
-  grub_outb (addr, GRUB_VGA_IO_SR_INDEX);
-  return grub_inb (GRUB_VGA_IO_SR_DATA);
+  grub_outb (addr, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_SR_INDEX);
+  return grub_inb (GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_SR_DATA);
 }
 
 static inline void
 grub_vga_palette_read (grub_uint8_t addr, grub_uint8_t *r, grub_uint8_t *g,
                       grub_uint8_t *b)
 {
-  grub_outb (addr, GRUB_VGA_IO_PALLETTE_READ_INDEX);
-  *r = grub_inb (GRUB_VGA_IO_PALLETTE_DATA);
-  *g = grub_inb (GRUB_VGA_IO_PALLETTE_DATA);
-  *b = grub_inb (GRUB_VGA_IO_PALLETTE_DATA);
+  grub_outb (addr, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_PALLETTE_READ_INDEX);
+  *r = grub_inb (GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_PALLETTE_DATA);
+  *g = grub_inb (GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_PALLETTE_DATA);
+  *b = grub_inb (GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_PALLETTE_DATA);
 }
 
 static inline void
 grub_vga_palette_write (grub_uint8_t addr, grub_uint8_t r, grub_uint8_t g,
                        grub_uint8_t b)
 {
-  grub_outb (addr, GRUB_VGA_IO_PALLETTE_WRITE_INDEX);
-  grub_outb (r, GRUB_VGA_IO_PALLETTE_DATA);
-  grub_outb (g, GRUB_VGA_IO_PALLETTE_DATA);
-  grub_outb (b, GRUB_VGA_IO_PALLETTE_DATA);
+  grub_outb (addr, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_PALLETTE_WRITE_INDEX);
+  grub_outb (r, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_PALLETTE_DATA);
+  grub_outb (g, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_PALLETTE_DATA);
+  grub_outb (b, GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_PALLETTE_DATA);
 }
 
-
 #endif
index a58032c42e788b60278bdd6929672bc9346595c3..db7494a62200bb239b8877db4e339ff125c1510b 100644 (file)
 #include <grub/video.h>
 #include <grub/video_fb.h>
 #include <grub/pci.h>
+#include <grub/vga.h>
 
 #include "sm712_init.c"
 
 #define GRUB_SM712_TOTAL_MEMORY_SPACE  0x700400
+#define GRUB_SM712_REG_BASE 0x700000
 
 static struct
 {
@@ -61,6 +63,15 @@ grub_video_sm712_video_fini (void)
   return grub_video_fb_fini ();
 }
 
+static inline grub_uint8_t
+grub_sm712_sr_read (grub_uint8_t addr)
+{
+  *(volatile grub_uint8_t *) (framebuffer.ptr + GRUB_SM712_REG_BASE
+                             + GRUB_VGA_IO_SR_INDEX) = addr;
+  return *(volatile grub_uint8_t *) (framebuffer.ptr + GRUB_SM712_REG_BASE
+                                    + GRUB_VGA_IO_SR_DATA);
+}
+
 static grub_err_t
 grub_video_sm712_setup (unsigned int width, unsigned int height,
                        unsigned int mode_type, unsigned int mode_mask __attribute__ ((unused)))
@@ -148,8 +159,7 @@ grub_video_sm712_setup (unsigned int width, unsigned int height,
   framebuffer.mapped = 1;
 
   /* Initialise SM712.  */
-  grub_outb (0x18, GRUB_MACHINE_PCI_IO_BASE + 0x3c4);
-  grub_outb (0x11, GRUB_MACHINE_PCI_IO_BASE + 0x3c5);
+  grub_vga_sr_write (0x11, 0x18);
 
   /* Prevent garbage from appearing on the screen.  */
   grub_memset (framebuffer.ptr, 0, 
@@ -159,26 +169,27 @@ grub_video_sm712_setup (unsigned int width, unsigned int height,
     switch (sm712_init[i].directive)
       {
       case 1:
-       *(volatile grub_uint8_t *) ((char *) framebuffer.ptr 
+       *(volatile grub_uint8_t *) ((char *) framebuffer.ptr
+                                   + GRUB_SM712_REG_BASE
                                    + sm712_init[i].addr) = sm712_init[i].val;
        break;
       case -1:
        {
          grub_uint8_t val = *(volatile grub_uint8_t *) 
-           ((char *) framebuffer.ptr + sm712_init[i].addr);
+           ((char *) framebuffer.ptr + GRUB_SM712_REG_BASE
+            + sm712_init[i].addr);
          (void) val;
        }
        break;
-      case 2:
-       *(volatile grub_uint16_t *) ((char *) framebuffer.ptr 
-                                    + sm712_init[i].addr) = sm712_init[i].val;
-       break;
-      case 4:
-       *(volatile grub_uint32_t *) ((char *) framebuffer.ptr 
-                                    + sm712_init[i].addr) = sm712_init[i].val;
-       break;
       }
 
+  *(volatile grub_uint32_t *) ((char *) framebuffer.ptr + 0x40c00c) = 0;
+  *(volatile grub_uint32_t *) ((char *) framebuffer.ptr + 0x40c040) = 0;
+  *(volatile grub_uint32_t *) ((char *) framebuffer.ptr + 0x40c000) = 0x20000;
+  *(volatile grub_uint32_t *) ((char *) framebuffer.ptr + 0x40c010) = 0x1020100;
+
+  (void) grub_sm712_sr_read (0x16);
+
   err = grub_video_fb_create_render_target_from_pointer (&framebuffer.render_target, &framebuffer.mode_info, framebuffer.ptr);
 
   if (err)
index 02c64c4533225734d491e486d31d9470f8368188..58dbbbbf963738611c930e5b92382c5605cb5dcb 100644 (file)
@@ -6,541 +6,535 @@ static struct
   grub_uint32_t val;
 } sm712_init[] =
 {
-  {1, 0x7003c4, 0x21},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x62},
-  {1, 0x7003c5, 0x7a},
-  {1, 0x7003c4, 0x6a},
-  {1, 0x7003c5, 0x16},
-  {1, 0x7003c4, 0x6b},
-  {1, 0x7003c5, 0x2},
-  {1, 0x7003c6, 0x0},
-  {1, 0x7003c4, 0x0},
-  {1, 0x7003c5, 0x1},
-  {1, 0x7003c2, 0xeb},
-  {1, 0x7003c4, 0x0},
-  {1, 0x7003c5, 0x3},
-  {1, 0x7003c4, 0x1},
-  {1, 0x7003c5, 0x1},
-  {1, 0x7003c4, 0x2},
-  {1, 0x7003c5, 0xf},
-  {1, 0x7003c4, 0x3},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x4},
-  {1, 0x7003c5, 0xe},
-  {1, 0x7003c4, 0x10},
-  {1, 0x7003c5, 0xc8},
-  {1, 0x7003c4, 0x11},
-  {1, 0x7003c5, 0x40},
-  {1, 0x7003c4, 0x12},
-  {1, 0x7003c5, 0x14},
-  {1, 0x7003c4, 0x13},
-  {1, 0x7003c5, 0x60},
-  {1, 0x7003c4, 0x14},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x15},
-  {1, 0x7003c5, 0xa},
-  {1, 0x7003c4, 0x16},
-  {1, 0x7003c5, 0x92},
-  {1, 0x7003c4, 0x17},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x18},
-  {1, 0x7003c5, 0x51},
-  {1, 0x7003c4, 0x19},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x1a},
-  {1, 0x7003c5, 0x1},
-  {1, 0x7003c4, 0x1b},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x1c},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x1d},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x1e},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x1f},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x20},
-  {1, 0x7003c5, 0xc4},
-  {1, 0x7003c4, 0x21},
-  {1, 0x7003c5, 0x30},
-  {1, 0x7003c4, 0x22},
-  {1, 0x7003c5, 0x2},
-  {1, 0x7003c4, 0x23},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x24},
-  {1, 0x7003c5, 0x1},
-  {1, 0x7003c4, 0x30},
-  {1, 0x7003c5, 0x28},
-  {1, 0x7003c4, 0x31},
-  {1, 0x7003c5, 0x3},
-  {1, 0x7003c4, 0x32},
-  {1, 0x7003c5, 0x24},
-  {1, 0x7003c4, 0x33},
-  {1, 0x7003c5, 0x9},
-  {1, 0x7003c4, 0x34},
-  {1, 0x7003c5, 0xc0},
-  {1, 0x7003c4, 0x35},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x36},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x37},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x38},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x39},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x3a},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x3b},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x3c},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x3d},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x3e},
-  {1, 0x7003c5, 0x3},
-  {1, 0x7003c4, 0x3f},
-  {1, 0x7003c5, 0xff},
-  {1, 0x7003c4, 0x40},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x41},
-  {1, 0x7003c5, 0xfc},
-  {1, 0x7003c4, 0x42},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x43},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x44},
-  {1, 0x7003c5, 0x20},
-  {1, 0x7003c4, 0x45},
-  {1, 0x7003c5, 0x18},
-  {1, 0x7003c4, 0x46},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x47},
-  {1, 0x7003c5, 0xfc},
-  {1, 0x7003c4, 0x48},
-  {1, 0x7003c5, 0x20},
-  {1, 0x7003c4, 0x49},
-  {1, 0x7003c5, 0xc},
-  {1, 0x7003c4, 0x4a},
-  {1, 0x7003c5, 0x44},
-  {1, 0x7003c4, 0x4b},
-  {1, 0x7003c5, 0x20},
-  {1, 0x7003c4, 0x4c},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x4d},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x4e},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x4f},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x50},
-  {1, 0x7003c5, 0x6},
-  {1, 0x7003c4, 0x51},
-  {1, 0x7003c5, 0x68},
-  {1, 0x7003c4, 0x52},
-  {1, 0x7003c5, 0xa7},
-  {1, 0x7003c4, 0x53},
-  {1, 0x7003c5, 0x7f},
-  {1, 0x7003c4, 0x54},
-  {1, 0x7003c5, 0x83},
-  {1, 0x7003c4, 0x55},
-  {1, 0x7003c5, 0x24},
-  {1, 0x7003c4, 0x56},
-  {1, 0x7003c5, 0xff},
-  {1, 0x7003c4, 0x57},
-  {1, 0x7003c5, 0x3},
-  {1, 0x7003c4, 0x58},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x59},
-  {1, 0x7003c5, 0x60},
-  {1, 0x7003c4, 0x5a},
-  {1, 0x7003c5, 0x59},
-  {1, 0x7003c4, 0x5b},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x5c},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x5d},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x5e},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x5f},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x60},
-  {1, 0x7003c5, 0x1},
-  {1, 0x7003c4, 0x61},
-  {1, 0x7003c5, 0x80},
-  {1, 0x7003c4, 0x63},
-  {1, 0x7003c5, 0x1a},
-  {1, 0x7003c4, 0x64},
-  {1, 0x7003c5, 0x1a},
-  {1, 0x7003c4, 0x65},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x66},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x67},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x68},
-  {1, 0x7003c5, 0x50},
-  {1, 0x7003c4, 0x69},
-  {1, 0x7003c5, 0x3},
-  {1, 0x7003c4, 0x6c},
-  {1, 0x7003c5, 0x52},
-  {1, 0x7003c4, 0x6d},
-  {1, 0x7003c5, 0x89},
-  {1, 0x7003c4, 0x6e},
-  {1, 0x7003c5, 0x9},
-  {1, 0x7003c4, 0x6f},
-  {1, 0x7003c5, 0x2},
-  {1, 0x7003c4, 0x70},
-  {1, 0x7003c5, 0x4},
-  {1, 0x7003c4, 0x71},
-  {1, 0x7003c5, 0x45},
-  {1, 0x7003c4, 0x72},
-  {1, 0x7003c5, 0x30},
-  {1, 0x7003c4, 0x73},
-  {1, 0x7003c5, 0x30},
-  {1, 0x7003c4, 0x74},
-  {1, 0x7003c5, 0x40},
-  {1, 0x7003c4, 0x75},
-  {1, 0x7003c5, 0x20},
-  {1, 0x7003c4, 0x80},
-  {1, 0x7003c5, 0xff},
-  {1, 0x7003c4, 0x81},
-  {1, 0x7003c5, 0x7},
-  {1, 0x7003c4, 0x82},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x83},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x84},
-  {1, 0x7003c5, 0x8},
-  {1, 0x7003c4, 0x85},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x86},
-  {1, 0x7003c5, 0x42},
-  {1, 0x7003c4, 0x87},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x88},
-  {1, 0x7003c5, 0x59},
-  {1, 0x7003c4, 0x89},
-  {1, 0x7003c5, 0x2},
-  {1, 0x7003c4, 0x8a},
-  {1, 0x7003c5, 0x44},
-  {1, 0x7003c4, 0x8b},
-  {1, 0x7003c5, 0x2},
-  {1, 0x7003c4, 0x8c},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x8d},
-  {1, 0x7003c5, 0xff},
-  {1, 0x7003c4, 0x8e},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x8f},
-  {1, 0x7003c5, 0x3a},
-  {1, 0x7003c4, 0x90},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x91},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x92},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0x93},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0xa0},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0xa1},
-  {1, 0x7003c5, 0x10},
-  {1, 0x7003c4, 0xa2},
-  {1, 0x7003c5, 0x8},
-  {1, 0x7003c4, 0xa3},
-  {1, 0x7003c5, 0x0},
-  {1, 0x7003c4, 0xa4},
-  {1, 0x7003c5, 0x2},
-  {1, 0x7003c4, 0xa5},
-  {1, 0x7003c5, 0xed},
-  {1, 0x7003c4, 0xa6},
-  {1, 0x7003c5, 0xed},
-  {1, 0x7003c4, 0xa7},
-  {1, 0x7003c5, 0xed},
-  {1, 0x7003c4, 0xa8},
-  {1, 0x7003c5, 0x7b},
-  {1, 0x7003c4, 0xa9},
-  {1, 0x7003c5, 0xfb},
-  {1, 0x7003c4, 0xaa},
-  {1, 0x7003c5, 0xff},
-  {1, 0x7003c4, 0xab},
-  {1, 0x7003c5, 0xff},
-  {1, 0x7003c4, 0xac},
-  {1, 0x7003c5, 0x97},
-  {1, 0x7003c4, 0xad},
-  {1, 0x7003c5, 0xef},
-  {1, 0x7003c4, 0xae},
-  {1, 0x7003c5, 0xbf},
-  {1, 0x7003c4, 0xaf},
-  {1, 0x7003c5, 0xdf},
-  {1, 0x7003ce, 0x0},
-  {1, 0x7003cf, 0x0},
-  {1, 0x7003ce, 0x1},
-  {1, 0x7003cf, 0x0},
-  {1, 0x7003ce, 0x2},
-  {1, 0x7003cf, 0x0},
-  {1, 0x7003ce, 0x3},
-  {1, 0x7003cf, 0x0},
-  {1, 0x7003ce, 0x4},
-  {1, 0x7003cf, 0x0},
-  {1, 0x7003ce, 0x5},
-  {1, 0x7003cf, 0x40},
-  {1, 0x7003ce, 0x6},
-  {1, 0x7003cf, 0x5},
-  {1, 0x7003ce, 0x7},
-  {1, 0x7003cf, 0xf},
-  {1, 0x7003ce, 0x8},
-  {1, 0x7003cf, 0xff},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x0},
-  {-1, 0x7003c1, 0x3e},
-  {1, 0x7003c0, 0x0},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x1},
-  {-1, 0x7003c1, 0x3b},
-  {1, 0x7003c0, 0x1},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x2},
-  {-1, 0x7003c1, 0x3f},
-  {1, 0x7003c0, 0x2},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x3},
-  {-1, 0x7003c1, 0x3f},
-  {1, 0x7003c0, 0x3},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x4},
-  {-1, 0x7003c1, 0x3b},
-  {1, 0x7003c0, 0x4},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x5},
-  {-1, 0x7003c1, 0x2f},
-  {1, 0x7003c0, 0x5},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x6},
-  {-1, 0x7003c1, 0x3f},
-  {1, 0x7003c0, 0x6},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x7},
-  {-1, 0x7003c1, 0x3f},
-  {1, 0x7003c0, 0x7},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x8},
-  {-1, 0x7003c1, 0x3f},
-  {1, 0x7003c0, 0x8},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x9},
-  {-1, 0x7003c1, 0x3d},
-  {1, 0x7003c0, 0x9},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0xa},
-  {-1, 0x7003c1, 0x1f},
-  {1, 0x7003c0, 0xa},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0xb},
-  {-1, 0x7003c1, 0x1f},
-  {1, 0x7003c0, 0xb},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0xc},
-  {-1, 0x7003c1, 0x3f},
-  {1, 0x7003c0, 0xc},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0xd},
-  {-1, 0x7003c1, 0x3f},
-  {1, 0x7003c0, 0xd},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0xe},
-  {-1, 0x7003c1, 0x3f},
-  {1, 0x7003c0, 0xe},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0xf},
-  {-1, 0x7003c1, 0x2e},
-  {1, 0x7003c0, 0xf},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x10},
-  {-1, 0x7003c1, 0x0},
-  {1, 0x7003c0, 0x41},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x11},
-  {-1, 0x7003c1, 0x0},
-  {1, 0x7003c0, 0x0},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x12},
-  {-1, 0x7003c1, 0x0},
-  {1, 0x7003c0, 0xf},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x13},
-  {-1, 0x7003c1, 0x0},
-  {1, 0x7003c0, 0x0},
-  {-1, 0x7003da, 0x5},
-  {1, 0x7003c0, 0x14},
-  {-1, 0x7003c1, 0x0},
-  {1, 0x7003c0, 0x0},
-  {1, 0x7003d4, 0x0},
-  {1, 0x7003d5, 0xa3},
-  {1, 0x7003d4, 0x1},
-  {1, 0x7003d5, 0x7f},
-  {1, 0x7003d4, 0x2},
-  {1, 0x7003d5, 0x7f},
-  {1, 0x7003d4, 0x3},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x4},
-  {1, 0x7003d5, 0x85},
-  {1, 0x7003d4, 0x5},
-  {1, 0x7003d5, 0x16},
-  {1, 0x7003d4, 0x6},
-  {1, 0x7003d5, 0x24},
-  {1, 0x7003d4, 0x7},
-  {1, 0x7003d5, 0xf5},
-  {1, 0x7003d4, 0x8},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x9},
-  {1, 0x7003d5, 0x60},
-  {1, 0x7003d4, 0xa},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0xb},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0xc},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0xd},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0xe},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0xf},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x10},
-  {1, 0x7003d5, 0x3},
-  {1, 0x7003d4, 0x11},
-  {1, 0x7003d5, 0x9},
-  {1, 0x7003d4, 0x12},
-  {1, 0x7003d5, 0xff},
-  {1, 0x7003d4, 0x13},
-  {1, 0x7003d5, 0x80},
-  {1, 0x7003d4, 0x14},
-  {1, 0x7003d5, 0x40},
-  {1, 0x7003d4, 0x15},
-  {1, 0x7003d5, 0xff},
-  {1, 0x7003d4, 0x16},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x17},
-  {1, 0x7003d5, 0xe3},
-  {1, 0x7003d4, 0x18},
-  {1, 0x7003d5, 0xff},
-  {1, 0x7003d4, 0x30},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x31},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x32},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x33},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x34},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x35},
-  {1, 0x7003d5, 0x80},
-  {1, 0x7003d4, 0x36},
-  {1, 0x7003d5, 0x2},
-  {1, 0x7003d4, 0x37},
-  {1, 0x7003d5, 0x20},
-  {1, 0x7003d4, 0x38},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x39},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x3a},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x3b},
-  {1, 0x7003d5, 0x40},
-  {1, 0x7003d4, 0x3c},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x3d},
-  {1, 0x7003d5, 0xff},
-  {1, 0x7003d4, 0x3e},
-  {1, 0x7003d5, 0x46},
-  {1, 0x7003d4, 0x3f},
-  {1, 0x7003d5, 0x91},
-  {1, 0x7003d4, 0x40},
-  {1, 0x7003d5, 0xa3},
-  {1, 0x7003d4, 0x41},
-  {1, 0x7003d5, 0x7f},
-  {1, 0x7003d4, 0x42},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x43},
-  {1, 0x7003d5, 0x86},
-  {1, 0x7003d4, 0x44},
-  {1, 0x7003d5, 0x15},
-  {1, 0x7003d4, 0x45},
-  {1, 0x7003d5, 0x24},
-  {1, 0x7003d4, 0x46},
-  {1, 0x7003d5, 0xff},
-  {1, 0x7003d4, 0x47},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x48},
-  {1, 0x7003d5, 0x1},
-  {1, 0x7003d4, 0x49},
-  {1, 0x7003d5, 0x7},
-  {1, 0x7003d4, 0x4a},
-  {1, 0x7003d5, 0xe5},
-  {1, 0x7003d4, 0x4b},
-  {1, 0x7003d5, 0x20},
-  {1, 0x7003d4, 0x4c},
-  {1, 0x7003d5, 0x7f},
-  {1, 0x7003d4, 0x4d},
-  {1, 0x7003d5, 0x57},
-  {1, 0x7003d4, 0x90},
-  {1, 0x7003d5, 0x55},
-  {1, 0x7003d4, 0x91},
-  {1, 0x7003d5, 0xd5},
-  {1, 0x7003d4, 0x92},
-  {1, 0x7003d5, 0x5d},
-  {1, 0x7003d4, 0x93},
-  {1, 0x7003d5, 0xdd},
-  {1, 0x7003d4, 0x94},
-  {1, 0x7003d5, 0x86},
-  {1, 0x7003d4, 0x95},
-  {1, 0x7003d5, 0x17},
-  {1, 0x7003d4, 0x96},
-  {1, 0x7003d5, 0x8e},
-  {1, 0x7003d4, 0x97},
-  {1, 0x7003d5, 0xaa},
-  {1, 0x7003d4, 0x98},
-  {1, 0x7003d5, 0x8a},
-  {1, 0x7003d4, 0x99},
-  {1, 0x7003d5, 0xa3},
-  {1, 0x7003d4, 0x9a},
-  {1, 0x7003d5, 0xde},
-  {1, 0x7003d4, 0x9b},
-  {1, 0x7003d5, 0xab},
-  {1, 0x7003d4, 0x9c},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x9d},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x9e},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0x9f},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0xa0},
-  {1, 0x7003d5, 0x2},
-  {1, 0x7003d4, 0xa1},
-  {1, 0x7003d5, 0x2},
-  {1, 0x7003d4, 0xa2},
-  {1, 0x7003d5, 0x2},
-  {1, 0x7003d4, 0xa3},
-  {1, 0x7003d5, 0x15},
-  {1, 0x7003d4, 0xa4},
-  {1, 0x7003d5, 0x2},
-  {1, 0x7003d4, 0xa5},
-  {1, 0x7003d5, 0x6},
-  {1, 0x7003d4, 0xa6},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003d4, 0xa7},
-  {1, 0x7003d5, 0x0},
-  {1, 0x7003c2, 0x67},
-  {4, 0x40c00c, 0x0},
-  {4, 0x40c040, 0x0},
-  {4, 0x40c000, 0x20000},
-  {4, 0x40c010, 0x1020100},
-  {1, 0x7003c4, 0x16},
-  {-1, 0x7003c5, 0x17}
+  {1, 0x3c4, 0x21},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x62},
+  {1, 0x3c5, 0x7a},
+  {1, 0x3c4, 0x6a},
+  {1, 0x3c5, 0x16},
+  {1, 0x3c4, 0x6b},
+  {1, 0x3c5, 0x2},
+  {1, 0x3c6, 0x0},
+  {1, 0x3c4, 0x0},
+  {1, 0x3c5, 0x1},
+  {1, 0x3c2, 0xeb},
+  {1, 0x3c4, 0x0},
+  {1, 0x3c5, 0x3},
+  {1, 0x3c4, 0x1},
+  {1, 0x3c5, 0x1},
+  {1, 0x3c4, 0x2},
+  {1, 0x3c5, 0xf},
+  {1, 0x3c4, 0x3},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x4},
+  {1, 0x3c5, 0xe},
+  {1, 0x3c4, 0x10},
+  {1, 0x3c5, 0xc8},
+  {1, 0x3c4, 0x11},
+  {1, 0x3c5, 0x40},
+  {1, 0x3c4, 0x12},
+  {1, 0x3c5, 0x14},
+  {1, 0x3c4, 0x13},
+  {1, 0x3c5, 0x60},
+  {1, 0x3c4, 0x14},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x15},
+  {1, 0x3c5, 0xa},
+  {1, 0x3c4, 0x16},
+  {1, 0x3c5, 0x92},
+  {1, 0x3c4, 0x17},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x18},
+  {1, 0x3c5, 0x51},
+  {1, 0x3c4, 0x19},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x1a},
+  {1, 0x3c5, 0x1},
+  {1, 0x3c4, 0x1b},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x1c},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x1d},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x1e},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x1f},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x20},
+  {1, 0x3c5, 0xc4},
+  {1, 0x3c4, 0x21},
+  {1, 0x3c5, 0x30},
+  {1, 0x3c4, 0x22},
+  {1, 0x3c5, 0x2},
+  {1, 0x3c4, 0x23},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x24},
+  {1, 0x3c5, 0x1},
+  {1, 0x3c4, 0x30},
+  {1, 0x3c5, 0x28},
+  {1, 0x3c4, 0x31},
+  {1, 0x3c5, 0x3},
+  {1, 0x3c4, 0x32},
+  {1, 0x3c5, 0x24},
+  {1, 0x3c4, 0x33},
+  {1, 0x3c5, 0x9},
+  {1, 0x3c4, 0x34},
+  {1, 0x3c5, 0xc0},
+  {1, 0x3c4, 0x35},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x36},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x37},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x38},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x39},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x3a},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x3b},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x3c},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x3d},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x3e},
+  {1, 0x3c5, 0x3},
+  {1, 0x3c4, 0x3f},
+  {1, 0x3c5, 0xff},
+  {1, 0x3c4, 0x40},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x41},
+  {1, 0x3c5, 0xfc},
+  {1, 0x3c4, 0x42},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x43},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x44},
+  {1, 0x3c5, 0x20},
+  {1, 0x3c4, 0x45},
+  {1, 0x3c5, 0x18},
+  {1, 0x3c4, 0x46},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x47},
+  {1, 0x3c5, 0xfc},
+  {1, 0x3c4, 0x48},
+  {1, 0x3c5, 0x20},
+  {1, 0x3c4, 0x49},
+  {1, 0x3c5, 0xc},
+  {1, 0x3c4, 0x4a},
+  {1, 0x3c5, 0x44},
+  {1, 0x3c4, 0x4b},
+  {1, 0x3c5, 0x20},
+  {1, 0x3c4, 0x4c},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x4d},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x4e},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x4f},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x50},
+  {1, 0x3c5, 0x6},
+  {1, 0x3c4, 0x51},
+  {1, 0x3c5, 0x68},
+  {1, 0x3c4, 0x52},
+  {1, 0x3c5, 0xa7},
+  {1, 0x3c4, 0x53},
+  {1, 0x3c5, 0x7f},
+  {1, 0x3c4, 0x54},
+  {1, 0x3c5, 0x83},
+  {1, 0x3c4, 0x55},
+  {1, 0x3c5, 0x24},
+  {1, 0x3c4, 0x56},
+  {1, 0x3c5, 0xff},
+  {1, 0x3c4, 0x57},
+  {1, 0x3c5, 0x3},
+  {1, 0x3c4, 0x58},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x59},
+  {1, 0x3c5, 0x60},
+  {1, 0x3c4, 0x5a},
+  {1, 0x3c5, 0x59},
+  {1, 0x3c4, 0x5b},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x5c},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x5d},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x5e},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x5f},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x60},
+  {1, 0x3c5, 0x1},
+  {1, 0x3c4, 0x61},
+  {1, 0x3c5, 0x80},
+  {1, 0x3c4, 0x63},
+  {1, 0x3c5, 0x1a},
+  {1, 0x3c4, 0x64},
+  {1, 0x3c5, 0x1a},
+  {1, 0x3c4, 0x65},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x66},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x67},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x68},
+  {1, 0x3c5, 0x50},
+  {1, 0x3c4, 0x69},
+  {1, 0x3c5, 0x3},
+  {1, 0x3c4, 0x6c},
+  {1, 0x3c5, 0x52},
+  {1, 0x3c4, 0x6d},
+  {1, 0x3c5, 0x89},
+  {1, 0x3c4, 0x6e},
+  {1, 0x3c5, 0x9},
+  {1, 0x3c4, 0x6f},
+  {1, 0x3c5, 0x2},
+  {1, 0x3c4, 0x70},
+  {1, 0x3c5, 0x4},
+  {1, 0x3c4, 0x71},
+  {1, 0x3c5, 0x45},
+  {1, 0x3c4, 0x72},
+  {1, 0x3c5, 0x30},
+  {1, 0x3c4, 0x73},
+  {1, 0x3c5, 0x30},
+  {1, 0x3c4, 0x74},
+  {1, 0x3c5, 0x40},
+  {1, 0x3c4, 0x75},
+  {1, 0x3c5, 0x20},
+  {1, 0x3c4, 0x80},
+  {1, 0x3c5, 0xff},
+  {1, 0x3c4, 0x81},
+  {1, 0x3c5, 0x7},
+  {1, 0x3c4, 0x82},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x83},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x84},
+  {1, 0x3c5, 0x8},
+  {1, 0x3c4, 0x85},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x86},
+  {1, 0x3c5, 0x42},
+  {1, 0x3c4, 0x87},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x88},
+  {1, 0x3c5, 0x59},
+  {1, 0x3c4, 0x89},
+  {1, 0x3c5, 0x2},
+  {1, 0x3c4, 0x8a},
+  {1, 0x3c5, 0x44},
+  {1, 0x3c4, 0x8b},
+  {1, 0x3c5, 0x2},
+  {1, 0x3c4, 0x8c},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x8d},
+  {1, 0x3c5, 0xff},
+  {1, 0x3c4, 0x8e},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x8f},
+  {1, 0x3c5, 0x3a},
+  {1, 0x3c4, 0x90},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x91},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x92},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0x93},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0xa0},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0xa1},
+  {1, 0x3c5, 0x10},
+  {1, 0x3c4, 0xa2},
+  {1, 0x3c5, 0x8},
+  {1, 0x3c4, 0xa3},
+  {1, 0x3c5, 0x0},
+  {1, 0x3c4, 0xa4},
+  {1, 0x3c5, 0x2},
+  {1, 0x3c4, 0xa5},
+  {1, 0x3c5, 0xed},
+  {1, 0x3c4, 0xa6},
+  {1, 0x3c5, 0xed},
+  {1, 0x3c4, 0xa7},
+  {1, 0x3c5, 0xed},
+  {1, 0x3c4, 0xa8},
+  {1, 0x3c5, 0x7b},
+  {1, 0x3c4, 0xa9},
+  {1, 0x3c5, 0xfb},
+  {1, 0x3c4, 0xaa},
+  {1, 0x3c5, 0xff},
+  {1, 0x3c4, 0xab},
+  {1, 0x3c5, 0xff},
+  {1, 0x3c4, 0xac},
+  {1, 0x3c5, 0x97},
+  {1, 0x3c4, 0xad},
+  {1, 0x3c5, 0xef},
+  {1, 0x3c4, 0xae},
+  {1, 0x3c5, 0xbf},
+  {1, 0x3c4, 0xaf},
+  {1, 0x3c5, 0xdf},
+  {1, 0x3ce, 0x0},
+  {1, 0x3cf, 0x0},
+  {1, 0x3ce, 0x1},
+  {1, 0x3cf, 0x0},
+  {1, 0x3ce, 0x2},
+  {1, 0x3cf, 0x0},
+  {1, 0x3ce, 0x3},
+  {1, 0x3cf, 0x0},
+  {1, 0x3ce, 0x4},
+  {1, 0x3cf, 0x0},
+  {1, 0x3ce, 0x5},
+  {1, 0x3cf, 0x40},
+  {1, 0x3ce, 0x6},
+  {1, 0x3cf, 0x5},
+  {1, 0x3ce, 0x7},
+  {1, 0x3cf, 0xf},
+  {1, 0x3ce, 0x8},
+  {1, 0x3cf, 0xff},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x0},
+  {-1, 0x3c1, 0x3e},
+  {1, 0x3c0, 0x0},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x1},
+  {-1, 0x3c1, 0x3b},
+  {1, 0x3c0, 0x1},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x2},
+  {-1, 0x3c1, 0x3f},
+  {1, 0x3c0, 0x2},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x3},
+  {-1, 0x3c1, 0x3f},
+  {1, 0x3c0, 0x3},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x4},
+  {-1, 0x3c1, 0x3b},
+  {1, 0x3c0, 0x4},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x5},
+  {-1, 0x3c1, 0x2f},
+  {1, 0x3c0, 0x5},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x6},
+  {-1, 0x3c1, 0x3f},
+  {1, 0x3c0, 0x6},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x7},
+  {-1, 0x3c1, 0x3f},
+  {1, 0x3c0, 0x7},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x8},
+  {-1, 0x3c1, 0x3f},
+  {1, 0x3c0, 0x8},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x9},
+  {-1, 0x3c1, 0x3d},
+  {1, 0x3c0, 0x9},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0xa},
+  {-1, 0x3c1, 0x1f},
+  {1, 0x3c0, 0xa},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0xb},
+  {-1, 0x3c1, 0x1f},
+  {1, 0x3c0, 0xb},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0xc},
+  {-1, 0x3c1, 0x3f},
+  {1, 0x3c0, 0xc},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0xd},
+  {-1, 0x3c1, 0x3f},
+  {1, 0x3c0, 0xd},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0xe},
+  {-1, 0x3c1, 0x3f},
+  {1, 0x3c0, 0xe},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0xf},
+  {-1, 0x3c1, 0x2e},
+  {1, 0x3c0, 0xf},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x10},
+  {-1, 0x3c1, 0x0},
+  {1, 0x3c0, 0x41},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x11},
+  {-1, 0x3c1, 0x0},
+  {1, 0x3c0, 0x0},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x12},
+  {-1, 0x3c1, 0x0},
+  {1, 0x3c0, 0xf},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x13},
+  {-1, 0x3c1, 0x0},
+  {1, 0x3c0, 0x0},
+  {-1, 0x3da, 0x5},
+  {1, 0x3c0, 0x14},
+  {-1, 0x3c1, 0x0},
+  {1, 0x3c0, 0x0},
+  {1, 0x3d4, 0x0},
+  {1, 0x3d5, 0xa3},
+  {1, 0x3d4, 0x1},
+  {1, 0x3d5, 0x7f},
+  {1, 0x3d4, 0x2},
+  {1, 0x3d5, 0x7f},
+  {1, 0x3d4, 0x3},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x4},
+  {1, 0x3d5, 0x85},
+  {1, 0x3d4, 0x5},
+  {1, 0x3d5, 0x16},
+  {1, 0x3d4, 0x6},
+  {1, 0x3d5, 0x24},
+  {1, 0x3d4, 0x7},
+  {1, 0x3d5, 0xf5},
+  {1, 0x3d4, 0x8},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x9},
+  {1, 0x3d5, 0x60},
+  {1, 0x3d4, 0xa},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0xb},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0xc},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0xd},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0xe},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0xf},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x10},
+  {1, 0x3d5, 0x3},
+  {1, 0x3d4, 0x11},
+  {1, 0x3d5, 0x9},
+  {1, 0x3d4, 0x12},
+  {1, 0x3d5, 0xff},
+  {1, 0x3d4, 0x13},
+  {1, 0x3d5, 0x80},
+  {1, 0x3d4, 0x14},
+  {1, 0x3d5, 0x40},
+  {1, 0x3d4, 0x15},
+  {1, 0x3d5, 0xff},
+  {1, 0x3d4, 0x16},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x17},
+  {1, 0x3d5, 0xe3},
+  {1, 0x3d4, 0x18},
+  {1, 0x3d5, 0xff},
+  {1, 0x3d4, 0x30},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x31},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x32},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x33},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x34},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x35},
+  {1, 0x3d5, 0x80},
+  {1, 0x3d4, 0x36},
+  {1, 0x3d5, 0x2},
+  {1, 0x3d4, 0x37},
+  {1, 0x3d5, 0x20},
+  {1, 0x3d4, 0x38},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x39},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x3a},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x3b},
+  {1, 0x3d5, 0x40},
+  {1, 0x3d4, 0x3c},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x3d},
+  {1, 0x3d5, 0xff},
+  {1, 0x3d4, 0x3e},
+  {1, 0x3d5, 0x46},
+  {1, 0x3d4, 0x3f},
+  {1, 0x3d5, 0x91},
+  {1, 0x3d4, 0x40},
+  {1, 0x3d5, 0xa3},
+  {1, 0x3d4, 0x41},
+  {1, 0x3d5, 0x7f},
+  {1, 0x3d4, 0x42},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x43},
+  {1, 0x3d5, 0x86},
+  {1, 0x3d4, 0x44},
+  {1, 0x3d5, 0x15},
+  {1, 0x3d4, 0x45},
+  {1, 0x3d5, 0x24},
+  {1, 0x3d4, 0x46},
+  {1, 0x3d5, 0xff},
+  {1, 0x3d4, 0x47},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x48},
+  {1, 0x3d5, 0x1},
+  {1, 0x3d4, 0x49},
+  {1, 0x3d5, 0x7},
+  {1, 0x3d4, 0x4a},
+  {1, 0x3d5, 0xe5},
+  {1, 0x3d4, 0x4b},
+  {1, 0x3d5, 0x20},
+  {1, 0x3d4, 0x4c},
+  {1, 0x3d5, 0x7f},
+  {1, 0x3d4, 0x4d},
+  {1, 0x3d5, 0x57},
+  {1, 0x3d4, 0x90},
+  {1, 0x3d5, 0x55},
+  {1, 0x3d4, 0x91},
+  {1, 0x3d5, 0xd5},
+  {1, 0x3d4, 0x92},
+  {1, 0x3d5, 0x5d},
+  {1, 0x3d4, 0x93},
+  {1, 0x3d5, 0xdd},
+  {1, 0x3d4, 0x94},
+  {1, 0x3d5, 0x86},
+  {1, 0x3d4, 0x95},
+  {1, 0x3d5, 0x17},
+  {1, 0x3d4, 0x96},
+  {1, 0x3d5, 0x8e},
+  {1, 0x3d4, 0x97},
+  {1, 0x3d5, 0xaa},
+  {1, 0x3d4, 0x98},
+  {1, 0x3d5, 0x8a},
+  {1, 0x3d4, 0x99},
+  {1, 0x3d5, 0xa3},
+  {1, 0x3d4, 0x9a},
+  {1, 0x3d5, 0xde},
+  {1, 0x3d4, 0x9b},
+  {1, 0x3d5, 0xab},
+  {1, 0x3d4, 0x9c},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x9d},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x9e},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0x9f},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0xa0},
+  {1, 0x3d5, 0x2},
+  {1, 0x3d4, 0xa1},
+  {1, 0x3d5, 0x2},
+  {1, 0x3d4, 0xa2},
+  {1, 0x3d5, 0x2},
+  {1, 0x3d4, 0xa3},
+  {1, 0x3d5, 0x15},
+  {1, 0x3d4, 0xa4},
+  {1, 0x3d5, 0x2},
+  {1, 0x3d4, 0xa5},
+  {1, 0x3d5, 0x6},
+  {1, 0x3d4, 0xa6},
+  {1, 0x3d5, 0x0},
+  {1, 0x3d4, 0xa7},
+  {1, 0x3d5, 0x0},
+  {1, 0x3c2, 0x67},
 };