Adding DOS Frotz 2.43 changes
authorDavid Griffith <dave@661.org>
Tue, 3 Jan 2012 08:26:42 +0000 (00:26 -0800)
committerDavid Griffith <dave@661.org>
Tue, 3 Jan 2012 08:26:42 +0000 (00:26 -0800)
15 files changed:
src/common/fastmem.c
src/common/files.c
src/common/frotz.h
src/common/input.c
src/common/quetzal.c
src/common/sound.c
src/dos/bcfrotz.h [new file with mode: 0644]
src/dos/bcinit.c [new file with mode: 0644]
src/dos/bcinput.c [new file with mode: 0644]
src/dos/bcmouse.c [new file with mode: 0644]
src/dos/bcpic.c [new file with mode: 0644]
src/dos/bcsample.c [new file with mode: 0644]
src/dos/bcscreen.c [new file with mode: 0644]
src/dos/bctext.c [new file with mode: 0644]
src/dos/fontdata.h [new file with mode: 0644]

index 9906f0bc0cc5486c95c19990f9b6e5bd3a20d1b9..12ab84b887b30854e7c8cda28cd941af7e505540 100644 (file)
@@ -117,7 +117,7 @@ zword get_header_extension (int entry)
        return 0;
 
     addr = h_extension_table + 2 * entry;
-    LOW_WORD (addr, val)
+    LOW_WORD (addr, val);
 
     return val;
 
@@ -138,7 +138,7 @@ void set_header_extension (int entry, zword val)
        return;
 
     addr = h_extension_table + 2 * entry;
-    SET_WORD (addr, val)
+    SET_WORD (addr, val);
 
 }/* set_header_extension */
 
@@ -158,14 +158,14 @@ void restart_header (void)
 
     int i;
 
-    SET_BYTE (H_CONFIG, h_config)
-    SET_WORD (H_FLAGS, h_flags)
+    SET_BYTE (H_CONFIG, h_config);
+    SET_WORD (H_FLAGS, h_flags);
 
     if (h_version >= V4) {
-       SET_BYTE (H_INTERPRETER_NUMBER, h_interpreter_number)
-       SET_BYTE (H_INTERPRETER_VERSION, h_interpreter_version)
-       SET_BYTE (H_SCREEN_ROWS, h_screen_rows)
-       SET_BYTE (H_SCREEN_COLS, h_screen_cols)
+       SET_BYTE (H_INTERPRETER_NUMBER, h_interpreter_number);
+       SET_BYTE (H_INTERPRETER_VERSION, h_interpreter_version);
+       SET_BYTE (H_SCREEN_ROWS, h_screen_rows);
+       SET_BYTE (H_SCREEN_COLS, h_screen_cols);
     }
 
     /* It's less trouble to use font size 1x1 for V5 games, especially
@@ -184,20 +184,20 @@ void restart_header (void)
     }
 
     if (h_version >= V5) {
-       SET_WORD (H_SCREEN_WIDTH, screen_x_size)
-       SET_WORD (H_SCREEN_HEIGHT, screen_y_size)
-       SET_BYTE (H_FONT_HEIGHT, font_y_size)
-       SET_BYTE (H_FONT_WIDTH, font_x_size)
-       SET_BYTE (H_DEFAULT_BACKGROUND, h_default_background)
-       SET_BYTE (H_DEFAULT_FOREGROUND, h_default_foreground)
+       SET_WORD (H_SCREEN_WIDTH, screen_x_size);
+       SET_WORD (H_SCREEN_HEIGHT, screen_y_size);
+       SET_BYTE (H_FONT_HEIGHT, font_y_size);
+       SET_BYTE (H_FONT_WIDTH, font_x_size);
+       SET_BYTE (H_DEFAULT_BACKGROUND, h_default_background);
+       SET_BYTE (H_DEFAULT_FOREGROUND, h_default_foreground);
     }
 
     if (h_version == V6)
        for (i = 0; i < 8; i++)
            storeb ((zword) (H_USER_NAME + i), h_user_name[i]);
 
-    SET_BYTE (H_STANDARD_HIGH, h_standard_high)
-    SET_BYTE (H_STANDARD_LOW, h_standard_low)
+    SET_BYTE (H_STANDARD_HIGH, h_standard_high);
+    SET_BYTE (H_STANDARD_LOW, h_standard_low);
 
 }/* restart_header */
 
@@ -264,27 +264,27 @@ void init_memory (void)
 
     /* Copy header fields to global variables */
 
-    LOW_BYTE (H_VERSION, h_version)
+    LOW_BYTE (H_VERSION, h_version);
 
     if (h_version < V1 || h_version > V8)
        os_fatal ("Unknown Z-code version");
 
-    LOW_BYTE (H_CONFIG, h_config)
+    LOW_BYTE (H_CONFIG, h_config);
 
     if (h_version == V3 && (h_config & CONFIG_BYTE_SWAPPED))
        os_fatal ("Byte swapped story file");
 
-    LOW_WORD (H_RELEASE, h_release)
-    LOW_WORD (H_RESIDENT_SIZE, h_resident_size)
-    LOW_WORD (H_START_PC, h_start_pc)
-    LOW_WORD (H_DICTIONARY, h_dictionary)
-    LOW_WORD (H_OBJECTS, h_objects)
-    LOW_WORD (H_GLOBALS, h_globals)
-    LOW_WORD (H_DYNAMIC_SIZE, h_dynamic_size)
-    LOW_WORD (H_FLAGS, h_flags)
+    LOW_WORD (H_RELEASE, h_release);
+    LOW_WORD (H_RESIDENT_SIZE, h_resident_size);
+    LOW_WORD (H_START_PC, h_start_pc);
+    LOW_WORD (H_DICTIONARY, h_dictionary);
+    LOW_WORD (H_OBJECTS, h_objects);
+    LOW_WORD (H_GLOBALS, h_globals);
+    LOW_WORD (H_DYNAMIC_SIZE, h_dynamic_size);
+    LOW_WORD (H_FLAGS, h_flags);
 
     for (i = 0, addr = H_SERIAL; i < 6; i++, addr++)
-       LOW_BYTE (addr, h_serial[i])
+       LOW_BYTE (addr, h_serial[i]);
 
     /* Auto-detect buggy story files that need special fixes */
 
@@ -306,8 +306,8 @@ void init_memory (void)
 
     }
 
-    LOW_WORD (H_ABBREVIATIONS, h_abbreviations)
-    LOW_WORD (H_FILE_SIZE, h_file_size)
+    LOW_WORD (H_ABBREVIATIONS, h_abbreviations);
+    LOW_WORD (H_FILE_SIZE, h_file_size);
 
     /* Calculate story file size in bytes */
 
@@ -328,12 +328,12 @@ void init_memory (void)
 
     }
 
-    LOW_WORD (H_CHECKSUM, h_checksum)
-    LOW_WORD (H_ALPHABET, h_alphabet)
-    LOW_WORD (H_FUNCTIONS_OFFSET, h_functions_offset)
-    LOW_WORD (H_STRINGS_OFFSET, h_strings_offset)
-    LOW_WORD (H_TERMINATING_KEYS, h_terminating_keys)
-    LOW_WORD (H_EXTENSION_TABLE, h_extension_table)
+    LOW_WORD (H_CHECKSUM, h_checksum);
+    LOW_WORD (H_ALPHABET, h_alphabet);
+    LOW_WORD (H_FUNCTIONS_OFFSET, h_functions_offset);
+    LOW_WORD (H_STRINGS_OFFSET, h_strings_offset);
+    LOW_WORD (H_TERMINATING_KEYS, h_terminating_keys);
+    LOW_WORD (H_EXTENSION_TABLE, h_extension_table);
 
     /* Zork Zero Macintosh doesn't have the graphics flag set */
 
@@ -364,7 +364,7 @@ void init_memory (void)
        if (story_size - size < 0x8000)
            n = (unsigned) (story_size - size);
 
-       SET_PC (size)
+       SET_PC (size);
 
        if (fread (pcp, 1, n, story_fp) != n)
            os_fatal ("Story file read error");
@@ -496,7 +496,7 @@ void storeb (zword addr, zbyte value)
 
     }
 
-    SET_BYTE (addr, value)
+    SET_BYTE (addr, value);
 
 }/* storeb */
 
@@ -550,7 +550,7 @@ void z_restart (void)
     if (h_version != V6) {
 
        long pc = (long) h_start_pc;
-       SET_PC (pc)
+       SET_PC (pc);
 
     } else call (h_start_pc, 0, NULL, 0);
 
@@ -574,14 +574,14 @@ static void get_default_name (char *default_name, zword addr)
        zbyte len;
        int i;
 
-       LOW_BYTE (addr, len)
+       LOW_BYTE (addr, len);
        addr++;
 
        for (i = 0; i < len; i++) {
 
            zbyte c;
 
-           LOW_BYTE (addr, c)
+           LOW_BYTE (addr, c);
            addr++;
 
            if (c >= 'A' && c <= 'Z')
@@ -680,7 +680,7 @@ void z_restore (void)
                pc |= (unsigned) fgetc (gfp) << 8;
                pc |= fgetc (gfp);
 
-               SET_PC (pc)
+               SET_PC (pc);
 
                sp = stack + (fgetc (gfp) << 8);
                sp += fgetc (gfp);
@@ -848,6 +848,7 @@ static void mem_undiff (zbyte *diff, long diff_length, zbyte *dest)
 
 int restore_undo (void)
 {
+    long pc = curr_undo->pc;
 
     if (f_setup.undo_slots == 0)       /* undo feature unavailable */
 
@@ -860,7 +861,7 @@ int restore_undo (void)
     /* undo possible */
 
     memcpy (zmp, prev_zmp, h_dynamic_size);
-    SET_PC (curr_undo->pc)
+    SET_PC (pc);
     sp = stack + STACK_SIZE - curr_undo->stack_size;
     fp = stack + curr_undo->frame_offset;
     frame_count = curr_undo->frame_count;
@@ -961,7 +962,7 @@ void z_save (void)
            fputc ((int) hi (h_checksum), gfp);
            fputc ((int) lo (h_checksum), gfp);
 
-           GET_PC (pc)
+           GET_PC (pc);
 
            fputc ((int) (pc >> 16) & 0xff, gfp);
            fputc ((int) (pc >> 8) & 0xff, gfp);
@@ -1024,6 +1025,7 @@ int save_undo (void)
     long diff_size;
     zword stack_size;
     undo_t *p;
+    long pc = p->pc;
 
     if (f_setup.undo_slots == 0)       /* undo feature unavailable */
        return -1;
@@ -1053,7 +1055,8 @@ int save_undo (void)
     } while (!p && undo_count);
     if (p == NULL)
        return -1;
-    GET_PC (p->pc)
+    GET_PC (pc);       /* Turbo C doesn't like seeing p->pc here */
+    p->pc = pc;
     p->frame_count = frame_count;
     p->diff_size = diff_size;
     p->stack_size = stack_size;
index 0e864d588ddde13d82dc4f12f3e13fd455c452ed..6ac05c0416d3f7b7f4476079b5f7f5b4789c58f9 100644 (file)
@@ -95,7 +95,7 @@ void script_open (void)
 
 done:
 
-    SET_WORD (H_FLAGS, h_flags)
+    SET_WORD (H_FLAGS, h_flags);
 
 }/* script_open */
 
@@ -110,7 +110,7 @@ void script_close (void)
 {
 
     h_flags &= ~SCRIPTING_FLAG;
-    SET_WORD (H_FLAGS, h_flags)
+    SET_WORD (H_FLAGS, h_flags);
 
     fclose (sfp); ostream_script = FALSE;
 
index 741243028a3baee96e990a6bd24701fc90b2ac7a..6fc03a7c834c208d5934a3bfa792d6cb96bc976c 100644 (file)
@@ -276,7 +276,79 @@ extern zbyte *zmp;
 
 #endif
 
-/* A bunch of x86 assembly code previously appeared here. */
+#if defined (MSDOS_16BIT)
+extern zbyte *pcp;
+extern zbyte *zmp;
+
+#define lo(v)   ((zbyte *)&v)[0]
+#define hi(v)   ((zbyte *)&v)[1]
+
+#define SET_WORD(addr,v) asm {\
+    les bx,zmp;\
+    add bx,addr;\
+    mov ax,v;\
+    xchg al,ah;\
+    mov es:[bx],ax }
+
+#define LOW_WORD(addr,v) asm {\
+    les bx,zmp;\
+    add bx,addr;\
+    mov ax,es:[bx];\
+    xchg al,ah;\
+    mov v,ax }
+
+#define HIGH_WORD(addr,v) asm {\
+    mov bx,word ptr zmp;\
+    add bx,word ptr addr;\
+    mov al,bh;\
+    mov bh,0;\
+    mov ah,0;\
+    adc ah,byte ptr addr+2;\
+    mov cl,4;\
+    shl ax,cl;\
+    add ax,word ptr zmp+2;\
+    mov es,ax;\
+    mov ax,es:[bx];\
+    xchg al,ah;\
+    mov v,ax }
+
+#define CODE_WORD(v) asm {\
+    les bx,pcp;\
+    mov ax,es:[bx];\
+    xchg al,ah;\
+    mov v,ax;\
+    add word ptr pcp,2 }
+
+#define GET_PC(v) asm {\
+    mov bx,word ptr pcp+2;\
+    sub bx,word ptr zmp+2;\
+    mov ax,bx;\
+    mov cl,4;\
+    shl bx,cl;\
+    mov cl,12;\
+    shr ax,cl;\
+    add bx,word ptr pcp;\
+    adc al,0;\
+    sub bx,word ptr zmp;\
+    sbb al,0;\
+    mov word ptr v,bx;\
+    mov word ptr v+2,ax }
+
+#define SET_PC(v) asm {\
+    mov bx,word ptr zmp;\
+    add bx,word ptr v;\
+    mov al,bh;\
+    mov bh,0;\
+    mov ah,0;\
+    adc ah,byte ptr v+2;\
+    mov cl,4;\
+    shl ax,cl;\
+    add ax,word ptr zmp+2;\
+    mov word ptr pcp,bx;\
+    mov word ptr pcp+2,ax }
+
+#endif /* MSDOS_16BIT */
+
 
 #if !defined (AMIGA) && !defined (MSDOS_16BIT)
 
@@ -501,7 +573,7 @@ void        z_window_style (void);
 
 void   init_err (void);
 void   runtime_error (int);
-
 /* Error codes */
 #define ERR_TEXT_BUF_OVF 1     /* Text buffer overflow */
 #define ERR_STORE_RANGE 2      /* Store out of dynamic memory */
@@ -539,7 +611,7 @@ void        runtime_error (int);
 #define ERR_REMOVE_OBJECT_0 31 /* @remove_object called with object 0 */
 #define ERR_GET_NEXT_PROP_0 32 /* @get_next_prop called with object 0 */
 #define ERR_NUM_ERRORS (32)
-
 /* There are four error reporting modes: never report errors;
   report only the first time a given error type occurs; report
   every time an error occurs; or treat all errors as fatal
@@ -589,7 +661,7 @@ void        os_display_string (const zchar *);
 void   os_draw_picture (int, int, int);
 void   os_erase_area (int, int, int, int);
 void   os_fatal (const char *);
-void   os_finish_with_sample (int);
+void   os_finish_with_sample ();
 int    os_font_data (int, int *, int *);
 void   os_init_screen (void);
 void   os_more_prompt (void);
@@ -609,7 +681,7 @@ void        os_set_cursor (int, int);
 void   os_set_font (int);
 void   os_set_text_style (int);
 void   os_start_sample (int, int, int, zword);
-void   os_stop_sample (int);
+void   os_stop_sample ();
 int    os_string_width (const zchar *);
 void   os_init_setup (void);
 int    os_speech_output(const zchar *);
index e4dad62d9e59a24c205e4eddb713c5fd7467db6b..370d554fe7c4f7b811d384fd8a2e8580f9c25564 100644 (file)
@@ -52,7 +52,7 @@ bool is_terminator (zchar key)
            zbyte c;
 
            do {
-               LOW_BYTE (addr, c)
+               LOW_BYTE (addr, c);
                if (c == 255 || key == translate_from_zscii (c))
                    return TRUE;
                addr++;
@@ -181,7 +181,7 @@ void z_read (void)
 
     addr = zargs[0];
 
-    LOW_BYTE (addr, max)
+    LOW_BYTE (addr, max);
 
     if (h_version <= V4)
        max--;
@@ -193,14 +193,14 @@ void z_read (void)
 
     if (h_version >= V5) {
        addr++;
-       LOW_BYTE (addr, size)
+       LOW_BYTE (addr, size);
     } else size = 0;
 
     /* Copy initial input to local buffer */
 
     for (i = 0; i < size; i++) {
        addr++;
-       LOW_BYTE (addr, c)
+       LOW_BYTE (addr, c);
        buffer[i] = translate_from_zscii (c);
     }
 
@@ -309,12 +309,15 @@ void z_read_mouse (void)
 {
     zword btn;
 
-    /* Read the mouse position and which buttons are down */
+    btn = 1;
 
+    /** I don't remember what was going on here */
+    /* Read the mouse position and which buttons are down */
+/*
     btn = os_read_mouse ();
     hx_mouse_y = mouse_y;
     hx_mouse_x = mouse_x;
-
+*/
     storew ((zword) (zargs[0] + 0), hx_mouse_y);
     storew ((zword) (zargs[0] + 2), hx_mouse_x);
     storew ((zword) (zargs[0] + 4), btn);      /* mouse button bits */
index f7ccacd72f7b24df98151e42d4b18701ce414f48..ce78b365d7fb4d55fa71a8949a960e3a9b298ac5 100644 (file)
@@ -61,7 +61,7 @@ static zword frames[STACK_SIZE/4+1];
  * ID types.
  */
 
-#define makeid(a,b,c,d) ((zlong) (((a)<<24) | ((b)<<16) | ((c)<<8) | (d)))
+#define makeid(a,b,c,d) ((zlong) (((zlong)(a)<<24) | ((zlong)(b)<<16) | ((zlong)(c)<<8) | (zlong)(d)))
 
 #define ID_FORM makeid ('F','O','R','M')
 #define ID_IFZS makeid ('I','F','Z','S')
@@ -175,8 +175,8 @@ zword restore_quetzal (FILE *svf, FILE *stf)
                    return fatal;
                }
                progress |= GOT_HEADER;
-               if (currlen < 13
-                   || !read_word (svf, &tmpw))                 return fatal;
+               if (currlen < 13 || !read_word (svf, &tmpw))
+                   return fatal;
                if (tmpw != h_release)
                    progress = GOT_ERROR;
 
index ea0e3570e615b4b5f0927f7d74f57ba75c296f4a..37c98e93f4aec75eb20980f6010141aba0ba965a 100644 (file)
@@ -189,10 +189,10 @@ void z_sound_effect (void)
            start_sample (number, lo (volume), hi (volume), (zargc == 4) ? zargs[3] : 0);
            break;
        case EFFECT_STOP:
-           os_stop_sample (number);
+           os_stop_sample ();
            break;
        case EFFECT_FINISH_WITH:
-           os_finish_with_sample (number);
+           os_finish_with_sample ();
            break;
 
        }
diff --git a/src/dos/bcfrotz.h b/src/dos/bcfrotz.h
new file mode 100644 (file)
index 0000000..fe5f00e
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * "BCfrotz.h"
+ *
+ * Borland C interface, declarations
+ *
+ */
+
+#define MASK_LINEAR(addr)      (addr & 0x000FFFFF)
+#define RM_TO_LINEAR(addr)     (((addr & 0xFFFF0000) >> 12) + (addr & 0xFFFF))
+#define RM_OFFSET(addr)                (addr & 0xF)
+#define RM_SEGMENT(addr)       ((addr >> 4) & 0xFFFF)
+
+#define OS_PATHSEP ';'
+
+#define byte0(v)       ((byte *)&v)[0]
+#define byte1(v)       ((byte *)&v)[1]
+#define byte2(v)       ((byte *)&v)[2]
+#define byte3(v)       ((byte *)&v)[3]
+#define word0(v)       ((word *)&v)[0]
+#define word1(v)       ((word *)&v)[1]
+
+#ifndef HISTORY_MIN_ENTRY
+#define HISTORY_MIN_ENTRY 1
+#endif
+
+#define SPECIAL_KEY_MIN 256
+#define SPECIAL_KEY_HOME 256
+#define SPECIAL_KEY_END 257
+#define SPECIAL_KEY_WORD_LEFT 258
+#define SPECIAL_KEY_WORD_RIGHT 259
+#define SPECIAL_KEY_DELETE 260
+#define SPECIAL_KEY_INSERT 261
+#define SPECIAL_KEY_PAGE_UP 262
+#define SPECIAL_KEY_PAGE_DOWN 263
+#define SPECIAL_KEY_TAB 264
+#define SPECIAL_KEY_MAX 264
+
+#define _MONO_ 0
+#define _TEXT_ 1
+#define _CGA_  2
+#define _MCGA_ 3
+#define _EGA_  4
+#define _AMIGA_        5
+
+typedef unsigned char byte;
+typedef unsigned short word;
+
+extern display;
+
+extern cursor_x;
+extern cursor_y;
+
+extern char latin1_to_ibm[];
+extern char latin1_to_ascii[];
+
+extern byte text_bg;
+extern byte text_fg;
+
+extern byte scrn_attr;
+
+extern user_background;
+extern user_foreground;
+extern user_emphasis;
+extern user_reverse_bg;
+extern user_reverse_fg;
+extern user_screen_height;
+extern user_screen_width;
+extern user_tandy_bit;
+extern user_bold_typing;
+extern user_random_seed;
+extern user_font;
+
+extern char stripped_story_name[];
+extern char *prog_name;
+
+extern current_bg;
+extern current_fg;
+extern current_style;
+extern current_font;
+
+extern scaler;
+
+#ifdef SOUND_SUPPORT
+extern volatile int end_of_sound_flag;
+#endif
+
+/* BCinit  */  int     dectoi (const char *);
+/* BCinit  */  int     hextoi (const char *);
+/* BCmouse */  bool    detect_mouse (void);
+/* BCmouse */  int     read_mouse (void);
+/* BCpic   */  bool    init_pictures (void);
+/* BCpic   */  void    reset_pictures (void);
+
+#ifdef SOUND_SUPPORT
+/* BCsmpl  */  bool    init_sound (void);
+/* BCsmpl  */  void    reset_sound (void);
+#endif
+/* BCtext  */  void    switch_scrn_attr (bool);
+/* BCtext  */  void    load_fonts (void);
diff --git a/src/dos/bcinit.c b/src/dos/bcinit.c
new file mode 100644 (file)
index 0000000..db952d0
--- /dev/null
@@ -0,0 +1,849 @@
+/*\r
+ * file "BCinit.c"\r
+ *\r
+ * Borland C front end, initialisation\r
+ *\r
+ */\r
+\r
+#include <conio.h>\r
+#include <dos.h>\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include "frotz.h"\r
+#include "bcfrotz.h"\r
+\r
+f_setup_t f_setup;\r
+\r
+static char information[] =\r
+"FROTZ V2.43 - interpreter for all Infocom games. Complies with standard\n"\r
+"1.0 of Graham Nelson's specification. Written by Stefan Jokisch in 1995-7\n"\r
+"\n"\r
+"Syntax: frotz [options] story-file\n"\r
+"\n"\r
+"  -a   watch attribute setting  \t -o   watch object movement\n"\r
+"  -A   watch attribute testing  \t -O   watch object locating\n"\r
+"  -b # background colour        \t -p   alter piracy opcode\n"\r
+"  -B # reverse background colour\t -Q   use old-style save format\n"\r
+"  -c # context lines            \t -r # right margin\n"\r
+"  -d # display mode (see below) \t -s # random number seed value\n"\r
+"  -e # emphasis colour [mode 1] \t -S # transscript width\n"\r
+"  -f # foreground colour        \t -t   set Tandy bit\n"\r
+"  -F # reverse foreground colour\t -T   bold typing [modes 2+4+5]\n"\r
+"  -g # font [mode 5] (see below)\t -u # slots for multiple undo\n"\r
+"  -h # screen height            \t -w # screen width\n"\r
+"  -i   ignore runtime errors    \t -x   expand abbreviations g/x/z\n"\r
+"  -l # left margin"\r
+"              \t -Z # error checking (see below)"\r
+"\n"\r
+"Fonts are 0 (fixed), 1 (sans serif), 2 (comic), 3 (times), 4 (serif).\n"\r
+"Display modes are 0 (mono), 1 (text), 2 (CGA), 3 (MCGA), 4 (EGA), 5 (Amiga)."\r
+"\n\n"\r
+"Error checking is 0 (none), 1 (report first error (default)),\n"\r
+"  2 (report all errors), 3 (exit after any error).";\r
+\r
+/* in bcinit.c only.  What is its significance? */\r
+extern unsigned cdecl _heaplen = 0x800 + 4 * BUFSIZ;\r
+extern unsigned cdecl _stklen = 0x800;\r
+\r
+extern const char *optarg;\r
+extern int optind;\r
+\r
+int cdecl getopt (int, char *[], const char *);\r
+\r
+static const char *progname = NULL;\r
+\r
+extern char script_name[];\r
+extern char command_name[];\r
+extern char save_name[];\r
+extern char auxilary_name[];\r
+\r
+char stripped_story_name[10];\r
+\r
+int display = -1;\r
+\r
+int user_background = -1;\r
+int user_foreground = -1;\r
+int user_emphasis = -1;\r
+int user_bold_typing = -1;\r
+int user_reverse_bg = -1;\r
+int user_reverse_fg = -1;\r
+int user_screen_height = -1;\r
+int user_screen_width = -1;\r
+int user_tandy_bit = -1;\r
+int user_random_seed = -1;\r
+int user_font = 1;\r
+\r
+static byte old_video_mode = 0;\r
+\r
+static void interrupt (*oldvect) () = NULL;\r
+\r
+\r
+\r
+/*\r
+ * os_init_setup\r
+ *\r
+ * Set or reset various configuration variables.\r
+ *\r
+ */\r
+void os_init_setup(void)\r
+{\r
+       f_setup.attribute_assignment = 0;\r
+       f_setup.attribute_testing = 0;\r
+       f_setup.context_lines = 0;\r
+       f_setup.object_locating = 0;\r
+       f_setup.object_movement = 0;\r
+       f_setup.left_margin = 0;\r
+       f_setup.right_margin = 0;\r
+       f_setup.ignore_errors = 0;\r
+       f_setup.piracy = 0;\r
+       f_setup.undo_slots = MAX_UNDO_SLOTS;\r
+       f_setup.expand_abbreviations = 0;\r
+       f_setup.script_cols = 80;\r
+       f_setup.save_quetzal = 1;\r
+       f_setup.sound = 1;\r
+       f_setup.err_report_mode = ERR_DEFAULT_REPORT_MODE;\r
+\r
+}/* os_init_setup */\r
+\r
+/*\r
+ * dectoi\r
+ *\r
+ * Convert a string containing a decimal number to integer. The string may\r
+ * be NULL, but it must not be empty.\r
+ *\r
+ */\r
+\r
+int dectoi (const char *s)\r
+{\r
+    int n = 0;\r
+\r
+    if (s != NULL)\r
+\r
+       do {\r
+\r
+           n = 10 * n + (*s & 15);\r
+\r
+       } while (*++s > ' ');\r
+\r
+    return n;\r
+\r
+}/* dectoi */\r
+\r
+/*\r
+ * hextoi\r
+ *\r
+ * Convert a string containing a hex number to integer. The string may be\r
+ * NULL, but it must not be empty.\r
+ *\r
+ */\r
+\r
+int hextoi (const char *s)\r
+{\r
+    int n = 0;\r
+\r
+    if (s != NULL)\r
+\r
+       do {\r
+\r
+           n = 16 * n + (*s & 15);\r
+\r
+           if (*s > '9')\r
+               n += 9;\r
+\r
+       } while (*++s > ' ');\r
+\r
+    return n;\r
+\r
+}/* hextoi */\r
+\r
+/*\r
+ * cleanup\r
+ *\r
+ * Shut down the IO interface: free memory, close files, restore\r
+ * interrupt pointers and return to the previous video mode.\r
+ *\r
+ */\r
+\r
+static void cleanup (void)\r
+{\r
+\r
+#ifdef SOUND_SUPPORT\r
+    reset_sound ();\r
+#endif\r
+    reset_pictures ();\r
+\r
+    asm mov ah,0\r
+    asm mov al,old_video_mode\r
+    asm int 0x10\r
+\r
+    setvect (0x1b, oldvect);\r
+\r
+}/* cleanup */\r
+\r
+/*\r
+ * fast_exit\r
+ *\r
+ * Handler routine to be called when the crtl-break key is pressed.\r
+ *\r
+ */\r
+\r
+static void interrupt fast_exit ()\r
+{\r
+\r
+    cleanup (); exit (EXIT_FAILURE);\r
+\r
+}/* fast_exit */\r
+\r
+/*\r
+ * os_fatal\r
+ *\r
+ * Display error message and exit program.\r
+ *\r
+ */\r
+\r
+void os_fatal (const char *s)\r
+{\r
+\r
+    if (h_interpreter_number)\r
+       os_reset_screen ();\r
+\r
+    /* Display error message */\r
+\r
+    fputs ("\nFatal error: ", stderr);\r
+    fputs (s, stderr);\r
+    fputs ("\n", stderr);\r
+\r
+    /* Abort program */\r
+\r
+    exit (EXIT_FAILURE);\r
+\r
+}/* os_fatal */\r
+\r
+/*\r
+ * parse_options\r
+ *\r
+ * Parse program options and set global flags accordingly.\r
+ *\r
+ */\r
+\r
+static void parse_options (int argc, char **argv)\r
+{\r
+    int c;\r
+\r
+    do {\r
+\r
+       int num = 0;\r
+\r
+       c = getopt (argc, argv, "aAb:B:c:d:e:f:F:g:h:il:oOpQr:s:S:tTu:w:xZ:");\r
+\r
+       if (optarg != NULL)\r
+           num = dectoi (optarg);\r
+\r
+       if (c == 'a')\r
+           f_setup.attribute_assignment = 1;\r
+       if (c == 'A')\r
+           f_setup.attribute_testing = 1;\r
+       if (c == 'b')\r
+           user_background = num;\r
+       if (c == 'B')\r
+           user_reverse_bg = num;\r
+       if (c == 'c')\r
+           f_setup.context_lines = num;\r
+       if (c == 'd') {\r
+           display = optarg[0] | 32;\r
+           if ((display < '0' || display > '5')\r
+               && (display < 'a' || display > 'e')) {\r
+               display = -1;\r
+           }\r
+       }\r
+       if (c == 'e')\r
+           user_emphasis = num;\r
+       if (c == 'T')\r
+           user_bold_typing = 1;\r
+       if (c == 'f')\r
+           user_foreground = num;\r
+       if (c == 'F')\r
+           user_reverse_fg = num;\r
+       if (c == 'g') {\r
+           if (num >= 0 && num <= 4)\r
+               user_font = num;\r
+       }\r
+       if (c == 'h')\r
+           user_screen_height = num;\r
+       if (c == 'i')\r
+           f_setup.ignore_errors = 1;\r
+       if (c == 'l')\r
+           f_setup.left_margin = num;\r
+       if (c == 'o')\r
+           f_setup.object_movement = 1;\r
+       if (c == 'O')\r
+           f_setup.object_locating = 1;\r
+       if (c == 'p')\r
+           f_setup.piracy = 1;\r
+       if (c == 'Q')\r
+           f_setup.save_quetzal = 0;\r
+       if (c == 'r')\r
+           f_setup.right_margin = num;\r
+       if (c == 's')\r
+           user_random_seed = num;\r
+       if (c == 'S')\r
+           f_setup.script_cols = num;\r
+       if (c == 't')\r
+           user_tandy_bit = 1;\r
+       if (c == 'u')\r
+           f_setup.undo_slots = num;\r
+       if (c == 'w')\r
+           user_screen_width = num;\r
+       if (c == 'x')\r
+           f_setup.expand_abbreviations = 1;\r
+       if (c == 'Z') {\r
+           if (num >= ERR_REPORT_NEVER && num <= ERR_REPORT_FATAL)\r
+               f_setup.err_report_mode = num;\r
+       }\r
+       if (c == '?')\r
+           optind = argc;\r
+    } while (c != EOF && c != '?');\r
+\r
+}/* parse_options */\r
+\r
+/*\r
+ * os_process_arguments\r
+ *\r
+ * Handle command line switches. Some variables may be set to activate\r
+ * special features of Frotz:\r
+ *\r
+ *     option_attribute_assignment\r
+ *     option_attribute_testing\r
+ *     option_context_lines\r
+ *     option_object_locating\r
+ *     option_object_movement\r
+ *     option_left_margin\r
+ *     option_right_margin\r
+ *     option_ignore_errors\r
+ *     option_piracy\r
+ *     option_undo_slots\r
+ *     option_expand_abbreviations\r
+ *     option_script_cols\r
+ *\r
+ * The global pointer "story_name" is set to the story file name.\r
+ *\r
+ */\r
+\r
+void os_process_arguments (int argc, char *argv[])\r
+{\r
+    const char *p;\r
+    int i;\r
+\r
+    /* Parse command line options */\r
+\r
+    parse_options (argc, argv);\r
+\r
+    if (optind != argc - 1) {\r
+       puts (information);\r
+       exit (EXIT_FAILURE);\r
+    }\r
+\r
+    /* Set the story file name */\r
+\r
+    story_name = argv[optind];\r
+\r
+    /* Strip path and extension off the story file name */\r
+\r
+    p = story_name;\r
+\r
+    for (i = 0; story_name[i] != 0; i++)\r
+       if (story_name[i] == '\\' || story_name[i] == '/'\r
+           || story_name[i] == ':')\r
+           p = story_name + i + 1;\r
+\r
+    for (i = 0; p[i] != 0 && p[i] != '.'; i++)\r
+       stripped_story_name[i] = p[i];\r
+\r
+    stripped_story_name[i] = 0;\r
+\r
+    /* Create nice default file names */\r
+\r
+    strcpy (script_name, stripped_story_name);\r
+    strcpy (command_name, stripped_story_name);\r
+    strcpy (save_name, stripped_story_name);\r
+    strcpy (auxilary_name, stripped_story_name);\r
+\r
+    strcat (script_name, ".scr");\r
+    strcat (command_name, ".rec");\r
+    strcat (save_name, ".sav");\r
+    strcat (auxilary_name, ".aux");\r
+\r
+    /* Save the executable file name */\r
+\r
+    progname = argv[0];\r
+\r
+}/* os_process_arguments */\r
+\r
+/*\r
+ * standard_palette\r
+ *\r
+ * Set palette registers to EGA default values and call VGA BIOS to\r
+ * use DAC registers #0 to #63.\r
+ *\r
+ */\r
+\r
+static void standard_palette (void)\r
+{\r
+\r
+    static byte palette[] = {\r
+       0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,\r
+       0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+       0x00 /* last one is the overscan register */\r
+    };\r
+\r
+    if (display == _AMIGA_) {\r
+       asm mov ax,0x1002\r
+       asm lea dx,palette\r
+       asm push ds\r
+       asm pop es\r
+       asm int 0x10\r
+       asm mov ax,0x1013\r
+       asm mov bx,0x0001\r
+       asm int 0x10\r
+    }\r
+\r
+}/* standard_palette */\r
+\r
+/*\r
+ * special_palette\r
+ *\r
+ * Set palette register #i to value i and call VGA BIOS to use DAC\r
+ * registers #64 to #127.\r
+ *\r
+ */\r
+\r
+static void special_palette (void)\r
+{\r
+\r
+    static byte palette[] = {\r
+       0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+       0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+       0x00 /* last one is the overscan register */\r
+    };\r
+\r
+    if (display == _AMIGA_) {\r
+       asm mov ax,0x1002\r
+       asm mov dx,offset palette\r
+       asm push ds\r
+       asm pop es\r
+       asm int 0x10\r
+       asm mov ax,0x1013\r
+       asm mov bx,0x0101\r
+       asm int 0x10\r
+    }\r
+\r
+}/* special_palette */\r
+\r
+/*\r
+ * os_init_screen\r
+ *\r
+ * Initialise the IO interface. Prepare the screen and other devices\r
+ * (mouse, sound board). Set various OS depending story file header\r
+ * entries:\r
+ *\r
+ *     h_config (aka flags 1)\r
+ *     h_flags (aka flags 2)\r
+ *     h_screen_cols (aka screen width in characters)\r
+ *     h_screen_rows (aka screen height in lines)\r
+ *     h_screen_width\r
+ *     h_screen_height\r
+ *     h_font_height (defaults to 1)\r
+ *     h_font_width (defaults to 1)\r
+ *     h_default_foreground\r
+ *     h_default_background\r
+ *     h_interpreter_number\r
+ *     h_interpreter_version\r
+ *     h_user_name (optional; not used by any game)\r
+ *\r
+ * Finally, set reserve_mem to the amount of memory (in bytes) that\r
+ * should not be used for multiple undo and reserved for later use.\r
+ *\r
+ */\r
+\r
+void os_init_screen (void)\r
+{\r
+    static byte zcolour[] = {\r
+       BLACK_COLOUR,\r
+       BLUE_COLOUR,\r
+       GREEN_COLOUR,\r
+       CYAN_COLOUR,\r
+       RED_COLOUR,\r
+       MAGENTA_COLOUR,\r
+       BROWN + 16,\r
+       LIGHTGRAY + 16,\r
+       GREY_COLOUR,\r
+       LIGHTBLUE + 16,\r
+       LIGHTGREEN + 16,\r
+       LIGHTCYAN + 16,\r
+       LIGHTRED + 16,\r
+       LIGHTMAGENTA + 16,\r
+       YELLOW_COLOUR,\r
+       WHITE_COLOUR\r
+    };\r
+\r
+    static struct {    /* information on modes 0 to 5 */\r
+       byte vmode;\r
+       word width;\r
+       word height;\r
+       byte font_width;\r
+       byte font_height;\r
+       byte fg;\r
+       byte bg;\r
+    } info[] = {\r
+       { 0x07,  80,  25,  1,  1, LIGHTGRAY + 16, BLACK_COLOUR }, /* MONO  */\r
+       { 0x03,  80,  25,  1,  1, LIGHTGRAY + 16, BLUE_COLOUR  }, /* TEXT  */\r
+       { 0x06, 640, 200,  8,  8, WHITE_COLOUR,   BLACK_COLOUR }, /* CGA   */\r
+       { 0x13, 320, 200,  5,  8, WHITE_COLOUR,   GREY_COLOUR  }, /* MCGA  */\r
+       { 0x0e, 640, 200,  8,  8, WHITE_COLOUR,   BLUE_COLOUR  }, /* EGA   */\r
+       { 0x12, 640, 400,  8, 16, WHITE_COLOUR,   BLACK_COLOUR }  /* AMIGA */\r
+    };\r
+\r
+    static struct {    /* information on modes A to E */\r
+       word vesamode;\r
+       word width;\r
+       word height;\r
+    } subinfo[] = {\r
+       { 0x001,  40, 25 },\r
+       { 0x109, 132, 25 },\r
+       { 0x10b, 132, 50 },\r
+       { 0x108,  80, 60 },\r
+       { 0x10c, 132, 60 }\r
+    };\r
+\r
+    int subdisplay;\r
+\r
+    /* Get the current video mode. This video mode will be selected\r
+       when the program terminates. It's also useful to auto-detect\r
+       monochrome boards. */\r
+\r
+    asm mov ah,15\r
+    asm int 0x10\r
+    asm mov old_video_mode,al\r
+\r
+    /* If the display mode has not already been set by the user then see\r
+       if this is a monochrome board. If so, set the display mode to 0.\r
+       Otherwise check the graphics flag of the story. Select a graphic\r
+       mode if it is set or if this is a V6 game. Select text mode if it\r
+       is not. */\r
+\r
+    if (display == -1)\r
+\r
+       if (old_video_mode == 7)\r
+           display = '0';\r
+       else if (h_version == V6 || (h_flags & GRAPHICS_FLAG))\r
+           display = '5';\r
+       else\r
+           display = '1';\r
+\r
+    /* Activate the desired display mode. All VESA text modes are very\r
+       similar to the standard text mode; in fact, only here we need to\r
+       know which VESA mode is used. */\r
+\r
+    if (display >= '0' && display <= '5') {\r
+       subdisplay = -1;\r
+       display -= '0';\r
+       _AL = info[display].vmode;\r
+       _AH = 0;\r
+    } else if (display == 'a') {\r
+       subdisplay = 0;\r
+       display = 1;\r
+       _AL = 0x01;\r
+       _AH = 0;\r
+    } else if (display >= 'b' && display <= 'e') {\r
+       subdisplay = display - 'a';\r
+       display = 1;\r
+       _BX = subinfo[subdisplay].vesamode;\r
+       _AX = 0x4f02;\r
+    }\r
+\r
+    geninterrupt (0x10);\r
+\r
+    /* Make various preparations */\r
+\r
+    if (display <= _TEXT_) {\r
+\r
+       /* Enable bright background colours */\r
+\r
+       asm mov ax,0x1003\r
+       asm mov bl,0\r
+       asm int 0x10\r
+\r
+       /* Turn off hardware cursor */\r
+\r
+       asm mov ah,1\r
+       asm mov cx,0xffff\r
+       asm int 0x10\r
+\r
+    } else {\r
+\r
+       load_fonts ();\r
+\r
+       if (display == _AMIGA_) {\r
+\r
+            scaler = 2;\r
+\r
+            /* Use resolution 640 x 400 instead of 640 x 480. BIOS doesn't\r
+               help us here since this is not a standard resolution. */\r
+\r
+            outportb (0x03c2, 0x63);\r
+\r
+            outport (0x03d4, 0x0e11);\r
+            outport (0x03d4, 0xbf06);\r
+            outport (0x03d4, 0x1f07);\r
+            outport (0x03d4, 0x9c10);\r
+            outport (0x03d4, 0x8f12);\r
+            outport (0x03d4, 0x9615);\r
+            outport (0x03d4, 0xb916);\r
+\r
+        }\r
+\r
+    }\r
+\r
+#if !defined(__SMALL__) && !defined (__TINY__) && !defined (__MEDIUM__)\r
+\r
+    /* Set the amount of memory to reserve for later use. It takes\r
+       some memory to open command, script and game files. If Frotz\r
+       is compiled in a small memory model then memory for opening\r
+       files is allocated on the "near heap" while other allocations\r
+       are made on the "far heap", i.e. we need not reserve memory\r
+       in this case. */\r
+\r
+    reserve_mem = 4 * BUFSIZ;\r
+\r
+#endif\r
+\r
+    /* Amiga emulation under V6 needs special preparation. */\r
+\r
+    if (display == _AMIGA_ && h_version == V6) {\r
+\r
+       user_reverse_fg = -1;\r
+       user_reverse_bg = -1;\r
+       zcolour[LIGHTGRAY] = LIGHTGREY_COLOUR;\r
+       zcolour[DARKGRAY] = DARKGREY_COLOUR;\r
+\r
+       special_palette ();\r
+\r
+    }\r
+\r
+    /* Set various bits in the configuration byte. These bits tell\r
+       the game which features are supported by the interpreter. */\r
+\r
+    if (h_version == V3 && user_tandy_bit != -1)\r
+       h_config |= CONFIG_TANDY;\r
+    if (h_version == V3)\r
+       h_config |= CONFIG_SPLITSCREEN;\r
+    if (h_version == V3 && (display == _MCGA_ || (display == _AMIGA_ && user_font != 0)))\r
+       h_config |= CONFIG_PROPORTIONAL;\r
+    if (h_version >= V4 && display != _MCGA_ && (user_bold_typing != -1 || display <= _TEXT_))\r
+       h_config |= CONFIG_BOLDFACE;\r
+    if (h_version >= V4)\r
+       h_config |= CONFIG_EMPHASIS | CONFIG_FIXED | CONFIG_TIMEDINPUT;\r
+    if (h_version >= V5 && display != _MONO_ && display != _CGA_)\r
+       h_config |= CONFIG_COLOUR;\r
+    if (h_version >= V5 && display >= _CGA_ && init_pictures ())\r
+       h_config |= CONFIG_PICTURES;\r
+\r
+    /* Handle various game flags. These flags are set if the game wants\r
+       to use certain features. The flags must be cleared if the feature\r
+       is not available. */\r
+\r
+    if (h_flags & GRAPHICS_FLAG)\r
+       if (display <= _TEXT_)\r
+           h_flags &= ~GRAPHICS_FLAG;\r
+    if (h_version == V3 && (h_flags & OLD_SOUND_FLAG))\r
+#ifdef SOUND_SUPPORT\r
+       if (!dos_init_sound ())\r
+#endif\r
+           h_flags &= ~OLD_SOUND_FLAG;\r
+    if (h_flags & SOUND_FLAG)\r
+#ifdef SOUND_SUPPORT\r
+       if (!dos_init_sound ())\r
+#endif\r
+           h_flags &= ~SOUND_FLAG;\r
+    if (h_version >= V5 && (h_flags & UNDO_FLAG))\r
+       if (!f_setup.undo_slots)\r
+           h_flags &= ~UNDO_FLAG;\r
+    if (h_flags & MOUSE_FLAG)\r
+       if (subdisplay != -1 || !detect_mouse ())\r
+           h_flags &= ~MOUSE_FLAG;\r
+    if (h_flags & COLOUR_FLAG)\r
+       if (display == _MONO_ || display == _CGA_)\r
+           h_flags &= ~COLOUR_FLAG;\r
+    h_flags &= ~MENU_FLAG;\r
+\r
+    /* Set the screen dimensions, font size and default colour */\r
+\r
+    h_screen_width = info[display].width;\r
+    h_screen_height = info[display].height;\r
+    h_font_height = info[display].font_height;\r
+    h_font_width = info[display].font_width;\r
+    h_default_foreground = info[display].fg;\r
+    h_default_background = info[display].bg;\r
+\r
+    if (subdisplay != -1) {\r
+       h_screen_width = subinfo[subdisplay].width;\r
+       h_screen_height = subinfo[subdisplay].height;\r
+    }\r
+\r
+    if (user_screen_width != -1)\r
+       h_screen_width = user_screen_width;\r
+    if (user_screen_height != -1)\r
+       h_screen_height = user_screen_height;\r
+\r
+    h_screen_cols = h_screen_width / h_font_width;\r
+    h_screen_rows = h_screen_height / h_font_height;\r
+\r
+    if (user_foreground != -1)\r
+       h_default_foreground = zcolour[user_foreground];\r
+    if (user_background != -1)\r
+       h_default_background = zcolour[user_background];\r
+\r
+    /* Set the interpreter number (a constant telling the game which\r
+       operating system it runs on) and the interpreter version. The\r
+       interpreter number has effect on V6 games and "Beyond Zork". */\r
+\r
+    h_interpreter_number = INTERP_MSDOS;\r
+    h_interpreter_version = 'F';\r
+\r
+    if (display == _AMIGA_)\r
+       h_interpreter_number = INTERP_AMIGA;\r
+\r
+     /* Install the fast_exit routine to handle the ctrl-break key */\r
+\r
+    oldvect = getvect (0x1b); setvect (0x1b, fast_exit);\r
+\r
+}/* os_init_screen */\r
+\r
+/*\r
+ * os_reset_screen\r
+ *\r
+ * Reset the screen before the program stops.\r
+ *\r
+ */\r
+\r
+void os_reset_screen (void)\r
+{\r
+\r
+    os_set_font (TEXT_FONT);\r
+    os_set_text_style (0);\r
+    os_display_string ((zchar *) "[Hit any key to exit.]");\r
+    os_read_key (0, TRUE);\r
+\r
+    cleanup ();\r
+\r
+}/* os_reset_screen */\r
+\r
+/*\r
+ * os_restart_game\r
+ *\r
+ * This routine allows the interface to interfere with the process of\r
+ * restarting a game at various stages:\r
+ *\r
+ *     RESTART_BEGIN - restart has just begun\r
+ *     RESTART_WPROP_SET - window properties have been initialised\r
+ *     RESTART_END - restart is complete\r
+ *\r
+ */\r
+\r
+void os_restart_game (int stage)\r
+{\r
+    int x, y;\r
+\r
+    if (story_id == BEYOND_ZORK)\r
+\r
+       if (stage == RESTART_BEGIN)\r
+\r
+           if ((display == _MCGA_ || display == _AMIGA_) && os_picture_data (1, &x, &y)) {\r
+\r
+               special_palette ();\r
+\r
+               asm mov ax,0x1010\r
+               asm mov bx,64\r
+               asm mov dh,0\r
+               asm mov ch,0\r
+               asm mov cl,0\r
+               asm int 0x10\r
+               asm mov ax,0x1010\r
+               asm mov bx,79\r
+               asm mov dh,0xff\r
+               asm mov ch,0xff\r
+               asm mov cl,0xff\r
+               asm int 0x10\r
+\r
+               os_draw_picture (1, 1, 1);\r
+               os_read_key (0, FALSE);\r
+\r
+               standard_palette ();\r
+\r
+           }\r
+\r
+}/* os_restart_game */\r
+\r
+/*\r
+ * os_random_seed\r
+ *\r
+ * Return an appropriate random seed value in the range from 0 to\r
+ * 32767, possibly by using the current system time.\r
+ *\r
+ */\r
+\r
+int os_random_seed (void)\r
+{\r
+\r
+    if (user_random_seed == -1) {\r
+\r
+       /* Use the time of day as seed value */\r
+\r
+       asm mov ah,0\r
+       asm int 0x1a\r
+\r
+       return _DX & 0x7fff;\r
+\r
+    } else return user_random_seed;\r
+\r
+}/* os_random_seed */\r
+\r
+\r
+\r
+/*\r
+ * os_path_open\r
+ *\r
+ * Open a file in the current directory.  If this fails then\r
+ * search the directories in the ZCODE_PATH environment variable,\r
+ * if it is defined, otherwise search INFOCOM_PATH.\r
+ *\r
+ */\r
+\r
+FILE *os_path_open (const char *name, const char *mode)\r
+{\r
+    FILE *fp;\r
+    char buf[MAX_FILE_NAME + 1];\r
+    char *p, *bp, lastch;\r
+\r
+    if ((fp = fopen (name, mode)) != NULL)\r
+        return fp;\r
+    if ((p = getenv ("ZCODE_PATH")) == NULL)\r
+        p = getenv ("INFOCOM_PATH");\r
+    if (p != NULL) {\r
+       while (*p) {\r
+           bp = buf;\r
+           while (*p && *p != OS_PATHSEP)\r
+               lastch = *bp++ = *p++;\r
+           if (lastch != '\\' && lastch != '/')\r
+               *bp++ = '\\';\r
+           strcpy (bp, name);\r
+           if ((fp = fopen (buf, mode)) != NULL)\r
+               return fp;\r
+           if (*p)\r
+               p++;\r
+       }\r
+    }\r
+    return NULL;\r
+}/* os_path_open */\r
+\r
diff --git a/src/dos/bcinput.c b/src/dos/bcinput.c
new file mode 100644 (file)
index 0000000..3ccca00
--- /dev/null
@@ -0,0 +1,999 @@
+/*
+ * file "BCinput.c"
+ *
+ * Borland C front end, input functions
+ *
+ */
+
+#include <bios.h>
+#include <string.h>
+#include <stdio.h>
+#include "frotz.h"
+#include "bcfrotz.h"
+
+#ifndef HISTORY_BUFSIZE
+#define HISTORY_BUFSIZE 500
+#endif
+
+extern bool is_terminator (zchar);
+
+extern bool read_yes_or_no (const char *);
+extern void read_string (int, zchar *);
+
+extern int completion (const zchar *, zchar *);
+
+static long limit = 0;
+
+static struct {
+    zchar buffer[HISTORY_BUFSIZE];
+    int latest;
+    int current;
+    int prefix_len;
+} history;
+
+static struct {
+    zchar *buffer;
+    int pos;
+    int length;
+    int max_length;
+    int width;
+    int max_width;
+} input;
+
+static bool overwrite = FALSE;
+
+int end_of_sound_flag;
+
+/*
+ * swap_colours
+ *
+ * This is a small helper function for switch_cursor. It swaps the
+ * current background and foreground colours.
+ *
+ */
+
+static void swap_colours (void)
+{
+    byte temp;
+
+    temp = text_fg;
+    text_fg = text_bg;
+    text_bg = temp;
+
+}/* swap_colours */
+
+/*
+ * switch_cursor
+ *
+ * Turn cursor on/off. If there is mouse support then turn the mouse
+ * pointer on/off as well. The cursor should not be moved and the
+ * contents of the screen should not be changed while the cursor is
+ * visible (because of the primitive cursor emulation we use here).
+ *
+ */
+
+static void switch_cursor (bool cursor)
+{
+
+    if (display <= _TEXT_) {
+
+       /* Use hardware cursor in text mode */
+
+       if (display == _MONO_)
+           _CX = overwrite ? 0x080f : 0x0a0b;
+       else
+           _CX = overwrite ? 0x0408 : 0x0506;
+
+       if (!cursor)
+           _CX = 0xffff;
+
+       asm mov ah,2
+       asm mov bh,0
+       asm mov dh,byte ptr cursor_y
+       asm mov dl,byte ptr cursor_x
+       asm int 0x10
+       asm mov ah,1
+       asm int 0x10
+
+    } else {
+
+       int saved_x = cursor_x;
+
+       if (cursor)
+           swap_colours ();
+
+       if (input.pos < input.length)
+           os_display_char (input.buffer[input.pos]);
+       else
+           os_display_char (' ');
+
+       if (cursor)
+           swap_colours ();
+
+       cursor_x = saved_x;
+
+    }
+
+}/* switch_cursor */
+
+/*
+ * get_current_time
+ *
+ * Return the current system time in 1/10 seconds.
+ *
+ */
+
+static long get_current_time (void)
+{
+    long time;
+
+    /* Get the current time of day measured in
+        65536 / 1,193,180 = 0.054925493
+       seconds. Multiply this value with
+        959 / 1746 = 0.54925544
+       to get the current time in 0.1 seconds. */
+
+    asm mov ah,0
+    asm int 0x1a
+    asm mov word ptr time,dx
+    asm mov word ptr time + 2,cx
+
+    return time * 959 / 1746;
+
+}/* get_current_time */
+
+/*
+ * set_timer
+ *
+ * Set a time limit of timeout/10 seconds if timeout is not zero;
+ * otherwise clear the time limit.
+ *
+ */
+
+static void set_timer (int timeout)
+{
+
+    limit = (timeout != 0) ? get_current_time () + timeout : 0;
+
+}/* set_timer */
+
+/*
+ * time_limit_hit
+ *
+ * Return true if a previously set time limit has been exceeded.
+ *
+ */
+
+static bool out_of_time (void)
+{
+
+    if (limit != 0) {
+
+       long now = get_current_time ();
+
+       if (now < 1L * 3600 * 10 && limit > 23L * 3600 * 10)
+           now += 24L * 3600 * 10;
+
+       return now >= limit;
+
+    } else return FALSE;
+
+}/* out_of_time */
+
+/*
+ * get_key
+ *
+ * Read a keypress or a mouse click. Returns...
+ *
+ *     ZC_TIME_OUT = time limit exceeded,
+ *     ZC_BACKSPACE = the backspace key,
+ *     ZC_RETURN = the return key,
+ *     ZC_HKEY_MIN...ZC_HKEY_MAX = a hot key,
+ *     ZC_ESCAPE = the escape key,
+ *     ZC_ASCII_MIN...ZC_ASCII_MAX = ASCII character,
+ *     ZC_ARROW_MIN...ZC_ARROW_MAX = an arrow key,
+ *     ZC_FKEY_MIN...ZC_FKEY_MAX = a function key,
+ *     ZC_NUMPAD_MIN...ZC_NUMPAD_MAX = a number pad key,
+ *     ZC_SINGLE_CLICK = single mouse click,
+ *     ZC_DOUBLE_CLICK = double mouse click,
+ *     ZC_LATIN1_MIN+1...ZC_LATIN1_MAX = ISO Latin-1 character,
+ *     SPECIAL_KEY_MIN...SPECIAL_KEY_MAX = a special editing key.
+ *
+ */
+
+static int get_key (bool cursor)
+{
+    static byte arrow_key_map[] = {
+       0x48, 0x50, 0x4b, 0x4d
+    };
+    static byte special_key_map[] = {
+       0x47, 0x4f, 0x73, 0x74, 0x53, 0x52, 0x49, 0x51, 0x0f
+    };
+    static byte hot_key_map[] = {
+       0x13, 0x19, 0x1f, 0x16, 0x31, 0x2d, 0x20, 0x23
+    };
+
+    int key;
+
+    /* Loop until a key was pressed */
+
+    if (cursor)
+       switch_cursor (TRUE);
+
+    if (h_flags & MOUSE_FLAG) {
+       asm mov ax,1
+       asm int 0x33
+    }
+
+    do {
+
+#ifdef SOUND_SUPPORT
+       if (end_of_sound_flag)
+           end_of_sound ();
+#endif
+
+       if (_bios_keybrd (_KEYBRD_READY)) {
+
+           word code = _bios_keybrd (_KEYBRD_READ);
+           byte code0 = code;
+           byte code1 = code >> 8;
+
+           if (code0 != 0 && code0 != 9) {
+
+               key = code0 - '0' + ZC_NUMPAD_MIN;
+               if (key >= ZC_NUMPAD_MIN && key <= ZC_NUMPAD_MAX
+                   && code1 >= 0x10)
+                   goto exit_loop;
+
+               for (key = ZC_LATIN1_MIN + 1; key <= ZC_LATIN1_MAX; key++)
+                   if (code0 == latin1_to_ibm[key - ZC_LATIN1_MIN])
+                       goto exit_loop;
+
+               key = code0;
+
+               if (key == ZC_BACKSPACE)
+                   goto exit_loop;
+               if (key == ZC_RETURN)
+                   goto exit_loop;
+               if (key == ZC_ESCAPE)
+                   goto exit_loop;
+               if (key >= ZC_ASCII_MIN && key <= ZC_ASCII_MAX)
+                   goto exit_loop;
+
+           } else {
+
+               for (key = ZC_ARROW_MIN; key <= ZC_ARROW_MAX; key++)
+                   if (code1 == arrow_key_map[key - ZC_ARROW_MIN])
+                       goto exit_loop;
+
+               key = code1 - 0x3b + ZC_FKEY_MIN;
+               if (key >= ZC_FKEY_MIN && key <= ZC_FKEY_MAX - 2)
+                   goto exit_loop;
+
+               for (key = ZC_HKEY_MIN; key <= ZC_HKEY_MAX; key++)
+                   if (code1 == hot_key_map[key - ZC_HKEY_MIN])
+                       goto exit_loop;
+
+               for (key = SPECIAL_KEY_MIN; key <= SPECIAL_KEY_MAX; key++)
+                   if (code1 == special_key_map[key - SPECIAL_KEY_MIN])
+                       goto exit_loop;
+
+           }
+
+       } else {
+
+           int clicks = read_mouse ();
+
+           if (clicks == 1)
+               { key = ZC_SINGLE_CLICK; goto exit_loop; }
+           if (clicks == 2)
+               { key = ZC_DOUBLE_CLICK; goto exit_loop; }
+
+       }
+
+       key = ZC_TIME_OUT;
+
+    } while (!out_of_time ());
+
+exit_loop:
+
+    if (h_flags & MOUSE_FLAG) {
+       asm mov ax,2
+       asm int 0x33
+    }
+
+    if (cursor)
+       switch_cursor (FALSE);
+
+    return key;
+
+}/* get_key */
+
+/*
+ * cursor_left
+ *
+ * Move the cursor one character to the left.
+ *
+ */
+
+static void cursor_left (void)
+{
+
+    if (input.pos > 0)
+       cursor_x -= os_char_width (input.buffer[--input.pos]);
+
+}/* cursor_left */
+
+/*
+ * cursor_right
+ *
+ * Move the cursor one character to the right.
+ *
+ */
+
+static void cursor_right (void)
+{
+
+    if (input.pos < input.length)
+       cursor_x += os_char_width (input.buffer[input.pos++]);
+
+}/* cursor_right */
+
+/*
+ * first_char
+ *
+ * Move the cursor to the beginning of the input line.
+ *
+ */
+
+static void first_char (void)
+{
+
+    while (input.pos > 0)
+       cursor_left ();
+
+}/* first_char */
+
+/*
+ * last_char
+ *
+ * Move the cursor to the end of the input line.
+ *
+ */
+
+static void last_char (void)
+{
+
+    while (input.pos < input.length)
+       cursor_right ();
+
+}/* last_char */
+
+/*
+ * prev_word
+ *
+ * Move the cursor to the start of the previous word.
+ *
+ */
+
+static void prev_word (void)
+{
+
+    do {
+
+       cursor_left ();
+
+       if (input.pos == 0)
+           return;
+
+    } while (input.buffer[input.pos] == ' ' || input.buffer[input.pos - 1] != ' ');
+
+}/* prev_word */
+
+/*
+ * next_word
+ *
+ * Move the cursor to the start of the next word.
+ *
+ */
+
+static void next_word (void)
+{
+
+    do {
+
+       cursor_right ();
+
+       if (input.pos == input.length)
+           return;
+
+    } while (input.buffer[input.pos] == ' ' || input.buffer[input.pos - 1] != ' ');
+
+}/* next_word */
+
+/*
+ * input_move
+ *
+ * Helper function to move parts of the input buffer:
+ *
+ *    newc != 0, oldc == 0: INSERT
+ *    newc != 0, oldc != 0: OVERWRITE
+ *    newc == 0, oldc != 0: DELETE
+ *    newc == 0, oldc == 0: NO OPERATION
+ *
+ */
+
+#define H(x) (x ? 1 : 0)
+
+static void input_move (zchar newc, zchar oldc)
+{
+    int newwidth = (newc != 0) ? os_char_width (newc) : 0;
+    int oldwidth = (oldc != 0) ? os_char_width (oldc) : 0;
+
+    zchar *p = input.buffer + input.pos;
+
+    int saved_x = cursor_x;
+
+    int updated_width = input.width + newwidth - oldwidth;
+    int updated_length = input.length + H (newc) - H (oldc);
+
+    if (updated_width > input.max_width)
+       return;
+    if (updated_length > input.max_length)
+       return;
+
+    input.width = updated_width;
+    input.length = updated_length;
+
+    if (oldc != 0 && newc == 0)
+       memmove (p, p + 1, updated_length - input.pos + 1);
+    if (newc != 0 && oldc == 0)
+       memmove (p + 1, p, updated_length - input.pos);
+
+    if (newc != 0)
+       *p = newc;
+
+    os_display_string (p);
+
+    switch_scrn_attr (TRUE);
+
+    if (oldwidth > newwidth)
+
+       os_erase_area (
+           cursor_y + 1,
+           cursor_x + 1,
+           cursor_y + h_font_height,
+           cursor_x + oldwidth - newwidth);
+
+    switch_scrn_attr (FALSE);
+
+    cursor_x = saved_x;
+
+    if (newc != 0)
+       cursor_right ();
+
+}/* input_move */
+
+#undef H(x)
+
+/*
+ * delete_char
+ *
+ * Delete the character below the cursor.
+ *
+ */
+
+static void delete_char (void)
+{
+
+    input_move (0, input.buffer[input.pos]);
+
+}/* delete_char */
+
+/*
+ * delete_left
+ *
+ * Delete the character to the left of the cursor.
+ *
+ */
+
+static void delete_left (void)
+{
+
+    if (input.pos > 0) {
+       cursor_left ();
+       delete_char ();
+    }
+
+}/* delete_left */
+
+/*
+ * truncate_line
+ *
+ * Truncate the input line to n characters.
+ *
+ */
+
+static void truncate_line (int n)
+{
+
+    last_char ();
+
+    while (input.length > n)
+       delete_left ();
+
+}/* truncate_line */
+
+/*
+ * insert_char
+ *
+ * Insert a character into the input buffer.
+ *
+ */
+
+static void insert_char (zchar newc)
+{
+    zchar oldc = 0;
+
+    if (overwrite)
+       oldc = input.buffer[input.pos];
+
+    input_move (newc, oldc);
+
+}/* insert_char */
+
+/*
+ * insert_string
+ *
+ * Add a string of characters to the input line.
+ *
+ */
+
+static void insert_string (const zchar *s)
+{
+
+    while (*s != 0) {
+
+       if (input.length + 1 > input.max_length)
+           break;
+       if (input.width + os_char_width (*s) > input.max_width)
+           break;
+
+       insert_char (*s++);
+
+    }
+
+}/* insert_string */
+
+/*
+ * tabulator_key
+ *
+ * Complete the word at the end of the input line, if possible.
+ *
+ */
+
+static void tabulator_key (void)
+{
+    int status;
+
+    if (input.pos == input.length) {
+
+       zchar extension[10];
+
+       status = completion (input.buffer, extension);
+       insert_string (extension);
+
+    } else status = 2;
+
+    /* Beep if the completion was impossible or ambiguous */
+
+    if (status != 0)
+       os_beep (status);
+
+}/* tabulator_key */
+
+/*
+ * store_input
+ *
+ * Copy the current input line to the history buffer.
+ *
+ */
+
+static void store_input (void)
+{
+
+    if (input.length >= HISTORY_MIN_ENTRY) {
+
+       const zchar *ptr = input.buffer;
+
+       do {
+
+           if (history.latest++ == HISTORY_BUFSIZE - 1)
+               history.latest = 0;
+
+           history.buffer[history.latest] = *ptr;
+
+       } while (*ptr++ != 0);
+
+    }
+
+}/* store_input */
+
+/*
+ * fetch_entry
+ *
+ * Copy the current history entry to the input buffer and check if it
+ * matches the prefix in the input buffer.
+ *
+ */
+
+static bool fetch_entry (zchar *buf, int entry)
+{
+    int i = 0;
+
+    zchar c;
+
+    do {
+
+       if (entry++ == HISTORY_BUFSIZE - 1)
+           entry = 0;
+
+       c = history.buffer[entry];
+
+       if (i < history.prefix_len && input.buffer[i] != c)
+           return FALSE;
+
+       buf[i++] = c;
+
+    } while (c != 0);
+
+    return (i > history.prefix_len) && (i > 1);
+
+}/* fetch_entry */
+
+/*
+ * get_prev_entry
+ *
+ * Copy the previous history entry to the input buffer.
+ *
+ */
+
+static void get_prev_entry (void)
+{
+    zchar buf[INPUT_BUFFER_SIZE];
+
+    int i = history.current;
+
+    do {
+
+       do {
+
+           if (i-- == 0)
+               i = HISTORY_BUFSIZE - 1;
+
+           if (i == history.latest)
+               return;
+
+       } while (history.buffer[i] != 0);
+
+    } while (!fetch_entry (buf, i));
+
+    truncate_line (history.prefix_len);
+
+    insert_string (buf + history.prefix_len);
+
+    history.current = i;
+
+}/* get_prev_entry */
+
+/*
+ * get_next_entry
+ *
+ * Copy the next history entry to the input buffer.
+ *
+ */
+
+static void get_next_entry (void)
+{
+    zchar buf[INPUT_BUFFER_SIZE];
+
+    int i = history.current;
+
+    truncate_line (history.prefix_len);
+
+    do {
+
+       do {
+
+           if (i == history.latest)
+               return;
+
+           if (i++ == HISTORY_BUFSIZE - 1)
+               i = 0;
+
+       } while (history.buffer[i] != 0);
+
+       if (i == history.latest)
+           goto no_further;
+
+    } while (!fetch_entry (buf, i));
+
+    insert_string (buf + history.prefix_len);
+
+no_further:
+
+    history.current = i;
+
+}/* get_next_entry */
+
+/*
+ * os_read_line
+ *
+ * Read a line of input from the keyboard into a buffer. The buffer
+ * may already be primed with some text. In this case, the "initial"
+ * text is already displayed on the screen. After the input action
+ * is complete, the function returns with the terminating key value.
+ * The length of the input should not exceed "max" characters plus
+ * an extra 0 terminator.
+ *
+ * Terminating keys are the return key (13) and all function keys
+ * (see the Specification of the Z-machine) which are accepted by
+ * the is_terminator function. Mouse clicks behave like function
+ * keys except that the mouse position is stored in global variables
+ * "mouse_x" and "mouse_y" (top left coordinates are (1,1)).
+ *
+ * Furthermore, Frotz introduces some special terminating keys:
+ *
+ *     ZC_HKEY_PLAYBACK (Alt-P)
+ *     ZC_HKEY_RECORD (Alt-R)
+ *     ZC_HKEY_SEED (Alt-S)
+ *     ZC_HKEY_UNDO (Alt-U)
+ *     ZC_HKEY_RESTART (Alt-N, "new game")
+ *     ZC_HKEY_QUIT (Alt-X, "exit game")
+ *     ZC_HKEY_DEBUGGING (Alt-D)
+ *     ZC_HKEY_HELP (Alt-H)
+ *
+ * If the timeout argument is not zero, the input gets interrupted
+ * after timeout/10 seconds (and the return value is 0).
+ *
+ * The complete input line including the cursor must fit in "width"
+ * screen units.
+ *
+ * The function may be called once again to continue after timeouts,
+ * misplaced mouse clicks or hot keys. In this case the "continued"
+ * flag will be set. This information can be useful if the interface
+ * implements input line history.
+ *
+ * The screen is not scrolled after the return key was pressed. The
+ * cursor is at the end of the input line when the function returns.
+ *
+ * Since Inform 2.2 the helper function "completion" can be called
+ * to implement word completion (similar to tcsh under Unix).
+ *
+ */
+
+#define new_history_search() \
+    { history.prefix_len = input.pos; history.current = history.latest; }
+
+zchar os_read_line (int max, zchar *buf, int timeout, int width, int continued)
+{
+    int key = continued ? 9999 : 0;
+
+    /* Initialise input variables */
+
+    input.buffer = buf;
+    input.pos = strlen ((char *) buf);
+    input.length = strlen ((char *) buf);
+    input.max_length = max;
+    input.width = os_string_width (buf);
+    input.max_width = width - os_char_width (' ');
+
+    /* Calculate time limit */
+
+    set_timer (timeout);
+
+    /* Loop until a terminator is found */
+
+    do {
+
+       if (key != 9999)
+           new_history_search ();
+
+       /* Get next key from mouse or keyboard */
+
+       key = get_key (TRUE);
+
+       if (key < ZC_ASCII_MIN || key > ZC_ASCII_MAX && key < ZC_LATIN1_MIN || key > ZC_LATIN1_MAX) {
+
+           /* Ignore time-outs if the cursor is not at end of the line */
+
+           if (key == ZC_TIME_OUT && input.pos < input.length)
+               key = 9999;
+
+           /* Backspace, return and escape keys */
+
+           if (key == ZC_BACKSPACE)
+               delete_left ();
+           if (key == ZC_RETURN)
+               store_input ();
+           if (key == ZC_ESCAPE)
+               truncate_line (0);
+
+           /* Editing keys */
+
+           if (cwin == 0) {
+
+               if (key == ZC_ARROW_UP)
+                   get_prev_entry ();
+               if (key == ZC_ARROW_DOWN)
+                   get_next_entry ();
+               if (key == ZC_ARROW_LEFT)
+                   cursor_left ();
+               if (key == ZC_ARROW_RIGHT)
+                   cursor_right ();
+
+               if (key >= ZC_ARROW_MIN && key <= ZC_ARROW_MAX)
+                   key = 9999;
+
+               if (key == SPECIAL_KEY_HOME)
+                   first_char ();
+               if (key == SPECIAL_KEY_END)
+                   last_char ();
+               if (key == SPECIAL_KEY_WORD_LEFT)
+                   prev_word ();
+               if (key == SPECIAL_KEY_WORD_RIGHT)
+                   next_word ();
+               if (key == SPECIAL_KEY_DELETE)
+                   delete_char ();
+               if (key == SPECIAL_KEY_INSERT)
+                   overwrite = !overwrite;
+               if (key == SPECIAL_KEY_TAB)
+                   tabulator_key ();
+
+           }
+
+           if (key == SPECIAL_KEY_PAGE_UP)
+               key = ZC_ARROW_UP;
+           if (key == SPECIAL_KEY_PAGE_DOWN)
+               key = ZC_ARROW_DOWN;
+
+       } else insert_char (key);
+
+    } while (key > 0xff || !is_terminator (key));
+
+    last_char ();
+
+    overwrite = FALSE;
+
+    /* Return terminating key */
+
+    return key;
+
+}/* os_read_line */
+
+#undef new_history_search()
+
+/*
+ * os_read_key
+ *
+ * Read a single character from the keyboard (or a mouse click) and
+ * return it. Input aborts after timeout/10 seconds.
+ *
+ */
+
+zchar os_read_key (int timeout, bool cursor)
+{
+    int key;
+
+    set_timer (timeout);
+
+    do {
+
+       key = get_key (cursor);
+
+    } while (key > 0xff);
+
+    return key;
+
+}/* os_read_key */
+
+/*
+ * os_read_file_name
+ *
+ * Return the name of a file. Flag can be one of:
+ *
+ *    FILE_SAVE     - Save game file
+ *    FILE_RESTORE  - Restore game file
+ *    FILE_SCRIPT   - Transscript file
+ *    FILE_RECORD   - Command file for recording
+ *    FILE_PLAYBACK - Command file for playback
+ *    FILE_SAVE_AUX - Save auxilary ("preferred settings") file
+ *    FILE_LOAD_AUX - Load auxilary ("preferred settings") file
+ *
+ * The length of the file name is limited by MAX_FILE_NAME. Ideally
+ * an interpreter should open a file requester to ask for the file
+ * name. If it is unable to do that then this function should call
+ * print_string and read_string to ask for a file name.
+ *
+ */
+
+int os_read_file_name (char *file_name, const char *default_name, int flag)
+{
+    char *extension;
+    FILE *fp;
+    bool terminal;
+    bool result;
+
+    bool saved_replay = istream_replay;
+    bool saved_record = ostream_record;
+
+    /* Turn off playback and recording temporarily */
+
+    istream_replay = FALSE;
+    ostream_record = FALSE;
+
+    /* Select appropriate extension */
+
+    extension = ".aux";
+
+    if (flag == FILE_SAVE || flag == FILE_RESTORE)
+       extension = ".sav";
+    if (flag == FILE_SCRIPT)
+       extension = ".scr";
+    if (flag == FILE_RECORD || flag == FILE_PLAYBACK)
+       extension = ".rec";
+
+    /* Input file name (reserve four bytes for a file name extension) */
+
+    print_string ("Enter file name (\"");
+    print_string (extension);
+    print_string ("\" will be added).\nDefault is \"");
+    print_string (default_name);
+    print_string ("\": ");
+
+    read_string (MAX_FILE_NAME - 4, (zchar *) file_name);
+
+    /* Use the default name if nothing was typed */
+
+    if (file_name[0] == 0)
+       strcpy (file_name, default_name);
+    if (strchr (file_name, '.') == NULL)
+       strcat (file_name, extension);
+
+    /* Make sure it is safe to use this file name */
+
+    result = TRUE;
+
+    /* OK if the file is opened for reading */
+
+    if (flag != FILE_SAVE && flag != FILE_SAVE_AUX && flag != FILE_RECORD)
+       goto finished;
+
+    /* OK if the file does not exist */
+
+    if ((fp = fopen (file_name, "rb")) == NULL)
+       goto finished;
+
+    /* OK if this is a pseudo-file (like PRN, CON, NUL) */
+
+    terminal = fp->flags & _F_TERM;
+
+    fclose (fp);
+
+    if (terminal)
+       goto finished;
+
+    /* OK if user wants to overwrite */
+
+    result = read_yes_or_no ("Overwrite existing file");
+
+finished:
+
+    /* Restore state of playback and recording */
+
+    istream_replay = saved_replay;
+    ostream_record = saved_record;
+
+    return result;
+
+}/* os_read_file_name */
diff --git a/src/dos/bcmouse.c b/src/dos/bcmouse.c
new file mode 100644 (file)
index 0000000..0a38ce2
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * file "BCmouse.c"
+ *
+ * Borland C front end, mouse support
+ *
+ */
+
+#include <dos.h>
+#include "frotz.h"
+#include "bcfrotz.h"
+
+/*
+ * detect_mouse
+ *
+ * Return true if a mouse driver is present.
+ *
+ */
+
+bool detect_mouse (void)
+{
+
+    asm xor ax,ax
+    asm int 0x33
+
+    return _AX;
+
+}/* detect_mouse */
+
+/*
+ * read_mouse
+ *
+ * Report any mouse clicks. Return 2 for a double click, 1 for a single
+ * click or 0 if there was no mouse activity at all.
+ *
+ */
+
+int read_mouse (void)
+{
+    int click;
+
+    /* Read the current mouse status */
+
+    for (click = 0; click < 2; click++) {
+
+       if (click == 1)
+           delay (222);
+
+       asm mov ax,6
+       asm xor bx,bx
+       asm int 0x33
+
+       if (_BX == 0)
+           break;
+
+       mouse_x = _CX;
+       mouse_y = _DX;
+
+       if (display <= _TEXT_) {
+           mouse_x /= 8;
+           mouse_y /= 8;
+       }
+
+       if (display == _MCGA_)
+           mouse_x /= 2;
+
+       mouse_x++;
+       mouse_y++;
+
+    }
+
+    /* Return single or double click */
+
+    return click;
+
+}/* read_mouse */
diff --git a/src/dos/bcpic.c b/src/dos/bcpic.c
new file mode 100644 (file)
index 0000000..bd42fc3
--- /dev/null
@@ -0,0 +1,683 @@
+/*
+ * "BCpic.c"
+ *
+ * Borland C front end, picture functions
+ *
+ */
+
+#include <alloc.h>
+#include <dos.h>
+#include <stdio.h>
+#include <string.h>
+#include "frotz.h"
+#include "BCfrotz.h"
+
+#define PIC_NUMBER 0
+#define PIC_WIDTH 2
+#define PIC_HEIGHT 4
+#define PIC_FLAGS 6
+#define PIC_DATA 8
+#define PIC_COLOUR 11
+
+#define READ_BYTE(v,p,o)       v = *(byte far *)(p+o)
+#define READ_WORD(v,p,o)       v = *(word far *)(p+o)
+
+/* This may be troublesome later */
+/* extern byte far *get_scrnptr (int); */
+extern unsigned long get_scrnptr (int);
+
+extern FILE *os_path_open (const char *, const char *);
+
+static struct {
+    byte fileno;
+    byte flags;
+    word unused1;
+    word images;
+    word link;
+    byte entry_size;
+    byte padding;
+    word checksum;
+    word unused2;
+    word version;
+} gheader;
+
+int scaler = 1;
+
+static word pic_width = 0;
+static word pic_height = 0;
+static word pic_flags = 0;
+static long pic_data = 0;
+static long pic_colour = 0;
+
+static byte far *table_val = NULL;
+static word far *table_ref = NULL;
+
+static FILE *file = NULL;
+static byte far *info = NULL;
+
+/*
+ * open_graphics_file
+ *
+ * Open a graphics file. EGA pictures may be stored in two separate
+ * graphics files.
+ *
+ */
+
+static bool open_graphics_file (int number)
+{
+    char fname[MAX_FILE_NAME + 1];
+    char extension[4 + 1];
+
+    /* Build graphics file name */
+
+    extension[0] = '.';
+    extension[1] = "cmem"[display - 2];
+    extension[2] = 'g';
+    extension[3] = '0' + number;
+    extension[4] = 0;
+
+    /* Why does DOS not like "graphics\\" anymore? */
+    strcpy (fname, "graphics/");
+    strcat (fname, stripped_story_name);
+    strcat (fname, extension);
+
+    /* Open file, load header, allocate memory, load picture directory */
+
+    if ((file = fopen (fname, "rb")) == NULL)
+       goto failure1;
+    if (fread (&gheader, sizeof (gheader), 1, file) != 1)
+       goto failure2;
+    if ((info = farmalloc (gheader.images * gheader.entry_size)) == NULL)
+       goto failure2;
+    if (fread (info, gheader.entry_size, gheader.images, file) != gheader.images)
+       goto failure3;
+    return TRUE;
+
+failure3:
+    farfree (info); info = NULL;
+failure2:
+    fclose (file); file = NULL;
+failure1:
+    return FALSE;
+
+}/* open_graphics_file */
+
+/*
+ * close_graphics_file
+ *
+ * Free resources allocated for pictures.
+ *
+ */
+
+static void close_graphics_file (void)
+{
+
+    if (file != NULL)
+       { fclose (file); file = NULL; }
+    if (info != NULL)
+       { farfree (info); info = NULL; }
+
+}/* close_graphics_file */
+
+/*
+ * init_pictures
+ *
+ * Prepare to draw pictures. Return true if pictures are available.
+ *
+ */
+
+bool init_pictures (void)
+{
+
+    /* Allocate memory for decompression */
+
+    table_val = (byte far *) farmalloc (3 * 3840);
+    table_ref = (word far *) (table_val + 3840);
+
+    if (table_val == NULL)
+       return FALSE;
+
+    /* Open the [first of two] graphics file[s] */
+
+    return open_graphics_file (1);
+
+}/* init_pictures */
+
+/*
+ * reset_pictures
+ *
+ * Free resources allocated for decompression of pictures.
+ *
+ */
+
+void reset_pictures (void)
+{
+
+    if (table_val != NULL)
+       { farfree (table_val); table_val = NULL; }
+    if (file != NULL)
+       { fclose (file); file = NULL; }
+    if (info != NULL)
+       { farfree (info); info = NULL; }
+
+}/* reset_pictures */
+
+/*
+ * load_picture_info
+ *
+ * Helper function for os_picture_data. Load all information about
+ * the given picture from the graphics file and store it in global
+ * variables.
+ *
+ */
+
+static bool load_picture_info (int picture)
+{
+    byte far *ptr;
+    byte fileno;
+
+    fileno = gheader.fileno;
+
+    do {
+
+       int i;
+
+       /* Abort if there is a problem with the graphics file */
+
+       if (file == NULL)
+           return FALSE;
+
+       /* Scan the directory of the current graphics file */
+
+       ptr = info;
+
+       for (i = 0; i < gheader.images; i++) {
+
+           if (picture == * (int far *) ptr) {
+
+               READ_WORD (pic_width, ptr, PIC_WIDTH);
+               READ_WORD (pic_height, ptr, PIC_HEIGHT);
+               READ_WORD (pic_flags, ptr, PIC_FLAGS);
+
+               pic_height *= scaler;
+               pic_width *= scaler;
+
+               READ_BYTE (byte0 (pic_data), ptr, PIC_DATA + 2);
+               READ_BYTE (byte1 (pic_data), ptr, PIC_DATA + 1);
+               READ_BYTE (byte2 (pic_data), ptr, PIC_DATA);
+
+               if (gheader.entry_size > PIC_COLOUR + 2) {
+
+                   READ_BYTE (byte0 (pic_colour), ptr, PIC_COLOUR + 2);
+                   READ_BYTE (byte1 (pic_colour), ptr, PIC_COLOUR + 1);
+                   READ_BYTE (byte2 (pic_colour), ptr, PIC_COLOUR);
+
+               } else pic_colour = 0;
+
+               return TRUE;
+
+           }
+
+           ptr += gheader.entry_size;
+
+       }
+
+       /* Close current graphics file */
+
+       close_graphics_file ();
+
+       /* Open next graphics file */
+
+       open_graphics_file ((gheader.link != 0) ? gheader.fileno + 1 : 1);
+
+    } while (fileno != gheader.fileno);
+
+    return FALSE;
+
+}/* load_picture_info */
+
+/*
+ * load_colour_map
+ *
+ * Helper function for os_draw_picture. Load a colour map from the
+ * graphics file then copy it to the palette registers.
+ *
+ */
+
+static void load_colour_map (int first_colour)
+{
+    byte rgb[42];
+    int n, i;
+
+    fseek (file, pic_colour, SEEK_SET);
+
+    /* Some pictures from Arthur mistakenly claim to have 16 colours */
+
+    if ((n = fgetc (file)) == 16)
+       n = 14;
+
+    /* Each colour is stored in three bytes R-G-B */
+
+    fread (rgb, 3, n, file);
+
+    /* MCGA boards can only handle R-G-B values from 0 to 63 */
+
+    for (i = 0; i < 42; i++)
+       rgb[i] = (rgb[i] * 63 + 128) / 255;
+
+    /* Synchronise with vertical retrace */
+
+    while ((inportb (0x03da) & 8) == 0);
+    while ((inportb (0x03da) & 8) == 8);
+
+    /* Copy colours to palette registers */
+
+    asm mov ax,0x1012
+    asm mov bx,first_colour
+    asm mov cx,n
+    asm lea dx,rgb
+    asm push ss
+    asm pop es
+    asm int 0x10
+
+}/* load_colour_map */
+
+/*
+ * draw_picture
+ *
+ * Helper function for os_draw_picture. The real work of drawing a
+ * picture happens here.
+ *
+ */
+
+#pragma warn -def
+
+static void pascal draw_picture (int y, int x)
+{
+    static int raise_bits[4] = {
+       0x0100, 0x0300, 0x0700, 0x0000
+    };
+
+    byte buf[512];
+    unsigned long screen;
+    byte transparent;
+    byte colour_shift;
+    int first_colour;
+    int code, prev_code;
+    int next_entry;
+    int bits_per_code;
+    int bits_shift;
+    int bits;
+    int current_y;
+    int current_x;
+    int bufpos;
+    int pixels;
+    int i;
+
+    bufpos = 0;
+
+    /* When the given picture provides a colour map then activate it.
+       This is only used for MCGA pictures; the colour map affects
+       every picture on the screen. The first colour to be defined is
+       colour 2. Every map defines up to 14 colours (colour 2 to 15).
+       These colours are not related to the standard Z-machine colour
+       scheme which remains unchanged. (This is based on the Amiga
+       interpreter which had to work with 16 colours. Colours 0 and 1
+       were used for text; changing the text colours actually changed
+       palette entries 0 and 1. This interface uses the same trick in
+       Amiga mode.) */
+
+    if (display == _CGA_)
+       colour_shift = -2;
+    if (display == _EGA_)
+       colour_shift = 0;
+    if (display == _MCGA_)
+       { colour_shift = 32; first_colour = 34; }
+    if (display == _AMIGA_)
+       { colour_shift = -1; first_colour = 65; }
+
+    if (pic_colour != 0)
+       load_colour_map (first_colour);
+
+    fseek (file, pic_data, SEEK_SET);
+
+    /* Bit 0 of "flags" indicates that the picture uses a transparent
+       colour, the top four bits tell us which colour it is. For CGA
+       and MCGA pictures this is always 0; for EGA pictures it can be
+       any colour between 0 and 15. */
+
+    transparent = 0xff;
+
+    if (pic_flags & 1)
+       transparent = pic_flags >> 12;
+
+    /* Prepare EGA hardware for setting pixels */
+
+    if (display >= _EGA_) {
+       outport (0x03ce, 0x0205);
+       outport (0x03ce, 0xff08);
+    }
+
+    /* The uncompressed picture is a long sequence of bytes. Every
+       byte holds the colour of a pixel, starting at the top left,
+       stopping at the bottom right. We keep track of our position
+       in the current line. (There is a special case: CGA pictures
+       with no transparent colour are stored as bit patterns, i.e.
+       every byte holds the pattern for eight pixels. A pixel must
+       be white if the corresponding bit is set, otherwise it must
+       be black.) */
+
+    current_x = x + pic_width;
+    current_y = y - 1;
+
+    /* The compressed picture is a stream of bits. We read the file
+       byte-wise, storing the current byte in the variable "bits".
+       Several bits make one code; the variable "bits_shift" helps
+       us to build the next code. */
+
+    bits_shift = 0;
+    bits = 0;
+
+reset_table:
+
+    /* Clear the table. We use a table of 3840 entries. Each entry
+       consists of both a value and a reference to another table
+       entry. Following these references we get a sequence of
+       values. At the start of decompression all table entries are
+       undefined. Later we see how entries are set and used. */
+
+    next_entry = 1;
+
+    /* At the start of decompression 9 bits make one code; during
+       the process this can rise to 12 bits per code. 9 bits are
+       sufficient to address both 256 literal values and 256 table
+       entries; 12 bits are sufficient to address both 256 literal
+       values and all 3840 table entries. The number of bits per
+       code rises with the number of table entries. When the table
+       is cleared, the number of bits per code drops back to 9. */
+
+    bits_per_code = 9;
+
+next_code:
+
+    /* Read the next code from the graphics file. This requires
+       some confusing bit operations. Note that low bits always
+       come first. Usually there are a few bits left over from
+       the previous code; these bits must be used before further
+       bits are read from the graphics file. */
+
+    code = bits >> (8 - bits_shift);
+
+    do {
+
+       bits = fgetc (file);
+
+       code |= bits << bits_shift;
+
+       bits_shift += 8;
+
+    } while (bits_shift < bits_per_code);
+
+    bits_shift -= bits_per_code;
+
+    code &= 0xfff >> (12 - bits_per_code);
+
+    /* There are two codes with a special meaning. The first one
+       is 256 which clears the table and sets the number of bits
+       per code to 9. (This is necessary when the table is full.)
+       The second one is 257 which marks the end of the picture.
+       For the sake of efficiency, we drecement the code by 256. */
+
+    code -= 256;
+
+    if (code == 0)
+       goto reset_table;
+    if (code == 1)
+       return;
+
+    /* Codes from 0 to 255 are literals, i.e. they represent a
+       plain byte value. Codes from 258 onwards are references
+       to table entries, i.e. they represent a sequence of byte
+       values (see the remarks on the table above). This means
+       that for each code one or several byte values are added
+       to the decompressed picture. But there is yet more work
+       to do: Every time we read a code one table entry is set.
+       As we said above, a table entry consist of both a value
+       and a reference to another table entry. If the current
+       code is a literal, then the value has to be set to this
+       literal; but if the code refers to a sequence of byte
+       values, then the value has to be set to the last byte of
+       this sequence. In any case, the reference is set to the
+       previous code. Finally, one should be aware that a code
+       may legally refer to the table entry which is currently
+       being set. This requires some extra care. */
+
+    table_ref[next_entry] = prev_code;
+
+    prev_code = code;
+
+    while (code >= 0) {
+       buf[bufpos++] = table_val[code];
+       code = (short) table_ref[code];
+    }
+
+    if (next_entry == prev_code)
+       buf[0] = code;
+
+    table_val[next_entry] = code;
+
+    /* The number of bits per code is incremented when the current
+       number of bits no longer suffices to address all defined
+       table entries; but in any case the number of bits may never
+       be greater than 12. */
+
+    next_entry++;
+
+    if (next_entry == raise_bits[bits_per_code - 9])
+       bits_per_code++;
+
+reverse_buffer:
+
+    /* Append the sequence of byte values (pixels) to the picture.
+       The order of the sequence must be reversed. (This is why we
+       have stored the sequence in a buffer; experiments show that
+       a buffer of 512 bytes suffices.) The sequence of values may
+       spread over several lines of the picture, so we must take
+       care to start a new line when we reach the right border of
+       the picture. */
+
+    if (current_x == x + pic_width) {
+
+       screen = get_scrnptr (current_y);
+
+       current_x -= pic_width;
+       current_y += scaler;
+
+    }
+
+    /* Either add a single pixel or a pattern of eight bits (b/w
+       CGA pictures without a transparent colour) to the current
+       line. Increment our position by 1 or 8 respectively. The
+       pixel may have to be painted several times if the scaling
+       factor is greater than one. */
+
+    if (display == _CGA_ && transparent == 0xff) {
+
+       pixels = x + pic_width - current_x;
+
+       if (pixels > 8)
+           pixels = 8;
+
+       asm les bx,screen
+       asm mov dx,current_x
+       asm dec dx
+       asm push dx
+       asm mov cl,3
+       asm shr dx,cl
+       asm add bx,dx
+       asm mov ax,es:[bx]
+       asm mov dx,0xffff
+       asm mov cl,byte ptr pixels
+       asm shr dl,cl
+       asm pop cx
+       asm and cl,7
+       asm ror dx,cl
+       asm and ax,dx
+       asm mov dx,code
+       asm inc dh
+       asm ror dx,cl
+       asm or ax,dx
+       asm mov es:[bx],ax
+
+       current_x += pixels;
+
+    } else for (i = 0; i < scaler; i++) {
+
+       _AH = code;
+
+       if (_AH != transparent) {
+
+           asm add ah,colour_shift
+           asm les bx,screen
+           asm mov dx,current_x
+           asm dec dx
+
+           if (display != _MCGA_) {
+
+               asm push dx
+               asm mov cl,3
+               asm shr dx,cl
+               asm pop cx
+               asm and cl,7
+               asm add bx,dx
+               asm mov al,es:[bx]
+
+               if (display == _CGA_) {
+                   asm mov dl,0x7f
+                   asm ror dl,cl
+                   asm and al,dl
+                   asm xor ah,1
+                   asm ror ah,1
+                   asm shr ah,cl
+                   asm or ah,al
+               } else {
+                   asm mov al,0x80
+                   asm shr al,cl
+                   asm mov dx,0x03cf
+                   asm out dx,al
+               }
+
+           } else asm add bx,dx
+
+           asm mov es:[bx],ah
+
+           if (display == _AMIGA_) {
+               asm add bx,80
+               asm mov al,es:[bx]
+               asm mov es:[bx],ah
+           }
+
+       }
+
+       current_x++;
+
+    }
+
+    /* If there are no more values in the buffer then read the
+       next code from the file. Otherwise fetch the next byte
+       value from the buffer and continue painting the picture. */
+
+    if (bufpos == 0)
+       goto next_code;
+
+    byte0 (code) = buf[--bufpos];
+
+    goto reverse_buffer;
+
+}/* draw_picture */
+
+#pragma warn +def
+
+/*
+ * os_draw_picture
+ *
+ * Display a picture at the given coordinates. Top left is (1,1).
+ *
+ */
+
+void os_draw_picture (int picture, int y, int x)
+{
+
+    if (load_picture_info (picture))
+       draw_picture (y, x);
+
+}/* os_draw_picture */
+
+/*
+ * os_peek_colour
+ *
+ * Return the colour of the pixel below the cursor. This is used
+ * by V6 games to print text on top of pictures. The coulor need
+ * not be in the standard set of Z-machine colours. To handle
+ * this situation, Frotz extends the colour scheme: Values above
+ * 15 (and below 256) may be used by the interface to refer to
+ * non-standard colours. Of course, os_set_colour must be able to
+ * deal with these colours. Interfaces which refer to characters
+ * instead of pixels might return the current background colour
+ * instead.
+ *
+ */
+
+int os_peek_colour (void)
+{
+
+    if (display >= _CGA_) {
+
+       asm mov ah,13
+       asm mov bh,0
+       asm mov cx,cursor_x
+       asm mov dx,cursor_y
+       asm int 0x10
+       asm mov ah,0
+
+       return _AX + 16;
+
+    } else return current_bg;
+
+}/* os_peek_colour */
+
+/*
+ * os_picture_data
+ *
+ * Return true if the given picture is available. If so, write the
+ * width and height of the picture into the appropriate variables.
+ * Only when picture 0 is asked for, write the number of available
+ * pictures and the release number instead.
+ *
+ */
+
+bool os_picture_data (int picture, int *height, int *width)
+{
+    bool avail;
+
+    if (picture == 0) {
+
+       avail = FALSE;
+
+       /* This is the special case mentioned above. In practice, only
+          the release number is used; and even this is only used by
+          the DOS version of "Zork Zero". Infocom's Amiga interpreter
+          could not handle this feature, and the Amiga version of the
+          story file does not use it. */
+
+       pic_height = gheader.images;
+       pic_width = gheader.version;
+
+    } else avail = load_picture_info (picture);
+
+    *height = pic_height;
+    *width = pic_width;
+
+    return avail;
+
+}/* os_picture_data */
diff --git a/src/dos/bcsample.c b/src/dos/bcsample.c
new file mode 100644 (file)
index 0000000..fd1c44f
--- /dev/null
@@ -0,0 +1,429 @@
+/*
+ * file "BCsample.c"
+ *
+ * Borland C front end, sound support
+ *
+ */
+
+#include <alloc.h>
+#include <dos.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "frotz.h"
+#include "BCfrotz.h"
+
+#ifdef SOUND_SUPPORT
+
+#define SWAP_BYTES(v)  {_AX=v;asm xchg al,ah;v=_AX;}
+
+#define READ_DSP(v)    {while(!inportb(sound_adr+14)&0x80);v=inportb(sound_adr+10);}
+#define WRITE_DSP(v)   {while(inportb(sound_adr+12)&0x80);outportb(sound_adr+12,v);}
+
+extern void end_of_sound (void);
+
+static struct {
+    word prefix;
+    byte repeats;
+    byte base_note;
+    word frequency;
+    word unused;
+    word length;
+} sheader;
+
+static current_sample = 0;
+
+static void interrupt (*vect) (void) = NULL;
+
+static play_part = 0;
+static play_count = 0;
+
+static word sound_adr = 0;
+static word sound_irq = 0;
+static word sound_dma = 0;
+static word sound_int = 0;
+static word sound_ver = 0;
+
+static byte far *sample_data = NULL;
+
+static long sample_adr1 = 0;
+static long sample_adr2 = 0;
+static word sample_len1 = 0;
+static word sample_len2 = 0;
+
+/*
+ * start_of_dma
+ *
+ * Start the DMA transfer to the sound board.
+ *
+ */
+
+static void start_of_dma (long address, unsigned length)
+{
+    static unsigned dma_page_port[] = {
+       0x87, 0x83, 0x81, 0x82
+    };
+
+    length--;
+
+    /* Set up DMA chip */
+
+    outportb (0x0a, 0x04 | sound_dma);
+    outportb (0x0c, 0x00);
+    outportb (0x0b, 0x48 | sound_dma);
+    outportb (2 * sound_dma, byte0 (address));
+    outportb (2 * sound_dma, byte1 (address));
+    outportb (dma_page_port[sound_dma], byte2 (address));
+    outportb (2 * sound_dma + 1, byte0 (length));
+    outportb (2 * sound_dma + 1, byte1 (length));
+    outportb (0x0a, sound_dma);
+
+    /* Play 8-bit mono sample */
+
+    WRITE_DSP (0x14)
+    WRITE_DSP (byte0 (length))
+    WRITE_DSP (byte1 (length))
+
+}/* start_of_dma */
+
+/*
+ * end_of_dma
+ *
+ * This function is called when a hardware interrupt signals the
+ * end of the current sound. We may have to play the second half
+ * of the sound effect, or we may have to repeat it, or call the
+ * end_of_sound function when we are finished.
+ *
+ */
+
+static void interrupt end_of_dma (void)
+{
+
+    /* Play the second half, play another cycle or finish */
+
+    if (play_part == 1 && sample_len2 != 0) {
+       play_part = 2;
+       start_of_dma (sample_adr2, sample_len2);
+    } else if (play_count == 255 || --play_count != 0) {
+       play_part = 1;
+       start_of_dma (sample_adr1, sample_len1);
+    } else {
+       play_part = 0;
+       end_of_sound ();
+    }
+
+    /* Tell interrupt controller(s) + sound board we are done */
+
+    outportb (0x20, 0x20);
+
+    if (sound_irq >= 8)
+       outportb (0xa0, 0x20);
+
+    inportb (sound_adr + 14);
+
+}/* end_of_dma */
+
+/*
+ * dos_init_sound
+ *
+ * Initialise the sound board and various sound related variables.
+ *
+ */
+
+bool dos_init_sound (void)
+{
+    const char *settings;
+    word irc_mask_port;
+
+    /* Read the IRQ, port address, DMA channel and SB version */
+
+    if ((settings = getenv ("BLASTER")) == NULL)
+       return FALSE;
+
+    sound_irq = dectoi (strchr (settings, 'I') + 1);
+    sound_adr = hextoi (strchr (settings, 'A') + 1);
+    sound_dma = dectoi (strchr (settings, 'D') + 1);
+    sound_ver = dectoi (strchr (settings, 'T') + 1);
+
+    /* Reset mixer chip and DSP */
+
+    outportb (sound_adr + 4, 0);
+    outportb (sound_adr + 5, 0);
+
+    outportb (sound_adr + 6, 1);
+    inportb (sound_adr + 6);
+    inportb (sound_adr + 6);
+    inportb (sound_adr + 6);
+    outportb (sound_adr + 6, 0);
+
+    /* Turn on speakers */
+
+    WRITE_DSP (0xd1)
+
+    /* Install the end_of_dma interrupt */
+
+    if (sound_irq < 8) {
+       irc_mask_port = 0x21;
+       sound_int = 0x08 + sound_irq;
+    } else {
+       irc_mask_port = 0xa1;
+       sound_int = 0x68 + sound_irq;
+    }
+
+    vect = getvect (sound_int); setvect (sound_int, end_of_dma);
+
+    /* Allocate 64KB RAM for sample data */
+
+    if ((sample_data = (byte far *) farmalloc (0x10000L)) == NULL)
+       return FALSE;
+
+    word0 (sample_adr1) = FP_OFF (sample_data) | (FP_SEG (sample_data) << 4);
+    word1 (sample_adr1) = FP_SEG (sample_data) >> 12;
+    word0 (sample_adr2) = 0;
+    word1 (sample_adr2) = word1 (sample_adr1) + 1;
+
+    /* Enable the end_of_dma interrupt */
+
+    outportb (0x20, 0x20);
+
+    if (sound_irq >= 8)
+       outportb (0xa0, 0x20);
+
+    outportb (irc_mask_port, inportb (irc_mask_port) & ~(1 << (sound_irq & 7)));
+
+    /* Indicate success */
+
+    return TRUE;
+
+}/* init_sound */
+
+/*
+ * reset_sound
+ *
+ * Free resources allocated for playing samples.
+ *
+ */
+
+void reset_sound (void)
+{
+
+    os_stop_sample ();
+
+    if (sample_data != NULL) {
+       farfree (sample_data);
+       sample_data = NULL;
+    }
+    if (sound_adr != 0) {
+       setvect (sound_int, vect);
+       sound_adr = 0;
+    }
+
+}/* reset_sound */
+
+#endif /* SOUND_SUPPORT */
+
+/*
+ * os_beep
+ *
+ * Play a beep sound. Ideally, the sound should be high- (number == 1)
+ * or low-pitched (number == 2).
+ *
+ */
+
+void os_beep (int number)
+{
+    word T = 888 * number;
+
+    outportb (0x43, 0xb6);
+    outportb (0x42, lo (T));
+    outportb (0x42, hi (T));
+    outportb (0x61, inportb (0x61) | 3);
+
+    delay (75);
+
+    outportb (0x61, inportb (0x61) & ~3);
+
+}/* os_beep */
+
+/*
+ * os_prepare_sample
+ *
+ * Load the sample from the disk.
+ *
+ */
+
+void os_prepare_sample (int number)
+{
+#ifdef SOUND_SUPPORT
+
+    os_stop_sample ();
+
+    /* Exit if the sound board isn't set up properly */
+
+    if (sample_data == NULL)
+       return;
+    if (sound_adr == 0)
+       return;
+
+    /* Continue only if the desired sample is not already present */
+
+    if (current_sample != number) {
+
+       char sample_name[MAX_FILE_NAME + 1];
+       char numstr[2];
+       FILE *fp;
+
+       /* Build sample file name */
+
+       strcpy (sample_name, "sound/");
+
+       numstr[0] = '0' + number / 10;
+       numstr[1] = '0' + number % 10;
+
+       strncat (sample_name, stripped_story_name, 6);
+       strncat (sample_name, numstr, 2);
+       strncat (sample_name, ".snd", 4);
+
+       /* Open sample file */
+
+       if ((fp = fopen (sample_name, "rb")) == NULL)
+           return;
+
+       /* Load header and sample data */
+
+       fread (&sheader, sizeof (sheader), 1, fp);
+
+       SWAP_BYTES (sheader.frequency)
+       SWAP_BYTES (sheader.length)
+
+       fread (sample_data, 1, sheader.length, fp);
+
+       sample_len1 = -word0 (sample_adr1);
+
+       if (sample_len1 > sheader.length || sample_len1 == 0)
+           sample_len1 = sheader.length;
+
+       sample_len2 = sheader.length - sample_len1;
+
+       WRITE_DSP (0x40)
+       WRITE_DSP (256 - 1000000L / sheader.frequency)
+
+       current_sample = number;
+
+       /* Close sample file */
+
+       fclose (fp);
+
+    }
+#endif /* SOUND_SUPPORT */
+}/* os_prepare_sample */
+
+/*
+ * os_start_sample
+ *
+ * Play the given sample at the given volume (ranging from 1 to 8 and
+ * 255 meaning a default volume). The sound is played once or several
+ * times in the background (255 meaning forever). The end_of_sound
+ * function is called as soon as the sound finishes.
+ *
+ */
+
+void os_start_sample (int number, int volume, int repeats, zword eos)
+{
+#ifdef SOUND_SUPPORT
+
+    os_stop_sample ();
+
+    /* Exit if the sound board isn't set up properly */
+
+    if (sample_data == NULL)
+       return;
+    if (sound_adr == 0)
+       return;
+
+    /* Load new sample */
+
+    os_prepare_sample (number);
+
+    /* Continue only if the sample's in memory now */
+
+    if (current_sample == number) {
+
+       play_count = repeats;
+
+       if (sound_ver < 6) {    /* Set up SB pro mixer chip */
+
+           volume = (volume != 255) ? 7 + volume : 15;
+
+           outportb (sound_adr + 4, 0x04);
+           outportb (sound_adr + 5, (volume << 4) | volume);
+           outportb (sound_adr + 4, 0x22);
+           outportb (sound_adr + 5, 0xff);
+
+       } else {                /* Set up SB16 mixer chip */
+
+           /* Many thanks to Linards Ticmanis for writing this part! */
+
+           volume = (volume != 255) ? 127 + 16 * volume : 255;
+
+           outportb (sound_adr + 4, 0x32);
+           outportb (sound_adr + 5, volume);
+           outportb (sound_adr + 4, 0x33);
+           outportb (sound_adr + 5, volume);
+           outportb (sound_adr + 4, 0x30);
+           outportb (sound_adr + 5, 0xff);
+           outportb (sound_adr + 4, 0x31);
+           outportb (sound_adr + 5, 0xff);
+
+       }
+
+       play_part = 1;
+       start_of_dma (sample_adr1, sample_len1);
+
+    }
+
+#endif /* SOUND_SUPPORT */
+}/* os_start_sample */
+
+/*
+ * os_stop_sample
+ *
+ * Turn off the current sample.
+ *
+ */
+
+void os_stop_sample (void)
+{
+#ifdef SOUND_SUPPORT
+
+    play_part = 0;
+
+    /* Exit if the sound board isn't set up properly */
+
+    if (sample_data == NULL)
+       return;
+    if (sound_adr == 0)
+       return;
+
+    /* Tell DSP to stop the current sample */
+
+    WRITE_DSP (0xd0)
+
+#endif /* SOUND_SUPPORT */
+}/* os_stop_sample */
+
+/*
+ * os_finish_with_sample
+ *
+ * Remove the current sample from memory (if any).
+ *
+ */
+
+void os_finish_with_sample (void)
+{
+#ifdef SOUND_SUPPORT
+
+    os_stop_sample ();         /* we keep 64KB allocated all the time */
+
+#endif /* SOUND_SUPPORT */
+}/* os_finish_with_sample */
diff --git a/src/dos/bcscreen.c b/src/dos/bcscreen.c
new file mode 100644 (file)
index 0000000..ed42e2e
--- /dev/null
@@ -0,0 +1,298 @@
+/*
+ * file "BCscreen.c"
+ *
+ * Borland C front end, screen manipulation
+ *
+ */
+
+#include <dos.h>
+#include <mem.h>
+#include "frotz.h"
+#include "BCfrotz.h"
+
+/*
+ * get_scrnptr
+ *
+ * Return a pointer to the given line in video RAM.
+ *
+ */
+
+byte far *get_scrnptr (int y)
+{
+
+    if (display == _CGA_)
+       return MK_FP ((y & 1) ? 0xba00 : 0xb800, 40 * (y & ~1));
+    else if (display == _MCGA_)
+       return MK_FP (0xa000, 320 * y);
+    else
+       return MK_FP (0xa000, 80 * y);
+
+}/* get_scrnptr */
+
+/*
+ * clear_byte
+ *
+ * Helper function for clear_line.
+ *
+ */
+
+static void clear_byte (byte far *scrn, word mask)
+{
+
+    if (display == _CGA_)
+
+       if (scrn_attr == 0)
+           *scrn &= ~mask;
+       else
+           *scrn |= mask;
+
+    else {
+
+       outport (0x03ce, 0x0205);
+
+       outportb (0x03ce, 0x08);
+       outportb (0x03cf, mask);
+
+       asm les bx,scrn
+       asm mov al,es:[bx]
+       asm mov al,scrn_attr
+       asm mov es:[bx],al
+
+    }
+
+}/* clear_byte */
+
+/*
+ * clear_line
+ *
+ * Helper function for os_erase_area.
+ *
+ */
+
+static void clear_line (int y, int left, int right)
+{
+    byte far *scrn = get_scrnptr (y);
+
+    if (display == _MCGA_)
+
+       _fmemset (scrn + left, scrn_attr, right - left + 1);
+
+    else {
+
+       word mask1 = 0x00ff >> (left & 7);
+       word mask2 = 0xff80 >> (right & 7);
+
+       int x = right / 8 - left / 8;
+
+       scrn += left / 8;
+
+       if (x == 0) {
+           mask1 &= mask2;
+           mask2 = 0;
+       }
+
+       /* Clear first byte */
+
+       clear_byte (scrn++, mask1);
+
+       /* Clear middle bytes */
+
+       if (display >= _EGA_)
+           outport (0x03ce, 0xff08);
+
+       while (--x > 0)
+           *scrn++ = scrn_attr;
+
+       /* Clear last byte */
+
+       clear_byte (scrn, mask2);
+
+    }
+
+}/* clear_line */
+
+/*
+ * os_erase_area
+ *
+ * Fill a rectangular area of the screen with the current background
+ * colour. Top left coordinates are (1,1). The cursor does not move.
+ *
+ */
+
+void os_erase_area (int top, int left, int bottom, int right)
+{
+    int y;
+
+    top--;
+    left--;
+    bottom--;
+    right--;
+
+    if (display <= _TEXT_) {
+
+       asm mov ax,0x0600
+       asm mov ch,byte ptr top
+       asm mov cl,byte ptr left
+       asm mov dh,byte ptr bottom
+       asm mov dl,byte ptr right
+       asm mov bh,scrn_attr
+       asm int 0x10
+
+    } else
+
+       for (y = top; y <= bottom; y++)
+           clear_line (y, left, right);
+
+}/* os_erase_area */
+
+/*
+ * copy_byte
+ *
+ * Helper function for copy_line.
+ *
+ */
+
+static void copy_byte (byte far *scrn1, byte far *scrn2, byte mask)
+{
+    int i;
+
+    if (display == _CGA_)
+
+       *scrn1 = (*scrn1 & ~mask) | (*scrn2 & mask);
+
+    else {
+
+       outport (0x03ce, 0x0005);
+
+       outportb (0x03ce, 0x08);
+       outportb (0x03cf, mask);
+
+       outportb (0x03ce, 0x04);
+       outportb (0x03c4, 0x02);
+
+       for (i = 0; i < 4; i++) {
+
+           outportb (0x03cf, i);
+           outportb (0x03c5, 1 << i);
+
+           asm les bx,scrn2
+           asm mov ah,es:[bx]
+           asm les bx,scrn1
+           asm mov al,es:[bx]
+           asm mov es:[bx],ah
+
+       }
+
+       outportb (0x03c5, 0x0f);
+
+    }
+
+}/* copy_byte */
+
+/*
+ * copy_line
+ *
+ * Helper function for os_scroll_area.
+ *
+ */
+
+static void copy_line (int y1, int y2, int left, int right)
+{
+    byte far *scrn1 = get_scrnptr (y1);
+    byte far *scrn2 = get_scrnptr (y2);
+
+    if (display == _MCGA_)
+
+       _fmemcpy (scrn1 + left, scrn2 + left, right - left + 1);
+
+    else {
+
+       word mask1 = 0x00ff >> (left & 7);
+       word mask2 = 0xff80 >> (right & 7);
+
+       int x = right / 8 - left / 8;
+
+       scrn1 += left / 8;
+       scrn2 += left / 8;
+
+       if (x == 0) {
+           mask1 &= mask2;
+           mask2 = 0;
+       }
+
+       /* Copy first byte */
+
+       copy_byte (scrn1++, scrn2++, mask1);
+
+       /* Copy middle bytes */
+
+       if (display >= _EGA_)
+           outport (0x03ce, 0x0105);
+
+       while (--x > 0)
+           *scrn1++ = *scrn2++;
+
+       /* Copy last byte */
+
+       copy_byte (scrn1, scrn2, mask2);
+
+    }
+
+}/* copy_line */
+
+/*
+ * os_scroll_area
+ *
+ * Scroll a rectangular area of the screen up (units > 0) or down
+ * (units < 0) and fill the empty space with the current background
+ * colour. Top left coordinates are (1,1). The cursor stays put.
+ *
+ */
+
+void os_scroll_area (int top, int left, int bottom, int right, int units)
+{
+    int y;
+
+    top--;
+    left--;
+    bottom--;
+    right--;
+
+    if (display <= _TEXT_) {
+
+       asm mov ah,6
+       asm mov bx,units
+       asm cmp bx,0
+       asm jg scroll
+       asm mov ah,7
+       asm neg bx
+    scroll:
+       asm mov al,bl
+       asm mov ch,byte ptr top
+       asm mov cl,byte ptr left
+       asm mov dh,byte ptr bottom
+       asm mov dl,byte ptr right
+       asm mov bh,scrn_attr
+       asm int 0x10
+
+    } else
+
+       if (units > 0)
+
+           for (y = top; y <= bottom; y++)
+
+               if (y <= bottom - units)
+                   copy_line (y, y + units, left, right);
+               else
+                   clear_line (y, left, right);
+
+       else
+
+           for (y = bottom; y >= top; y--)
+
+               if (y >= top - units)
+                   copy_line (y, y + units, left, right);
+               else
+                   clear_line (y, left, right);
+
+}/* os_scroll_area */
diff --git a/src/dos/bctext.c b/src/dos/bctext.c
new file mode 100644 (file)
index 0000000..1d4e20f
--- /dev/null
@@ -0,0 +1,807 @@
+/*
+ * file "BCtext.c"
+ *
+ * Borland C front end, text functions
+ *
+ */
+
+#include <alloc.h>
+#include <stdio.h>
+#include <string.h>
+#include <conio.h>
+#include <dos.h>
+#include "frotz.h"
+#include "BCfrotz.h"
+#include "fontdata.h"
+
+extern byte far *get_scrnptr (int);
+
+int current_bg = 0;
+int current_fg = 0;
+int current_style = 0;
+int current_font = 0;
+
+byte text_bg = 0;
+byte text_fg = 0;
+byte bg = 0;
+byte fg = 0;
+byte scrn_attr = 0;
+
+int cursor_x = 0;
+int cursor_y = 0;
+
+char latin1_to_ascii[] =
+    "   !  c  L  >o<Y  |  S  '' C  a  << not-  R  _  "
+    "^0 +/-^2 ^3 '  my P  .  ,  ^1 o  >> 1/41/23/4?  "
+    "A  A  A  A  Ae A  AE C  E  E  E  E  I  I  I  I  "
+    "Th N  O  O  O  O  Oe *  O  U  U  U  Ue Y  Th ss "
+    "a  a  a  a  ae a  ae c  e  e  e  e  i  i  i  i  "
+    "th n  o  o  o  o  oe :  o  u  u  u  ue y  th y  ";
+
+char latin1_to_ibm[] = {
+    0x20, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5,
+    0xf9, 0xb8, 0xa6, 0xae, 0xaa, 0xf0, 0xa9, 0xee,
+    0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa,
+    0xf7, 0xfb, 0xa7, 0xaf, 0xac, 0xab, 0xf3, 0xa8,
+    0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80,
+    0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8,
+    0xd1, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0x9e,
+    0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0xed, 0xe8, 0xe1,
+    0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87,
+    0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b,
+    0xd0, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6,
+    0x9b, 0x97, 0xa3, 0x96, 0x81, 0xec, 0xe7, 0x98
+};
+
+static byte far *graphics_font = NULL;
+static byte far *mcga_font = NULL;
+static byte far *mcga_width = NULL;
+static word far *serif_font = NULL;
+static byte far *serif_width = NULL;
+
+/*
+ * load_fonts
+ *
+ * Load the proportional and graphics fonts. In the release version all
+ * font data is appended to the end of the executable.
+ *
+ */
+
+void load_fonts (void)
+{
+    static chunk_offset[] = {
+       0x6660,
+       0x6300,
+       0x4A40,
+       0x3180,
+       0x18C0,
+       0x00
+    };
+
+    if (display == _MCGA_) {
+       mcga_font = font_data + chunk_offset[1];
+       mcga_width = (byte *) mcga_font + 0x300;
+    } else
+       graphics_font = font_data + chunk_offset[0];
+
+    if (display == _AMIGA_ && user_font != 0) {
+       serif_font = (word *)(font_data + chunk_offset[1 + user_font]);
+       serif_width = (byte *) serif_font + 0x1800;
+    }
+
+}/* load_fonts */
+
+/*
+ * os_font_data
+ *
+ * Return true if the given font is available. The font can be
+ *
+ *    TEXT_FONT
+ *    PICTURE_FONT
+ *    GRAPHICS_FONT
+ *    FIXED_WIDTH_FONT
+ *
+ * The font size should be stored in "height" and "width". If the given
+ * font is unavailable then these values must _not_ be changed.
+ *
+ */
+
+int os_font_data (int font, int *height, int *width)
+{
+
+    /* All fonts of this interface have the same size */
+
+    *height = h_font_height;
+    *width = h_font_width;
+
+    /* Not every font is available in every mode */
+
+    if (font == TEXT_FONT)
+       return TRUE;
+    if (font == GRAPHICS_FONT && (display == _CGA_ || display >= _EGA_))
+       return TRUE;
+    if (font == FIXED_WIDTH_FONT)
+       return TRUE;
+
+    /* Unavailable font */
+
+    return FALSE;
+
+}/* os_font_data */
+
+/*
+ * switch_scrn_attr
+ *
+ * Parts of the screen are usually erased to background colour.  However,
+ * for deleting text in the input routine it can be useful to erase to
+ * the current text background colour.  The two colours can be different,
+ * for example when the reverse text style is used.  This helper function
+ * toggles between the two possible behaviours.
+ *
+ */
+
+void switch_scrn_attr (bool flag)
+{
+    byte scrn_bg;
+    byte scrn_fg;
+
+    if (flag) {
+       scrn_bg = text_bg;
+       scrn_fg = text_fg;
+    } else {
+       scrn_bg = bg;
+       scrn_fg = fg;
+    }
+
+    if (display <= _TEXT_)
+       scrn_attr = (scrn_bg << 4) | scrn_fg;
+    else if (display == _CGA_)
+       scrn_attr = (scrn_bg != BLACK) ? 0xff : 0x00;
+    else
+       scrn_attr = scrn_bg;
+
+}/* switch_scrn_attr */
+
+/*
+ * adjust_style
+ *
+ * Set the current colours. This combines the current colour selection
+ * and the current text style.
+ *
+ */
+
+static void adjust_style (void)
+{
+    static byte amiga_palette[][3] = {
+       { 0x00, 0x00, 0x00 },
+       { 0x2a, 0x00, 0x00 },
+       { 0x00, 0x2a, 0x00 },
+       { 0x3f, 0x3f, 0x15 },
+       { 0x00, 0x00, 0x2a },
+       { 0x2a, 0x00, 0x2a },
+       { 0x00, 0x2a, 0x2a },
+       { 0x3f, 0x3f, 0x3f },
+       { 0x30, 0x30, 0x30 },
+       { 0x20, 0x20, 0x20 },
+       { 0x10, 0x10, 0x10 },
+    };
+
+    static byte pc_colour[] = {
+       BLACK,
+       RED,
+       GREEN,
+       YELLOW,
+       BLUE,
+       MAGENTA,
+       CYAN,
+       WHITE,
+       DARKGRAY
+    };
+
+    static byte palette_bg = 0xff;
+    static byte palette_fg = 0xff;
+
+    fg = current_fg;
+    bg = current_bg;
+
+    /* V6 game, Amiga mode: Alter the palette registers if the colours
+       of window 0 have changed. DAC register #79 holds the foreground,
+       DAC register #64 the background colour. */
+
+    if (display == _AMIGA_ && h_version == V6 && cwin == 0) {
+
+       if (fg < 16 && fg != palette_fg) {
+
+           byte R = amiga_palette[fg - 2][0];
+           byte G = amiga_palette[fg - 2][1];
+           byte B = amiga_palette[fg - 2][2];
+
+           asm mov ax,0x1010
+           asm mov bx,79
+           asm mov dh,R
+           asm mov ch,G
+           asm mov cl,B
+           asm int 0x10
+
+           palette_fg = fg;
+
+       }
+
+       if (bg < 16 && bg != palette_bg) {
+
+           byte R = amiga_palette[bg - 2][0];
+           byte G = amiga_palette[bg - 2][1];
+           byte B = amiga_palette[bg - 2][2];
+
+           asm mov ax,0x1010
+           asm mov bx,64
+           asm mov dh,R
+           asm mov ch,G
+           asm mov cl,B
+           asm int 0x10
+
+           palette_bg = bg;
+
+       }
+
+    }
+
+    /* Handle colours */
+
+    if (fg < 16)
+
+       if (display == _MONO_)
+           fg = (fg == WHITE_COLOUR) ? LIGHTGRAY : BLACK;
+       else if (h_version == V6 && display == _AMIGA_)
+           fg = (palette_fg == fg) ? 15 : 0;
+       else
+           fg = pc_colour[fg - 2];
+
+    else fg -= 16;
+
+    if (bg < 16)
+
+       if (display == _MONO_)
+           bg = (bg == WHITE_COLOUR) ? LIGHTGRAY : BLACK;
+       else if (h_version == V6 && display == _AMIGA_)
+           bg = (palette_bg == bg) ? 0 : 15;
+       else
+           bg = pc_colour[bg - 2];
+
+    else bg -= 16;
+
+    /* Handle reverse text style */
+
+    if (current_style & REVERSE_STYLE) {
+       text_fg = (user_reverse_fg != -1) ? user_reverse_fg : bg;
+       text_bg = (user_reverse_bg != -1) ? user_reverse_bg : fg;
+    } else {
+       text_fg = fg;
+       text_bg = bg;
+    }
+
+    /* Handle emphasis style */
+
+    if (current_style & EMPHASIS_STYLE) {
+
+       if (display == _MONO_ && text_bg == BLACK)
+           text_fg = BLUE;     /* blue in monochrome mode is underlined */
+       if (display == _TEXT_)
+           text_fg = (user_emphasis != -1) ? user_emphasis : YELLOW;
+
+    }
+
+    /* Handle boldface style */
+
+    if (current_style & BOLDFACE_STYLE) {
+
+       if (display == _MONO_)
+           text_fg = WHITE;
+       if (display == _TEXT_)
+           text_fg ^= 8;
+
+    }
+
+    /* Set the screen attribute for scrolling and erasing */
+
+    switch_scrn_attr (FALSE);
+
+}/* adjust_style */
+
+/*
+ * os_set_colour
+ *
+ * Set the foreground and background colours which can be:
+ *
+ *     DEFAULT_COLOUR
+ *     BLACK_COLOUR
+ *     RED_COLOUR
+ *     GREEN_COLOUR
+ *     YELLOW_COLOUR
+ *     BLUE_COLOUR
+ *     MAGENTA_COLOUR
+ *     CYAN_COLOUR
+ *     WHITE_COLOUR
+ *
+ *     MS-DOS 320 columns MCGA mode only:
+ *
+ *     GREY_COLOUR
+ *
+ *     Amiga only:
+ *
+ *     LIGHTGREY_COLOUR
+ *     MEDIUMGREY_COLOUR
+ *     DARKGREY_COLOUR
+ *
+ * There may be more colours in the range from 16 to 255; see the remarks
+ * on os_peek_colour.
+ *
+ */
+
+void os_set_colour (int new_foreground, int new_background)
+{
+
+    current_fg = new_foreground;
+    current_bg = new_background;
+
+    /* Apply changes */
+
+    adjust_style ();
+
+}/* os_set_colour */
+
+/*
+ * os_set_text_style
+ *
+ * Set the current text style. Following flags can be set:
+ *
+ *     REVERSE_STYLE
+ *     BOLDFACE_STYLE
+ *     EMPHASIS_STYLE (aka underline aka italics)
+ *     FIXED_WIDTH_STYLE
+ *
+ */
+
+void os_set_text_style (int new_style)
+{
+
+    current_style = new_style;
+
+    /* Apply changes */
+
+    adjust_style ();
+
+}/* os_set_text_style */
+
+/*
+ * os_set_font
+ *
+ * Set the font for text output. The interpreter takes care not to
+ * choose fonts which aren't supported by the interface.
+ *
+ */
+
+void os_set_font (int new_font)
+{
+
+    current_font = new_font;
+
+}/* os_set_font */
+
+/*
+ * write_pattern
+ *
+ * Helper function for drawing characters in EGA and Amiga mode.
+ *
+ */
+
+void write_pattern (byte far *screen, byte val, byte mask)
+{
+
+    if (mask != 0) {
+
+       if (display == _CGA_) {
+
+           if (text_bg == BLACK)
+               *screen &= ~mask;
+           if (text_bg == WHITE)
+               *screen |= mask;
+           if (text_fg != text_bg)
+               *screen ^= val;
+
+       } else if (display == _MCGA_) {
+
+           byte i;
+
+           for (i = 0x80; (mask & i) != 0; i >>= 1)
+               *screen++ = (val & i) ? text_fg : text_bg;
+
+       } else {
+
+           asm mov dx,0x03cf
+           asm mov al,mask
+           asm out dx,al
+           asm les bx,screen
+           asm mov ch,text_bg
+           asm mov al,es:[bx]
+           asm mov es:[bx],ch
+           asm mov al,val
+           asm out dx,al
+           asm mov ch,text_fg
+           asm mov al,es:[bx]
+           asm mov es:[bx],ch
+
+       }
+
+    }
+
+}/* write_pattern */
+
+/*
+ * os_display_char
+ *
+ * Display a character of the current font using the current colours and
+ * text style. The cursor moves to the next position. Printable codes are
+ * all ASCII values from 32 to 126, ISO Latin-1 characters from 160 to
+ * 255, ZC_GAP (gap between two sentences) and ZC_INDENT (paragraph
+ * indentation). The screen should not be scrolled after printing to the
+ * bottom right corner.
+ *
+ */
+
+void os_display_char (zchar c)
+{
+    int width = os_char_width (c);
+
+    /* Handle accented characters */
+
+    if (c >= ZC_LATIN1_MIN && (story_id != BEYOND_ZORK || (h_flags & GRAPHICS_FLAG)))
+
+       if (display == _CGA_ || display == _MCGA_) {
+
+           char *ptr = latin1_to_ascii + 3 * (c - ZC_LATIN1_MIN);
+
+           char c1 = *ptr++;
+           char c2 = *ptr++;
+           char c3 = *ptr++;
+
+           os_display_char (c1);
+
+           if (c2 != ' ')
+               os_display_char (c2);
+           if (c3 != ' ')
+               os_display_char (c3);
+
+           return;
+
+       } else if (display == _AMIGA_ && current_font == TEXT_FONT && !(current_style & FIXED_WIDTH_STYLE) && user_font != 0) {
+
+           if (c >= ZC_LATIN1_MIN)
+               c -= 32;
+
+       } else c = latin1_to_ibm[c - ZC_LATIN1_MIN];
+
+    /* Handle special indentations */
+
+    if (c == ZC_INDENT)
+       { os_display_char (' '); os_display_char (' '); os_display_char (' '); return; }
+    if (c == ZC_GAP)
+       { os_display_char (' '); os_display_char (' '); return; }
+
+    /* Display character */
+
+    if (display <= _TEXT_) {
+
+       asm mov ah,2
+       asm mov bh,0
+       asm mov dh,byte ptr cursor_y
+       asm mov dl,byte ptr cursor_x
+       asm int 0x10
+       asm mov ah,9
+       asm mov bh,0
+       asm mov bl,byte ptr text_bg
+       asm mov cl,4
+       asm shl bl,cl
+       asm or bl,byte ptr text_fg
+       asm mov cx,1
+       asm mov al,byte ptr c
+       asm int 0x10
+
+    } else {
+
+       void far *table;
+       word mask;
+       word val;
+       byte mask0;
+       byte mask1;
+       int align;
+       int underline;
+       int boldface;
+       int type;
+
+       int shift = (display != _MCGA_) ? cursor_x % 8 : 0;
+       int offset = (display != _MCGA_) ? cursor_x / 8 : cursor_x;
+
+       int i;
+
+       if (current_font == GRAPHICS_FONT) {
+           table = graphics_font + 8 * (c - 32);
+           mask = 0xff;
+           underline = -1;
+           boldface = -1;
+           align = 0;
+           type = 1;
+       } else if (display == _AMIGA_ && current_font == TEXT_FONT && !(current_style & FIXED_WIDTH_STYLE) && user_font != 0) {
+           table = serif_font + 16 * (c - 32);
+           mask = 0xffff << (16 - width);
+           underline = 14;
+           boldface = 1;
+           align = 0;
+           type = 2;
+       } else if (display == _CGA_) {
+           table = (byte far *) MK_FP (0xf000, 0xfa6e) + 8 * c;
+           mask = 0xff;
+           underline = 7;
+           boldface = (user_bold_typing != -1) ? 1 : -1;
+           align = 0;
+           type = 3;
+       } else if (display >= _EGA_) {
+           table = (byte far *) getvect (0x43) + h_font_height * c;
+           mask = 0xff;
+           underline = h_font_height - 1;
+           boldface = (user_bold_typing != -1) ? 1 : -1;
+           align = 0;
+           type = 3;
+       } else {
+           table = mcga_font + 8 * (c - 32);
+           mask = 0xff & (0xff << (8 - width));
+           underline = 7;
+           boldface = -1;
+           align = (width + 1 - mcga_width[c - 32]) / 2;
+           type = 3;
+       }
+
+       mask0 = mask >> shift;
+       mask1 = mask << (8 - shift);
+
+       if (!(current_style & BOLDFACE_STYLE))
+           boldface = -1;
+       if (!(current_style & EMPHASIS_STYLE))
+           underline = -1;
+
+       if (display >= _EGA_) {
+           outport (0x03ce, 0x0205);
+           outport (0x03ce, 0xff08);
+       }
+
+       for (i = 0; i < h_font_height; i++) {
+
+           byte far *screen = get_scrnptr (cursor_y + i) + offset;
+
+           if (type == 1)
+               val = *((byte far *) table + 8 * i / h_font_height);
+           if (type == 2)
+               val = *((word far *) table + i);
+           if (type == 3)
+               val = *((byte far *) table + i);
+
+           if (align != 0)
+               val >>= align;
+
+           if (boldface == 1)
+               val |= val >> 1;
+           if (underline == i)
+               val ^= mask;
+
+           if (type == 2)
+               write_pattern (screen++, val >> (8 + shift), mask >> (8 + shift));
+
+           write_pattern (screen + 0, val >> shift, mask0);
+           write_pattern (screen + 1, val << (8 - shift), mask1);
+
+       }
+
+    }
+
+    /* Move cursor to next position */
+
+    cursor_x += width;
+
+}/* os_display_char */
+
+/*
+ * os_display_string
+ *
+ * Pass a string of characters to os_display_char.
+ *
+ */
+
+void os_display_string (const zchar *s)
+{
+
+    zchar c;
+
+    while ((c = *s++) != 0)
+
+       if (c == ZC_NEW_FONT || c == ZC_NEW_STYLE) {
+
+           int arg = *s++;
+
+           if (c == ZC_NEW_FONT)
+               os_set_font (arg);
+           if (c == ZC_NEW_STYLE)
+               os_set_text_style (arg);
+
+       } else os_display_char (c);
+
+}/* os_display_string */
+
+/*
+ * os_char_width
+ *
+ * Return the width of the character in screen units.
+ *
+ */
+
+int os_char_width (zchar c)
+{
+
+    /* Handle accented characters */
+
+    if (c >= ZC_LATIN1_MIN && (story_id != BEYOND_ZORK || (h_flags & GRAPHICS_FLAG)))
+
+       if (display == _CGA_ || display == _MCGA_) {
+
+           const char *ptr = latin1_to_ascii + 3 * (c - ZC_LATIN1_MIN);
+
+           int width = 0;
+
+           char c1 = *ptr++;
+           char c2 = *ptr++;
+           char c3 = *ptr++;
+
+           width = os_char_width (c1);
+
+           if (c2 != ' ')
+               width += os_char_width (c2);
+           if (c3 != ' ')
+               width += os_char_width (c3);
+
+           return width;
+
+       } else if (display == _AMIGA_ && current_font == TEXT_FONT && !(current_style & FIXED_WIDTH_STYLE) && user_font != 0)
+
+           if (c >= ZC_LATIN1_MIN)
+               c -= 32;
+
+    /* Handle special indentations */
+
+    if (c == ZC_INDENT)
+       return 3 * os_char_width (' ');
+    if (c == ZC_GAP)
+       return 2 * os_char_width (' ');
+
+    /* Calculate width */
+
+    if (display <= _TEXT_)
+       return 1;
+    if (display == _CGA_)
+       return 8;
+    if (display == _EGA_)
+       return 8;
+
+    if (current_font == GRAPHICS_FONT)
+       return 8;
+    if (current_font == FIXED_WIDTH_FONT || (current_style & FIXED_WIDTH_STYLE) || (display == _AMIGA_ && user_font == 0))
+       return (display == _AMIGA_) ? 8 : 5;
+
+    if (display == _MCGA_)
+       return mcga_width[c - 32];
+    if (display == _AMIGA_)
+       return serif_width[c - 32] + ((current_style & BOLDFACE_STYLE) ? 1 : 0);
+
+    return 0;
+
+}/* os_char_width */
+
+/*
+ * os_string_width
+ *
+ * Calculate the length of a word in screen units. Apart from letters,
+ * the word may contain special codes:
+ *
+ *    ZC_NEW_STYLE - next character is a new text style
+ *    ZC_NEW_FONT  - next character is a new font
+ *
+ */
+
+int os_string_width (const zchar *s)
+{
+    int width = 0;
+
+    int saved_font = current_font;
+    int saved_style = current_style;
+
+    zchar c;
+
+    while ((c = *s++) != 0)
+
+       if (c == ZC_NEW_STYLE || c == ZC_NEW_FONT) {
+
+           int arg = *s++;
+
+           if (c == ZC_NEW_FONT)
+               current_font = arg;
+           if (c == ZC_NEW_STYLE)
+               current_style = arg;
+
+       } else width += os_char_width (c);
+
+    current_font = saved_font;
+    current_style = saved_style;
+
+    return width;
+
+}/* os_string_width */
+
+/*
+ * os_set_cursor
+ *
+ * Place the text cursor at the given coordinates. Top left is (1,1).
+ *
+ */
+
+void os_set_cursor (int y, int x)
+{
+
+    cursor_y = y - 1;
+    cursor_x = x - 1;
+
+}/* os_set_cursor */
+
+/*
+ * os_more_prompt
+ *
+ * Display a MORE prompt, wait for a keypress and remove the MORE
+ * prompt from the screen.
+ *
+ */
+
+void os_more_prompt (void)
+{
+    int saved_x;
+
+    /* Save text font and style */
+
+    int saved_font = current_font;
+    int saved_style = current_style;
+
+    /* Choose plain text style */
+
+    current_font = TEXT_FONT;
+    current_style = 0;
+
+    adjust_style ();
+
+    /* Wait until the user presses a key */
+
+    saved_x = cursor_x;
+
+    os_display_string ((zchar *) "[MORE]");
+    os_read_key (0, TRUE);
+
+    os_erase_area (cursor_y + 1,
+                  saved_x + 1,
+                  cursor_y + h_font_height,
+                  cursor_x + 1);
+
+    cursor_x = saved_x;
+
+    /* Restore text font and style */
+
+    current_font = saved_font;
+    current_style = saved_style;
+
+    adjust_style ();
+
+}/* os_more_prompt */
diff --git a/src/dos/fontdata.h b/src/dos/fontdata.h
new file mode 100644 (file)
index 0000000..58ffea7
--- /dev/null
@@ -0,0 +1,2250 @@
+static unsigned char font_data[] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,
+  0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14,
+  0x00, 0x7e, 0x00, 0x28, 0x00, 0x28, 0x00, 0xfc, 0x00, 0x50, 0x00, 0x50,
+  0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x40,
+  0x00, 0x30, 0x00, 0x08, 0x00, 0x08, 0x00, 0x48, 0x00, 0x30, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x30,
+  0x40, 0x48, 0x80, 0x48, 0x00, 0x31, 0x00, 0x02, 0x00, 0x04, 0xc0, 0x08,
+  0x20, 0x11, 0x20, 0x21, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x28, 0x00, 0x28,
+  0x00, 0x28, 0x80, 0x13, 0x00, 0x29, 0x00, 0x45, 0x00, 0x42, 0x00, 0x45,
+  0x80, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x54, 0x00, 0x38, 0x00, 0x54, 0x00, 0x10,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48,
+  0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+  0x00, 0x30, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x48,
+  0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x08, 0x00, 0x08, 0x00, 0x30,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x48, 0x00, 0x30, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x18, 0x00, 0x18, 0x00, 0x28, 0x00, 0x28, 0x00, 0x48, 0x00, 0x78,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x70, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x48,
+  0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x18, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70,
+  0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
+  0x00, 0x48, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48,
+  0x00, 0x48, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48,
+  0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48,
+  0x00, 0x38, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x60, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20,
+  0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f,
+  0x40, 0x20, 0x20, 0x47, 0x20, 0x49, 0x20, 0x49, 0x20, 0x49, 0x20, 0x49,
+  0x20, 0x47, 0xc0, 0x20, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14,
+  0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e, 0x00, 0x41, 0x00, 0x41,
+  0x80, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x7e, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x3e,
+  0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x7e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e,
+  0x80, 0x21, 0x80, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x23, 0x00, 0x21,
+  0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x00, 0x21, 0x00, 0x23,
+  0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x7e, 0x00, 0x22, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c,
+  0x00, 0x24, 0x00, 0x20, 0x00, 0x20, 0x00, 0x22, 0x00, 0x7e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e,
+  0x00, 0x22, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x24, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, 0x80, 0x21, 0x80, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0xc0, 0x41, 0x80, 0x40, 0x80, 0x40, 0x80, 0x20,
+  0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x80, 0x73, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x3f,
+  0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x80, 0x73, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x90,
+  0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x77, 0x00, 0x22, 0x00, 0x24, 0x00, 0x28, 0x00, 0x30,
+  0x00, 0x28, 0x00, 0x24, 0x00, 0x22, 0x00, 0x21, 0x80, 0x73, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x21, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x80, 0x31, 0x80, 0x31,
+  0x80, 0x31, 0x80, 0x2a, 0x80, 0x2a, 0x80, 0x2a, 0x80, 0x24, 0x80, 0x24,
+  0xc0, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x80, 0x63, 0x00, 0x31, 0x00, 0x31, 0x00, 0x29, 0x00, 0x29,
+  0x00, 0x25, 0x00, 0x25, 0x00, 0x23, 0x00, 0x23, 0x00, 0x71, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
+  0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x22, 0x00, 0x22,
+  0x00, 0x22, 0x00, 0x22, 0x00, 0x3c, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x06,
+  0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c,
+  0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3c, 0x00, 0x24,
+  0x00, 0x22, 0x00, 0x21, 0x80, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x4c, 0x00, 0x44,
+  0x00, 0x40, 0x00, 0x30, 0x00, 0x08, 0x00, 0x04, 0x00, 0x44, 0x00, 0x64,
+  0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x80, 0xff, 0x80, 0x88, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x73,
+  0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21,
+  0x00, 0x21, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe3, 0x00, 0x41, 0x00, 0x41,
+  0x00, 0x22, 0x00, 0x22, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xb8, 0xed, 0x10, 0x45, 0x10, 0x45, 0x20, 0x22, 0x20, 0x22,
+  0x40, 0x15, 0x40, 0x15, 0x40, 0x15, 0x80, 0x08, 0x80, 0x08, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1,
+  0x80, 0x40, 0x00, 0x21, 0x00, 0x12, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x12,
+  0x00, 0x21, 0x80, 0x40, 0xc0, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe3, 0x00, 0x41, 0x00, 0x22,
+  0x00, 0x22, 0x00, 0x14, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xff, 0x00, 0x82, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x41, 0x00, 0xff, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x28,
+  0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08, 0x00, 0x38, 0x00, 0x48,
+  0x00, 0x48, 0x00, 0x48, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c,
+  0x00, 0x04, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x30, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x40, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x4c, 0x00, 0x48, 0x00, 0x50, 0x00, 0x70, 0x00, 0x48, 0x00, 0x44,
+  0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x6d, 0x00, 0x49, 0x00, 0x49,
+  0x00, 0x49, 0x00, 0x49, 0x80, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xd8, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x78, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x3c, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x3c, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x60,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0xe0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x36, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28,
+  0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x80, 0xdd, 0x80, 0x88, 0x80, 0x88, 0x00, 0x55, 0x00, 0x55, 0x00, 0x22,
+  0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44,
+  0x00, 0x28, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0xee, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28,
+  0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xa0, 0x00, 0xc0,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x7c, 0x00, 0x44, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x44,
+  0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x32, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x38, 0x00, 0x4c, 0x00, 0x50,
+  0x00, 0x50, 0x00, 0x64, 0x00, 0x38, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x20, 0x00, 0x78, 0x00, 0x20, 0x00, 0x20, 0x00, 0x24,
+  0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xb4, 0x00, 0x48, 0x00, 0x48, 0x00, 0xb4, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc,
+  0x00, 0x88, 0x00, 0xf8, 0x00, 0x50, 0x00, 0xf8, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x40, 0x00, 0x20, 0x00, 0x50,
+  0x00, 0x48, 0x00, 0x48, 0x00, 0x28, 0x00, 0x10, 0x00, 0x08, 0x00, 0x48,
+  0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x20, 0x40, 0x4e,
+  0x40, 0x51, 0x40, 0x50, 0x40, 0x50, 0x40, 0x51, 0x40, 0x4e, 0x80, 0x20,
+  0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00,
+  0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x28,
+  0x00, 0x50, 0x00, 0x28, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f,
+  0x80, 0x20, 0x40, 0x5e, 0x40, 0x51, 0x40, 0x51, 0x40, 0x5e, 0x40, 0x52,
+  0x40, 0x51, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x20, 0x00, 0x50, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xa0, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0x80, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xc0, 0x00, 0x20, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x7b, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x38,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
+  0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x28, 0x00, 0x14, 0x00, 0x28,
+  0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x80, 0x40, 0x00, 0xc1, 0x00, 0x42, 0x00, 0x44, 0x80, 0x48,
+  0x80, 0xe9, 0x80, 0x12, 0x80, 0x22, 0x80, 0x43, 0x80, 0x80, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40,
+  0x00, 0xc1, 0x00, 0x42, 0x00, 0x44, 0x00, 0x49, 0x80, 0xea, 0x80, 0x10,
+  0x00, 0x21, 0x00, 0x42, 0x80, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x00, 0x21, 0x00, 0x42,
+  0x00, 0x24, 0x80, 0x28, 0x80, 0xc9, 0x80, 0x12, 0x80, 0x22, 0x80, 0x43,
+  0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x48, 0x00, 0x30, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e,
+  0x00, 0x41, 0x00, 0x41, 0x80, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14,
+  0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e, 0x00, 0x41, 0x00, 0x41,
+  0x80, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x14,
+  0x00, 0x22, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22,
+  0x00, 0x22, 0x00, 0x3e, 0x00, 0x41, 0x00, 0x41, 0x80, 0xe3, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e,
+  0x00, 0x41, 0x00, 0x41, 0x80, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14,
+  0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e, 0x00, 0x41, 0x00, 0x41,
+  0x80, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x14,
+  0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22,
+  0x00, 0x22, 0x00, 0x3e, 0x00, 0x41, 0x00, 0x41, 0x80, 0xe3, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07,
+  0x20, 0x0a, 0x00, 0x0a, 0x40, 0x12, 0xc0, 0x13, 0x40, 0x22, 0x00, 0x3e,
+  0x00, 0x42, 0x20, 0x42, 0xe0, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, 0x80, 0x21, 0x80, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x80, 0x40, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x08,
+  0x00, 0x04, 0x00, 0x7e, 0x00, 0x22, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c,
+  0x00, 0x24, 0x00, 0x20, 0x00, 0x20, 0x00, 0x22, 0x00, 0x7e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x7e,
+  0x00, 0x22, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x24, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x22, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x08, 0x00, 0x14, 0x00, 0x22, 0x00, 0x7e, 0x00, 0x22, 0x00, 0x20,
+  0x00, 0x24, 0x00, 0x3c, 0x00, 0x24, 0x00, 0x20, 0x00, 0x20, 0x00, 0x22,
+  0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22,
+  0x00, 0x00, 0x00, 0x7e, 0x00, 0x22, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c,
+  0x00, 0x24, 0x00, 0x20, 0x00, 0x20, 0x00, 0x22, 0x00, 0x7e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x70,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x70, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x50,
+  0x00, 0x88, 0x00, 0x70, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x23, 0x00, 0x21,
+  0x80, 0x20, 0x80, 0x70, 0x80, 0x20, 0x80, 0x20, 0x00, 0x21, 0x00, 0x23,
+  0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x26,
+  0x00, 0x00, 0x80, 0x63, 0x00, 0x31, 0x00, 0x31, 0x00, 0x29, 0x00, 0x29,
+  0x00, 0x25, 0x00, 0x25, 0x00, 0x23, 0x00, 0x23, 0x00, 0x71, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x1e,
+  0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x12,
+  0x00, 0x21, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1e,
+  0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x28,
+  0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1e,
+  0x80, 0x21, 0x80, 0x41, 0x80, 0x42, 0x80, 0x44, 0x80, 0x48, 0x80, 0x50,
+  0x80, 0x60, 0x00, 0x61, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x80, 0x73, 0x00, 0x21, 0x00, 0x21,
+  0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04,
+  0x00, 0x08, 0x80, 0x73, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21,
+  0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x12, 0x00, 0x21, 0x80, 0x73,
+  0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21,
+  0x00, 0x21, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x80, 0x73, 0x00, 0x21, 0x00, 0x21,
+  0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08,
+  0x00, 0x10, 0x80, 0xe3, 0x00, 0x41, 0x00, 0x22, 0x00, 0x22, 0x00, 0x14,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x20, 0x00, 0x3c, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22,
+  0x00, 0x3c, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x48, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08,
+  0x00, 0x38, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x34, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08, 0x00, 0x38, 0x00, 0x48,
+  0x00, 0x48, 0x00, 0x48, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x00,
+  0x00, 0x30, 0x00, 0x08, 0x00, 0x38, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48,
+  0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08,
+  0x00, 0x38, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x34, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x48, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08, 0x00, 0x38, 0x00, 0x48,
+  0x00, 0x48, 0x00, 0x48, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x28, 0x00, 0x28, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0x30, 0x00, 0x08, 0x00, 0x38, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48,
+  0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x09,
+  0x00, 0x3f, 0x00, 0x48, 0x00, 0x48, 0x00, 0x49, 0x00, 0x36, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x10, 0x00, 0x08, 0x00, 0x10,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00,
+  0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x28,
+  0x00, 0x44, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00,
+  0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xa0, 0x00, 0x00,
+  0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,
+  0x00, 0x20, 0x00, 0x50, 0x00, 0x08, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00,
+  0x00, 0xd8, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x00,
+  0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x44, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x4c,
+  0x00, 0x54, 0x00, 0x54, 0x00, 0x54, 0x00, 0x64, 0x00, 0x78, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10,
+  0x00, 0x08, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x4c, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00,
+  0x00, 0xcc, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c,
+  0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x36, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x44, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x4c, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00,
+  0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, 0x00, 0x28, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x20, 0x00, 0xa0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x58, 0x00, 0x64,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x78, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x44, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28,
+  0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xa0, 0x00, 0xc0,
+  0x03, 0x03, 0x05, 0x07, 0x06, 0x0c, 0x0a, 0x03, 0x04, 0x04, 0x07, 0x07,
+  0x03, 0x04, 0x03, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+  0x06, 0x06, 0x03, 0x03, 0x07, 0x07, 0x07, 0x06, 0x0c, 0x09, 0x09, 0x09,
+  0x0a, 0x08, 0x07, 0x0a, 0x0a, 0x05, 0x06, 0x09, 0x08, 0x0b, 0x0a, 0x0a,
+  0x08, 0x0a, 0x09, 0x07, 0x09, 0x0a, 0x09, 0x0d, 0x0a, 0x09, 0x08, 0x04,
+  0x04, 0x04, 0x07, 0x06, 0x04, 0x06, 0x07, 0x06, 0x07, 0x07, 0x04, 0x07,
+  0x07, 0x03, 0x03, 0x07, 0x03, 0x09, 0x07, 0x07, 0x07, 0x07, 0x05, 0x05,
+  0x03, 0x07, 0x07, 0x09, 0x07, 0x07, 0x07, 0x05, 0x03, 0x05, 0x08, 0x00,
+  0x03, 0x03, 0x06, 0x06, 0x06, 0x06, 0x03, 0x06, 0x05, 0x0b, 0x04, 0x07,
+  0x07, 0x04, 0x0b, 0x06, 0x04, 0x07, 0x03, 0x03, 0x04, 0x08, 0x06, 0x03,
+  0x04, 0x03, 0x04, 0x07, 0x09, 0x09, 0x09, 0x06, 0x09, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x0c, 0x09, 0x08, 0x08, 0x08, 0x08, 0x05, 0x05, 0x05, 0x05,
+  0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x07, 0x0a, 0x0a, 0x0a, 0x0a,
+  0x0a, 0x09, 0x08, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x09, 0x06,
+  0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07,
+  0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,
+  0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x24,
+  0x00, 0xff, 0x00, 0x24, 0x00, 0x24, 0x00, 0xff, 0x00, 0x48, 0x00, 0x48,
+  0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x38, 0x00, 0x54, 0x00, 0x54, 0x00, 0x50, 0x00, 0x30,
+  0x00, 0x18, 0x00, 0x14, 0x00, 0x54, 0x00, 0x54, 0x00, 0x38, 0x00, 0x10,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60,
+  0x80, 0x90, 0x00, 0x91, 0x00, 0x91, 0x00, 0x62, 0x60, 0x04, 0x90, 0x08,
+  0x90, 0x10, 0x90, 0x10, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x09, 0x00, 0x09,
+  0x00, 0x0a, 0xe0, 0x0c, 0x40, 0x34, 0x80, 0x44, 0x00, 0x43, 0x10, 0x62,
+  0xe0, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x54, 0x00, 0x38, 0x00, 0x38, 0x00, 0x54, 0x00, 0x10,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xfe, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xc0, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80,
+  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+  0x00, 0x30, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04,
+  0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x44,
+  0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x08, 0x00, 0x18,
+  0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x78, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x18, 0x00, 0x28, 0x00, 0x28, 0x00, 0x48, 0x00, 0x88, 0x00, 0xfc,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x70, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08,
+  0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x20, 0x00, 0x58, 0x00, 0x64,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e,
+  0x00, 0x82, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x28, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x3c, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x60, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x60, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x30, 0x00, 0x40,
+  0x00, 0x30, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x30,
+  0x00, 0x0c, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x30, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x04, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x10, 0x08, 0x08, 0x10,
+  0xa8, 0x23, 0x68, 0x44, 0x48, 0x48, 0x48, 0x48, 0x88, 0x48, 0x88, 0x48,
+  0x90, 0x49, 0x64, 0x46, 0x08, 0x20, 0x10, 0x10, 0x20, 0x08, 0xc0, 0x07,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0a,
+  0x00, 0x0a, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x80, 0x20, 0x80, 0x20,
+  0xe0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x7e, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x3e,
+  0x00, 0x21, 0x80, 0x20, 0x80, 0x20, 0x00, 0x21, 0x00, 0x7e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e,
+  0x80, 0x21, 0x80, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x21, 0x80, 0x20,
+  0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x80, 0x20, 0x00, 0x21,
+  0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x7f, 0x00, 0x21, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c,
+  0x00, 0x24, 0x00, 0x20, 0x80, 0x20, 0x00, 0x21, 0x00, 0x7f, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f,
+  0x00, 0x21, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x24, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, 0x80, 0x21, 0x80, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0xc0, 0x41, 0x80, 0x40, 0x80, 0x40, 0x80, 0x20,
+  0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xc0, 0x71, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x3f,
+  0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0xc0, 0x71, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x90,
+  0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xc0, 0x73, 0x00, 0x21, 0x00, 0x22, 0x00, 0x24, 0x00, 0x38,
+  0x00, 0x28, 0x00, 0x24, 0x00, 0x22, 0x00, 0x21, 0xc0, 0x73, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x80, 0x20, 0x00, 0x21, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x60, 0x30, 0xa0, 0x28,
+  0xa0, 0x28, 0xa0, 0x28, 0x20, 0x25, 0x20, 0x25, 0x20, 0x25, 0x20, 0x22,
+  0x70, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xc0, 0x61, 0x80, 0x20, 0x80, 0x30, 0x80, 0x28, 0x80, 0x24,
+  0x80, 0x24, 0x80, 0x22, 0x80, 0x21, 0x80, 0x20, 0x80, 0x70, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f,
+  0x80, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+  0x40, 0x40, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x21, 0x00, 0x21,
+  0x00, 0x21, 0x00, 0x21, 0x00, 0x3e, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x1f, 0x80, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+  0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x04,
+  0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e,
+  0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x3e, 0x00, 0x24, 0x00, 0x22,
+  0x00, 0x22, 0x00, 0x21, 0xc0, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x46, 0x00, 0x42,
+  0x00, 0x40, 0x00, 0x30, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x42, 0x00, 0x62,
+  0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x80, 0xff, 0x80, 0x88, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x71,
+  0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20,
+  0x80, 0x20, 0x00, 0x11, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf1, 0x80, 0x20, 0x80, 0x20,
+  0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0c,
+  0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xbc, 0xf7, 0x08, 0x21, 0x10, 0x21, 0x10, 0x23, 0x90, 0x12,
+  0xa0, 0x14, 0xa0, 0x14, 0xa0, 0x14, 0x40, 0x08, 0x40, 0x08, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfb,
+  0x80, 0x20, 0x00, 0x11, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x0a,
+  0x00, 0x12, 0x00, 0x21, 0xc0, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79, 0x80, 0x10, 0x00, 0x11,
+  0x00, 0x09, 0x00, 0x0a, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04,
+  0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x7f, 0x00, 0x42, 0x00, 0x44, 0x00, 0x04, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x20, 0x80, 0x20, 0x00, 0x41, 0x00, 0xff, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xe0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+  0x00, 0x48, 0x00, 0x48, 0x00, 0x84, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x3c,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0c,
+  0x00, 0x04, 0x00, 0x04, 0x00, 0x34, 0x00, 0x4c, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x4e, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x38, 0x00, 0x48, 0x00, 0x40, 0x00, 0x40, 0x00, 0xf0, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xf0, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x8c, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x70, 0x00, 0x80, 0x00, 0x78, 0x00, 0x84, 0x00, 0x84, 0x00, 0x78,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xc0,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x4e, 0x00, 0x48, 0x00, 0x50, 0x00, 0x70, 0x00, 0x48, 0x00, 0x44,
+  0x00, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x80, 0x59, 0x40, 0xe6, 0x40, 0x44, 0x40, 0x44,
+  0x40, 0x44, 0x40, 0x44, 0xe0, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x58, 0x00, 0xe4, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0xe4, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x64, 0x00, 0x58, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x34, 0x00, 0x4c, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c,
+  0x00, 0x34, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0xe0,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x40, 0x00, 0x30,
+  0x00, 0x08, 0x00, 0x48, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0xf0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x50,
+  0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4e, 0x00, 0x34, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28,
+  0x00, 0x28, 0x00, 0x28, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0xe0, 0xee, 0x40, 0x44, 0x40, 0x44, 0x80, 0x2a, 0x80, 0x2a, 0x00, 0x33,
+  0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44,
+  0x00, 0x28, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0xee, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28,
+  0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xc0,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x7c, 0x00, 0x48, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x44,
+  0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x30, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x71, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x02, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x46, 0x00, 0x48, 0x00, 0x48,
+  0x00, 0x52, 0x00, 0x32, 0x00, 0x3c, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x78, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x62,
+  0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x24, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x24, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
+  0x00, 0x22, 0x00, 0x14, 0x00, 0x14, 0x00, 0x7f, 0x00, 0x08, 0x00, 0x7f,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x1c, 0x00, 0x24, 0x00, 0x20, 0x00, 0x10, 0x00, 0x28,
+  0x00, 0x44, 0x00, 0x42, 0x00, 0x22, 0x00, 0x14, 0x00, 0x08, 0x00, 0x04,
+  0x00, 0x24, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x40, 0x40, 0x9f,
+  0x40, 0xa1, 0x40, 0xa0, 0x40, 0xa0, 0x40, 0xa1, 0x40, 0x9e, 0x80, 0x40,
+  0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xe0, 0x00, 0xa0, 0x00, 0x60, 0x00, 0xa0, 0x00, 0xf0,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x48, 0x00, 0x48, 0x00, 0x90,
+  0x00, 0x48, 0x00, 0x48, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xfe, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f,
+  0x80, 0x40, 0x40, 0xbc, 0x40, 0x92, 0x40, 0x9c, 0x40, 0x94, 0x40, 0x92,
+  0x40, 0xb9, 0x80, 0x40, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xfe, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x90, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xe0, 0x00, 0x10, 0x00, 0x60, 0x00, 0x10, 0x00, 0xe0,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x7e, 0x00, 0xf4, 0x00, 0xf4, 0x00, 0xf4, 0x00, 0xf4,
+  0x00, 0x74, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14,
+  0x00, 0x14, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x70,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
+  0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x90, 0x00, 0x48, 0x00, 0x48, 0x00, 0x24, 0x00, 0x48, 0x00, 0x48,
+  0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x80, 0x20, 0x80, 0x60, 0x00, 0x21, 0x00, 0x22, 0x00, 0x72,
+  0x40, 0x04, 0xc0, 0x08, 0x40, 0x09, 0xe0, 0x11, 0x40, 0x20, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x20,
+  0x00, 0x61, 0x00, 0x22, 0x00, 0x22, 0x00, 0x74, 0xe0, 0x08, 0x20, 0x09,
+  0x40, 0x10, 0x80, 0x20, 0xe0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x00, 0x11, 0x00, 0x62,
+  0x00, 0x12, 0x00, 0xe4, 0x40, 0x08, 0xc0, 0x08, 0x40, 0x11, 0xe0, 0x21,
+  0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x38, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
+  0x00, 0x04, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f,
+  0x80, 0x20, 0x80, 0x20, 0xe0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0a,
+  0x00, 0x0a, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x80, 0x20, 0x80, 0x20,
+  0xe0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09,
+  0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x11,
+  0x00, 0x11, 0x00, 0x1f, 0x80, 0x20, 0x80, 0x20, 0xe0, 0xf1, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x16, 0x00, 0x00, 0x00, 0x04,
+  0x00, 0x04, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f,
+  0x80, 0x20, 0x80, 0x20, 0xe0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0a,
+  0x00, 0x0a, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x80, 0x20, 0x80, 0x20,
+  0xe0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09,
+  0x00, 0x09, 0x00, 0x06, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x11,
+  0x00, 0x11, 0x00, 0x1f, 0x80, 0x20, 0x80, 0x20, 0xe0, 0xf1, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f,
+  0x08, 0x06, 0x00, 0x0a, 0x20, 0x0a, 0xe0, 0x13, 0x20, 0x3e, 0x00, 0x22,
+  0x08, 0x42, 0x18, 0x42, 0xf0, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, 0x80, 0x21, 0x80, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x80, 0x40, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x08, 0x00, 0x08, 0x00, 0x18, 0x00, 0x10, 0x00, 0x08,
+  0x00, 0x00, 0x00, 0x7f, 0x00, 0x21, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c,
+  0x00, 0x24, 0x00, 0x20, 0x80, 0x20, 0x00, 0x21, 0x00, 0x7f, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x7f,
+  0x00, 0x21, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x24, 0x00, 0x20,
+  0x80, 0x20, 0x00, 0x21, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x0c, 0x00, 0x12, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x21, 0x00, 0x20,
+  0x00, 0x24, 0x00, 0x3c, 0x00, 0x24, 0x00, 0x20, 0x80, 0x20, 0x00, 0x21,
+  0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+  0x00, 0x00, 0x00, 0x7f, 0x00, 0x21, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c,
+  0x00, 0x24, 0x00, 0x20, 0x80, 0x20, 0x00, 0x21, 0x00, 0x7f, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48,
+  0x00, 0x00, 0x00, 0x70, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x20, 0x40, 0x20,
+  0x20, 0x20, 0x20, 0xfe, 0x20, 0x20, 0x20, 0x20, 0x40, 0x20, 0x80, 0x20,
+  0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x16,
+  0x00, 0x00, 0xc0, 0x61, 0x80, 0x20, 0x80, 0x30, 0x80, 0x28, 0x80, 0x24,
+  0x80, 0x24, 0x80, 0x22, 0x80, 0x21, 0x80, 0x20, 0x80, 0x70, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1f,
+  0x80, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+  0x40, 0x40, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x20, 0x40, 0x40,
+  0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x20,
+  0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09,
+  0x00, 0x00, 0x00, 0x1f, 0x80, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+  0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1f,
+  0x80, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+  0x40, 0x40, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x20, 0x40, 0x40,
+  0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x20,
+  0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x24, 0x00, 0x18,
+  0x00, 0x18, 0x00, 0x24, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1f,
+  0x80, 0x21, 0x80, 0x41, 0x40, 0x42, 0x40, 0x44, 0x40, 0x48, 0x40, 0x48,
+  0x40, 0x30, 0x80, 0x30, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0xc0, 0x71, 0x80, 0x20, 0x80, 0x20,
+  0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x00, 0x11,
+  0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04,
+  0x00, 0x00, 0xc0, 0x71, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20,
+  0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x00, 0x11, 0x00, 0x0e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0xc0, 0x71,
+  0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20,
+  0x80, 0x20, 0x00, 0x11, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0xc0, 0x71, 0x80, 0x20, 0x80, 0x20,
+  0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x00, 0x11,
+  0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04,
+  0x00, 0x00, 0xe0, 0x79, 0x80, 0x10, 0x00, 0x11, 0x00, 0x09, 0x00, 0x0a,
+  0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x20, 0x00, 0x3e, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21,
+  0x00, 0x3e, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x4c, 0x00, 0x46, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x04, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44, 0x00, 0x3e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x3c,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00,
+  0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x04, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44, 0x00, 0x3e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x28, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x3c,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x24, 0x00, 0x18, 0x00, 0x00,
+  0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x48,
+  0x80, 0x1f, 0x00, 0x28, 0x00, 0x48, 0x80, 0x48, 0x00, 0x77, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x10, 0x00, 0x10, 0x00, 0x30,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
+  0x00, 0x24, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00,
+  0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x90, 0x00, 0x00,
+  0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x18,
+  0x00, 0x28, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x46, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00,
+  0x00, 0x58, 0x00, 0xe4, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00,
+  0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x28, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+  0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x46,
+  0x00, 0x46, 0x00, 0x4a, 0x00, 0x52, 0x00, 0x22, 0x00, 0x5c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x4e, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0xcc, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4e,
+  0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4e, 0x00, 0x34, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x28, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x4e, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, 0x00, 0x28, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x5c, 0x00, 0x62,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7c, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x28, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28,
+  0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xc0,
+  0x04, 0x03, 0x05, 0x08, 0x07, 0x0d, 0x0c, 0x03, 0x05, 0x05, 0x07, 0x08,
+  0x03, 0x05, 0x04, 0x04, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+  0x07, 0x07, 0x03, 0x04, 0x08, 0x08, 0x08, 0x07, 0x0e, 0x0b, 0x0a, 0x0a,
+  0x0b, 0x09, 0x08, 0x0a, 0x0b, 0x05, 0x06, 0x0b, 0x09, 0x0d, 0x0b, 0x0b,
+  0x09, 0x0b, 0x0a, 0x08, 0x09, 0x0b, 0x0b, 0x0e, 0x0a, 0x0b, 0x09, 0x05,
+  0x04, 0x04, 0x06, 0x08, 0x04, 0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x07,
+  0x07, 0x03, 0x04, 0x07, 0x03, 0x0b, 0x07, 0x07, 0x07, 0x07, 0x05, 0x06,
+  0x04, 0x07, 0x07, 0x0b, 0x07, 0x07, 0x06, 0x07, 0x03, 0x07, 0x08, 0x00,
+  0x04, 0x03, 0x08, 0x08, 0x08, 0x09, 0x03, 0x08, 0x05, 0x0b, 0x04, 0x07,
+  0x08, 0x05, 0x0b, 0x08, 0x06, 0x08, 0x05, 0x05, 0x04, 0x07, 0x07, 0x04,
+  0x04, 0x05, 0x04, 0x07, 0x0b, 0x0b, 0x0b, 0x07, 0x0b, 0x0b, 0x0b, 0x0b,
+  0x0b, 0x0b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x05, 0x05, 0x05, 0x05,
+  0x0c, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x08, 0x0b, 0x0b, 0x0b, 0x0b,
+  0x0b, 0x0b, 0x09, 0x08, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0a, 0x07,
+  0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x04, 0x03, 0x08, 0x07, 0x07, 0x07,
+  0x07, 0x07, 0x07, 0x08, 0x08, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x07,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x11,
+  0x80, 0x7f, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0xff, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x3e, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50,
+  0x00, 0x3c, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x7c, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+  0x00, 0x32, 0x00, 0x4c, 0x00, 0x4c, 0x00, 0x38, 0x00, 0x08, 0x00, 0x13,
+  0x80, 0x14, 0x80, 0x34, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x14,
+  0x00, 0x1c, 0x00, 0x18, 0x00, 0x2a, 0x00, 0x4a, 0x00, 0x46, 0x00, 0x44,
+  0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xf8, 0x00, 0x30, 0x00, 0x48,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xf8,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x04,
+  0x00, 0x38, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x08, 0x00, 0x18, 0x00, 0x28, 0x00, 0x48, 0x00, 0x88, 0x00, 0xfc,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x04, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x78,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xfe, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x3c, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+  0x00, 0x60, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x80, 0x00, 0xc0, 0x00, 0x60, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
+  0x80, 0x61, 0x40, 0x4c, 0x40, 0x98, 0x40, 0xa6, 0x40, 0xa6, 0x80, 0x9d,
+  0x00, 0x40, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x14, 0x00, 0x14, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22,
+  0x00, 0x3c, 0x00, 0x24, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x1c, 0x00, 0x24, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80,
+  0x00, 0x80, 0x00, 0x84, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x58,
+  0x00, 0x44, 0x00, 0x42, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x42,
+  0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x3e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7c, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x40, 0x00, 0x80, 0x00, 0xbe, 0x00, 0x82, 0x00, 0x82, 0x00, 0x84,
+  0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41,
+  0x00, 0x7f, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x7c, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x04,
+  0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x44, 0x00, 0x48, 0x00, 0x70,
+  0x00, 0x60, 0x00, 0x60, 0x00, 0x50, 0x00, 0x48, 0x00, 0x46, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x22,
+  0x00, 0x22, 0x00, 0x56, 0x00, 0x55, 0x00, 0x55, 0x00, 0x55, 0x80, 0x88,
+  0x80, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x60, 0x80, 0x50, 0x80, 0x48,
+  0x80, 0x48, 0x80, 0x44, 0x80, 0x42, 0x80, 0x41, 0x80, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x0e, 0x00, 0x11, 0x80, 0x20, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x00, 0x41, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x48,
+  0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x70, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x44, 0x80, 0x23, 0x00, 0x1f, 0x80, 0x01,
+  0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x70, 0x00, 0x48, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x78,
+  0x00, 0x50, 0x00, 0x48, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x3c, 0x00, 0x02, 0x00, 0x02, 0x00, 0x84,
+  0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41,
+  0x00, 0x41, 0x00, 0x22, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x82,
+  0x00, 0x84, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, 0x00, 0x28, 0x00, 0x30,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x20, 0x84, 0x20, 0x84, 0x40, 0x44, 0x40, 0x4a,
+  0x40, 0x4a, 0x80, 0x52, 0x80, 0x52, 0x80, 0x22, 0x00, 0x21, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x81, 0x00, 0x42, 0x00, 0x24, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18,
+  0x00, 0x24, 0x00, 0x42, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x24, 0x00, 0x28, 0x00, 0x18, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0xff, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xc0,
+  0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x70, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x70, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80,
+  0x00, 0x80, 0x00, 0xf0, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+  0x00, 0x48, 0x00, 0x80, 0x00, 0x80, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x78, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x90, 0x00, 0xe0, 0x00, 0x88,
+  0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x18, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xf8,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x78, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf0,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80,
+  0x00, 0x80, 0x00, 0xb0, 0x00, 0xc8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80,
+  0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x90, 0x00, 0x60,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80,
+  0x00, 0x80, 0x00, 0x90, 0x00, 0xa0, 0x00, 0xe0, 0x00, 0xd0, 0x00, 0x90,
+  0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80,
+  0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xda, 0x00, 0x92,
+  0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xb0, 0x00, 0xc8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0xf0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x78, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0,
+  0x00, 0xd0, 0x00, 0x90, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x88, 0x00, 0x60,
+  0x00, 0x10, 0x00, 0x08, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0xf8, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x78, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x88, 0x00, 0x50,
+  0x00, 0x50, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x92, 0x00, 0x92, 0x00, 0xb4, 0x00, 0xb4, 0x00, 0x54,
+  0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84,
+  0x00, 0x48, 0x00, 0x30, 0x00, 0x30, 0x00, 0x48, 0x00, 0x84, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x48, 0x00, 0x48,
+  0x00, 0x30, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x78, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40,
+  0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x30, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, 0x30, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64,
+  0x00, 0xe4, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x78, 0x00, 0x68, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xa8,
+  0x00, 0xa8, 0x00, 0x70, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x30, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0xfc, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x21,
+  0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x7c,
+  0x00, 0x48, 0x00, 0x48, 0x00, 0x78, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x82, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, 0x00, 0x7c, 0x00, 0x10,
+  0x00, 0x38, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x22, 0x00, 0x20, 0x00, 0x3c,
+  0x00, 0x22, 0x00, 0x1e, 0x00, 0x02, 0x00, 0x22, 0x00, 0x1c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x62, 0x00, 0x9d,
+  0x00, 0xa1, 0x00, 0xa5, 0x00, 0x9b, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x90, 0x00, 0x98, 0x00, 0x68,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x50, 0x00, 0xa0,
+  0x00, 0x50, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c,
+  0x00, 0x42, 0x00, 0x9d, 0x00, 0x95, 0x00, 0x9d, 0x00, 0xa9, 0x00, 0xa7,
+  0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x60, 0x00, 0x90, 0x00, 0x90, 0x00, 0x60, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xf8,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x28, 0x00, 0x18,
+  0x00, 0x20, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00, 0x08, 0x00, 0x04, 0x00, 0x1c,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x22, 0x00, 0x22, 0x00, 0x46, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x7c, 0x00, 0xc0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x3a, 0x00, 0x4a, 0x00, 0x4a,
+  0x00, 0x4a, 0x00, 0x4a, 0x00, 0x3a, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x60, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x50, 0x00, 0x28, 0x00, 0x14, 0x00, 0x28, 0x00, 0x50,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c,
+  0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x28,
+  0x00, 0x7c, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x18, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x7e,
+  0x00, 0x00, 0x00, 0x1c, 0x00, 0x14, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x1c,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x08, 0x00, 0x18,
+  0x00, 0x08, 0x00, 0x38, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x18, 0x00, 0x28, 0x00, 0x7c, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x30, 0x00, 0x40,
+  0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xc8, 0x00, 0x70, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x24, 0x00, 0x3c,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x14, 0x00, 0x14, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c,
+  0x00, 0x12, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14,
+  0x00, 0x24, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x82, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x2e, 0x00, 0x00,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x24, 0x00, 0x3c,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x14, 0x00, 0x14, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c,
+  0x00, 0x12, 0x00, 0x12, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14,
+  0x00, 0x24, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x82, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01,
+  0x00, 0x03, 0x00, 0x05, 0x00, 0x09, 0x00, 0x11, 0xf8, 0x1f, 0x00, 0x21,
+  0x00, 0x41, 0x00, 0x81, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x24,
+  0x00, 0x44, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xcc,
+  0x00, 0x78, 0x00, 0x08, 0x00, 0x38, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10,
+  0x00, 0x08, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x3e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x24, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x3e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0x7c, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+  0x00, 0x48, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00,
+  0x00, 0x7c, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x58,
+  0x00, 0x44, 0x00, 0x42, 0x00, 0x41, 0x00, 0xf1, 0x00, 0x41, 0x00, 0x41,
+  0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a,
+  0x00, 0x2e, 0x00, 0x00, 0x80, 0x40, 0x80, 0x60, 0x80, 0x50, 0x80, 0x48,
+  0x80, 0x48, 0x80, 0x44, 0x80, 0x42, 0x80, 0x41, 0x80, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00,
+  0x00, 0x0e, 0x00, 0x11, 0x80, 0x20, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x00, 0x41, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x11,
+  0x80, 0x20, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x41, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
+  0x00, 0x09, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x11, 0x80, 0x20, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x00, 0x41, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x17, 0x00, 0x00,
+  0x00, 0x0e, 0x00, 0x11, 0x80, 0x20, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x00, 0x41, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x11,
+  0x80, 0x20, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x41, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98,
+  0x00, 0xe0, 0x00, 0x60, 0x00, 0xf0, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x80, 0x1e, 0x80, 0x61, 0x80, 0x42, 0x80, 0x84, 0x80, 0x88, 0x80, 0x91,
+  0x00, 0xe1, 0x00, 0x43, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x41, 0x00, 0x41,
+  0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x22,
+  0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41,
+  0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x22, 0x00, 0x1c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00,
+  0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41,
+  0x00, 0x41, 0x00, 0x22, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x41, 0x00, 0x41,
+  0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x22,
+  0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x00, 0x00, 0x82, 0x00, 0x44, 0x00, 0x44, 0x00, 0x24,
+  0x00, 0x28, 0x00, 0x18, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x78, 0x00, 0x4c, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c,
+  0x00, 0x78, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x90, 0x00, 0xa0, 0x00, 0x90, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0xf0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x38,
+  0x00, 0x48, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x74, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x38,
+  0x00, 0x48, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x74, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f,
+  0x80, 0x24, 0x00, 0x45, 0x00, 0x46, 0x40, 0x64, 0x80, 0x3f, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x80,
+  0x00, 0x80, 0x00, 0x88, 0x00, 0x78, 0x00, 0x10, 0x00, 0x70, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10,
+  0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x90, 0x00, 0xe0, 0x00, 0x88,
+  0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x88, 0x00, 0x90, 0x00, 0xe0, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x30, 0x00, 0x48, 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x90,
+  0x00, 0xe0, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x90, 0x00, 0xe0, 0x00, 0x88,
+  0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x90,
+  0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x78, 0x00, 0x30, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x38, 0x00, 0x48,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x00, 0xb8,
+  0x00, 0x00, 0x00, 0xb0, 0x00, 0xc8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48,
+  0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
+  0x00, 0xc8, 0x00, 0xb8, 0x00, 0xa8, 0x00, 0xc8, 0x00, 0xf0, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20,
+  0x00, 0x00, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x90, 0x00, 0x00, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x78, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40,
+  0x00, 0x00, 0x00, 0x84, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30, 0x00, 0x30,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xf0,
+  0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0xf0, 0x00, 0x80,
+  0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x84, 0x00, 0x48, 0x00, 0x48,
+  0x00, 0x30, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40,
+  0x04, 0x03, 0x05, 0x0a, 0x08, 0x0a, 0x08, 0x05, 0x04, 0x04, 0x06, 0x06,
+  0x03, 0x05, 0x03, 0x06, 0x07, 0x05, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+  0x07, 0x07, 0x04, 0x04, 0x05, 0x06, 0x04, 0x06, 0x0b, 0x08, 0x08, 0x07,
+  0x09, 0x08, 0x07, 0x08, 0x09, 0x07, 0x08, 0x07, 0x07, 0x0a, 0x0a, 0x0a,
+  0x06, 0x0b, 0x07, 0x08, 0x08, 0x09, 0x08, 0x0c, 0x09, 0x08, 0x09, 0x05,
+  0x06, 0x05, 0x06, 0x08, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+  0x06, 0x02, 0x05, 0x06, 0x02, 0x08, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06,
+  0x06, 0x06, 0x06, 0x08, 0x07, 0x06, 0x06, 0x04, 0x05, 0x04, 0x07, 0x00,
+  0x04, 0x03, 0x06, 0x09, 0x07, 0x08, 0x05, 0x08, 0x07, 0x09, 0x06, 0x07,
+  0x06, 0x05, 0x09, 0x07, 0x05, 0x06, 0x08, 0x08, 0x07, 0x07, 0x08, 0x03,
+  0x07, 0x08, 0x08, 0x07, 0x08, 0x08, 0x08, 0x06, 0x08, 0x08, 0x08, 0x08,
+  0x08, 0x08, 0x0e, 0x07, 0x08, 0x08, 0x08, 0x08, 0x07, 0x07, 0x07, 0x07,
+  0x09, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x06, 0x0a, 0x09, 0x09, 0x09,
+  0x09, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0b, 0x06,
+  0x06, 0x06, 0x06, 0x06, 0x03, 0x03, 0x04, 0x04, 0x06, 0x06, 0x06, 0x06,
+  0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,
+  0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14,
+  0x00, 0x7e, 0x00, 0x28, 0x00, 0x28, 0x00, 0xfc, 0x00, 0x50, 0x00, 0x50,
+  0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x38, 0x00, 0x54, 0x00, 0x54, 0x00, 0x50,
+  0x00, 0x38, 0x00, 0x14, 0x00, 0x14, 0x00, 0x54, 0x00, 0x38, 0x00, 0x10,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+  0x40, 0x48, 0x80, 0x48, 0x00, 0x31, 0x00, 0x02, 0x00, 0x04, 0xc0, 0x08,
+  0x20, 0x11, 0x20, 0x21, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x24,
+  0x00, 0x24, 0x00, 0x18, 0x00, 0x28, 0x00, 0x44, 0x00, 0x45, 0x00, 0x42,
+  0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x20, 0x00, 0xa8, 0x00, 0x70, 0x00, 0xd8, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+  0x00, 0x70, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x04, 0x00, 0x18,
+  0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
+  0x00, 0x0c, 0x00, 0x14, 0x00, 0x14, 0x00, 0x24, 0x00, 0x44, 0x00, 0x7c,
+  0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x78, 0x00, 0x44, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x40, 0x00, 0x40, 0x00, 0x58,
+  0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c,
+  0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c,
+  0x00, 0x34, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x18, 0x00, 0x30,
+  0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x7c,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
+  0x00, 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x04, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x60, 0x18,
+  0x10, 0x20, 0x10, 0x20, 0xc8, 0x43, 0x48, 0x44, 0x48, 0x44, 0x88, 0x44,
+  0x70, 0x23, 0x00, 0x20, 0x30, 0x18, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14,
+  0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x7f, 0x00, 0x41, 0x80, 0x80,
+  0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x7e, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x7e,
+  0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x7e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
+  0x00, 0x21, 0x80, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x41, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x41,
+  0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x7f, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7f, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x80, 0x43, 0x80, 0x40, 0x80, 0x40, 0x80, 0x21,
+  0x80, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x7f,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04,
+  0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x42, 0x00, 0x44, 0x00, 0x48, 0x00, 0x50, 0x00, 0x60,
+  0x00, 0x50, 0x00, 0x48, 0x00, 0x44, 0x00, 0x42, 0x00, 0x41, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x60,
+  0xc0, 0x60, 0x40, 0x51, 0x40, 0x51, 0x40, 0x4a, 0x40, 0x4a, 0x40, 0x44,
+  0x40, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x80, 0x40, 0x80, 0x60, 0x80, 0x50, 0x80, 0x50, 0x80, 0x48,
+  0x80, 0x44, 0x80, 0x42, 0x80, 0x42, 0x80, 0x41, 0x80, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
+  0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x41, 0x80, 0x40,
+  0x80, 0x40, 0x00, 0x41, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x42, 0x00, 0x21, 0x80, 0x1e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e,
+  0x00, 0x41, 0x80, 0x40, 0x80, 0x40, 0x00, 0x41, 0x00, 0x7f, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x41, 0x00, 0x41,
+  0x00, 0x40, 0x00, 0x38, 0x00, 0x06, 0x00, 0x01, 0x00, 0x41, 0x00, 0x41,
+  0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x80, 0xff, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x41,
+  0x00, 0x41, 0x00, 0x22, 0x00, 0x22, 0x00, 0x14, 0x00, 0x14, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x08, 0x82, 0x08, 0x82, 0x08, 0x82, 0x10, 0x45, 0x10, 0x45,
+  0xa0, 0x28, 0xa0, 0x28, 0xa0, 0x28, 0x40, 0x10, 0x40, 0x10, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
+  0x00, 0x81, 0x00, 0x42, 0x00, 0x24, 0x00, 0x18, 0x00, 0x18, 0x00, 0x24,
+  0x00, 0x42, 0x00, 0x81, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x41,
+  0x00, 0x22, 0x00, 0x14, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x7e, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x7e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xe0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x28,
+  0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x3e, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x5c, 0x00, 0x62, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x62,
+  0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+  0x00, 0x02, 0x00, 0x02, 0x00, 0x3a, 0x00, 0x46, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x46, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x42,
+  0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x46, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x46, 0x00, 0x3a, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3c,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x44, 0x00, 0x48, 0x00, 0x50, 0x00, 0x70, 0x00, 0x48, 0x00, 0x44,
+  0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x80, 0x59, 0x40, 0x66, 0x40, 0x44, 0x40, 0x44,
+  0x40, 0x44, 0x40, 0x44, 0x40, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x62, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x62, 0x00, 0x5c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x3a, 0x00, 0x46, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x46,
+  0x00, 0x3a, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x60,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x40, 0x00, 0x38,
+  0x00, 0x04, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0xe0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x34, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x82, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x28, 0x00, 0x28, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x80, 0x88, 0x80, 0x88, 0x00, 0x55, 0x00, 0x55, 0x00, 0x55, 0x00, 0x22,
+  0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x48,
+  0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x48, 0x00, 0x84, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x82, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x28, 0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xc0,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x78, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40,
+  0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x18, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0xc0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x18, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x31, 0x00, 0x49, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x04, 0x00, 0x38, 0x00, 0x4c, 0x00, 0x48, 0x00, 0x50,
+  0x00, 0x50, 0x00, 0x64, 0x00, 0x38, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x20, 0x00, 0x78, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40,
+  0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x44, 0x00, 0x38, 0x00, 0x28, 0x00, 0x38, 0x00, 0x44,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82,
+  0x00, 0x82, 0x00, 0x44, 0x00, 0x28, 0x00, 0xfe, 0x00, 0x10, 0x00, 0xfe,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x20, 0x00, 0x30, 0x00, 0x48,
+  0x00, 0x24, 0x00, 0x18, 0x00, 0x08, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x9d,
+  0x00, 0xa1, 0x00, 0xa1, 0x00, 0x9d, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x30, 0x00, 0x50, 0x00, 0x30,
+  0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x28, 0x00, 0x50,
+  0x00, 0x28, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c,
+  0x00, 0x42, 0x00, 0xb9, 0x00, 0xa5, 0x00, 0xb9, 0x00, 0xa5, 0x00, 0x42,
+  0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x20, 0x00, 0x50, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x10,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x90, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x60, 0x00, 0x90, 0x00, 0x20, 0x00, 0x90, 0x00, 0x60,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x7a, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x3c, 0x00, 0x74, 0x00, 0x74, 0x00, 0x74, 0x00, 0x74,
+  0x00, 0x34, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x50, 0x00, 0x28, 0x00, 0x14, 0x00, 0x28, 0x00, 0x50,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x42, 0x00, 0xc2, 0x00, 0x44, 0x00, 0x44, 0x00, 0x48,
+  0x80, 0x08, 0x80, 0x11, 0x80, 0x12, 0x80, 0x27, 0x80, 0x20, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42,
+  0x00, 0xc2, 0x00, 0x44, 0x00, 0x44, 0x00, 0x48, 0x00, 0x0b, 0x80, 0x14,
+  0x00, 0x11, 0x00, 0x22, 0x80, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x00, 0x92, 0x00, 0x24,
+  0x00, 0x94, 0x00, 0x68, 0x80, 0x08, 0x80, 0x11, 0x80, 0x12, 0x80, 0x27,
+  0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x38, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x7f,
+  0x00, 0x41, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14,
+  0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x7f, 0x00, 0x41, 0x80, 0x80,
+  0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x14,
+  0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22,
+  0x00, 0x22, 0x00, 0x7f, 0x00, 0x41, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x7f,
+  0x00, 0x41, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14,
+  0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x7f, 0x00, 0x41, 0x80, 0x80,
+  0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x14,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22,
+  0x00, 0x22, 0x00, 0x7f, 0x00, 0x41, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f,
+  0x00, 0x0c, 0x00, 0x14, 0x00, 0x14, 0xe0, 0x27, 0x00, 0x24, 0x00, 0x7c,
+  0x00, 0x44, 0x00, 0x84, 0xf0, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x80, 0x40, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x08,
+  0x00, 0x00, 0x00, 0x7f, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7f, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x7f,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x08, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x7f, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7f, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xa0,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x42, 0x00, 0x41,
+  0x00, 0x41, 0x00, 0xf1, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x42,
+  0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x26,
+  0x00, 0x00, 0x80, 0x40, 0x80, 0x60, 0x80, 0x50, 0x80, 0x50, 0x80, 0x48,
+  0x80, 0x44, 0x80, 0x42, 0x80, 0x42, 0x80, 0x41, 0x80, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1e,
+  0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x12,
+  0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1e,
+  0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x28,
+  0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e,
+  0x00, 0x21, 0x80, 0x42, 0x80, 0x42, 0x80, 0x44, 0x80, 0x48, 0x80, 0x50,
+  0x80, 0x50, 0x00, 0x21, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08,
+  0x00, 0x00, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x12, 0x00, 0x12, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40,
+  0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21,
+  0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08,
+  0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x41, 0x00, 0x22, 0x00, 0x14,
+  0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x7c, 0x00, 0x42, 0x00, 0x41, 0x00, 0x41, 0x00, 0x42,
+  0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x5c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42,
+  0x00, 0x3e, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3d, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x3e, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00,
+  0x00, 0x3c, 0x00, 0x42, 0x00, 0x3e, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x32, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42,
+  0x00, 0x3e, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3d, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x3e, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x18, 0x00, 0x00,
+  0x00, 0x3c, 0x00, 0x42, 0x00, 0x3e, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3d, 0x10, 0x42,
+  0x10, 0x3e, 0xf0, 0x43, 0x00, 0x42, 0x10, 0x42, 0xe0, 0x3d, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x08, 0x00, 0x04, 0x00, 0x18,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00,
+  0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x42,
+  0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
+  0x00, 0x24, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7e,
+  0x00, 0x40, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x42,
+  0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xa0, 0x00, 0x00,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+  0x00, 0x08, 0x00, 0x14, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00,
+  0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00,
+  0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x32, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3c, 0x00, 0x46,
+  0x00, 0x4a, 0x00, 0x4a, 0x00, 0x52, 0x00, 0x62, 0x00, 0x3c, 0x00, 0x40,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+  0x00, 0x10, 0x00, 0x00, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x4c, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c,
+  0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x00, 0x28, 0x00, 0x00, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x34, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x44, 0x00, 0x4c, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00,
+  0x00, 0x82, 0x00, 0x82, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, 0x00, 0x28,
+  0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x5c, 0x00, 0x62,
+  0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x62, 0x00, 0x5c, 0x00, 0x40,
+  0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x82, 0x00, 0x44, 0x00, 0x44,
+  0x00, 0x28, 0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xc0,
+  0x03, 0x03, 0x05, 0x07, 0x07, 0x0c, 0x09, 0x03, 0x04, 0x04, 0x05, 0x07,
+  0x03, 0x04, 0x03, 0x04, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+  0x07, 0x07, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x0e, 0x09, 0x09, 0x09,
+  0x0a, 0x09, 0x08, 0x0a, 0x0a, 0x03, 0x07, 0x08, 0x07, 0x0b, 0x0a, 0x0a,
+  0x09, 0x0a, 0x0a, 0x09, 0x09, 0x0a, 0x09, 0x0d, 0x08, 0x09, 0x08, 0x04,
+  0x04, 0x04, 0x07, 0x07, 0x04, 0x08, 0x08, 0x07, 0x08, 0x08, 0x03, 0x08,
+  0x07, 0x03, 0x03, 0x07, 0x03, 0x0b, 0x07, 0x08, 0x08, 0x08, 0x04, 0x07,
+  0x03, 0x07, 0x07, 0x09, 0x06, 0x07, 0x06, 0x05, 0x03, 0x05, 0x09, 0x00,
+  0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x03, 0x07, 0x04, 0x08, 0x05, 0x07,
+  0x07, 0x04, 0x08, 0x07, 0x04, 0x07, 0x04, 0x04, 0x04, 0x07, 0x07, 0x03,
+  0x04, 0x04, 0x05, 0x07, 0x09, 0x09, 0x09, 0x07, 0x09, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x0d, 0x09, 0x09, 0x09, 0x09, 0x09, 0x03, 0x03, 0x03, 0x03,
+  0x09, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x07, 0x0a, 0x0a, 0x0a, 0x0a,
+  0x0a, 0x09, 0x09, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0d, 0x07,
+  0x08, 0x08, 0x08, 0x08, 0x03, 0x03, 0x03, 0x03, 0x08, 0x07, 0x08, 0x08,
+  0x08, 0x08, 0x08, 0x07, 0x08, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x07,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
+  0x00, 0x80, 0x00, 0x00, 0xa0, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x50, 0xf8, 0x50, 0xf8, 0x50, 0x00, 0x00, 0x00, 0x20, 0xf8, 0xa0, 0xf8,
+  0x28, 0xf8, 0x20, 0x00, 0x90, 0x10, 0x20, 0x40, 0x80, 0x90, 0x00, 0x00,
+  0x40, 0xa0, 0x40, 0xa8, 0x90, 0x68, 0x00, 0x00, 0x40, 0x40, 0x80, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x20, 0x40, 0x80, 0x80, 0x80, 0x40, 0x20, 0x00,
+  0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x90, 0x60, 0xf0,
+  0x60, 0x90, 0x00, 0x00, 0x00, 0x20, 0x20, 0xf8, 0x20, 0x20, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
+  0x10, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x60, 0x90, 0x90, 0x90,
+  0x90, 0x60, 0x00, 0x00, 0x40, 0xc0, 0x40, 0x40, 0x40, 0xe0, 0x00, 0x00,
+  0x60, 0x90, 0x20, 0x40, 0x80, 0xf0, 0x00, 0x00, 0x60, 0x90, 0x20, 0x10,
+  0x90, 0x60, 0x00, 0x00, 0xa0, 0xa0, 0xf0, 0x20, 0x20, 0x20, 0x00, 0x00,
+  0xf0, 0x80, 0xe0, 0x10, 0x10, 0xe0, 0x00, 0x00, 0x70, 0x80, 0xe0, 0x90,
+  0x90, 0x60, 0x00, 0x00, 0xf0, 0x10, 0x20, 0x40, 0x40, 0x40, 0x00, 0x00,
+  0x60, 0x90, 0x60, 0x90, 0x90, 0x60, 0x00, 0x00, 0x60, 0x90, 0x90, 0x70,
+  0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x40, 0x00, 0x40, 0x40, 0x80, 0x00, 0x00, 0x20, 0x40, 0x80,
+  0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0x00, 0x00,
+  0x00, 0x80, 0x40, 0x20, 0x40, 0x80, 0x00, 0x00, 0x70, 0x88, 0x10, 0x20,
+  0x00, 0x20, 0x00, 0x00, 0x60, 0x90, 0xb0, 0xb0, 0x80, 0x70, 0x00, 0x00,
+  0x60, 0x90, 0x90, 0xf0, 0x90, 0x90, 0x00, 0x00, 0xe0, 0x90, 0xe0, 0x90,
+  0x90, 0xe0, 0x00, 0x00, 0x70, 0x80, 0x80, 0x80, 0x80, 0x70, 0x00, 0x00,
+  0xe0, 0x90, 0x90, 0x90, 0x90, 0xe0, 0x00, 0x00, 0xf0, 0x80, 0xe0, 0x80,
+  0x80, 0xf0, 0x00, 0x00, 0xf0, 0x80, 0xe0, 0x80, 0x80, 0x80, 0x00, 0x00,
+  0x70, 0x80, 0x80, 0xb0, 0x90, 0x70, 0x00, 0x00, 0x90, 0x90, 0x90, 0xf0,
+  0x90, 0x90, 0x00, 0x00, 0xe0, 0x40, 0x40, 0x40, 0x40, 0xe0, 0x00, 0x00,
+  0x10, 0x10, 0x10, 0x10, 0x90, 0x60, 0x00, 0x00, 0x90, 0xa0, 0xc0, 0xa0,
+  0x90, 0x90, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0xf0, 0x00, 0x00,
+  0x88, 0xd8, 0xa8, 0x88, 0x88, 0x88, 0x00, 0x00, 0x90, 0xd0, 0xb0, 0x90,
+  0x90, 0x90, 0x00, 0x00, 0x60, 0x90, 0x90, 0x90, 0x90, 0x60, 0x00, 0x00,
+  0xe0, 0x90, 0x90, 0xe0, 0x80, 0x80, 0x00, 0x00, 0x60, 0x90, 0x90, 0x90,
+  0xb0, 0x70, 0x18, 0x00, 0xe0, 0x90, 0x90, 0xe0, 0xc0, 0xb0, 0x00, 0x00,
+  0x70, 0x80, 0x60, 0x10, 0x90, 0x60, 0x00, 0x00, 0xf8, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x90, 0x60, 0x00, 0x00,
+  0x88, 0x88, 0x88, 0x50, 0x50, 0x20, 0x00, 0x00, 0x88, 0x88, 0x88, 0xa8,
+  0xd8, 0x88, 0x00, 0x00, 0x88, 0x50, 0x20, 0x20, 0x50, 0x88, 0x00, 0x00,
+  0x88, 0x88, 0x50, 0x20, 0x20, 0x20, 0x00, 0x00, 0xf0, 0x10, 0x20, 0x40,
+  0x80, 0xf0, 0x00, 0x00, 0xc0, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x00, 0x00,
+  0x80, 0x80, 0x40, 0x20, 0x10, 0x10, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40,
+  0x40, 0xc0, 0x00, 0x00, 0x20, 0x50, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x80, 0x80, 0x40, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x20, 0xe0, 0xa0, 0xe0, 0x00, 0x00,
+  0x80, 0xe0, 0xa0, 0xa0, 0xa0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0x80, 0x80,
+  0x80, 0xe0, 0x00, 0x00, 0x20, 0xe0, 0xa0, 0xa0, 0xa0, 0xe0, 0x00, 0x00,
+  0x00, 0xe0, 0xa0, 0xe0, 0x80, 0xe0, 0x00, 0x00, 0x60, 0x40, 0xe0, 0x40,
+  0x40, 0x40, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0xa0, 0xa0, 0xe0, 0x20, 0xe0,
+  0x80, 0xe0, 0xa0, 0xa0, 0xa0, 0xa0, 0x00, 0x00, 0x80, 0x00, 0x80, 0x80,
+  0x80, 0x80, 0x00, 0x00, 0x40, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0,
+  0x80, 0xa0, 0xa0, 0xc0, 0xa0, 0xa0, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
+  0x80, 0x80, 0x00, 0x00, 0x00, 0xf8, 0xa8, 0xa8, 0xa8, 0xa8, 0x00, 0x00,
+  0x00, 0xe0, 0xa0, 0xa0, 0xa0, 0xa0, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0xa0,
+  0xa0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0xa0, 0xa0, 0xe0, 0x80, 0x80,
+  0x00, 0xe0, 0xa0, 0xa0, 0xa0, 0xe0, 0x20, 0x20, 0x00, 0xe0, 0x80, 0x80,
+  0x80, 0x80, 0x00, 0x00, 0x00, 0xe0, 0x80, 0xe0, 0x20, 0xe0, 0x00, 0x00,
+  0x40, 0xe0, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0xa0,
+  0xa0, 0xe0, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0xa0, 0xa0, 0x40, 0x00, 0x00,
+  0x00, 0xa8, 0xa8, 0xa8, 0xa8, 0xf8, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0x40,
+  0xa0, 0xa0, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0xa0, 0xa0, 0xe0, 0x20, 0xe0,
+  0x00, 0xe0, 0x20, 0x40, 0x80, 0xe0, 0x00, 0x00, 0x20, 0x40, 0x40, 0x80,
+  0x40, 0x40, 0x20, 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00,
+  0x80, 0x40, 0x40, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x40, 0xa8,
+  0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0x04, 0x02, 0x04, 0x06, 0x06, 0x05, 0x06, 0x03, 0x04, 0x04, 0x05, 0x06,
+  0x03, 0x05, 0x02, 0x05, 0x05, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+  0x05, 0x05, 0x02, 0x03, 0x04, 0x05, 0x04, 0x06, 0x05, 0x05, 0x05, 0x05,
+  0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x05, 0x05, 0x05, 0x06, 0x05, 0x05,
+  0x05, 0x06, 0x05, 0x05, 0x06, 0x05, 0x06, 0x06, 0x06, 0x06, 0x05, 0x03,
+  0x05, 0x03, 0x06, 0x05, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
+  0x04, 0x02, 0x03, 0x04, 0x02, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
+  0x04, 0x04, 0x04, 0x06, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x06, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x70, 0xff,
+  0x70, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x0e, 0xff, 0x0e, 0x0c, 0x00, 0x00,
+  0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x40, 0x20, 0x10,
+  0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
+  0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+  0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0xff,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x08, 0x08, 0x08,
+  0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x10,
+  0xf0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0xf8,
+  0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf8, 0x00, 0x00, 0x00,
+  0x10, 0x10, 0x10, 0x10, 0x1f, 0x20, 0x40, 0x80, 0x80, 0x40, 0x20, 0x1f,
+  0x10, 0x10, 0x10, 0x10, 0x01, 0x02, 0x04, 0xf8, 0x08, 0x08, 0x08, 0x08,
+  0x08, 0x08, 0x08, 0x08, 0xf8, 0x04, 0x02, 0x01, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8,
+  0xf8, 0xf8, 0xf8, 0xf8, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
+  0x08, 0x08, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0x08, 0x08, 0x08, 0xf8, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8,
+  0x1f, 0x1f, 0x1f, 0x1f, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
+  0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
+  0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8,
+  0xf8, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x20, 0x40, 0x80,
+  0x80, 0x40, 0x20, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x01, 0x02, 0x04, 0xf8,
+  0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0x04, 0x02, 0x01,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+  0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
+  0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x01, 0x01, 0x01, 0x01,
+  0x01, 0x01, 0x01, 0x01, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
+  0x00, 0xff, 0x80, 0x80, 0x80, 0x80, 0xff, 0x00, 0x00, 0xff, 0xc0, 0xc0,
+  0xc0, 0xc0, 0xff, 0x00, 0x00, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0x00,
+  0x00, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0x00, 0x00, 0xff, 0xf8, 0xf8,
+  0xf8, 0xf8, 0xff, 0x00, 0x00, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0x00,
+  0x00, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
+  0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x81, 0x42, 0x24, 0x18,
+  0x18, 0x24, 0x42, 0x81, 0x08, 0x08, 0x08, 0x08, 0xff, 0x08, 0x08, 0x08,
+  0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18,
+  0x18, 0x7e, 0x3c, 0x18, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x7e, 0x3c, 0x18,
+  0xff, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xff, 0x00, 0x3c, 0x66, 0x06,
+  0x18, 0x00, 0x18, 0x00, 0x63, 0x76, 0x5c, 0x60, 0x78, 0x66, 0x60, 0x00,
+  0x78, 0x6e, 0x63, 0x7c, 0x63, 0x6e, 0x78, 0x00, 0x00, 0x1e, 0x1b, 0x18,
+  0x18, 0xd8, 0x78, 0x00, 0x63, 0x63, 0x77, 0x49, 0x77, 0x63, 0x63, 0x00,
+  0x63, 0x77, 0x6b, 0x6b, 0x63, 0x63, 0x63, 0x00, 0x49, 0x52, 0x64, 0x68,
+  0x70, 0x60, 0x60, 0x00, 0x00, 0x63, 0x36, 0x1c, 0x1c, 0x36, 0x63, 0x00,
+  0x63, 0x53, 0x4f, 0x63, 0x79, 0x65, 0x63, 0x00, 0x30, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x00, 0x18, 0x18, 0x7e, 0x99, 0x7e, 0x18, 0x18, 0x00,
+  0x60, 0x60, 0x78, 0x6c, 0x67, 0x63, 0x63, 0x00, 0x38, 0x3c, 0x36, 0x30,
+  0x30, 0x30, 0x30, 0x00, 0x77, 0x6b, 0x77, 0x63, 0x63, 0x63, 0x63, 0x00,
+  0x18, 0xd8, 0x78, 0x3c, 0x1e, 0x1b, 0x18, 0x00, 0x71, 0x6a, 0x64, 0x71,
+  0x6a, 0x64, 0x60, 0x00, 0x60, 0x60, 0x63, 0x67, 0x6f, 0x7b, 0x73, 0x00,
+  0x18, 0x18, 0x18, 0x18, 0x3c, 0x5a, 0xdb, 0x00, 0x7c, 0x63, 0x63, 0x7c,
+  0x66, 0x63, 0x63, 0x00, 0x60, 0x63, 0x67, 0x6f, 0x7b, 0x73, 0x03, 0x00,
+  0x18, 0x3c, 0x5a, 0x99, 0x18, 0x18, 0x18, 0x00, 0x70, 0x78, 0x6c, 0x66,
+  0x63, 0x63, 0x63, 0x00, 0x7e, 0x03, 0x7e, 0x03, 0x03, 0x03, 0x7c, 0x00,
+  0x70, 0x6c, 0x63, 0x6c, 0x78, 0x60, 0x60, 0x00, 0xdb, 0x5a, 0x3c, 0x18,
+  0x18, 0x18, 0x18, 0x00, 0x78, 0x64, 0x52, 0x49, 0x4f, 0x49, 0x49, 0x00,
+  0x60, 0x63, 0x66, 0x6c, 0x78, 0x60, 0x60, 0x00, 0xe7, 0xc3, 0x81, 0xe7,
+  0xe7, 0xe7, 0xe7, 0xff, 0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0x81, 0xc3, 0xe7,
+  0xe7, 0xc3, 0x81, 0xe7, 0xe7, 0x81, 0xc3, 0xe7, 0xff, 0xc3, 0x99, 0xf9,
+  0xe7, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};