diff --git a/apps/gui/statusbar.h b/apps/gui/statusbar.h index 8862620..6218edd 100644 --- a/apps/gui/statusbar.h +++ b/apps/gui/statusbar.h @@ -63,7 +63,7 @@ struct gui_statusbar struct status_info lastinfo; #if CONFIG_RTC struct tm *time; - int last_tm_min; + int last_tm_min; #endif struct screen * display; }; diff --git a/apps/playlist.c b/apps/playlist.c index 676fc1e..bd733a0 100644 --- a/apps/playlist.c +++ b/apps/playlist.c @@ -1928,7 +1928,7 @@ void playlist_init(void) playlist->max_playlist_size * sizeof(int)); create_thread(playlist_thread, playlist_stack, sizeof(playlist_stack), 0, playlist_thread_name IF_PRIO(, PRIORITY_BACKGROUND) - IF_COP(, CPU)); + IF_COP(, CPU)); queue_init(&playlist_queue, true); #endif } diff --git a/apps/plugin.h b/apps/plugin.h index 300cad0..f163054 100644 --- a/apps/plugin.h +++ b/apps/plugin.h @@ -343,7 +343,7 @@ struct plugin_api { int stack_size, unsigned flags, const char *name IF_PRIO(, int priority) - IF_COP(, unsigned int core)); + IF_COP(, unsigned int core)); void (*remove_thread)(struct thread_entry *thread); void (*reset_poweroff_timer)(void); #ifndef SIMULATOR diff --git a/apps/plugins/alpine_cdc.c b/apps/plugins/alpine_cdc.c index 919ce18..0bbe8ac 100644 --- a/apps/plugins/alpine_cdc.c +++ b/apps/plugins/alpine_cdc.c @@ -493,16 +493,16 @@ void receive_timeout_isr(void) /* generate the checksum */ unsigned char calc_checksum(unsigned char* p_msg, int digits) { - int chk = 0; - int i; - - for (i=0; icreate_thread(thread, thread_stack, sizeof(thread_stack), 0, "Battery Benchmark" IF_PRIO(, PRIORITY_BACKGROUND) - IF_COP(, CPU))) == NULL) + IF_COP(, CPU))) == NULL) { rb->splash(HZ, "Cannot create thread!"); return PLUGIN_ERROR; diff --git a/apps/plugins/beatbox/beatbox.c b/apps/plugins/beatbox/beatbox.c index e24c8e7..2f129fb 100644 --- a/apps/plugins/beatbox/beatbox.c +++ b/apps/plugins/beatbox/beatbox.c @@ -97,7 +97,7 @@ PLUGIN_IRAM_DECLARE #define MAX_VOICES 20 // Note: 24 midi channels is the minimum general midi // spec implementation -#else // Simulator requires 44100, and we can afford to use more voices +#else // Simulator requires 44100, and we can afford to use more voices #define SAMPLE_RATE SAMPR_44 #define MAX_VOICES 48 @@ -111,7 +111,7 @@ PLUGIN_IRAM_DECLARE #undef SYNC #ifdef SIMULATOR - #define SYNC + #define SYNC #endif struct MIDIfile * mf IBSS_ATTR; diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c index 8ed6122..81ae95a 100644 --- a/apps/plugins/calendar.c +++ b/apps/plugins/calendar.c @@ -373,7 +373,7 @@ static void add_memo(struct shown *shown, int type) sizeof memos[memos_in_memory].message) != -1) { if (rb->strlen(memos[memos_in_memory].message)) - { + { memos[memos_in_memory].file_pointer_start = 0; memos[memos_in_memory].file_pointer_end = 0; memos[memos_in_memory].day = shown->mday; diff --git a/apps/plugins/disktidy.c b/apps/plugins/disktidy.c index a1c51d7..a678f35 100644 --- a/apps/plugins/disktidy.c +++ b/apps/plugins/disktidy.c @@ -133,9 +133,9 @@ enum tidy_return tidy_removedir(const char *name, int *removed) return TIDY_RETURN_ABORT; } if (rb->default_event_handler(button) == SYS_USB_CONNECTED) - { - rb->closedir(dir); - return TIDY_RETURN_USB; + { + rb->closedir(dir); + return TIDY_RETURN_USB; } rb->yield(); @@ -201,9 +201,9 @@ enum tidy_return tidy_clean(const char *name, int *removed, \ return TIDY_RETURN_ABORT; } if (rb->default_event_handler(button) == SYS_USB_CONNECTED) - { - rb->closedir(dir); - return TIDY_RETURN_USB; + { + rb->closedir(dir); + return TIDY_RETURN_USB; } rb->yield(); diff --git a/apps/plugins/iriverify.c b/apps/plugins/iriverify.c index b578cf7..a337ce4 100644 --- a/apps/plugins/iriverify.c +++ b/apps/plugins/iriverify.c @@ -75,42 +75,42 @@ static int write_file(void) buf_ptr = stringbuffer; str_begin = stringbuffer; do { - /* Transform slashes into backslashes */ + /* Transform slashes into backslashes */ if(*buf_ptr == '/') - *buf_ptr = '\\'; - - if((*buf_ptr == '\r') || (*buf_ptr == '\n')) { - /* We have no complete string ? It's only a leading \n or \r ? */ - if (!str_begin) - continue; - - /* Terminate string */ - *buf_ptr = 0; - - /* Write our new string */ - rc = rb->write(fd, str_begin, rb->strlen(str_begin)); - if(rc < 0) { - rb->close(fd); - return 10 * rc - 2; - } - /* Write CR/LF */ - rc = rb->write(fd, crlf, 2); - if(rc < 0) { - rb->close(fd); - return 10 * rc - 3; - } - - /* Reset until we get a new line */ - str_begin = NULL; - - } - else { - /* We start a new line here */ - if (!str_begin) - str_begin = buf_ptr; - } - - /* Next char, until ... */ + *buf_ptr = '\\'; + + if((*buf_ptr == '\r') || (*buf_ptr == '\n')) { + /* We have no complete string ? It's only a leading \n or \r ? */ + if (!str_begin) + continue; + + /* Terminate string */ + *buf_ptr = 0; + + /* Write our new string */ + rc = rb->write(fd, str_begin, rb->strlen(str_begin)); + if(rc < 0) { + rb->close(fd); + return 10 * rc - 2; + } + /* Write CR/LF */ + rc = rb->write(fd, crlf, 2); + if(rc < 0) { + rb->close(fd); + return 10 * rc - 3; + } + + /* Reset until we get a new line */ + str_begin = NULL; + + } + else { + /* We start a new line here */ + if (!str_begin) + str_begin = buf_ptr; + } + + /* Next char, until ... */ } while(buf_ptr++ < stringbuffer + readsize); rb->close(fd); diff --git a/apps/plugins/lib/highscore.c b/apps/plugins/lib/highscore.c index df7a71b..9ee24c2 100644 --- a/apps/plugins/lib/highscore.c +++ b/apps/plugins/lib/highscore.c @@ -101,28 +101,28 @@ int highscore_load(char *filename, struct highscore *scores, int num_scores) int highscore_update(int score, int level, struct highscore *scores, int num_scores) { - int i, j; - int new = 0; - - /* look through the scores and see if this one is in the top ones */ - for(i = num_scores-1;i >= 0; i--) + int i, j; + int new = 0; + + /* look through the scores and see if this one is in the top ones */ + for(i = num_scores-1;i >= 0; i--) { - if ((score > scores[i].score)) - { - /* Move the rest down one... */ - if (i > 0) - { - for (j=1; j<=i; j++) - { - rb->memcpy((void *)&scores[j-1], (void *)&scores[j], sizeof(struct highscore)); - } - } - scores[i].score = score; - scores[i].level = level; - /* Need to sort out entering a name... maybe old three letter arcade style */ - new = 1; - break; - } - } - return new; + if ((score > scores[i].score)) + { + /* Move the rest down one... */ + if (i > 0) + { + for (j=1; j<=i; j++) + { + rb->memcpy((void *)&scores[j-1], (void *)&scores[j], sizeof(struct highscore)); + } + } + scores[i].score = score; + scores[i].level = level; + /* Need to sort out entering a name... maybe old three letter arcade style */ + new = 1; + break; + } + } + return new; } diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c index cc87463..8a0844f 100644 --- a/apps/plugins/midi/midiplay.c +++ b/apps/plugins/midi/midiplay.c @@ -99,7 +99,7 @@ PLUGIN_IRAM_DECLARE #undef SYNC #ifdef SIMULATOR - #define SYNC + #define SYNC #endif struct MIDIfile * mf IBSS_ATTR; diff --git a/apps/plugins/midi/midiutil.h b/apps/plugins/midi/midiutil.h index dfffe39..152ede8 100644 --- a/apps/plugins/midi/midiutil.h +++ b/apps/plugins/midi/midiutil.h @@ -37,7 +37,7 @@ #define MAX_VOICES 24 /* Note: 24 midi channels is the minimum general midi spec implementation */ #endif /* CPU_PP */ -#else /* Simulator requires 44100Hz, and we can afford to use more voices */ +#else /* Simulator requires 44100Hz, and we can afford to use more voices */ #define SAMPLE_RATE SAMPR_44 #define MAX_VOICES 48 diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c index 8ce5c1b..1b0d24c 100644 --- a/apps/plugins/mosaique.c +++ b/apps/plugins/mosaique.c @@ -138,20 +138,20 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) x = 2*GFX_WIDTH-x; sx=-sx; } - + if (x<0) { x = -x; sx = -sx; } - + y+=sy; if (y>GFX_HEIGHT) { y = 2*GFX_HEIGHT-y; sy=-sy; } - + if (y<0) { y = -y; diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c index 2beeaa4..0ec4307 100644 --- a/apps/plugins/snake.c +++ b/apps/plugins/snake.c @@ -268,7 +268,7 @@ void game (void) { frame(); if (dead) return; - frames++; + frames++; if (frames==10) { frames=0; if (!apple) { diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c index d98041d..de90c40 100644 --- a/apps/plugins/spacerocks.c +++ b/apps/plugins/spacerocks.c @@ -200,7 +200,7 @@ static struct plugin_api* rb; /* global api struct pointer */ #define SIZE_ENEMY_COLLISION 5*SCALE #define ATTRACT_FLIP_TIME 100 #define NUM_STARS 50 -#define NUM_TRAIL_POINTS 70 +#define NUM_TRAIL_POINTS 70 #define NUM_ROTATIONS 16 #define SIN_COS_SCALE 10000 @@ -929,7 +929,7 @@ void draw_and_move_enemy(void) if( enemy.position.x < ship.position.x) enemy_missile.position.dx = 1; else - enemy_missile.position.dx = -1; + enemy_missile.position.dx = -1; } if(enemy_missile.position.dx == 0 && @@ -1567,7 +1567,7 @@ void thrust_ship(void) but to do this we need to ascertain if the spacehip as moved on screen for more than a certain amount. */ - create_trail_blaze(THRUST_COLOUR, &ship.position); + create_trail_blaze(THRUST_COLOUR, &ship.position); } } @@ -1782,7 +1782,7 @@ enum plugin_status start_game(void) CENTER_LCD_Y + CENTER_LCD_Y/2 - 4, "Game Over"); rb->snprintf(s, sizeof(s), "score %d ", current_score); rb->lcd_putsxy(1,LCD_HEIGHT-8, s); - show_game_over--; + show_game_over--; if(!show_game_over) start_attract_mode(); break; diff --git a/apps/plugins/wav2wv.c b/apps/plugins/wav2wv.c index f3e191d..a704e07 100644 --- a/apps/plugins/wav2wv.c +++ b/apps/plugins/wav2wv.c @@ -145,9 +145,9 @@ static int wav2wv (char *filename) rb->memcpy (&native_header, &raw_header, sizeof (raw_header)); little_endian_to_native (&native_header, WAV_HEADER_FORMAT); - if (rb->strncmp (native_header.ckID, "RIFF", 4) || - rb->strncmp (native_header.fmt_ckID, "fmt ", 4) || - rb->strncmp (native_header.data_ckID, "data", 4) || + if (rb->strncmp (native_header.ckID, "RIFF", 4) || + rb->strncmp (native_header.fmt_ckID, "fmt ", 4) || + rb->strncmp (native_header.data_ckID, "data", 4) || native_header.FormatTag != 1 || native_header.BitsPerSample != 16) { rb->splash(HZ*2, "incompatible wav file!"); return true; @@ -160,7 +160,7 @@ static int wav2wv (char *filename) config.bytes_per_sample = 2; config.sample_rate = native_header.SampleRate; num_chans = config.num_channels = native_header.NumChannels; - total_samples = native_header.data_ckSize / native_header.BlockAlign; + total_samples = native_header.data_ckSize / native_header.BlockAlign; /* config.flags |= CONFIG_HIGH_FLAG; */ diff --git a/apps/plugins/wavplay.c b/apps/plugins/wavplay.c index 6a969f1..c55f5c4 100644 --- a/apps/plugins/wavplay.c +++ b/apps/plugins/wavplay.c @@ -24,3055 +24,3055 @@ PLUGIN_HEADER // address 04640 count 30 (126 bytes) static const unsigned char maspcm_array1[] = { - 0xe0, 0x00, 0x00, 0x1e, 0x06, 0x40, - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x25, // 00000025 - 0x00, 0x00, 0x00, 0x04, // 00000004 - 0x00, 0x00, 0x48, 0x00, // 00004800 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0xFF, 0xFF, // 0000FFFF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x82, 0x00, // 00008200 - 0x00, 0x00, 0x00, 0x0A, // 0000000A - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x03, 0x18, // 00000318 - 0x00, 0x00, 0x03, 0x18, // 00000318 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x00, 0x03, 0x18, // 00000318 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x03, 0x00, // 00000300 + 0xe0, 0x00, 0x00, 0x1e, 0x06, 0x40, + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x25, // 00000025 + 0x00, 0x00, 0x00, 0x04, // 00000004 + 0x00, 0x00, 0x48, 0x00, // 00004800 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0xFF, 0xFF, // 0000FFFF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x82, 0x00, // 00008200 + 0x00, 0x00, 0x00, 0x0A, // 0000000A + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x03, 0x18, // 00000318 + 0x00, 0x00, 0x03, 0x18, // 00000318 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x00, 0x03, 0x18, // 00000318 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x03, 0x00, // 00000300 }; // address 04674 count 81 (330 bytes) static const unsigned char maspcm_array2[] = { - 0xe0, 0x00, 0x00, 0x51, 0x06, 0x74, - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x00, 0x02, // 00000002 - 0x00, 0x00, 0x00, 0x60, // 00000060 - 0x00, 0x00, 0x00, 0x60, // 00000060 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x00, 0xC0, 0x00, // 0000C000 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x1E, // 0000001E - 0x00, 0x00, 0x42, 0x11, // 00004211 - 0x00, 0x00, 0x58, 0x33, // 00005833 - 0x00, 0x00, 0x00, 0x02, // 00000002 - 0x00, 0x00, 0x00, 0x40, // 00000040 - 0x00, 0x00, 0x00, 0x40, // 00000040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x01, 0x20, 0x01, // 00012001 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x29, // 00000029 - 0x00, 0x00, 0x30, 0xC3, // 000030C3 - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x00, 0x02, // 00000002 - 0x00, 0x00, 0x00, 0x40, // 00000040 - 0x00, 0x00, 0x00, 0x40, // 00000040 - 0x00, 0x00, 0x02, 0x00, // 00000200 - 0x00, 0x01, 0x20, 0x00, // 00012000 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x2D, // 0000002D - 0x00, 0x00, 0x2C, 0x86, // 00002C86 - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x00, 0x01, // 00000001 - 0x00, 0x00, 0x00, 0x30, // 00000030 - 0x00, 0x00, 0x00, 0x30, // 00000030 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x01, 0x80, 0x00, // 00018000 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x3C, // 0000003C - 0x00, 0x00, 0x21, 0x93, // 00002193 - 0x00, 0x00, 0x58, 0x33, // 00005833 - 0x00, 0x00, 0x00, 0x01, // 00000001 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x40, 0x01, // 00024001 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x52, // 00000052 - 0x00, 0x00, 0x18, 0xAD, // 000018AD - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x00, 0x01, // 00000001 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x02, 0x00, // 00000200 - 0x00, 0x02, 0x40, 0x00, // 00024000 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x5A, // 0000005A - 0x00, 0x00, 0x16, 0x81, // 00001681 - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x18, // 00000018 - 0x00, 0x00, 0x00, 0x18, // 00000018 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x03, 0x00, 0x00, // 00030000 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x78, // 00000078 - 0x00, 0x00, 0x10, 0xED, // 000010ED - 0x00, 0x00, 0x58, 0x33, // 00005833 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x10, // 00000010 - 0x00, 0x00, 0x00, 0x10, // 00000010 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x04, 0x80, 0x03, // 00048003 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0xA5, // 000000A5 - 0x00, 0x00, 0x0C, 0x56, // 00000C56 - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x10, // 00000010 - 0x00, 0x00, 0x00, 0x10, // 00000010 - 0x00, 0x00, 0x02, 0x00, // 00000200 - 0x00, 0x04, 0x80, 0x00, // 00048000 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0xB4, // 000000B4 - 0x00, 0x00, 0x0B, 0x51, // 00000B51 + 0xe0, 0x00, 0x00, 0x51, 0x06, 0x74, + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x00, 0x02, // 00000002 + 0x00, 0x00, 0x00, 0x60, // 00000060 + 0x00, 0x00, 0x00, 0x60, // 00000060 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x00, 0xC0, 0x00, // 0000C000 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x1E, // 0000001E + 0x00, 0x00, 0x42, 0x11, // 00004211 + 0x00, 0x00, 0x58, 0x33, // 00005833 + 0x00, 0x00, 0x00, 0x02, // 00000002 + 0x00, 0x00, 0x00, 0x40, // 00000040 + 0x00, 0x00, 0x00, 0x40, // 00000040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x01, 0x20, 0x01, // 00012001 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x29, // 00000029 + 0x00, 0x00, 0x30, 0xC3, // 000030C3 + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x00, 0x02, // 00000002 + 0x00, 0x00, 0x00, 0x40, // 00000040 + 0x00, 0x00, 0x00, 0x40, // 00000040 + 0x00, 0x00, 0x02, 0x00, // 00000200 + 0x00, 0x01, 0x20, 0x00, // 00012000 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x2D, // 0000002D + 0x00, 0x00, 0x2C, 0x86, // 00002C86 + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x00, 0x01, // 00000001 + 0x00, 0x00, 0x00, 0x30, // 00000030 + 0x00, 0x00, 0x00, 0x30, // 00000030 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x01, 0x80, 0x00, // 00018000 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x3C, // 0000003C + 0x00, 0x00, 0x21, 0x93, // 00002193 + 0x00, 0x00, 0x58, 0x33, // 00005833 + 0x00, 0x00, 0x00, 0x01, // 00000001 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x40, 0x01, // 00024001 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x52, // 00000052 + 0x00, 0x00, 0x18, 0xAD, // 000018AD + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x00, 0x01, // 00000001 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x02, 0x00, // 00000200 + 0x00, 0x02, 0x40, 0x00, // 00024000 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x5A, // 0000005A + 0x00, 0x00, 0x16, 0x81, // 00001681 + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x18, // 00000018 + 0x00, 0x00, 0x00, 0x18, // 00000018 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x03, 0x00, 0x00, // 00030000 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x78, // 00000078 + 0x00, 0x00, 0x10, 0xED, // 000010ED + 0x00, 0x00, 0x58, 0x33, // 00005833 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x10, // 00000010 + 0x00, 0x00, 0x00, 0x10, // 00000010 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x04, 0x80, 0x03, // 00048003 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0xA5, // 000000A5 + 0x00, 0x00, 0x0C, 0x56, // 00000C56 + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x10, // 00000010 + 0x00, 0x00, 0x00, 0x10, // 00000010 + 0x00, 0x00, 0x02, 0x00, // 00000200 + 0x00, 0x04, 0x80, 0x00, // 00048000 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0xB4, // 000000B4 + 0x00, 0x00, 0x0B, 0x51, // 00000B51 }; // address 04661 count 19 (82 bytes) static const unsigned char maspcm_array3[] = { - 0xe0, 0x00, 0x00, 0x13, 0x06, 0x61, - 0x00, 0x00, 0x01, 0x25, // 00000125 - 0x00, 0x00, 0x00, 0x05, // 00000005 - 0x00, 0x00, 0x48, 0x00, // 00004800 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x82, 0x00, // 00008200 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x00, // 00080000 + 0xe0, 0x00, 0x00, 0x13, 0x06, 0x61, + 0x00, 0x00, 0x01, 0x25, // 00000125 + 0x00, 0x00, 0x00, 0x05, // 00000005 + 0x00, 0x00, 0x48, 0x00, // 00004800 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x82, 0x00, // 00008200 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x00, // 00080000 }; // address 046E4 count 16 (70 bytes) static const unsigned char maspcm_array4[] = { - 0xe0, 0x00, 0x00, 0x10, 0x06, 0xe4, - 0x00, 0x00, 0x06, 0x74, // 00000674 - 0x00, 0x00, 0x06, 0x7D, // 0000067D - 0x00, 0x00, 0x06, 0x86, // 00000686 - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x00, 0x06, 0x8F, // 0000068F - 0x00, 0x00, 0x06, 0x98, // 00000698 - 0x00, 0x00, 0x06, 0xA1, // 000006A1 - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x00, 0x06, 0xAA, // 000006AA - 0x00, 0x00, 0x06, 0xB3, // 000006B3 - 0x00, 0x00, 0x06, 0xBC, // 000006BC - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0xe0, 0x00, 0x00, 0x10, 0x06, 0xe4, + 0x00, 0x00, 0x06, 0x74, // 00000674 + 0x00, 0x00, 0x06, 0x7D, // 0000067D + 0x00, 0x00, 0x06, 0x86, // 00000686 + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x00, 0x06, 0x8F, // 0000068F + 0x00, 0x00, 0x06, 0x98, // 00000698 + 0x00, 0x00, 0x06, 0xA1, // 000006A1 + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x00, 0x06, 0xAA, // 000006AA + 0x00, 0x00, 0x06, 0xB3, // 000006B3 + 0x00, 0x00, 0x06, 0xBC, // 000006BC + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF }; // address 04700 count 18 (78 byte) static const unsigned char maspcm_array5[] = { - 0xe0, 0x00, 0x00, 0x12, 0x07, 0x00, - 0x00, 0x00, 0x06, 0xBC, // 000006BC - 0x00, 0x00, 0x00, 0x0A, // 0000000A - 0x00, 0x00, 0x06, 0x74, // 00000674 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x06, 0x7D, // 0000067D - 0x00, 0x00, 0x00, 0x01, // 00000001 - 0x00, 0x00, 0x06, 0x86, // 00000686 - 0x00, 0x00, 0x00, 0x02, // 00000002 - 0x00, 0x00, 0x06, 0x8F, // 0000068F - 0x00, 0x00, 0x00, 0x04, // 00000004 - 0x00, 0x00, 0x06, 0x98, // 00000698 - 0x00, 0x00, 0x00, 0x05, // 00000005 - 0x00, 0x00, 0x06, 0xA1, // 000006A1 - 0x00, 0x00, 0x00, 0x06, // 00000006 - 0x00, 0x00, 0x06, 0xAA, // 000006AA - 0x00, 0x00, 0x00, 0x08, // 00000008 - 0x00, 0x00, 0x06, 0xB3, // 000006B3 - 0x00, 0x00, 0x00, 0x09, // 00000009 + 0xe0, 0x00, 0x00, 0x12, 0x07, 0x00, + 0x00, 0x00, 0x06, 0xBC, // 000006BC + 0x00, 0x00, 0x00, 0x0A, // 0000000A + 0x00, 0x00, 0x06, 0x74, // 00000674 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x06, 0x7D, // 0000067D + 0x00, 0x00, 0x00, 0x01, // 00000001 + 0x00, 0x00, 0x06, 0x86, // 00000686 + 0x00, 0x00, 0x00, 0x02, // 00000002 + 0x00, 0x00, 0x06, 0x8F, // 0000068F + 0x00, 0x00, 0x00, 0x04, // 00000004 + 0x00, 0x00, 0x06, 0x98, // 00000698 + 0x00, 0x00, 0x00, 0x05, // 00000005 + 0x00, 0x00, 0x06, 0xA1, // 000006A1 + 0x00, 0x00, 0x00, 0x06, // 00000006 + 0x00, 0x00, 0x06, 0xAA, // 000006AA + 0x00, 0x00, 0x00, 0x08, // 00000008 + 0x00, 0x00, 0x06, 0xB3, // 000006B3 + 0x00, 0x00, 0x00, 0x09, // 00000009 }; // address 06600 count 63 (258 bytes) static const unsigned char maspcm_array6[] = { - 0xf0, 0x00, 0x00, 0x3f, 0x06, 0x00, - 0x00, 0x00, 0x0B, 0xAD, // 00000BAD - 0x00, 0x00, 0x10, 0x00, // 00001000 - 0x00, 0x00, 0x20, 0x00, // 00002000 - 0x00, 0x00, 0x30, 0x00, // 00003000 - 0x00, 0x00, 0x40, 0x00, // 00004000 - 0x00, 0x00, 0x50, 0x00, // 00005000 - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x70, 0x00, // 00007000 - 0x00, 0x00, 0x80, 0x00, // 00008000 - 0x00, 0x00, 0x90, 0x00, // 00009000 - 0x00, 0x00, 0xA0, 0x00, // 0000A000 - 0x00, 0x00, 0xB0, 0x00, // 0000B000 - 0x00, 0x00, 0xC0, 0x00, // 0000C000 - 0x00, 0x00, 0xD0, 0x00, // 0000D000 - 0x00, 0x00, 0xE0, 0x00, // 0000E000 - 0x00, 0x00, 0xF0, 0x00, // 0000F000 - 0x00, 0x01, 0x00, 0x00, // 00010000 - 0x00, 0x01, 0x10, 0x00, // 00011000 - 0x00, 0x01, 0x20, 0x00, // 00012000 - 0x00, 0x01, 0x30, 0x00, // 00013000 - 0x00, 0x01, 0x40, 0x00, // 00014000 - 0x00, 0x01, 0x50, 0x00, // 00015000 - 0x00, 0x01, 0x60, 0x00, // 00016000 - 0x00, 0x01, 0x70, 0x00, // 00017000 - 0x00, 0x01, 0x80, 0x00, // 00018000 - 0x00, 0x01, 0x90, 0x00, // 00019000 - 0x00, 0x01, 0xA0, 0x00, // 0001A000 - 0x00, 0x01, 0xB0, 0x00, // 0001B000 - 0x00, 0x01, 0xC0, 0x00, // 0001C000 - 0x00, 0x01, 0xD0, 0x00, // 0001D000 - 0x00, 0x01, 0xE0, 0x00, // 0001E000 - 0x00, 0x01, 0xF0, 0x00, // 0001F000 - 0x00, 0x02, 0x00, 0x00, // 00020000 - 0x00, 0x02, 0x10, 0x00, // 00021000 - 0x00, 0x02, 0x20, 0x00, // 00022000 - 0x00, 0x02, 0x30, 0x00, // 00023000 - 0x00, 0x02, 0x40, 0x00, // 00024000 - 0x00, 0x00, 0x05, 0xFF, // 000005FF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x90, // 00000090 - 0x00, 0x00, 0x00, 0x90, // 00000090 - 0x00, 0x00, 0x00, 0x90, // 00000090 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x00, 0x05, 0xFF, // 000005FF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x90, // 00000090 - 0x00, 0x00, 0x00, 0x90, // 00000090 - 0x00, 0x00, 0x00, 0x90, // 00000090 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x0C, // 0000000C + 0xf0, 0x00, 0x00, 0x3f, 0x06, 0x00, + 0x00, 0x00, 0x0B, 0xAD, // 00000BAD + 0x00, 0x00, 0x10, 0x00, // 00001000 + 0x00, 0x00, 0x20, 0x00, // 00002000 + 0x00, 0x00, 0x30, 0x00, // 00003000 + 0x00, 0x00, 0x40, 0x00, // 00004000 + 0x00, 0x00, 0x50, 0x00, // 00005000 + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x70, 0x00, // 00007000 + 0x00, 0x00, 0x80, 0x00, // 00008000 + 0x00, 0x00, 0x90, 0x00, // 00009000 + 0x00, 0x00, 0xA0, 0x00, // 0000A000 + 0x00, 0x00, 0xB0, 0x00, // 0000B000 + 0x00, 0x00, 0xC0, 0x00, // 0000C000 + 0x00, 0x00, 0xD0, 0x00, // 0000D000 + 0x00, 0x00, 0xE0, 0x00, // 0000E000 + 0x00, 0x00, 0xF0, 0x00, // 0000F000 + 0x00, 0x01, 0x00, 0x00, // 00010000 + 0x00, 0x01, 0x10, 0x00, // 00011000 + 0x00, 0x01, 0x20, 0x00, // 00012000 + 0x00, 0x01, 0x30, 0x00, // 00013000 + 0x00, 0x01, 0x40, 0x00, // 00014000 + 0x00, 0x01, 0x50, 0x00, // 00015000 + 0x00, 0x01, 0x60, 0x00, // 00016000 + 0x00, 0x01, 0x70, 0x00, // 00017000 + 0x00, 0x01, 0x80, 0x00, // 00018000 + 0x00, 0x01, 0x90, 0x00, // 00019000 + 0x00, 0x01, 0xA0, 0x00, // 0001A000 + 0x00, 0x01, 0xB0, 0x00, // 0001B000 + 0x00, 0x01, 0xC0, 0x00, // 0001C000 + 0x00, 0x01, 0xD0, 0x00, // 0001D000 + 0x00, 0x01, 0xE0, 0x00, // 0001E000 + 0x00, 0x01, 0xF0, 0x00, // 0001F000 + 0x00, 0x02, 0x00, 0x00, // 00020000 + 0x00, 0x02, 0x10, 0x00, // 00021000 + 0x00, 0x02, 0x20, 0x00, // 00022000 + 0x00, 0x02, 0x30, 0x00, // 00023000 + 0x00, 0x02, 0x40, 0x00, // 00024000 + 0x00, 0x00, 0x05, 0xFF, // 000005FF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x90, // 00000090 + 0x00, 0x00, 0x00, 0x90, // 00000090 + 0x00, 0x00, 0x00, 0x90, // 00000090 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x00, 0x05, 0xFF, // 000005FF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x90, // 00000090 + 0x00, 0x00, 0x00, 0x90, // 00000090 + 0x00, 0x00, 0x00, 0x90, // 00000090 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x0C, // 0000000C }; // address 06640 count 12 (54 bytes) static const unsigned char maspcm_array7[] = { - 0xf0, 0x00, 0x00, 0x0c, 0x06, 0x40, - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 + 0xf0, 0x00, 0x00, 0x0c, 0x06, 0x40, + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 }; // address 06660 count 28 (118 bytes) static const unsigned char maspcm_array8[] = { - 0xf0, 0x00, 0x00, 0x1c, 0x06, 0x60, - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 + 0xf0, 0x00, 0x00, 0x1c, 0x06, 0x60, + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 }; // address 04800 count 1668 (6678 bytes) static const unsigned char maspcm_array9[] = { - 0xe0, 0x00, 0x06, 0x84, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x47, 0xC0, // 000747C0 - 0x00, 0x07, 0x04, 0x00, // 00070400 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xC0, 0x6B, // 0006C06B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x90, // 00070690 - 0x00, 0x07, 0x4C, 0x07, // 00074C07 - 0x00, 0x07, 0x0F, 0xFF, // 00070FFF - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x06, 0x80, 0x1D, // 0006801D - 0x00, 0x06, 0x80, 0x1F, // 0006801F - 0x00, 0x06, 0x80, 0x21, // 00068021 - 0x00, 0x06, 0x80, 0x23, // 00068023 - 0x00, 0x06, 0x84, 0x1D, // 0006841D - 0x00, 0x06, 0x84, 0x1F, // 0006841F - 0x00, 0x06, 0x84, 0x21, // 00068421 - 0x00, 0x06, 0x84, 0x23, // 00068423 - 0x00, 0x06, 0x88, 0x17, // 00068817 - 0x00, 0x06, 0x8C, 0x17, // 00068C17 - 0x00, 0x06, 0xD0, 0x6D, // 0006D06D - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x57, // 00071E57 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x90, // 00070690 - 0x00, 0x07, 0x4C, 0x07, // 00074C07 - 0x00, 0x07, 0x0F, 0xFF, // 00070FFF - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x06, 0x80, 0x1D, // 0006801D - 0x00, 0x06, 0x80, 0x1F, // 0006801F - 0x00, 0x06, 0x80, 0x21, // 00068021 - 0x00, 0x06, 0x80, 0x23, // 00068023 - 0x00, 0x06, 0x84, 0x1D, // 0006841D - 0x00, 0x06, 0x84, 0x1F, // 0006841F - 0x00, 0x06, 0x84, 0x21, // 00068421 - 0x00, 0x06, 0x84, 0x23, // 00068423 - 0x00, 0x06, 0x88, 0x17, // 00068817 - 0x00, 0x06, 0x8C, 0x17, // 00068C17 - 0x00, 0x06, 0xD0, 0x6D, // 0006D06D - 0x00, 0x06, 0x98, 0x1E, // 0006981E - 0x00, 0x04, 0x05, 0x08, // 00040508 - 0x00, 0x04, 0x0D, 0x08, // 00040D08 - 0x00, 0x04, 0x15, 0x08, // 00041508 - 0x00, 0x04, 0x1D, 0x08, // 00041D08 - 0x00, 0x04, 0x25, 0x08, // 00042508 - 0x00, 0x04, 0x2D, 0x08, // 00042D08 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3C, 0x30, // 00073C30 - 0x00, 0x06, 0x80, 0x3B, // 0006803B - 0x00, 0x06, 0x88, 0x5B, // 0006885B - 0x00, 0x06, 0x94, 0x3B, // 0006943B - 0x00, 0x06, 0x9C, 0x43, // 00069C43 - 0x00, 0x06, 0xA0, 0x53, // 0006A053 - 0x00, 0x06, 0xA8, 0x4B, // 0006A84B - 0x00, 0x06, 0xB4, 0x53, // 0006B453 - 0x00, 0x06, 0xBC, 0x06, // 0006BC06 - 0x00, 0x07, 0x74, 0x01, // 00077401 - 0x00, 0x07, 0x36, 0x63, // 00073663 - 0x00, 0x02, 0x12, 0x57, // 00021257 - 0x00, 0x07, 0x6C, 0x18, // 00076C18 - 0x00, 0x07, 0x2C, 0x00, // 00072C00 - 0x00, 0x07, 0x7C, 0x04, // 00077C04 - 0x00, 0x07, 0x3C, 0x45, // 00073C45 - 0x00, 0x06, 0xB0, 0x20, // 0006B020 - 0x00, 0x04, 0x36, 0x00, // 00043600 - 0x00, 0x02, 0x12, 0x46, // 00021246 - 0x00, 0x07, 0x7C, 0x04, // 00077C04 - 0x00, 0x07, 0x3C, 0x4C, // 00073C4C - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x66, // 00070666 - 0x00, 0x0B, 0x49, 0x40, // 000B4940 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x94, 0x7F, // 0006947F - 0x00, 0x06, 0x80, 0x1C, // 0006801C - 0x00, 0x07, 0x88, 0x04, // 00078804 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x0B, 0x49, 0x7F, // 000B497F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x1C, // 0006801C - 0x00, 0x04, 0x14, 0x00, // 00041400 - 0x00, 0x0A, 0xC1, 0xC2, // 000AC1C2 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x02, 0x10, 0x70, // 00021070 - 0x00, 0x0A, 0xD2, 0x7E, // 000AD27E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x90, 0x04, // 00079004 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0xC2, 0xC1, // 000AC2C1 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x02, 0x10, 0x85, // 00021085 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x00, 0x6D, // 0006006D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x41, // 00080041 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xC0, 0x6D, // 0006C06D - 0x00, 0x02, 0x3F, 0xCC, // 00023FCC - 0x00, 0x07, 0x6C, 0x04, // 00076C04 - 0x00, 0x07, 0x2C, 0x7E, // 00072C7E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x10, 0x54, // 00021054 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0x80, 0x74, // 00098074 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1F, 0x00, // 00071F00 - 0x00, 0x08, 0x80, 0x42, // 00088042 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x11, 0x51, // 00021151 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0A, 0xC2, 0xC3, // 000AC2C3 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0x80, 0x78, // 00098078 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0x42, // 00088042 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x11, 0x51, // 00021151 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0F, 0x00, // 00070F00 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x66, // 00070666 - 0x00, 0x07, 0x56, 0x00, // 00075600 - 0x00, 0x07, 0x14, 0x03, // 00071403 - 0x00, 0x06, 0x8C, 0x3B, // 00068C3B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x1C, // 0006801C - 0x00, 0x07, 0x90, 0x04, // 00079004 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2F, 0x00, // 00072F00 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x00, // 00070400 - 0x00, 0x0B, 0x49, 0x40, // 000B4940 - 0x00, 0x06, 0xAC, 0x05, // 0006AC05 - 0x00, 0x01, 0x41, 0x00, // 00014100 - 0x00, 0x06, 0x84, 0x1C, // 0006841C - 0x00, 0x07, 0x8C, 0x0C, // 00078C0C - 0x00, 0x07, 0x8C, 0x0C, // 00078C0C - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1C, 0x90, // 00071C90 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x17, 0x00, // 00071700 - 0x00, 0x07, 0x64, 0x01, // 00076401 - 0x00, 0x07, 0x25, 0xFF, // 000725FF - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2C, 0x00, // 00072C00 - 0x00, 0x06, 0x9C, 0x25, // 00069C25 - 0x00, 0x06, 0x98, 0x2D, // 0006982D - 0x00, 0x06, 0x94, 0x3C, // 0006943C - 0x00, 0x06, 0xA4, 0x16, // 0006A416 - 0x00, 0x06, 0xA0, 0x16, // 0006A016 - 0x00, 0x06, 0x8C, 0x3B, // 00068C3B - 0x00, 0x06, 0xAC, 0x24, // 0006AC24 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0F, 0x00, // 00070F00 - 0x00, 0x0B, 0x52, 0x6F, // 000B526F - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1E, 0x90, // 00071E90 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x1E, // 0006881E - 0x00, 0x06, 0x90, 0x15, // 00069015 - 0x00, 0x06, 0x98, 0x1F, // 0006981F - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x84, 0x6F, // 0006846F - 0x00, 0x06, 0x84, 0x70, // 00068470 - 0x00, 0x04, 0x05, 0x10, // 00040510 - 0x00, 0x07, 0x74, 0x01, // 00077401 - 0x00, 0x07, 0x36, 0x63, // 00073663 - 0x00, 0x02, 0x12, 0x57, // 00021257 - 0x00, 0x06, 0x80, 0x1C, // 0006801C - 0x00, 0x04, 0x2C, 0x08, // 00042C08 - 0x00, 0x07, 0x7C, 0x04, // 00077C04 - 0x00, 0x07, 0x3C, 0xD2, // 00073CD2 - 0x00, 0x06, 0xB0, 0x22, // 0006B022 - 0x00, 0x04, 0x37, 0x08, // 00043708 - 0x00, 0x04, 0x14, 0x20, // 00041420 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x07, 0x66, 0x00, // 00076600 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x5C, 0x80, // 00075C80 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3D, 0x00, // 00073D00 - 0x00, 0x0A, 0xC8, 0xC4, // 000AC8C4 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x36, 0xC4, // 000836C4 - 0x00, 0x0A, 0xC8, 0xC3, // 000AC8C3 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x12, 0x41, // 00081241 - 0x00, 0x0A, 0xC8, 0xC7, // 000AC8C7 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x02, 0x12, 0x46, // 00021246 - 0x00, 0x09, 0x92, 0x51, // 00099251 - 0x00, 0x08, 0x36, 0xC2, // 000836C2 - 0x00, 0x07, 0x7C, 0x04, // 00077C04 - 0x00, 0x07, 0x3C, 0xEA, // 00073CEA - 0x00, 0x06, 0xAC, 0x6D, // 0006AC6D - 0x00, 0x06, 0xAC, 0x6C, // 0006AC6C - 0x00, 0x0B, 0x7F, 0x7F, // 000B7F7F - 0x00, 0x09, 0xB6, 0x7D, // 0009B67D - 0x00, 0x0A, 0x3F, 0x53, // 000A3F53 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x0A, 0xF6, 0x43, // 000AF643 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1F, 0x18, // 00071F18 - 0x00, 0x07, 0x6C, 0x04, // 00076C04 - 0x00, 0x07, 0x2C, 0x00, // 00072C00 - 0x00, 0x04, 0x0C, 0x08, // 00040C08 - 0x00, 0x08, 0xB6, 0x41, // 0008B641 - 0x00, 0x0A, 0x09, 0xC6, // 000A09C6 - 0x00, 0x08, 0x8F, 0xC1, // 00088FC1 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x09, 0x25, // 000C0925 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x00, // 00070400 - 0x00, 0x06, 0x98, 0x53, // 00069853 - 0x00, 0x06, 0x90, 0x2C, // 0006902C - 0x00, 0x06, 0xA4, 0x24, // 0006A424 - 0x00, 0x06, 0x80, 0x53, // 00068053 - 0x00, 0x06, 0x88, 0x54, // 00068854 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x06, 0x14, 0x6F, // 0006146F - 0x00, 0x06, 0x00, 0x52, // 00060052 - 0x00, 0x08, 0x12, 0x41, // 00081241 - 0x00, 0x06, 0x1C, 0x70, // 00061C70 - 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 - 0x00, 0x02, 0x9F, 0x38, // 00029F38 - 0x00, 0x0A, 0x09, 0x74, // 000A0974 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0xC9, 0x43, // 000AC943 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0xA1, 0x42, // 0008A142 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x08, 0x1B, 0x41, // 00081B41 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x94, 0x6F, // 0006946F - 0x00, 0x06, 0x9C, 0x70, // 00069C70 - 0x00, 0x06, 0x00, 0x6D, // 0006006D - 0x00, 0x02, 0x3F, 0xCC, // 00023FCC - 0x00, 0x0B, 0x00, 0x41, // 000B0041 - 0x00, 0x07, 0x6C, 0x04, // 00076C04 - 0x00, 0x07, 0x2D, 0x1E, // 00072D1E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x6D, // 0006806D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x04, 0x24, // 00060424 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x61, // 00071661 - 0x00, 0x08, 0x8C, 0x80, // 00088C80 - 0x00, 0x02, 0x89, 0x10, // 00028910 - 0x00, 0x02, 0x11, 0x03, // 00021103 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x90, 0x22, // 00069022 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x07, 0x54, 0x0C, // 0007540C - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x0A, 0xD8, 0x7E, // 000AD87E - 0x00, 0x0A, 0xC8, 0x41, // 000AC841 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0A, 0xC8, 0xC2, // 000AC8C2 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x10, 0x08, // 00021008 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x98, 0x07, // 00079807 - 0x00, 0x06, 0x04, 0x6F, // 0006046F - 0x00, 0x06, 0x0C, 0x70, // 00060C70 - 0x00, 0x0A, 0x10, 0x7D, // 000A107D - 0x00, 0x08, 0x90, 0xC2, // 000890C2 - 0x00, 0x08, 0x99, 0xC2, // 000899C2 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x10, 0xC2, // 000210C2 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x6B, // 00070E6B - 0x00, 0x0B, 0x52, 0x50, // 000B5250 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x1C, // 0006881C - 0x00, 0x0A, 0xCC, 0x82, // 000ACC82 - 0x00, 0x04, 0x1D, 0x88, // 00041D88 - 0x00, 0x04, 0x1D, 0x00, // 00041D00 - 0x00, 0x08, 0x09, 0xC3, // 000809C3 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x88, 0x04, // 00078804 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x90, // 00070690 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0F, 0x00, // 00070F00 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x17, 0x18, // 00071718 - 0x00, 0x06, 0x80, 0x1F, // 0006801F - 0x00, 0x06, 0x8C, 0x3B, // 00068C3B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x53, // 00069053 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x65, // 00070E65 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x07, 0x64, 0x01, // 00076401 - 0x00, 0x07, 0x26, 0x68, // 00072668 - 0x00, 0x06, 0x88, 0x20, // 00068820 - 0x00, 0x07, 0x90, 0x06, // 00079006 - 0x00, 0x06, 0x94, 0x7F, // 0006947F - 0x00, 0x06, 0xA0, 0x22, // 0006A022 - 0x00, 0x07, 0x90, 0x07, // 00079007 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x6B, // 00070E6B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x20, // 00068820 - 0x00, 0x04, 0x0E, 0x00, // 00040E00 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x40, // 00071C40 - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x0A, 0xD1, 0xC3, // 000AD1C3 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x6A, // 0006806A - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x20, // 00071C20 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x0A, 0xD1, 0xC3, // 000AD1C3 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x6C, // 0006806C - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x10, // 00071C10 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x0A, 0xD1, 0xC3, // 000AD1C3 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x76, // 00068076 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x67, // 00071E67 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0xE4, // 000706E4 - 0x00, 0x0A, 0xD1, 0x4F, // 000AD14F - 0x00, 0x08, 0x10, 0xC2, // 000810C2 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x98, 0x1C, // 0006981C - 0x00, 0x07, 0x90, 0x04, // 00079004 - 0x00, 0x06, 0x90, 0x1C, // 0006901C - 0x00, 0x04, 0x14, 0x00, // 00041400 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x22, // 00069022 - 0x00, 0x04, 0x2F, 0x08, // 00042F08 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0F, 0x00, // 00070F00 - 0x00, 0x07, 0x54, 0x08, // 00075408 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x06, 0x80, 0x1C, // 0006801C - 0x00, 0x0A, 0xCC, 0x81, // 000ACC81 - 0x00, 0x08, 0x92, 0xC1, // 000892C1 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x11, 0xBD, // 000211BD - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x74, 0x01, // 00077401 - 0x00, 0x02, 0x12, 0x57, // 00021257 - 0x00, 0x07, 0x36, 0x63, // 00073663 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x7C, 0x04, // 00077C04 - 0x00, 0x07, 0x3D, 0xA4, // 00073DA4 - 0x00, 0x06, 0xB0, 0x20, // 0006B020 - 0x00, 0x04, 0x36, 0x08, // 00043608 - 0x00, 0x04, 0x17, 0x08, // 00041708 - 0x00, 0x04, 0x06, 0x00, // 00040600 - 0x00, 0x07, 0x66, 0x00, // 00076600 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x5C, 0x80, // 00075C80 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3D, 0x00, // 00073D00 - 0x00, 0x0A, 0xC8, 0xC4, // 000AC8C4 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x36, 0xC4, // 000836C4 - 0x00, 0x0A, 0xC8, 0xC3, // 000AC8C3 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x12, 0x41, // 00081241 - 0x00, 0x0A, 0xC8, 0xC7, // 000AC8C7 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x12, 0x46, // 00021246 - 0x00, 0x09, 0x92, 0x51, // 00099251 - 0x00, 0x08, 0x36, 0xC2, // 000836C2 - 0x00, 0x07, 0x7C, 0x04, // 00077C04 - 0x00, 0x07, 0x3D, 0xBF, // 00073DBF - 0x00, 0x06, 0xAC, 0x6D, // 0006AC6D - 0x00, 0x06, 0xAC, 0x6C, // 0006AC6C - 0x00, 0x04, 0x06, 0x08, // 00040608 - 0x00, 0x04, 0x07, 0x08, // 00040708 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x62, // 00070E62 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x2D, // 0007142D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x1C, // 0006881C - 0x00, 0x04, 0x0C, 0x00, // 00040C00 - 0x00, 0x0A, 0xD2, 0xC1, // 000AD2C1 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x4F, // 0006904F - 0x00, 0x06, 0x94, 0x77, // 00069477 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x39, // 00070639 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x61, // 00070E61 - 0x00, 0x07, 0x54, 0x12, // 00075412 - 0x00, 0x07, 0x14, 0x30, // 00071430 - 0x00, 0x06, 0x84, 0x1C, // 0006841C - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x06, 0x88, 0x1C, // 0006881C - 0x00, 0x04, 0x0C, 0x00, // 00040C00 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x04, 0x37, 0x08, // 00043708 - 0x00, 0x09, 0xAC, 0x7F, // 0009AC7F - 0x00, 0x0A, 0xC1, 0x50, // 000AC150 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0A, 0x24, 0x7F, // 000A247F - 0x00, 0x0A, 0xC9, 0xC2, // 000AC9C2 - 0x00, 0x08, 0x0B, 0xC1, // 00080BC1 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0xA4, 0x00, // 0007A400 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x07, 0x8C, 0x00, // 00078C00 - 0x00, 0x07, 0xAC, 0x00, // 0007AC00 - 0x00, 0x04, 0xA8, 0x00, // 0004A800 - 0x00, 0x07, 0xB4, 0x00, // 0007B400 - 0x00, 0x06, 0x84, 0x45, // 00068445 - 0x00, 0x06, 0x84, 0x46, // 00068446 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x40, // 00071640 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x26, 0x90, // 00072690 - 0x00, 0x0B, 0x49, 0x75, // 000B4975 - 0x00, 0x06, 0x94, 0x1E, // 0006941E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA4, 0x1F, // 0006A41F - 0x00, 0x06, 0x8C, 0x15, // 00068C15 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x6A, // 0007066A - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x04, 0x17, 0x08, // 00041708 - 0x00, 0x04, 0x1F, 0x08, // 00041F08 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x04, 0x2F, 0x08, // 00042F08 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x06, 0xA4, 0x65, // 0006A465 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x84, 0x0D, // 0007840D - 0x00, 0x07, 0x8C, 0x5D, // 00078C5D - 0x00, 0x06, 0xAC, 0x79, // 0006AC79 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x6C, // 0007066C - 0x00, 0x0B, 0x76, 0x41, // 000B7641 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0C, 0x0B, 0x0D, // 000C0B0D - 0x00, 0x0C, 0x13, 0x0D, // 000C130D - 0x00, 0x0C, 0x1B, 0x0D, // 000C1B0D - 0x00, 0x0C, 0x23, 0x0D, // 000C230D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xB4, 0x6A, // 0006B46A - 0x00, 0x06, 0x8C, 0x66, // 00068C66 - 0x00, 0x06, 0x94, 0x67, // 00069467 - 0x00, 0x06, 0x9C, 0x68, // 00069C68 - 0x00, 0x06, 0xA4, 0x69, // 0006A469 - 0x00, 0x07, 0x64, 0x01, // 00076401 - 0x00, 0x07, 0x27, 0x12, // 00072712 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x03, 0x00, // 00040300 - 0x00, 0x04, 0x0B, 0x00, // 00040B00 - 0x00, 0x04, 0x13, 0x00, // 00041300 - 0x00, 0x04, 0x1B, 0x00, // 00041B00 - 0x00, 0x06, 0xA0, 0x22, // 0006A022 - 0x00, 0x07, 0x80, 0x0F, // 0007800F - 0x00, 0x07, 0x88, 0x0F, // 0007880F - 0x00, 0x07, 0x90, 0x0F, // 0007900F - 0x00, 0x07, 0x98, 0x07, // 00079807 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x1C, // 0006801C - 0x00, 0x0A, 0xC4, 0x81, // 000AC481 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0x80, 0x74, // 00098074 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x66, // 00071E66 - 0x00, 0x07, 0x64, 0x04, // 00076404 - 0x00, 0x07, 0x24, 0x08, // 00072408 - 0x00, 0x08, 0x88, 0x41, // 00088841 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x02, 0x12, 0x8F, // 0002128F - 0x00, 0x07, 0x56, 0x00, // 00075600 - 0x00, 0x07, 0x14, 0x01, // 00071401 - 0x00, 0x06, 0xA0, 0x08, // 0006A008 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x98, 0x20, // 00069820 - 0x00, 0x07, 0x90, 0x06, // 00079006 - 0x00, 0x08, 0x98, 0x42, // 00089842 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x02, 0x18, 0x00, // 00021800 - 0x00, 0x07, 0x56, 0x00, // 00075600 - 0x00, 0x07, 0x14, 0x02, // 00071402 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x90, 0x06, // 00079006 - 0x00, 0x02, 0x10, 0x54, // 00021054 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x64, 0x68, // 000B6468 - 0x00, 0x0A, 0xBE, 0xC4, // 000ABEC4 - 0x00, 0x09, 0xA4, 0x46, // 0009A446 - 0x00, 0x0B, 0x7F, 0xC7, // 000B7FC7 - 0x00, 0x06, 0xB8, 0x0F, // 0006B80F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA4, 0x05, // 0006A405 - 0x00, 0x06, 0xBC, 0x0D, // 0006BC0D - 0x00, 0x01, 0x41, 0x00, // 00014100 - 0x00, 0x06, 0xAC, 0x0F, // 0006AC0F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x06, 0xB4, 0x0D, // 0006B40D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xBD, 0x4A, // 0009BD4A - 0x00, 0x09, 0xB6, 0x7C, // 0009B67C - 0x00, 0x0A, 0xE4, 0x40, // 000AE440 - 0x00, 0x06, 0xB8, 0x0F, // 0006B80F - 0x00, 0x07, 0x6F, 0xFF, // 00076FFF - 0x00, 0x07, 0x2F, 0xFF, // 00072FFF - 0x00, 0x01, 0x03, 0xA6, // 000103A6 - 0x00, 0x0A, 0x2D, 0x7C, // 000A2D7C - 0x00, 0x09, 0xA4, 0x41, // 0009A441 - 0x00, 0x09, 0xBF, 0x41, // 0009BF41 - 0x00, 0x08, 0xE4, 0xC5, // 0008E4C5 - 0x00, 0x09, 0x1E, 0xC4, // 00091EC4 - 0x00, 0x02, 0x87, 0x10, // 00028710 - 0x00, 0x0A, 0xE3, 0xC3, // 000AE3C3 - 0x00, 0x08, 0xBF, 0xC5, // 0008BFC5 - 0x00, 0x07, 0x75, 0xD9, // 000775D9 - 0x00, 0x07, 0x36, 0x23, // 00073623 - 0x00, 0x09, 0xA7, 0x40, // 0009A740 - 0x00, 0x07, 0x6D, 0x14, // 00076D14 - 0x00, 0x0C, 0x36, 0x27, // 000C3627 - 0x00, 0x07, 0x2F, 0x2C, // 00072F2C - 0x00, 0x0B, 0x7D, 0x75, // 000B7D75 - 0x00, 0x08, 0xAD, 0xC4, // 0008ADC4 - 0x00, 0x00, 0xC7, 0x87, // 0000C787 - 0x00, 0x0A, 0x6E, 0xC6, // 000A6EC6 - 0x00, 0x09, 0xA4, 0x44, // 0009A444 - 0x00, 0x08, 0xAD, 0x41, // 0008AD41 - 0x00, 0x09, 0xA4, 0xC5, // 0009A4C5 - 0x00, 0x09, 0xAD, 0x43, // 0009AD43 - 0x00, 0x09, 0xB4, 0x6D, // 0009B46D - 0x00, 0x09, 0xA4, 0x49, // 0009A449 - 0x00, 0x0A, 0xF6, 0x7F, // 000AF67F - 0x00, 0x0A, 0x24, 0x77, // 000A2477 - 0x00, 0x02, 0x86, 0x30, // 00028630 - 0x00, 0x08, 0x36, 0x41, // 00083641 - 0x00, 0x08, 0xBE, 0x48, // 0008BE48 - 0x00, 0x02, 0x87, 0x18, // 00028718 - 0x00, 0x09, 0xA4, 0x49, // 0009A449 - 0x00, 0x08, 0xB6, 0x41, // 0008B641 - 0x00, 0x09, 0xA4, 0x77, // 0009A477 - 0x00, 0x0B, 0x7F, 0x74, // 000B7F74 - 0x00, 0x08, 0xB6, 0x44, // 0008B644 - 0x00, 0x02, 0x9E, 0x20, // 00029E20 - 0x00, 0x0B, 0x5B, 0x41, // 000B5B41 - 0x00, 0x08, 0x36, 0x41, // 00083641 - 0x00, 0x09, 0x9B, 0x53, // 00099B53 - 0x00, 0x08, 0x24, 0xC3, // 000824C3 - 0x00, 0x08, 0xB6, 0x41, // 0008B641 - 0x00, 0x00, 0xC7, 0x87, // 0000C787 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x09, 0xB6, 0x4F, // 0009B64F - 0x00, 0x08, 0x35, 0xC6, // 000835C6 - 0x00, 0x0B, 0x3F, 0xC7, // 000B3FC7 - 0x00, 0x0A, 0xEC, 0xC4, // 000AECC4 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0D, 0x00, // 00070D00 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x52, 0x7F, // 000B527F - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x69, // 00071E69 - 0x00, 0x0B, 0x64, 0x7F, // 000B647F - 0x00, 0x06, 0x90, 0x78, // 00069078 - 0x00, 0x0B, 0x6D, 0x7E, // 000B6D7E - 0x00, 0x06, 0x98, 0x22, // 00069822 - 0x00, 0x0A, 0xDF, 0x84, // 000ADF84 - 0x00, 0x0A, 0xDF, 0x85, // 000ADF85 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x98, 0x77, // 00069877 - 0x00, 0x06, 0x98, 0x7A, // 0006987A - 0x00, 0x06, 0xB8, 0x68, // 0006B868 - 0x00, 0x06, 0xB8, 0x69, // 0006B869 - 0x00, 0x06, 0xB8, 0x6F, // 0006B86F - 0x00, 0x06, 0xB8, 0x70, // 0006B870 - 0x00, 0x06, 0xB8, 0x71, // 0006B871 - 0x00, 0x06, 0xB8, 0x72, // 0006B872 - 0x00, 0x06, 0xB8, 0x73, // 0006B873 - 0x00, 0x06, 0xB8, 0x74, // 0006B874 - 0x00, 0x06, 0xB8, 0x75, // 0006B875 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x28, 0x6A, // 0006286A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA8, 0x61, // 0006A861 - 0x00, 0x07, 0x65, 0x5D, // 0007655D - 0x00, 0x07, 0x24, 0x10, // 00072410 - 0x00, 0x06, 0x30, 0x6C, // 0006306C - 0x00, 0x07, 0x6D, 0x59, // 00076D59 - 0x00, 0x07, 0x2C, 0x50, // 00072C50 - 0x00, 0x08, 0xB6, 0x40, // 0008B640 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x07, 0x65, 0x05, // 00076505 - 0x00, 0x07, 0x25, 0x70, // 00072570 - 0x00, 0x07, 0x6D, 0x15, // 00076D15 - 0x00, 0x07, 0x2D, 0x60, // 00072D60 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA0, 0x66, // 0006A066 - 0x00, 0x06, 0xA8, 0x67, // 0006A867 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x20, // 00071C20 - 0x00, 0x07, 0x7C, 0x01, // 00077C01 - 0x00, 0x07, 0x3D, 0xFF, // 00073DFF - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x00, // 00070E00 - 0x00, 0x07, 0x74, 0x01, // 00077401 - 0x00, 0x07, 0x35, 0xFF, // 000735FF - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x26, 0x98, // 00072698 - 0x00, 0x07, 0x6C, 0x01, // 00076C01 - 0x00, 0x07, 0x2C, 0x90, // 00072C90 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x90, // 00070490 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x06, 0x98, 0x15, // 00069815 - 0x00, 0x06, 0xB8, 0x16, // 0006B816 - 0x00, 0x06, 0xB4, 0x14, // 0006B414 - 0x00, 0x06, 0x88, 0x28, // 00068828 - 0x00, 0x06, 0x88, 0x22, // 00068822 - 0x00, 0x06, 0x90, 0x2E, // 0006902E - 0x00, 0x06, 0x90, 0x1C, // 0006901C - 0x00, 0x06, 0x90, 0x20, // 00069020 - 0x00, 0x06, 0x9C, 0x1C, // 00069C1C - 0x00, 0x06, 0xB4, 0x26, // 0006B426 - 0x00, 0x06, 0xB4, 0x24, // 0006B424 - 0x00, 0x06, 0xB4, 0x2E, // 0006B42E - 0x00, 0x06, 0xA0, 0x29, // 0006A029 - 0x00, 0x06, 0xA8, 0x1D, // 0006A81D - 0x00, 0x06, 0xA8, 0x21, // 0006A821 - 0x00, 0x06, 0xA8, 0x2F, // 0006A82F - 0x00, 0x06, 0x84, 0x1D, // 0006841D - 0x00, 0x08, 0x3F, 0x41, // 00083F41 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x01, 0x01, 0x21, // 00010121 - 0x00, 0x06, 0xB8, 0x6E, // 0006B86E - 0x00, 0x07, 0xA8, 0x0F, // 0007A80F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x38, 0x78, // 00063878 - 0x00, 0x07, 0x44, 0x05, // 00074405 - 0x00, 0x07, 0x05, 0x89, // 00070589 - 0x00, 0x07, 0x4C, 0x05, // 00074C05 - 0x00, 0x07, 0x0D, 0x4B, // 00070D4B - 0x00, 0x07, 0x54, 0x05, // 00075405 - 0x00, 0x07, 0x15, 0x59, // 00071559 - 0x00, 0x07, 0x5C, 0x05, // 00075C05 - 0x00, 0x07, 0x1D, 0xBD, // 00071DBD - 0x00, 0x08, 0xBF, 0x40, // 0008BF40 - 0x00, 0x02, 0x9F, 0x40, // 00029F40 - 0x00, 0x07, 0x44, 0x05, // 00074405 - 0x00, 0x07, 0x04, 0xC8, // 000704C8 - 0x00, 0x07, 0x4C, 0x05, // 00074C05 - 0x00, 0x07, 0x0C, 0xEE, // 00070CEE - 0x00, 0x07, 0x54, 0x05, // 00075405 - 0x00, 0x07, 0x14, 0xF8, // 000714F8 - 0x00, 0x07, 0x5C, 0x05, // 00075C05 - 0x00, 0x07, 0x1D, 0x16, // 00071D16 - 0x00, 0x06, 0x80, 0x09, // 00068009 - 0x00, 0x06, 0x88, 0x0D, // 0006880D - 0x00, 0x06, 0x90, 0x0C, // 0006900C - 0x00, 0x06, 0x98, 0x0B, // 0006980B - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x27, 0x20, // 00072720 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x3F, 0x00, // 00043F00 - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x0A, 0xFF, 0x44, // 000AFF44 - 0x00, 0x06, 0xA0, 0x5B, // 0006A05B - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x27, 0x00, // 00072700 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x10, // 00071C10 - 0x00, 0x08, 0x80, 0x40, // 00088040 - 0x00, 0x06, 0xA0, 0x5B, // 0006A05B - 0x00, 0x02, 0x9E, 0x20, // 00029E20 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x64, 0x04, // 00076404 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x1C, 0x30, // 00071C30 - 0x00, 0x08, 0x24, 0xC7, // 000824C7 - 0x00, 0x06, 0x88, 0x4B, // 0006884B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x9C, 0x06, // 00069C06 - 0x00, 0x06, 0xA0, 0x5B, // 0006A05B - 0x00, 0x06, 0xA4, 0x76, // 0006A476 - 0x00, 0x06, 0x28, 0x77, // 00062877 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x40, // 00071640 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x90, // 00072490 - 0x00, 0x0B, 0x49, 0x7D, // 000B497D - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x6C, // 0007066C - 0x00, 0x06, 0x90, 0x1E, // 0006901E - 0x00, 0x06, 0xA0, 0x1F, // 0006A01F - 0x00, 0x06, 0x88, 0x14, // 00068814 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x04, 0x17, 0x08, // 00041708 - 0x00, 0x04, 0x1F, 0x08, // 00041F08 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x08, 0xAD, 0x40, // 0008AD40 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0B, 0x49, 0x40, // 000B4940 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x07, 0x88, 0x0D, // 0007880D - 0x00, 0x07, 0x90, 0x0D, // 0007900D - 0x00, 0x07, 0x98, 0x0D, // 0007980D - 0x00, 0x07, 0xA0, 0x0D, // 0007A00D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0xC1, 0x05, // 0000C105 - 0x00, 0x07, 0x44, 0x04, // 00074404 - 0x00, 0x07, 0x07, 0x43, // 00070743 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x0F, // 0006800F - 0x00, 0x06, 0x38, 0x61, // 00063861 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0xBF, 0x40, // 0008BF40 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x13, 0x6E, // 0002136E - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x20, // 00071420 - 0x00, 0x06, 0x18, 0x1C, // 0006181C - 0x00, 0x09, 0x12, 0xC0, // 000912C0 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x10, 0x6E, // 0006106E - 0x00, 0x08, 0x9B, 0x44, // 00089B44 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x1B, 0xC2, // 00081BC2 - 0x00, 0x07, 0x45, 0x5D, // 0007455D - 0x00, 0x07, 0x04, 0x10, // 00070410 - 0x00, 0x07, 0x4D, 0x59, // 00074D59 - 0x00, 0x07, 0x0C, 0x50, // 00070C50 - 0x00, 0x06, 0x98, 0x1C, // 0006981C - 0x00, 0x00, 0xC1, 0x04, // 0000C104 - 0x00, 0x07, 0x54, 0x04, // 00075404 - 0x00, 0x07, 0x17, 0x60, // 00071760 - 0x00, 0x09, 0x80, 0x48, // 00098048 - 0x00, 0x09, 0x89, 0x78, // 00098978 - 0x00, 0x08, 0x38, 0xC1, // 000838C1 - 0x00, 0x06, 0x90, 0x0F, // 0006900F - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x65, // 00071665 - 0x00, 0x0B, 0x49, 0x40, // 000B4940 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x22, // 00069022 - 0x00, 0x07, 0x88, 0x03, // 00078803 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x69, // 00068869 - 0x00, 0x06, 0x88, 0x61, // 00068861 - 0x00, 0x06, 0x08, 0x6F, // 0006086F - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x08, 0x89, 0x41, // 00088941 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x13, 0x8B, // 0002138B - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0x88, 0x42, // 00088842 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x00, 0xC1, 0x01, // 0000C101 - 0x00, 0x07, 0x44, 0x04, // 00074404 - 0x00, 0x07, 0x07, 0x7F, // 0007077F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x6F, // 0006906F - 0x00, 0x06, 0x80, 0x0F, // 0006800F - 0x00, 0x06, 0x10, 0x66, // 00061066 - 0x00, 0x08, 0x90, 0xC2, // 000890C2 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x16, 0x14, // 00021614 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x10, 0x67, // 00061067 - 0x00, 0x08, 0x91, 0xC2, // 000891C2 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x16, 0x14, // 00021614 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x10, 0x76, // 00061076 - 0x00, 0x06, 0x08, 0x7A, // 0006087A - 0x00, 0x0A, 0x00, 0xC2, // 000A00C2 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x20, // 00071420 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x90, 0xC2, // 000890C2 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x0C, 0x26, // 00060C26 - 0x00, 0x06, 0x14, 0x1C, // 0006141C - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x00, // 00071E00 - 0x00, 0x08, 0x89, 0xC2, // 000889C2 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x09, 0xC3, // 000809C3 - 0x00, 0x06, 0x24, 0x24, // 00062424 - 0x00, 0x09, 0x22, 0xC4, // 000922C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x24, 0xC3, // 000824C3 - 0x00, 0x09, 0x29, 0xC4, // 000929C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x0C, 0x40, // 00080C40 - 0x00, 0x06, 0x24, 0x2E, // 0006242E - 0x00, 0x09, 0x22, 0xC4, // 000922C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x24, 0xC3, // 000824C3 - 0x00, 0x09, 0x29, 0xC4, // 000929C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x0C, 0x40, // 00080C40 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2C, 0x20, // 00072C20 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x89, 0xC5, // 000889C5 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x6D, 0x70, // 000B6D70 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x04, 0xB8, 0x0D, // 0004B80D - 0x00, 0x06, 0xA8, 0x79, // 0006A879 - 0x00, 0x09, 0xBF, 0x7C, // 0009BF7C - 0x00, 0x00, 0xC1, 0x01, // 0000C101 - 0x00, 0x07, 0x44, 0x04, // 00074404 - 0x00, 0x07, 0x07, 0xC5, // 000707C5 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x0F, // 0006800F - 0x00, 0x06, 0x18, 0x76, // 00061876 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x9B, 0x40, // 00089B40 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x08, 0x29, 0x40, // 00082940 - 0x00, 0x08, 0x08, 0x40, // 00080840 - 0x00, 0x0C, 0x31, 0x08, // 000C3108 - 0x00, 0x0E, 0x31, 0x09, // 000E3109 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x10, 0x73, // 00061073 - 0x00, 0x0C, 0x01, 0x08, // 000C0108 - 0x00, 0x0E, 0x01, 0x09, // 000E0109 - 0x00, 0x0A, 0xF6, 0x7C, // 000AF67C - 0x00, 0x09, 0xA7, 0x7F, // 0009A77F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x36, 0x42, // 00083642 - 0x00, 0x0A, 0xC0, 0x7C, // 000AC07C - 0x00, 0x09, 0xBF, 0x7F, // 0009BF7F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x00, 0x42, // 00080042 - 0x00, 0x06, 0x20, 0x79, // 00062079 - 0x00, 0x08, 0x12, 0x42, // 00081242 - 0x00, 0x08, 0xA4, 0x41, // 0008A441 - 0x00, 0x07, 0xF4, 0x0C, // 0007F40C - 0x00, 0x07, 0xC4, 0x0C, // 0007C40C - 0x00, 0x02, 0x9F, 0x50, // 00029F50 - 0x00, 0x06, 0x90, 0x73, // 00069073 - 0x00, 0x06, 0xA0, 0x79, // 0006A079 - 0x00, 0x08, 0x9B, 0x41, // 00089B41 - 0x00, 0x02, 0x87, 0x20, // 00028720 - 0x00, 0x08, 0x0D, 0x40, // 00080D40 - 0x00, 0x08, 0x05, 0x40, // 00080540 - 0x00, 0x02, 0x13, 0xCB, // 000213CB - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x02, 0x13, 0xBE, // 000213BE - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x00, 0x74, // 00060074 - 0x00, 0x06, 0x0C, 0x1C, // 00060C1C - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x14, 0x80, // 00071480 - 0x00, 0x08, 0x80, 0x40, // 00088040 - 0x00, 0x02, 0x9E, 0x48, // 00029E48 - 0x00, 0x08, 0x91, 0xC2, // 000891C2 - 0x00, 0x02, 0x89, 0x38, // 00028938 - 0x00, 0x02, 0x15, 0xDB, // 000215DB - 0x00, 0x07, 0x44, 0x04, // 00074404 - 0x00, 0x07, 0x07, 0xF8, // 000707F8 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x0E, // 0006800E - 0x00, 0x02, 0x16, 0x52, // 00021652 - 0x00, 0x07, 0x4C, 0x04, // 00074C04 - 0x00, 0x07, 0x0F, 0xFF, // 00070FFF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x0F, // 0006880F - 0x00, 0x06, 0x00, 0x69, // 00060069 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x65, // 00070E65 - 0x00, 0x08, 0x00, 0x41, // 00080041 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x20, // 00071420 - 0x00, 0x06, 0x18, 0x76, // 00061876 - 0x00, 0x0A, 0x12, 0xC3, // 000A12C3 - 0x00, 0x06, 0x88, 0x22, // 00068822 - 0x00, 0x08, 0x92, 0x41, // 00089241 - 0x00, 0x0A, 0xC0, 0xC2, // 000AC0C2 - 0x00, 0x04, 0x0F, 0x00, // 00040F00 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0x09, 0x41, // 00080941 - 0x00, 0x06, 0x00, 0x6A, // 0006006A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x69, // 00068069 - 0x00, 0x07, 0x88, 0x07, // 00078807 - 0x00, 0x06, 0x80, 0x6F, // 0006806F - 0x00, 0x00, 0xC1, 0x03, // 0000C103 - 0x00, 0x07, 0x44, 0x05, // 00074405 - 0x00, 0x07, 0x04, 0x1B, // 0007041B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x0F, // 0006800F - 0x00, 0x06, 0x04, 0x26, // 00060426 - 0x00, 0x06, 0x28, 0x7A, // 0006287A - 0x00, 0x06, 0x38, 0x7A, // 0006387A - 0x00, 0x06, 0x0C, 0x1C, // 00060C1C - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x06, 0x18, 0x70, // 00061870 - 0x00, 0x08, 0x80, 0xC1, // 000880C1 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x07, 0x74, 0x00, // 00077400 - 0x00, 0x07, 0x34, 0x40, // 00073440 - 0x00, 0x06, 0x08, 0x74, // 00060874 - 0x00, 0x08, 0xA5, 0x41, // 0008A541 - 0x00, 0x02, 0x9E, 0x30, // 00029E30 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x08, 0xA0, 0xC6, // 0008A0C6 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x02, 0x81, 0x80, // 00028180 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x70, // 00029F70 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x21, // 00072421 - 0x00, 0x08, 0x93, 0xC0, // 000893C0 - 0x00, 0x06, 0x80, 0x70, // 00068070 - 0x00, 0x06, 0xA8, 0x7A, // 0006A87A - 0x00, 0x08, 0x94, 0xC2, // 000894C2 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x16, 0x11, // 00021611 - 0x00, 0x07, 0x44, 0x05, // 00074405 - 0x00, 0x07, 0x04, 0x40, // 00070440 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x0F, // 0006800F - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x01, // 00070C01 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x81, 0x10, // 00028110 - 0x00, 0x02, 0x14, 0xAC, // 000214AC - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x80, 0x07, // 00078007 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0A, 0xC7, 0x81, // 000AC781 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x14, 0xC1, // 000214C1 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x69, // 00070669 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x01, // 00070C01 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x6C, // 0007066C - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x06, 0x10, 0x7A, // 0006107A - 0x00, 0x06, 0x18, 0x77, // 00061877 - 0x00, 0x04, 0x25, 0x08, // 00042508 - 0x00, 0x04, 0x2D, 0x08, // 00042D08 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0x3D, 0x08, // 00043D08 - 0x00, 0x0A, 0xCF, 0x81, // 000ACF81 - 0x00, 0x02, 0x9F, 0x70, // 00029F70 - 0x00, 0x06, 0x0C, 0x6A, // 00060C6A - 0x00, 0x08, 0x9B, 0x40, // 00089B40 - 0x00, 0x02, 0x9E, 0x50, // 00029E50 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9F, 0x30, // 00029F30 - 0x00, 0x0B, 0x49, 0x41, // 000B4941 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x02, 0x81, 0x08, // 00028108 - 0x00, 0x06, 0x0C, 0x65, // 00060C65 - 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F - 0x00, 0x02, 0x81, 0x70, // 00028170 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x06, 0x0C, 0x6A, // 00060C6A - 0x00, 0x08, 0x9B, 0x40, // 00089B40 - 0x00, 0x02, 0x9F, 0x50, // 00029F50 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9F, 0x30, // 00029F30 - 0x00, 0x0B, 0x49, 0x41, // 000B4941 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x04, 0x2F, 0x08, // 00042F08 - 0x00, 0x04, 0x37, 0x08, // 00043708 - 0x00, 0x04, 0x3F, 0x08, // 00043F08 - 0x00, 0x02, 0x81, 0x08, // 00028108 - 0x00, 0x06, 0x0C, 0x65, // 00060C65 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x06, 0x04, 0x6A, // 0006046A - 0x00, 0x06, 0x14, 0x65, // 00061465 - 0x00, 0x09, 0x00, 0xC2, // 000900C2 - 0x00, 0x08, 0x11, 0x41, // 00081141 - 0x00, 0x02, 0x9F, 0x18, // 00029F18 - 0x00, 0x08, 0x10, 0x41, // 00081041 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x08, 0x40, // 00080840 - 0x00, 0x07, 0xA0, 0x0D, // 0007A00D - 0x00, 0x07, 0xA8, 0x0D, // 0007A80D - 0x00, 0x07, 0xB0, 0x0D, // 0007B00D - 0x00, 0x06, 0x8C, 0x6A, // 00068C6A - 0x00, 0x07, 0xB8, 0x0D, // 0007B80D - 0x00, 0x06, 0x98, 0x77, // 00069877 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x69, // 00070669 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x02, // 00070C02 - 0x00, 0x06, 0x10, 0x7A, // 0006107A - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0A, 0xC3, 0x81, // 000AC381 - 0x00, 0x02, 0x9F, 0x58, // 00029F58 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9E, 0x40, // 00029E40 - 0x00, 0x0B, 0x52, 0x7E, // 000B527E - 0x00, 0x02, 0x16, 0x2E, // 0002162E - 0x00, 0x07, 0x44, 0x05, // 00074405 - 0x00, 0x07, 0x04, 0xAC, // 000704AC - 0x00, 0x06, 0x90, 0x7A, // 0006907A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x0F, // 0006800F - 0x00, 0x02, 0x81, 0x18, // 00028118 - 0x00, 0x08, 0x9A, 0x42, // 00089A42 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0B, 0x52, 0x7F, // 000B527F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x7A, // 0006907A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x00, 0x6D, // 0006006D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xC0, 0x6D, // 0006C06D - 0x00, 0x02, 0x3F, 0xCC, // 00023FCC - 0x00, 0x07, 0x6C, 0x05, // 00076C05 - 0x00, 0x07, 0x2C, 0xBA, // 00072CBA - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x13, 0x3B, // 0002133B - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0xC1, 0x80, // 0000C180 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x10, 0x68, // 00061068 - 0x00, 0x04, 0x04, 0x08, // 00040408 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x02, 0x14, 0xDD, // 000214DD - 0x00, 0x06, 0x28, 0x6C, // 0006286C - 0x00, 0x04, 0x0C, 0x08, // 00040C08 - 0x00, 0x07, 0x64, 0x3F, // 0007643F - 0x00, 0x07, 0x27, 0xFF, // 000727FF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xA4, 0x44, // 0009A444 - 0x00, 0x04, 0x14, 0x00, // 00041400 - 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 - 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 - 0x00, 0x0A, 0xD2, 0xC4, // 000AD2C4 - 0x00, 0x09, 0x80, 0x48, // 00098048 - 0x00, 0x09, 0xB1, 0x78, // 0009B178 - 0x00, 0x08, 0x00, 0xC6, // 000800C6 - 0x00, 0x09, 0x89, 0x48, // 00098948 - 0x00, 0x09, 0xB2, 0x78, // 0009B278 - 0x00, 0x08, 0x09, 0xC6, // 000809C6 - 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 - 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 - 0x00, 0x08, 0xAD, 0x40, // 0008AD40 - 0x00, 0x02, 0x9F, 0x30, // 00029F30 - 0x00, 0x09, 0x90, 0x48, // 00099048 - 0x00, 0x09, 0xB0, 0x78, // 0009B078 - 0x00, 0x08, 0x02, 0xC6, // 000802C6 - 0x00, 0x09, 0x91, 0x48, // 00099148 - 0x00, 0x09, 0xB1, 0x78, // 0009B178 - 0x00, 0x08, 0x0A, 0xC6, // 00080AC6 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 - 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x18, 0x68, // 00061868 - 0x00, 0x06, 0x00, 0x1C, // 0006001C - 0x00, 0x09, 0x9B, 0x7D, // 00099B7D - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x06, 0x08, 0x20, // 00060820 - 0x00, 0x06, 0x10, 0x6E, // 0006106E - 0x00, 0x08, 0x81, 0xC0, // 000881C0 - 0x00, 0x09, 0x03, 0xC0, // 000903C0 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x01, 0x0A, 0x20, // 00010A20 - 0x00, 0x0B, 0x49, 0x7F, // 000B497F - 0x00, 0x04, 0x14, 0x00, // 00041400 - 0x00, 0x0B, 0x76, 0x78, // 000B7678 - 0x00, 0x09, 0x92, 0x48, // 00099248 - 0x00, 0x09, 0x89, 0x48, // 00098948 - 0x00, 0x09, 0x9A, 0x68, // 00099A68 - 0x00, 0x08, 0x09, 0xC3, // 000809C3 - 0x00, 0x08, 0x9F, 0xC1, // 00089FC1 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x06, 0xB0, 0x68, // 0006B068 - 0x00, 0x09, 0x92, 0x48, // 00099248 - 0x00, 0x09, 0x89, 0x48, // 00098948 - 0x00, 0x09, 0x9A, 0x68, // 00099A68 - 0x00, 0x08, 0x09, 0xC3, // 000809C3 - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x04, 0x14, 0x08, // 00041408 - 0x00, 0x08, 0x9F, 0xC1, // 00089FC1 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x06, 0xB0, 0x68, // 0006B068 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x30, 0x71, // 00063071 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x08, 0xB6, 0x40, // 0008B640 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x02, 0x15, 0x31, // 00021531 - 0x00, 0x06, 0x18, 0x7A, // 0006187A - 0x00, 0x06, 0x30, 0x72, // 00063072 - 0x00, 0x07, 0x06, 0x00, // 00070600 - 0x00, 0x06, 0x08, 0x28, // 00060828 - 0x00, 0x08, 0x38, 0x41, // 00083841 - 0x00, 0x08, 0x90, 0xC1, // 000890C1 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x07, 0x54, 0x03, // 00075403 - 0x00, 0x07, 0x17, 0xF0, // 000717F0 - 0x00, 0x06, 0xB8, 0x22, // 0006B822 - 0x00, 0x01, 0x04, 0x90, // 00010490 - 0x00, 0x09, 0x92, 0x48, // 00099248 - 0x00, 0x0A, 0xE7, 0x8A, // 000AE78A - 0x00, 0x0A, 0xEF, 0x8A, // 000AEF8A - 0x00, 0x08, 0x36, 0x41, // 00083641 - 0x00, 0x09, 0xAD, 0x78, // 0009AD78 - 0x00, 0x08, 0x24, 0xC5, // 000824C5 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xB0, 0x72, // 0006B072 - 0x00, 0x07, 0xE0, 0x0E, // 0007E00E - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x08, 0x9B, 0x40, // 00089B40 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x06, 0xB0, 0x71, // 0006B071 - 0x00, 0x06, 0x08, 0x20, // 00060820 - 0x00, 0x06, 0x00, 0x1C, // 0006001C - 0x00, 0x06, 0x10, 0x6E, // 0006106E - 0x00, 0x08, 0x81, 0xC0, // 000881C0 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1D, 0xE8, // 00071DE8 - 0x00, 0x0B, 0x76, 0x7F, // 000B767F - 0x00, 0x08, 0x93, 0xC0, // 000893C0 - 0x00, 0x02, 0x88, 0x08, // 00028808 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x05, 0x38, // 00070538 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xB0, 0x71, // 0006B071 - 0x00, 0x06, 0xB8, 0x28, // 0006B828 - 0x00, 0x06, 0x80, 0x4B, // 0006804B - 0x00, 0x06, 0x00, 0x1C, // 0006001C - 0x00, 0x06, 0x08, 0x20, // 00060820 - 0x00, 0x06, 0x10, 0x6E, // 0006106E - 0x00, 0x08, 0x81, 0xC0, // 000881C0 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x06, 0x18, 0x68, // 00061868 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x0A, 0x10, 0x44, // 000A1044 - 0x00, 0x0A, 0x20, 0x42, // 000A2042 - 0x00, 0x08, 0x12, 0xC4, // 000812C4 - 0x00, 0x09, 0x03, 0xC2, // 000903C2 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0x00, 0x7C, // 000A007C - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x20, // 00070420 - 0x00, 0x07, 0x54, 0x05, // 00075405 - 0x00, 0x07, 0x15, 0x7C, // 0007157C - 0x00, 0x0B, 0x49, 0x41, // 000B4941 - 0x00, 0x0B, 0x64, 0x7F, // 000B647F - 0x00, 0x0B, 0x5B, 0x78, // 000B5B78 - 0x00, 0x09, 0xA4, 0x7C, // 0009A47C - 0x00, 0x06, 0x90, 0x0A, // 0006900A - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x09, 0x94, 0x83, // 00099483 - 0x00, 0x08, 0x36, 0x41, // 00083641 - 0x00, 0x09, 0x89, 0x41, // 00098941 - 0x00, 0x09, 0x92, 0x41, // 00099241 - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x09, 0xC4, // 000809C4 - 0x00, 0x01, 0x04, 0x13, // 00010413 - 0x00, 0x08, 0xAF, 0xC1, // 0008AFC1 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x00, 0xC1, 0x82, // 0000C182 - 0x00, 0x08, 0x36, 0x41, // 00083641 - 0x00, 0x09, 0x89, 0x41, // 00098941 - 0x00, 0x09, 0x92, 0x41, // 00099241 - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x09, 0xC4, // 000809C4 - 0x00, 0x08, 0xAF, 0xC1, // 0008AFC1 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x00, 0xC1, 0x82, // 0000C182 - 0x00, 0x04, 0x2C, 0x08, // 00042C08 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x15, 0x62, // 00021562 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x02, 0x81, 0x08, // 00028108 - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x08, 0xAE, 0x54, // 0008AE54 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xB0, 0x68, // 0006B068 - 0x00, 0x04, 0x34, 0x08, // 00043408 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x10, 0x68, // 00061068 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x82, 0x47, // 00088247 - 0x00, 0x02, 0x88, 0x08, // 00028808 - 0x00, 0x02, 0x15, 0x96, // 00021596 - 0x00, 0x0B, 0x64, 0x41, // 000B6441 - 0x00, 0x08, 0x9A, 0x54, // 00089A54 - 0x00, 0x09, 0xA4, 0x78, // 0009A478 - 0x00, 0x0A, 0xEC, 0x8C, // 000AEC8C - 0x00, 0x0A, 0xE4, 0x7F, // 000AE47F - 0x00, 0x0A, 0xF4, 0x84, // 000AF484 - 0x00, 0x0A, 0xF4, 0x8C, // 000AF48C - 0x00, 0x0A, 0xCC, 0x84, // 000ACC84 - 0x00, 0x07, 0x64, 0x3F, // 0007643F - 0x00, 0x07, 0x27, 0xFF, // 000727FF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xA4, 0x44, // 0009A444 - 0x00, 0x09, 0x85, 0xC2, // 000985C2 - 0x00, 0x09, 0x86, 0xC3, // 000986C3 - 0x00, 0x08, 0x00, 0xC0, // 000800C0 - 0x00, 0x08, 0x12, 0x50, // 00081250 - 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 - 0x00, 0x08, 0x9A, 0x54, // 00089A54 - 0x00, 0x02, 0x87, 0x18, // 00028718 - 0x00, 0x08, 0x92, 0x54, // 00089254 - 0x00, 0x08, 0x2E, 0x40, // 00082E40 - 0x00, 0x08, 0x31, 0x40, // 00083140 - 0x00, 0x08, 0x9A, 0x54, // 00089A54 - 0x00, 0x09, 0x8D, 0xC2, // 00098DC2 - 0x00, 0x09, 0x8E, 0xC3, // 00098EC3 - 0x00, 0x08, 0x09, 0xC1, // 000809C1 - 0x00, 0x08, 0x12, 0x50, // 00081250 - 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 - 0x00, 0x08, 0x9A, 0x54, // 00089A54 - 0x00, 0x02, 0x87, 0x08, // 00028708 - 0x00, 0x08, 0x92, 0x54, // 00089254 - 0x00, 0x06, 0x28, 0x6C, // 0006286C - 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 - 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 - 0x00, 0x06, 0x90, 0x68, // 00069068 - 0x00, 0x08, 0xAD, 0x40, // 0008AD40 - 0x00, 0x02, 0x9F, 0x30, // 00029F30 - 0x00, 0x09, 0x90, 0x48, // 00099048 - 0x00, 0x09, 0xB0, 0x78, // 0009B078 - 0x00, 0x08, 0x02, 0xC6, // 000802C6 - 0x00, 0x09, 0x91, 0x48, // 00099148 - 0x00, 0x09, 0xB1, 0x78, // 0009B178 - 0x00, 0x08, 0x0A, 0xC6, // 00080AC6 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 - 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 - 0x00, 0x02, 0x81, 0x18, // 00028118 - 0x00, 0x07, 0x7C, 0x01, // 00077C01 - 0x00, 0x07, 0x3C, 0xC0, // 00073CC0 - 0x00, 0x07, 0x74, 0x01, // 00077401 - 0x00, 0x07, 0x35, 0x60, // 00073560 - 0x00, 0x06, 0x20, 0x2E, // 0006202E - 0x00, 0x06, 0x18, 0x1C, // 0006181C - 0x00, 0x06, 0x10, 0x6E, // 0006106E - 0x00, 0x06, 0x00, 0x75, // 00060075 - 0x00, 0x06, 0x08, 0x7A, // 0006087A - 0x00, 0x06, 0xA0, 0x20, // 0006A020 - 0x00, 0x08, 0x9C, 0xC3, // 00089CC3 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x1B, 0xC2, // 00081BC2 - 0x00, 0x09, 0x16, 0xC3, // 000916C3 - 0x00, 0x02, 0x89, 0x10, // 00028910 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x30, // 00070430 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9E, 0x20, // 00029E20 - 0x00, 0x08, 0x97, 0xC3, // 000897C3 - 0x00, 0x02, 0x89, 0x10, // 00028910 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x70, // 00070470 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x98, 0x7F, // 0006987F - 0x00, 0x06, 0x84, 0x06, // 00068406 - 0x00, 0x06, 0x80, 0x75, // 00068075 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x15, 0xFC, // 000215FC - 0x00, 0x07, 0x4C, 0x05, // 00074C05 - 0x00, 0x07, 0x0D, 0xE2, // 00070DE2 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x0F, // 0006880F - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x32, // 00070E32 - 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x8C, 0x22, // 00068C22 - 0x00, 0x06, 0x5C, 0x14, // 00065C14 - 0x00, 0x06, 0xA8, 0x74, // 0006A874 - 0x00, 0x06, 0x5C, 0x24, // 00065C24 - 0x00, 0x06, 0x5C, 0x26, // 00065C26 - 0x00, 0x06, 0x5C, 0x2E, // 00065C2E - 0x00, 0x06, 0x5C, 0x25, // 00065C25 - 0x00, 0x06, 0x5C, 0x27, // 00065C27 - 0x00, 0x06, 0x5C, 0x2F, // 00065C2F - 0x00, 0x06, 0x5C, 0x44, // 00065C44 - 0x00, 0x04, 0x80, 0x03, // 00048003 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0xC1, 0x06, // 0000C106 - 0x00, 0x06, 0x84, 0x74, // 00068474 - 0x00, 0x06, 0x84, 0x43, // 00068443 - 0x00, 0x06, 0x5C, 0x3C, // 00065C3C - 0x00, 0x06, 0x5C, 0x3B, // 00065C3B - 0x00, 0x06, 0x5C, 0x54, // 00065C54 - 0x00, 0x06, 0x5C, 0x53, // 00065C53 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x25, // 00070E25 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA8, 0x74, // 0006A874 - 0x00, 0x06, 0x8C, 0x22, // 00068C22 - 0x00, 0x06, 0x5C, 0x14, // 00065C14 - 0x00, 0x06, 0x5C, 0x24, // 00065C24 - 0x00, 0x06, 0x5C, 0x26, // 00065C26 - 0x00, 0x06, 0x5C, 0x2E, // 00065C2E - 0x00, 0x06, 0x5C, 0x25, // 00065C25 - 0x00, 0x06, 0x5C, 0x27, // 00065C27 - 0x00, 0x06, 0x5C, 0x2F, // 00065C2F - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x06, 0x5C, 0x44, // 00065C44 - 0x00, 0x06, 0x5C, 0x43, // 00065C43 - 0x00, 0x06, 0x5C, 0x3C, // 00065C3C - 0x00, 0x06, 0x5C, 0x3B, // 00065C3B - 0x00, 0x06, 0x5C, 0x54, // 00065C54 - 0x00, 0x06, 0x5C, 0x53, // 00065C53 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x02, // 00071C02 - 0x00, 0x02, 0x81, 0x10, // 00028110 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x01, // 00071C01 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x65, // 00071665 - 0x00, 0x06, 0x00, 0x61, // 00060061 - 0x00, 0x06, 0x20, 0x7A, // 0006207A - 0x00, 0x07, 0x4C, 0x05, // 00074C05 - 0x00, 0x06, 0x9C, 0x7F, // 00069C7F - 0x00, 0x06, 0x90, 0x22, // 00069022 - 0x00, 0x04, 0x1F, 0x00, // 00041F00 - 0x00, 0x08, 0xA4, 0x40, // 0008A440 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x07, 0x0C, 0x14, // 00070C14 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x98, 0x1F, // 0007981F - 0x00, 0x04, 0x17, 0x00, // 00041700 - 0x00, 0x08, 0xA4, 0x40, // 0008A440 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x06, 0x00, 0x6A, // 0006006A - 0x00, 0x08, 0x12, 0x41, // 00081241 - 0x00, 0x06, 0x88, 0x0F, // 0006880F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x61, // 00068061 - 0x00, 0x07, 0x90, 0x07, // 00079007 - 0x00, 0x06, 0x3C, 0x26, // 00063C26 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x08, 0x3F, 0x40, // 00083F40 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x06, 0x1C, 0x1C, // 00061C1C - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xBC, 0x1C, // 0006BC1C - 0x00, 0x04, 0xB0, 0x0D, // 0004B00D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xB6, 0x7C, // 0009B67C - 0x00, 0x01, 0x05, 0x10, // 00010510 - 0x00, 0x09, 0xA6, 0x7F, // 0009A67F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x00, 0x42, // 00080042 - 0x00, 0x0B, 0x49, 0x40, // 000B4940 - 0x00, 0x09, 0xB6, 0x7F, // 0009B67F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x09, 0x42, // 00080942 - 0x00, 0x07, 0x84, 0x0C, // 0007840C - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x09, 0xA6, 0x7F, // 0009A67F - 0x00, 0x07, 0x8C, 0x0C, // 00078C0C - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x30, // 00072430 - 0x00, 0x08, 0x2D, 0x41, // 00082D41 - 0x00, 0x08, 0xA4, 0xC5, // 0008A4C5 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x16, 0x35, // 00021635 - 0x00, 0x02, 0x81, 0x08, // 00028108 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x9C, 0x1C, // 00069C1C - 0x00, 0x06, 0x04, 0x6A, // 0006046A - 0x00, 0x06, 0x08, 0x77, // 00060877 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x17, 0x12, // 00071712 - 0x00, 0x08, 0x80, 0x40, // 00088040 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x16, 0x71, // 00021671 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x02, 0x88, 0x08, // 00028808 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x06, 0x24, 0x66, // 00062466 - 0x00, 0x06, 0x2C, 0x67, // 00062C67 - 0x00, 0x06, 0x34, 0x68, // 00063468 - 0x00, 0x06, 0x3C, 0x69, // 00063C69 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0B, 0x64, 0xC4, // 000B64C4 - 0x00, 0x0B, 0x6D, 0xC5, // 000B6DC5 - 0x00, 0x0B, 0x76, 0xC6, // 000B76C6 - 0x00, 0x0B, 0x7F, 0xC7, // 000B7FC7 - 0x00, 0x08, 0x25, 0x8C, // 0008258C - 0x00, 0x08, 0x2D, 0x8D, // 00082D8D - 0x00, 0x08, 0x35, 0x8E, // 0008358E - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x08, 0x3D, 0x8F, // 00083D8F - 0x00, 0x06, 0x84, 0x6A, // 0006846A - 0x00, 0x07, 0xA0, 0x0D, // 0007A00D - 0x00, 0x07, 0xA8, 0x0D, // 0007A80D - 0x00, 0x07, 0xB0, 0x0D, // 0007B00D - 0x00, 0x07, 0xB8, 0x0D, // 0007B80D - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x06, 0x90, 0x22, // 00069022 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x04, 0x2F, 0x08, // 00042F08 - 0x00, 0x04, 0x37, 0x08, // 00043708 - 0x00, 0x04, 0x3F, 0x08, // 00043F08 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x06, 0x84, 0x6A, // 0006846A - 0x00, 0x07, 0xA0, 0x0D, // 0007A00D - 0x00, 0x07, 0xA8, 0x0D, // 0007A80D - 0x00, 0x07, 0xB0, 0x0D, // 0007B00D - 0x00, 0x07, 0xB8, 0x0D, // 0007B80D - 0x00, 0x00, 0x00, 0x00, // 00000000 + 0xe0, 0x00, 0x06, 0x84, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x47, 0xC0, // 000747C0 + 0x00, 0x07, 0x04, 0x00, // 00070400 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xC0, 0x6B, // 0006C06B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x90, // 00070690 + 0x00, 0x07, 0x4C, 0x07, // 00074C07 + 0x00, 0x07, 0x0F, 0xFF, // 00070FFF + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x06, 0x80, 0x1D, // 0006801D + 0x00, 0x06, 0x80, 0x1F, // 0006801F + 0x00, 0x06, 0x80, 0x21, // 00068021 + 0x00, 0x06, 0x80, 0x23, // 00068023 + 0x00, 0x06, 0x84, 0x1D, // 0006841D + 0x00, 0x06, 0x84, 0x1F, // 0006841F + 0x00, 0x06, 0x84, 0x21, // 00068421 + 0x00, 0x06, 0x84, 0x23, // 00068423 + 0x00, 0x06, 0x88, 0x17, // 00068817 + 0x00, 0x06, 0x8C, 0x17, // 00068C17 + 0x00, 0x06, 0xD0, 0x6D, // 0006D06D + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x57, // 00071E57 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x90, // 00070690 + 0x00, 0x07, 0x4C, 0x07, // 00074C07 + 0x00, 0x07, 0x0F, 0xFF, // 00070FFF + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x06, 0x80, 0x1D, // 0006801D + 0x00, 0x06, 0x80, 0x1F, // 0006801F + 0x00, 0x06, 0x80, 0x21, // 00068021 + 0x00, 0x06, 0x80, 0x23, // 00068023 + 0x00, 0x06, 0x84, 0x1D, // 0006841D + 0x00, 0x06, 0x84, 0x1F, // 0006841F + 0x00, 0x06, 0x84, 0x21, // 00068421 + 0x00, 0x06, 0x84, 0x23, // 00068423 + 0x00, 0x06, 0x88, 0x17, // 00068817 + 0x00, 0x06, 0x8C, 0x17, // 00068C17 + 0x00, 0x06, 0xD0, 0x6D, // 0006D06D + 0x00, 0x06, 0x98, 0x1E, // 0006981E + 0x00, 0x04, 0x05, 0x08, // 00040508 + 0x00, 0x04, 0x0D, 0x08, // 00040D08 + 0x00, 0x04, 0x15, 0x08, // 00041508 + 0x00, 0x04, 0x1D, 0x08, // 00041D08 + 0x00, 0x04, 0x25, 0x08, // 00042508 + 0x00, 0x04, 0x2D, 0x08, // 00042D08 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3C, 0x30, // 00073C30 + 0x00, 0x06, 0x80, 0x3B, // 0006803B + 0x00, 0x06, 0x88, 0x5B, // 0006885B + 0x00, 0x06, 0x94, 0x3B, // 0006943B + 0x00, 0x06, 0x9C, 0x43, // 00069C43 + 0x00, 0x06, 0xA0, 0x53, // 0006A053 + 0x00, 0x06, 0xA8, 0x4B, // 0006A84B + 0x00, 0x06, 0xB4, 0x53, // 0006B453 + 0x00, 0x06, 0xBC, 0x06, // 0006BC06 + 0x00, 0x07, 0x74, 0x01, // 00077401 + 0x00, 0x07, 0x36, 0x63, // 00073663 + 0x00, 0x02, 0x12, 0x57, // 00021257 + 0x00, 0x07, 0x6C, 0x18, // 00076C18 + 0x00, 0x07, 0x2C, 0x00, // 00072C00 + 0x00, 0x07, 0x7C, 0x04, // 00077C04 + 0x00, 0x07, 0x3C, 0x45, // 00073C45 + 0x00, 0x06, 0xB0, 0x20, // 0006B020 + 0x00, 0x04, 0x36, 0x00, // 00043600 + 0x00, 0x02, 0x12, 0x46, // 00021246 + 0x00, 0x07, 0x7C, 0x04, // 00077C04 + 0x00, 0x07, 0x3C, 0x4C, // 00073C4C + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x66, // 00070666 + 0x00, 0x0B, 0x49, 0x40, // 000B4940 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x94, 0x7F, // 0006947F + 0x00, 0x06, 0x80, 0x1C, // 0006801C + 0x00, 0x07, 0x88, 0x04, // 00078804 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x0B, 0x49, 0x7F, // 000B497F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x1C, // 0006801C + 0x00, 0x04, 0x14, 0x00, // 00041400 + 0x00, 0x0A, 0xC1, 0xC2, // 000AC1C2 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x02, 0x10, 0x70, // 00021070 + 0x00, 0x0A, 0xD2, 0x7E, // 000AD27E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x90, 0x04, // 00079004 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0xC2, 0xC1, // 000AC2C1 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x02, 0x10, 0x85, // 00021085 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x00, 0x6D, // 0006006D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x41, // 00080041 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xC0, 0x6D, // 0006C06D + 0x00, 0x02, 0x3F, 0xCC, // 00023FCC + 0x00, 0x07, 0x6C, 0x04, // 00076C04 + 0x00, 0x07, 0x2C, 0x7E, // 00072C7E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x10, 0x54, // 00021054 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0x80, 0x74, // 00098074 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1F, 0x00, // 00071F00 + 0x00, 0x08, 0x80, 0x42, // 00088042 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x11, 0x51, // 00021151 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0A, 0xC2, 0xC3, // 000AC2C3 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0x80, 0x78, // 00098078 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0x42, // 00088042 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x11, 0x51, // 00021151 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0F, 0x00, // 00070F00 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x66, // 00070666 + 0x00, 0x07, 0x56, 0x00, // 00075600 + 0x00, 0x07, 0x14, 0x03, // 00071403 + 0x00, 0x06, 0x8C, 0x3B, // 00068C3B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x1C, // 0006801C + 0x00, 0x07, 0x90, 0x04, // 00079004 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2F, 0x00, // 00072F00 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x00, // 00070400 + 0x00, 0x0B, 0x49, 0x40, // 000B4940 + 0x00, 0x06, 0xAC, 0x05, // 0006AC05 + 0x00, 0x01, 0x41, 0x00, // 00014100 + 0x00, 0x06, 0x84, 0x1C, // 0006841C + 0x00, 0x07, 0x8C, 0x0C, // 00078C0C + 0x00, 0x07, 0x8C, 0x0C, // 00078C0C + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1C, 0x90, // 00071C90 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x17, 0x00, // 00071700 + 0x00, 0x07, 0x64, 0x01, // 00076401 + 0x00, 0x07, 0x25, 0xFF, // 000725FF + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2C, 0x00, // 00072C00 + 0x00, 0x06, 0x9C, 0x25, // 00069C25 + 0x00, 0x06, 0x98, 0x2D, // 0006982D + 0x00, 0x06, 0x94, 0x3C, // 0006943C + 0x00, 0x06, 0xA4, 0x16, // 0006A416 + 0x00, 0x06, 0xA0, 0x16, // 0006A016 + 0x00, 0x06, 0x8C, 0x3B, // 00068C3B + 0x00, 0x06, 0xAC, 0x24, // 0006AC24 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0F, 0x00, // 00070F00 + 0x00, 0x0B, 0x52, 0x6F, // 000B526F + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1E, 0x90, // 00071E90 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x1E, // 0006881E + 0x00, 0x06, 0x90, 0x15, // 00069015 + 0x00, 0x06, 0x98, 0x1F, // 0006981F + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x84, 0x6F, // 0006846F + 0x00, 0x06, 0x84, 0x70, // 00068470 + 0x00, 0x04, 0x05, 0x10, // 00040510 + 0x00, 0x07, 0x74, 0x01, // 00077401 + 0x00, 0x07, 0x36, 0x63, // 00073663 + 0x00, 0x02, 0x12, 0x57, // 00021257 + 0x00, 0x06, 0x80, 0x1C, // 0006801C + 0x00, 0x04, 0x2C, 0x08, // 00042C08 + 0x00, 0x07, 0x7C, 0x04, // 00077C04 + 0x00, 0x07, 0x3C, 0xD2, // 00073CD2 + 0x00, 0x06, 0xB0, 0x22, // 0006B022 + 0x00, 0x04, 0x37, 0x08, // 00043708 + 0x00, 0x04, 0x14, 0x20, // 00041420 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x07, 0x66, 0x00, // 00076600 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x5C, 0x80, // 00075C80 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3D, 0x00, // 00073D00 + 0x00, 0x0A, 0xC8, 0xC4, // 000AC8C4 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x36, 0xC4, // 000836C4 + 0x00, 0x0A, 0xC8, 0xC3, // 000AC8C3 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x12, 0x41, // 00081241 + 0x00, 0x0A, 0xC8, 0xC7, // 000AC8C7 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x02, 0x12, 0x46, // 00021246 + 0x00, 0x09, 0x92, 0x51, // 00099251 + 0x00, 0x08, 0x36, 0xC2, // 000836C2 + 0x00, 0x07, 0x7C, 0x04, // 00077C04 + 0x00, 0x07, 0x3C, 0xEA, // 00073CEA + 0x00, 0x06, 0xAC, 0x6D, // 0006AC6D + 0x00, 0x06, 0xAC, 0x6C, // 0006AC6C + 0x00, 0x0B, 0x7F, 0x7F, // 000B7F7F + 0x00, 0x09, 0xB6, 0x7D, // 0009B67D + 0x00, 0x0A, 0x3F, 0x53, // 000A3F53 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x0A, 0xF6, 0x43, // 000AF643 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1F, 0x18, // 00071F18 + 0x00, 0x07, 0x6C, 0x04, // 00076C04 + 0x00, 0x07, 0x2C, 0x00, // 00072C00 + 0x00, 0x04, 0x0C, 0x08, // 00040C08 + 0x00, 0x08, 0xB6, 0x41, // 0008B641 + 0x00, 0x0A, 0x09, 0xC6, // 000A09C6 + 0x00, 0x08, 0x8F, 0xC1, // 00088FC1 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x09, 0x25, // 000C0925 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x00, // 00070400 + 0x00, 0x06, 0x98, 0x53, // 00069853 + 0x00, 0x06, 0x90, 0x2C, // 0006902C + 0x00, 0x06, 0xA4, 0x24, // 0006A424 + 0x00, 0x06, 0x80, 0x53, // 00068053 + 0x00, 0x06, 0x88, 0x54, // 00068854 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x06, 0x14, 0x6F, // 0006146F + 0x00, 0x06, 0x00, 0x52, // 00060052 + 0x00, 0x08, 0x12, 0x41, // 00081241 + 0x00, 0x06, 0x1C, 0x70, // 00061C70 + 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 + 0x00, 0x02, 0x9F, 0x38, // 00029F38 + 0x00, 0x0A, 0x09, 0x74, // 000A0974 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0xC9, 0x43, // 000AC943 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0xA1, 0x42, // 0008A142 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x08, 0x1B, 0x41, // 00081B41 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x94, 0x6F, // 0006946F + 0x00, 0x06, 0x9C, 0x70, // 00069C70 + 0x00, 0x06, 0x00, 0x6D, // 0006006D + 0x00, 0x02, 0x3F, 0xCC, // 00023FCC + 0x00, 0x0B, 0x00, 0x41, // 000B0041 + 0x00, 0x07, 0x6C, 0x04, // 00076C04 + 0x00, 0x07, 0x2D, 0x1E, // 00072D1E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x6D, // 0006806D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x04, 0x24, // 00060424 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x61, // 00071661 + 0x00, 0x08, 0x8C, 0x80, // 00088C80 + 0x00, 0x02, 0x89, 0x10, // 00028910 + 0x00, 0x02, 0x11, 0x03, // 00021103 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x90, 0x22, // 00069022 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x07, 0x54, 0x0C, // 0007540C + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x0A, 0xD8, 0x7E, // 000AD87E + 0x00, 0x0A, 0xC8, 0x41, // 000AC841 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0A, 0xC8, 0xC2, // 000AC8C2 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x10, 0x08, // 00021008 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x98, 0x07, // 00079807 + 0x00, 0x06, 0x04, 0x6F, // 0006046F + 0x00, 0x06, 0x0C, 0x70, // 00060C70 + 0x00, 0x0A, 0x10, 0x7D, // 000A107D + 0x00, 0x08, 0x90, 0xC2, // 000890C2 + 0x00, 0x08, 0x99, 0xC2, // 000899C2 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x10, 0xC2, // 000210C2 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x6B, // 00070E6B + 0x00, 0x0B, 0x52, 0x50, // 000B5250 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x1C, // 0006881C + 0x00, 0x0A, 0xCC, 0x82, // 000ACC82 + 0x00, 0x04, 0x1D, 0x88, // 00041D88 + 0x00, 0x04, 0x1D, 0x00, // 00041D00 + 0x00, 0x08, 0x09, 0xC3, // 000809C3 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x88, 0x04, // 00078804 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x90, // 00070690 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0F, 0x00, // 00070F00 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x17, 0x18, // 00071718 + 0x00, 0x06, 0x80, 0x1F, // 0006801F + 0x00, 0x06, 0x8C, 0x3B, // 00068C3B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x53, // 00069053 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x65, // 00070E65 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x07, 0x64, 0x01, // 00076401 + 0x00, 0x07, 0x26, 0x68, // 00072668 + 0x00, 0x06, 0x88, 0x20, // 00068820 + 0x00, 0x07, 0x90, 0x06, // 00079006 + 0x00, 0x06, 0x94, 0x7F, // 0006947F + 0x00, 0x06, 0xA0, 0x22, // 0006A022 + 0x00, 0x07, 0x90, 0x07, // 00079007 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x6B, // 00070E6B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x20, // 00068820 + 0x00, 0x04, 0x0E, 0x00, // 00040E00 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x40, // 00071C40 + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x0A, 0xD1, 0xC3, // 000AD1C3 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x6A, // 0006806A + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x20, // 00071C20 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x0A, 0xD1, 0xC3, // 000AD1C3 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x6C, // 0006806C + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x10, // 00071C10 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x0A, 0xD1, 0xC3, // 000AD1C3 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x76, // 00068076 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x67, // 00071E67 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0xE4, // 000706E4 + 0x00, 0x0A, 0xD1, 0x4F, // 000AD14F + 0x00, 0x08, 0x10, 0xC2, // 000810C2 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x98, 0x1C, // 0006981C + 0x00, 0x07, 0x90, 0x04, // 00079004 + 0x00, 0x06, 0x90, 0x1C, // 0006901C + 0x00, 0x04, 0x14, 0x00, // 00041400 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x22, // 00069022 + 0x00, 0x04, 0x2F, 0x08, // 00042F08 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0F, 0x00, // 00070F00 + 0x00, 0x07, 0x54, 0x08, // 00075408 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x06, 0x80, 0x1C, // 0006801C + 0x00, 0x0A, 0xCC, 0x81, // 000ACC81 + 0x00, 0x08, 0x92, 0xC1, // 000892C1 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x11, 0xBD, // 000211BD + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x74, 0x01, // 00077401 + 0x00, 0x02, 0x12, 0x57, // 00021257 + 0x00, 0x07, 0x36, 0x63, // 00073663 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x7C, 0x04, // 00077C04 + 0x00, 0x07, 0x3D, 0xA4, // 00073DA4 + 0x00, 0x06, 0xB0, 0x20, // 0006B020 + 0x00, 0x04, 0x36, 0x08, // 00043608 + 0x00, 0x04, 0x17, 0x08, // 00041708 + 0x00, 0x04, 0x06, 0x00, // 00040600 + 0x00, 0x07, 0x66, 0x00, // 00076600 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x5C, 0x80, // 00075C80 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3D, 0x00, // 00073D00 + 0x00, 0x0A, 0xC8, 0xC4, // 000AC8C4 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x36, 0xC4, // 000836C4 + 0x00, 0x0A, 0xC8, 0xC3, // 000AC8C3 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x12, 0x41, // 00081241 + 0x00, 0x0A, 0xC8, 0xC7, // 000AC8C7 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x12, 0x46, // 00021246 + 0x00, 0x09, 0x92, 0x51, // 00099251 + 0x00, 0x08, 0x36, 0xC2, // 000836C2 + 0x00, 0x07, 0x7C, 0x04, // 00077C04 + 0x00, 0x07, 0x3D, 0xBF, // 00073DBF + 0x00, 0x06, 0xAC, 0x6D, // 0006AC6D + 0x00, 0x06, 0xAC, 0x6C, // 0006AC6C + 0x00, 0x04, 0x06, 0x08, // 00040608 + 0x00, 0x04, 0x07, 0x08, // 00040708 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x62, // 00070E62 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x2D, // 0007142D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x1C, // 0006881C + 0x00, 0x04, 0x0C, 0x00, // 00040C00 + 0x00, 0x0A, 0xD2, 0xC1, // 000AD2C1 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x4F, // 0006904F + 0x00, 0x06, 0x94, 0x77, // 00069477 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x39, // 00070639 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x61, // 00070E61 + 0x00, 0x07, 0x54, 0x12, // 00075412 + 0x00, 0x07, 0x14, 0x30, // 00071430 + 0x00, 0x06, 0x84, 0x1C, // 0006841C + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x06, 0x88, 0x1C, // 0006881C + 0x00, 0x04, 0x0C, 0x00, // 00040C00 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x04, 0x37, 0x08, // 00043708 + 0x00, 0x09, 0xAC, 0x7F, // 0009AC7F + 0x00, 0x0A, 0xC1, 0x50, // 000AC150 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0A, 0x24, 0x7F, // 000A247F + 0x00, 0x0A, 0xC9, 0xC2, // 000AC9C2 + 0x00, 0x08, 0x0B, 0xC1, // 00080BC1 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0xA4, 0x00, // 0007A400 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x07, 0x8C, 0x00, // 00078C00 + 0x00, 0x07, 0xAC, 0x00, // 0007AC00 + 0x00, 0x04, 0xA8, 0x00, // 0004A800 + 0x00, 0x07, 0xB4, 0x00, // 0007B400 + 0x00, 0x06, 0x84, 0x45, // 00068445 + 0x00, 0x06, 0x84, 0x46, // 00068446 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x40, // 00071640 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x26, 0x90, // 00072690 + 0x00, 0x0B, 0x49, 0x75, // 000B4975 + 0x00, 0x06, 0x94, 0x1E, // 0006941E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA4, 0x1F, // 0006A41F + 0x00, 0x06, 0x8C, 0x15, // 00068C15 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x6A, // 0007066A + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x04, 0x17, 0x08, // 00041708 + 0x00, 0x04, 0x1F, 0x08, // 00041F08 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x04, 0x2F, 0x08, // 00042F08 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x06, 0xA4, 0x65, // 0006A465 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x84, 0x0D, // 0007840D + 0x00, 0x07, 0x8C, 0x5D, // 00078C5D + 0x00, 0x06, 0xAC, 0x79, // 0006AC79 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x6C, // 0007066C + 0x00, 0x0B, 0x76, 0x41, // 000B7641 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0C, 0x0B, 0x0D, // 000C0B0D + 0x00, 0x0C, 0x13, 0x0D, // 000C130D + 0x00, 0x0C, 0x1B, 0x0D, // 000C1B0D + 0x00, 0x0C, 0x23, 0x0D, // 000C230D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xB4, 0x6A, // 0006B46A + 0x00, 0x06, 0x8C, 0x66, // 00068C66 + 0x00, 0x06, 0x94, 0x67, // 00069467 + 0x00, 0x06, 0x9C, 0x68, // 00069C68 + 0x00, 0x06, 0xA4, 0x69, // 0006A469 + 0x00, 0x07, 0x64, 0x01, // 00076401 + 0x00, 0x07, 0x27, 0x12, // 00072712 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x03, 0x00, // 00040300 + 0x00, 0x04, 0x0B, 0x00, // 00040B00 + 0x00, 0x04, 0x13, 0x00, // 00041300 + 0x00, 0x04, 0x1B, 0x00, // 00041B00 + 0x00, 0x06, 0xA0, 0x22, // 0006A022 + 0x00, 0x07, 0x80, 0x0F, // 0007800F + 0x00, 0x07, 0x88, 0x0F, // 0007880F + 0x00, 0x07, 0x90, 0x0F, // 0007900F + 0x00, 0x07, 0x98, 0x07, // 00079807 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x1C, // 0006801C + 0x00, 0x0A, 0xC4, 0x81, // 000AC481 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0x80, 0x74, // 00098074 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x66, // 00071E66 + 0x00, 0x07, 0x64, 0x04, // 00076404 + 0x00, 0x07, 0x24, 0x08, // 00072408 + 0x00, 0x08, 0x88, 0x41, // 00088841 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x02, 0x12, 0x8F, // 0002128F + 0x00, 0x07, 0x56, 0x00, // 00075600 + 0x00, 0x07, 0x14, 0x01, // 00071401 + 0x00, 0x06, 0xA0, 0x08, // 0006A008 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x98, 0x20, // 00069820 + 0x00, 0x07, 0x90, 0x06, // 00079006 + 0x00, 0x08, 0x98, 0x42, // 00089842 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x02, 0x18, 0x00, // 00021800 + 0x00, 0x07, 0x56, 0x00, // 00075600 + 0x00, 0x07, 0x14, 0x02, // 00071402 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x90, 0x06, // 00079006 + 0x00, 0x02, 0x10, 0x54, // 00021054 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x64, 0x68, // 000B6468 + 0x00, 0x0A, 0xBE, 0xC4, // 000ABEC4 + 0x00, 0x09, 0xA4, 0x46, // 0009A446 + 0x00, 0x0B, 0x7F, 0xC7, // 000B7FC7 + 0x00, 0x06, 0xB8, 0x0F, // 0006B80F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA4, 0x05, // 0006A405 + 0x00, 0x06, 0xBC, 0x0D, // 0006BC0D + 0x00, 0x01, 0x41, 0x00, // 00014100 + 0x00, 0x06, 0xAC, 0x0F, // 0006AC0F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x06, 0xB4, 0x0D, // 0006B40D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xBD, 0x4A, // 0009BD4A + 0x00, 0x09, 0xB6, 0x7C, // 0009B67C + 0x00, 0x0A, 0xE4, 0x40, // 000AE440 + 0x00, 0x06, 0xB8, 0x0F, // 0006B80F + 0x00, 0x07, 0x6F, 0xFF, // 00076FFF + 0x00, 0x07, 0x2F, 0xFF, // 00072FFF + 0x00, 0x01, 0x03, 0xA6, // 000103A6 + 0x00, 0x0A, 0x2D, 0x7C, // 000A2D7C + 0x00, 0x09, 0xA4, 0x41, // 0009A441 + 0x00, 0x09, 0xBF, 0x41, // 0009BF41 + 0x00, 0x08, 0xE4, 0xC5, // 0008E4C5 + 0x00, 0x09, 0x1E, 0xC4, // 00091EC4 + 0x00, 0x02, 0x87, 0x10, // 00028710 + 0x00, 0x0A, 0xE3, 0xC3, // 000AE3C3 + 0x00, 0x08, 0xBF, 0xC5, // 0008BFC5 + 0x00, 0x07, 0x75, 0xD9, // 000775D9 + 0x00, 0x07, 0x36, 0x23, // 00073623 + 0x00, 0x09, 0xA7, 0x40, // 0009A740 + 0x00, 0x07, 0x6D, 0x14, // 00076D14 + 0x00, 0x0C, 0x36, 0x27, // 000C3627 + 0x00, 0x07, 0x2F, 0x2C, // 00072F2C + 0x00, 0x0B, 0x7D, 0x75, // 000B7D75 + 0x00, 0x08, 0xAD, 0xC4, // 0008ADC4 + 0x00, 0x00, 0xC7, 0x87, // 0000C787 + 0x00, 0x0A, 0x6E, 0xC6, // 000A6EC6 + 0x00, 0x09, 0xA4, 0x44, // 0009A444 + 0x00, 0x08, 0xAD, 0x41, // 0008AD41 + 0x00, 0x09, 0xA4, 0xC5, // 0009A4C5 + 0x00, 0x09, 0xAD, 0x43, // 0009AD43 + 0x00, 0x09, 0xB4, 0x6D, // 0009B46D + 0x00, 0x09, 0xA4, 0x49, // 0009A449 + 0x00, 0x0A, 0xF6, 0x7F, // 000AF67F + 0x00, 0x0A, 0x24, 0x77, // 000A2477 + 0x00, 0x02, 0x86, 0x30, // 00028630 + 0x00, 0x08, 0x36, 0x41, // 00083641 + 0x00, 0x08, 0xBE, 0x48, // 0008BE48 + 0x00, 0x02, 0x87, 0x18, // 00028718 + 0x00, 0x09, 0xA4, 0x49, // 0009A449 + 0x00, 0x08, 0xB6, 0x41, // 0008B641 + 0x00, 0x09, 0xA4, 0x77, // 0009A477 + 0x00, 0x0B, 0x7F, 0x74, // 000B7F74 + 0x00, 0x08, 0xB6, 0x44, // 0008B644 + 0x00, 0x02, 0x9E, 0x20, // 00029E20 + 0x00, 0x0B, 0x5B, 0x41, // 000B5B41 + 0x00, 0x08, 0x36, 0x41, // 00083641 + 0x00, 0x09, 0x9B, 0x53, // 00099B53 + 0x00, 0x08, 0x24, 0xC3, // 000824C3 + 0x00, 0x08, 0xB6, 0x41, // 0008B641 + 0x00, 0x00, 0xC7, 0x87, // 0000C787 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x09, 0xB6, 0x4F, // 0009B64F + 0x00, 0x08, 0x35, 0xC6, // 000835C6 + 0x00, 0x0B, 0x3F, 0xC7, // 000B3FC7 + 0x00, 0x0A, 0xEC, 0xC4, // 000AECC4 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0D, 0x00, // 00070D00 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x52, 0x7F, // 000B527F + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x69, // 00071E69 + 0x00, 0x0B, 0x64, 0x7F, // 000B647F + 0x00, 0x06, 0x90, 0x78, // 00069078 + 0x00, 0x0B, 0x6D, 0x7E, // 000B6D7E + 0x00, 0x06, 0x98, 0x22, // 00069822 + 0x00, 0x0A, 0xDF, 0x84, // 000ADF84 + 0x00, 0x0A, 0xDF, 0x85, // 000ADF85 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x98, 0x77, // 00069877 + 0x00, 0x06, 0x98, 0x7A, // 0006987A + 0x00, 0x06, 0xB8, 0x68, // 0006B868 + 0x00, 0x06, 0xB8, 0x69, // 0006B869 + 0x00, 0x06, 0xB8, 0x6F, // 0006B86F + 0x00, 0x06, 0xB8, 0x70, // 0006B870 + 0x00, 0x06, 0xB8, 0x71, // 0006B871 + 0x00, 0x06, 0xB8, 0x72, // 0006B872 + 0x00, 0x06, 0xB8, 0x73, // 0006B873 + 0x00, 0x06, 0xB8, 0x74, // 0006B874 + 0x00, 0x06, 0xB8, 0x75, // 0006B875 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x28, 0x6A, // 0006286A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA8, 0x61, // 0006A861 + 0x00, 0x07, 0x65, 0x5D, // 0007655D + 0x00, 0x07, 0x24, 0x10, // 00072410 + 0x00, 0x06, 0x30, 0x6C, // 0006306C + 0x00, 0x07, 0x6D, 0x59, // 00076D59 + 0x00, 0x07, 0x2C, 0x50, // 00072C50 + 0x00, 0x08, 0xB6, 0x40, // 0008B640 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x07, 0x65, 0x05, // 00076505 + 0x00, 0x07, 0x25, 0x70, // 00072570 + 0x00, 0x07, 0x6D, 0x15, // 00076D15 + 0x00, 0x07, 0x2D, 0x60, // 00072D60 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA0, 0x66, // 0006A066 + 0x00, 0x06, 0xA8, 0x67, // 0006A867 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x20, // 00071C20 + 0x00, 0x07, 0x7C, 0x01, // 00077C01 + 0x00, 0x07, 0x3D, 0xFF, // 00073DFF + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x00, // 00070E00 + 0x00, 0x07, 0x74, 0x01, // 00077401 + 0x00, 0x07, 0x35, 0xFF, // 000735FF + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x26, 0x98, // 00072698 + 0x00, 0x07, 0x6C, 0x01, // 00076C01 + 0x00, 0x07, 0x2C, 0x90, // 00072C90 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x90, // 00070490 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x06, 0x98, 0x15, // 00069815 + 0x00, 0x06, 0xB8, 0x16, // 0006B816 + 0x00, 0x06, 0xB4, 0x14, // 0006B414 + 0x00, 0x06, 0x88, 0x28, // 00068828 + 0x00, 0x06, 0x88, 0x22, // 00068822 + 0x00, 0x06, 0x90, 0x2E, // 0006902E + 0x00, 0x06, 0x90, 0x1C, // 0006901C + 0x00, 0x06, 0x90, 0x20, // 00069020 + 0x00, 0x06, 0x9C, 0x1C, // 00069C1C + 0x00, 0x06, 0xB4, 0x26, // 0006B426 + 0x00, 0x06, 0xB4, 0x24, // 0006B424 + 0x00, 0x06, 0xB4, 0x2E, // 0006B42E + 0x00, 0x06, 0xA0, 0x29, // 0006A029 + 0x00, 0x06, 0xA8, 0x1D, // 0006A81D + 0x00, 0x06, 0xA8, 0x21, // 0006A821 + 0x00, 0x06, 0xA8, 0x2F, // 0006A82F + 0x00, 0x06, 0x84, 0x1D, // 0006841D + 0x00, 0x08, 0x3F, 0x41, // 00083F41 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x01, 0x01, 0x21, // 00010121 + 0x00, 0x06, 0xB8, 0x6E, // 0006B86E + 0x00, 0x07, 0xA8, 0x0F, // 0007A80F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x38, 0x78, // 00063878 + 0x00, 0x07, 0x44, 0x05, // 00074405 + 0x00, 0x07, 0x05, 0x89, // 00070589 + 0x00, 0x07, 0x4C, 0x05, // 00074C05 + 0x00, 0x07, 0x0D, 0x4B, // 00070D4B + 0x00, 0x07, 0x54, 0x05, // 00075405 + 0x00, 0x07, 0x15, 0x59, // 00071559 + 0x00, 0x07, 0x5C, 0x05, // 00075C05 + 0x00, 0x07, 0x1D, 0xBD, // 00071DBD + 0x00, 0x08, 0xBF, 0x40, // 0008BF40 + 0x00, 0x02, 0x9F, 0x40, // 00029F40 + 0x00, 0x07, 0x44, 0x05, // 00074405 + 0x00, 0x07, 0x04, 0xC8, // 000704C8 + 0x00, 0x07, 0x4C, 0x05, // 00074C05 + 0x00, 0x07, 0x0C, 0xEE, // 00070CEE + 0x00, 0x07, 0x54, 0x05, // 00075405 + 0x00, 0x07, 0x14, 0xF8, // 000714F8 + 0x00, 0x07, 0x5C, 0x05, // 00075C05 + 0x00, 0x07, 0x1D, 0x16, // 00071D16 + 0x00, 0x06, 0x80, 0x09, // 00068009 + 0x00, 0x06, 0x88, 0x0D, // 0006880D + 0x00, 0x06, 0x90, 0x0C, // 0006900C + 0x00, 0x06, 0x98, 0x0B, // 0006980B + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x27, 0x20, // 00072720 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x3F, 0x00, // 00043F00 + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x0A, 0xFF, 0x44, // 000AFF44 + 0x00, 0x06, 0xA0, 0x5B, // 0006A05B + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x27, 0x00, // 00072700 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x10, // 00071C10 + 0x00, 0x08, 0x80, 0x40, // 00088040 + 0x00, 0x06, 0xA0, 0x5B, // 0006A05B + 0x00, 0x02, 0x9E, 0x20, // 00029E20 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x64, 0x04, // 00076404 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x1C, 0x30, // 00071C30 + 0x00, 0x08, 0x24, 0xC7, // 000824C7 + 0x00, 0x06, 0x88, 0x4B, // 0006884B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x9C, 0x06, // 00069C06 + 0x00, 0x06, 0xA0, 0x5B, // 0006A05B + 0x00, 0x06, 0xA4, 0x76, // 0006A476 + 0x00, 0x06, 0x28, 0x77, // 00062877 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x40, // 00071640 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x90, // 00072490 + 0x00, 0x0B, 0x49, 0x7D, // 000B497D + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x6C, // 0007066C + 0x00, 0x06, 0x90, 0x1E, // 0006901E + 0x00, 0x06, 0xA0, 0x1F, // 0006A01F + 0x00, 0x06, 0x88, 0x14, // 00068814 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x04, 0x17, 0x08, // 00041708 + 0x00, 0x04, 0x1F, 0x08, // 00041F08 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x08, 0xAD, 0x40, // 0008AD40 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0B, 0x49, 0x40, // 000B4940 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x07, 0x88, 0x0D, // 0007880D + 0x00, 0x07, 0x90, 0x0D, // 0007900D + 0x00, 0x07, 0x98, 0x0D, // 0007980D + 0x00, 0x07, 0xA0, 0x0D, // 0007A00D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0xC1, 0x05, // 0000C105 + 0x00, 0x07, 0x44, 0x04, // 00074404 + 0x00, 0x07, 0x07, 0x43, // 00070743 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x0F, // 0006800F + 0x00, 0x06, 0x38, 0x61, // 00063861 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0xBF, 0x40, // 0008BF40 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x13, 0x6E, // 0002136E + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x20, // 00071420 + 0x00, 0x06, 0x18, 0x1C, // 0006181C + 0x00, 0x09, 0x12, 0xC0, // 000912C0 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x10, 0x6E, // 0006106E + 0x00, 0x08, 0x9B, 0x44, // 00089B44 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x1B, 0xC2, // 00081BC2 + 0x00, 0x07, 0x45, 0x5D, // 0007455D + 0x00, 0x07, 0x04, 0x10, // 00070410 + 0x00, 0x07, 0x4D, 0x59, // 00074D59 + 0x00, 0x07, 0x0C, 0x50, // 00070C50 + 0x00, 0x06, 0x98, 0x1C, // 0006981C + 0x00, 0x00, 0xC1, 0x04, // 0000C104 + 0x00, 0x07, 0x54, 0x04, // 00075404 + 0x00, 0x07, 0x17, 0x60, // 00071760 + 0x00, 0x09, 0x80, 0x48, // 00098048 + 0x00, 0x09, 0x89, 0x78, // 00098978 + 0x00, 0x08, 0x38, 0xC1, // 000838C1 + 0x00, 0x06, 0x90, 0x0F, // 0006900F + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x65, // 00071665 + 0x00, 0x0B, 0x49, 0x40, // 000B4940 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x22, // 00069022 + 0x00, 0x07, 0x88, 0x03, // 00078803 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x69, // 00068869 + 0x00, 0x06, 0x88, 0x61, // 00068861 + 0x00, 0x06, 0x08, 0x6F, // 0006086F + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x08, 0x89, 0x41, // 00088941 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x13, 0x8B, // 0002138B + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0x88, 0x42, // 00088842 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x00, 0xC1, 0x01, // 0000C101 + 0x00, 0x07, 0x44, 0x04, // 00074404 + 0x00, 0x07, 0x07, 0x7F, // 0007077F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x6F, // 0006906F + 0x00, 0x06, 0x80, 0x0F, // 0006800F + 0x00, 0x06, 0x10, 0x66, // 00061066 + 0x00, 0x08, 0x90, 0xC2, // 000890C2 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x16, 0x14, // 00021614 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x10, 0x67, // 00061067 + 0x00, 0x08, 0x91, 0xC2, // 000891C2 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x16, 0x14, // 00021614 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x10, 0x76, // 00061076 + 0x00, 0x06, 0x08, 0x7A, // 0006087A + 0x00, 0x0A, 0x00, 0xC2, // 000A00C2 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x20, // 00071420 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x90, 0xC2, // 000890C2 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x0C, 0x26, // 00060C26 + 0x00, 0x06, 0x14, 0x1C, // 0006141C + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x00, // 00071E00 + 0x00, 0x08, 0x89, 0xC2, // 000889C2 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x09, 0xC3, // 000809C3 + 0x00, 0x06, 0x24, 0x24, // 00062424 + 0x00, 0x09, 0x22, 0xC4, // 000922C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x24, 0xC3, // 000824C3 + 0x00, 0x09, 0x29, 0xC4, // 000929C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x0C, 0x40, // 00080C40 + 0x00, 0x06, 0x24, 0x2E, // 0006242E + 0x00, 0x09, 0x22, 0xC4, // 000922C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x24, 0xC3, // 000824C3 + 0x00, 0x09, 0x29, 0xC4, // 000929C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x0C, 0x40, // 00080C40 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2C, 0x20, // 00072C20 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x89, 0xC5, // 000889C5 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x6D, 0x70, // 000B6D70 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x04, 0xB8, 0x0D, // 0004B80D + 0x00, 0x06, 0xA8, 0x79, // 0006A879 + 0x00, 0x09, 0xBF, 0x7C, // 0009BF7C + 0x00, 0x00, 0xC1, 0x01, // 0000C101 + 0x00, 0x07, 0x44, 0x04, // 00074404 + 0x00, 0x07, 0x07, 0xC5, // 000707C5 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x0F, // 0006800F + 0x00, 0x06, 0x18, 0x76, // 00061876 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x9B, 0x40, // 00089B40 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x08, 0x29, 0x40, // 00082940 + 0x00, 0x08, 0x08, 0x40, // 00080840 + 0x00, 0x0C, 0x31, 0x08, // 000C3108 + 0x00, 0x0E, 0x31, 0x09, // 000E3109 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x10, 0x73, // 00061073 + 0x00, 0x0C, 0x01, 0x08, // 000C0108 + 0x00, 0x0E, 0x01, 0x09, // 000E0109 + 0x00, 0x0A, 0xF6, 0x7C, // 000AF67C + 0x00, 0x09, 0xA7, 0x7F, // 0009A77F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x36, 0x42, // 00083642 + 0x00, 0x0A, 0xC0, 0x7C, // 000AC07C + 0x00, 0x09, 0xBF, 0x7F, // 0009BF7F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x00, 0x42, // 00080042 + 0x00, 0x06, 0x20, 0x79, // 00062079 + 0x00, 0x08, 0x12, 0x42, // 00081242 + 0x00, 0x08, 0xA4, 0x41, // 0008A441 + 0x00, 0x07, 0xF4, 0x0C, // 0007F40C + 0x00, 0x07, 0xC4, 0x0C, // 0007C40C + 0x00, 0x02, 0x9F, 0x50, // 00029F50 + 0x00, 0x06, 0x90, 0x73, // 00069073 + 0x00, 0x06, 0xA0, 0x79, // 0006A079 + 0x00, 0x08, 0x9B, 0x41, // 00089B41 + 0x00, 0x02, 0x87, 0x20, // 00028720 + 0x00, 0x08, 0x0D, 0x40, // 00080D40 + 0x00, 0x08, 0x05, 0x40, // 00080540 + 0x00, 0x02, 0x13, 0xCB, // 000213CB + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x02, 0x13, 0xBE, // 000213BE + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x00, 0x74, // 00060074 + 0x00, 0x06, 0x0C, 0x1C, // 00060C1C + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x14, 0x80, // 00071480 + 0x00, 0x08, 0x80, 0x40, // 00088040 + 0x00, 0x02, 0x9E, 0x48, // 00029E48 + 0x00, 0x08, 0x91, 0xC2, // 000891C2 + 0x00, 0x02, 0x89, 0x38, // 00028938 + 0x00, 0x02, 0x15, 0xDB, // 000215DB + 0x00, 0x07, 0x44, 0x04, // 00074404 + 0x00, 0x07, 0x07, 0xF8, // 000707F8 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x0E, // 0006800E + 0x00, 0x02, 0x16, 0x52, // 00021652 + 0x00, 0x07, 0x4C, 0x04, // 00074C04 + 0x00, 0x07, 0x0F, 0xFF, // 00070FFF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x0F, // 0006880F + 0x00, 0x06, 0x00, 0x69, // 00060069 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x65, // 00070E65 + 0x00, 0x08, 0x00, 0x41, // 00080041 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x20, // 00071420 + 0x00, 0x06, 0x18, 0x76, // 00061876 + 0x00, 0x0A, 0x12, 0xC3, // 000A12C3 + 0x00, 0x06, 0x88, 0x22, // 00068822 + 0x00, 0x08, 0x92, 0x41, // 00089241 + 0x00, 0x0A, 0xC0, 0xC2, // 000AC0C2 + 0x00, 0x04, 0x0F, 0x00, // 00040F00 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0x09, 0x41, // 00080941 + 0x00, 0x06, 0x00, 0x6A, // 0006006A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x69, // 00068069 + 0x00, 0x07, 0x88, 0x07, // 00078807 + 0x00, 0x06, 0x80, 0x6F, // 0006806F + 0x00, 0x00, 0xC1, 0x03, // 0000C103 + 0x00, 0x07, 0x44, 0x05, // 00074405 + 0x00, 0x07, 0x04, 0x1B, // 0007041B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x0F, // 0006800F + 0x00, 0x06, 0x04, 0x26, // 00060426 + 0x00, 0x06, 0x28, 0x7A, // 0006287A + 0x00, 0x06, 0x38, 0x7A, // 0006387A + 0x00, 0x06, 0x0C, 0x1C, // 00060C1C + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x06, 0x18, 0x70, // 00061870 + 0x00, 0x08, 0x80, 0xC1, // 000880C1 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x07, 0x74, 0x00, // 00077400 + 0x00, 0x07, 0x34, 0x40, // 00073440 + 0x00, 0x06, 0x08, 0x74, // 00060874 + 0x00, 0x08, 0xA5, 0x41, // 0008A541 + 0x00, 0x02, 0x9E, 0x30, // 00029E30 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x08, 0xA0, 0xC6, // 0008A0C6 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x02, 0x81, 0x80, // 00028180 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x70, // 00029F70 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x21, // 00072421 + 0x00, 0x08, 0x93, 0xC0, // 000893C0 + 0x00, 0x06, 0x80, 0x70, // 00068070 + 0x00, 0x06, 0xA8, 0x7A, // 0006A87A + 0x00, 0x08, 0x94, 0xC2, // 000894C2 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x16, 0x11, // 00021611 + 0x00, 0x07, 0x44, 0x05, // 00074405 + 0x00, 0x07, 0x04, 0x40, // 00070440 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x0F, // 0006800F + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x01, // 00070C01 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x81, 0x10, // 00028110 + 0x00, 0x02, 0x14, 0xAC, // 000214AC + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x80, 0x07, // 00078007 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0A, 0xC7, 0x81, // 000AC781 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x14, 0xC1, // 000214C1 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x69, // 00070669 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x01, // 00070C01 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x6C, // 0007066C + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x06, 0x10, 0x7A, // 0006107A + 0x00, 0x06, 0x18, 0x77, // 00061877 + 0x00, 0x04, 0x25, 0x08, // 00042508 + 0x00, 0x04, 0x2D, 0x08, // 00042D08 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0x3D, 0x08, // 00043D08 + 0x00, 0x0A, 0xCF, 0x81, // 000ACF81 + 0x00, 0x02, 0x9F, 0x70, // 00029F70 + 0x00, 0x06, 0x0C, 0x6A, // 00060C6A + 0x00, 0x08, 0x9B, 0x40, // 00089B40 + 0x00, 0x02, 0x9E, 0x50, // 00029E50 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9F, 0x30, // 00029F30 + 0x00, 0x0B, 0x49, 0x41, // 000B4941 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x02, 0x81, 0x08, // 00028108 + 0x00, 0x06, 0x0C, 0x65, // 00060C65 + 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F + 0x00, 0x02, 0x81, 0x70, // 00028170 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x06, 0x0C, 0x6A, // 00060C6A + 0x00, 0x08, 0x9B, 0x40, // 00089B40 + 0x00, 0x02, 0x9F, 0x50, // 00029F50 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9F, 0x30, // 00029F30 + 0x00, 0x0B, 0x49, 0x41, // 000B4941 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x04, 0x2F, 0x08, // 00042F08 + 0x00, 0x04, 0x37, 0x08, // 00043708 + 0x00, 0x04, 0x3F, 0x08, // 00043F08 + 0x00, 0x02, 0x81, 0x08, // 00028108 + 0x00, 0x06, 0x0C, 0x65, // 00060C65 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x06, 0x04, 0x6A, // 0006046A + 0x00, 0x06, 0x14, 0x65, // 00061465 + 0x00, 0x09, 0x00, 0xC2, // 000900C2 + 0x00, 0x08, 0x11, 0x41, // 00081141 + 0x00, 0x02, 0x9F, 0x18, // 00029F18 + 0x00, 0x08, 0x10, 0x41, // 00081041 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x08, 0x40, // 00080840 + 0x00, 0x07, 0xA0, 0x0D, // 0007A00D + 0x00, 0x07, 0xA8, 0x0D, // 0007A80D + 0x00, 0x07, 0xB0, 0x0D, // 0007B00D + 0x00, 0x06, 0x8C, 0x6A, // 00068C6A + 0x00, 0x07, 0xB8, 0x0D, // 0007B80D + 0x00, 0x06, 0x98, 0x77, // 00069877 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x69, // 00070669 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x02, // 00070C02 + 0x00, 0x06, 0x10, 0x7A, // 0006107A + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0A, 0xC3, 0x81, // 000AC381 + 0x00, 0x02, 0x9F, 0x58, // 00029F58 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9E, 0x40, // 00029E40 + 0x00, 0x0B, 0x52, 0x7E, // 000B527E + 0x00, 0x02, 0x16, 0x2E, // 0002162E + 0x00, 0x07, 0x44, 0x05, // 00074405 + 0x00, 0x07, 0x04, 0xAC, // 000704AC + 0x00, 0x06, 0x90, 0x7A, // 0006907A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x0F, // 0006800F + 0x00, 0x02, 0x81, 0x18, // 00028118 + 0x00, 0x08, 0x9A, 0x42, // 00089A42 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0B, 0x52, 0x7F, // 000B527F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x7A, // 0006907A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x00, 0x6D, // 0006006D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xC0, 0x6D, // 0006C06D + 0x00, 0x02, 0x3F, 0xCC, // 00023FCC + 0x00, 0x07, 0x6C, 0x05, // 00076C05 + 0x00, 0x07, 0x2C, 0xBA, // 00072CBA + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x13, 0x3B, // 0002133B + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0xC1, 0x80, // 0000C180 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x10, 0x68, // 00061068 + 0x00, 0x04, 0x04, 0x08, // 00040408 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x02, 0x14, 0xDD, // 000214DD + 0x00, 0x06, 0x28, 0x6C, // 0006286C + 0x00, 0x04, 0x0C, 0x08, // 00040C08 + 0x00, 0x07, 0x64, 0x3F, // 0007643F + 0x00, 0x07, 0x27, 0xFF, // 000727FF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xA4, 0x44, // 0009A444 + 0x00, 0x04, 0x14, 0x00, // 00041400 + 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 + 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 + 0x00, 0x0A, 0xD2, 0xC4, // 000AD2C4 + 0x00, 0x09, 0x80, 0x48, // 00098048 + 0x00, 0x09, 0xB1, 0x78, // 0009B178 + 0x00, 0x08, 0x00, 0xC6, // 000800C6 + 0x00, 0x09, 0x89, 0x48, // 00098948 + 0x00, 0x09, 0xB2, 0x78, // 0009B278 + 0x00, 0x08, 0x09, 0xC6, // 000809C6 + 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 + 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 + 0x00, 0x08, 0xAD, 0x40, // 0008AD40 + 0x00, 0x02, 0x9F, 0x30, // 00029F30 + 0x00, 0x09, 0x90, 0x48, // 00099048 + 0x00, 0x09, 0xB0, 0x78, // 0009B078 + 0x00, 0x08, 0x02, 0xC6, // 000802C6 + 0x00, 0x09, 0x91, 0x48, // 00099148 + 0x00, 0x09, 0xB1, 0x78, // 0009B178 + 0x00, 0x08, 0x0A, 0xC6, // 00080AC6 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 + 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x18, 0x68, // 00061868 + 0x00, 0x06, 0x00, 0x1C, // 0006001C + 0x00, 0x09, 0x9B, 0x7D, // 00099B7D + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x06, 0x08, 0x20, // 00060820 + 0x00, 0x06, 0x10, 0x6E, // 0006106E + 0x00, 0x08, 0x81, 0xC0, // 000881C0 + 0x00, 0x09, 0x03, 0xC0, // 000903C0 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x01, 0x0A, 0x20, // 00010A20 + 0x00, 0x0B, 0x49, 0x7F, // 000B497F + 0x00, 0x04, 0x14, 0x00, // 00041400 + 0x00, 0x0B, 0x76, 0x78, // 000B7678 + 0x00, 0x09, 0x92, 0x48, // 00099248 + 0x00, 0x09, 0x89, 0x48, // 00098948 + 0x00, 0x09, 0x9A, 0x68, // 00099A68 + 0x00, 0x08, 0x09, 0xC3, // 000809C3 + 0x00, 0x08, 0x9F, 0xC1, // 00089FC1 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x06, 0xB0, 0x68, // 0006B068 + 0x00, 0x09, 0x92, 0x48, // 00099248 + 0x00, 0x09, 0x89, 0x48, // 00098948 + 0x00, 0x09, 0x9A, 0x68, // 00099A68 + 0x00, 0x08, 0x09, 0xC3, // 000809C3 + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x04, 0x14, 0x08, // 00041408 + 0x00, 0x08, 0x9F, 0xC1, // 00089FC1 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x06, 0xB0, 0x68, // 0006B068 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x30, 0x71, // 00063071 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x08, 0xB6, 0x40, // 0008B640 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x02, 0x15, 0x31, // 00021531 + 0x00, 0x06, 0x18, 0x7A, // 0006187A + 0x00, 0x06, 0x30, 0x72, // 00063072 + 0x00, 0x07, 0x06, 0x00, // 00070600 + 0x00, 0x06, 0x08, 0x28, // 00060828 + 0x00, 0x08, 0x38, 0x41, // 00083841 + 0x00, 0x08, 0x90, 0xC1, // 000890C1 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x07, 0x54, 0x03, // 00075403 + 0x00, 0x07, 0x17, 0xF0, // 000717F0 + 0x00, 0x06, 0xB8, 0x22, // 0006B822 + 0x00, 0x01, 0x04, 0x90, // 00010490 + 0x00, 0x09, 0x92, 0x48, // 00099248 + 0x00, 0x0A, 0xE7, 0x8A, // 000AE78A + 0x00, 0x0A, 0xEF, 0x8A, // 000AEF8A + 0x00, 0x08, 0x36, 0x41, // 00083641 + 0x00, 0x09, 0xAD, 0x78, // 0009AD78 + 0x00, 0x08, 0x24, 0xC5, // 000824C5 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xB0, 0x72, // 0006B072 + 0x00, 0x07, 0xE0, 0x0E, // 0007E00E + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x08, 0x9B, 0x40, // 00089B40 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x06, 0xB0, 0x71, // 0006B071 + 0x00, 0x06, 0x08, 0x20, // 00060820 + 0x00, 0x06, 0x00, 0x1C, // 0006001C + 0x00, 0x06, 0x10, 0x6E, // 0006106E + 0x00, 0x08, 0x81, 0xC0, // 000881C0 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1D, 0xE8, // 00071DE8 + 0x00, 0x0B, 0x76, 0x7F, // 000B767F + 0x00, 0x08, 0x93, 0xC0, // 000893C0 + 0x00, 0x02, 0x88, 0x08, // 00028808 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x05, 0x38, // 00070538 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xB0, 0x71, // 0006B071 + 0x00, 0x06, 0xB8, 0x28, // 0006B828 + 0x00, 0x06, 0x80, 0x4B, // 0006804B + 0x00, 0x06, 0x00, 0x1C, // 0006001C + 0x00, 0x06, 0x08, 0x20, // 00060820 + 0x00, 0x06, 0x10, 0x6E, // 0006106E + 0x00, 0x08, 0x81, 0xC0, // 000881C0 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x06, 0x18, 0x68, // 00061868 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x0A, 0x10, 0x44, // 000A1044 + 0x00, 0x0A, 0x20, 0x42, // 000A2042 + 0x00, 0x08, 0x12, 0xC4, // 000812C4 + 0x00, 0x09, 0x03, 0xC2, // 000903C2 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0x00, 0x7C, // 000A007C + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x20, // 00070420 + 0x00, 0x07, 0x54, 0x05, // 00075405 + 0x00, 0x07, 0x15, 0x7C, // 0007157C + 0x00, 0x0B, 0x49, 0x41, // 000B4941 + 0x00, 0x0B, 0x64, 0x7F, // 000B647F + 0x00, 0x0B, 0x5B, 0x78, // 000B5B78 + 0x00, 0x09, 0xA4, 0x7C, // 0009A47C + 0x00, 0x06, 0x90, 0x0A, // 0006900A + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x09, 0x94, 0x83, // 00099483 + 0x00, 0x08, 0x36, 0x41, // 00083641 + 0x00, 0x09, 0x89, 0x41, // 00098941 + 0x00, 0x09, 0x92, 0x41, // 00099241 + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x09, 0xC4, // 000809C4 + 0x00, 0x01, 0x04, 0x13, // 00010413 + 0x00, 0x08, 0xAF, 0xC1, // 0008AFC1 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x00, 0xC1, 0x82, // 0000C182 + 0x00, 0x08, 0x36, 0x41, // 00083641 + 0x00, 0x09, 0x89, 0x41, // 00098941 + 0x00, 0x09, 0x92, 0x41, // 00099241 + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x09, 0xC4, // 000809C4 + 0x00, 0x08, 0xAF, 0xC1, // 0008AFC1 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x00, 0xC1, 0x82, // 0000C182 + 0x00, 0x04, 0x2C, 0x08, // 00042C08 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x15, 0x62, // 00021562 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x02, 0x81, 0x08, // 00028108 + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x08, 0xAE, 0x54, // 0008AE54 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xB0, 0x68, // 0006B068 + 0x00, 0x04, 0x34, 0x08, // 00043408 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x10, 0x68, // 00061068 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x82, 0x47, // 00088247 + 0x00, 0x02, 0x88, 0x08, // 00028808 + 0x00, 0x02, 0x15, 0x96, // 00021596 + 0x00, 0x0B, 0x64, 0x41, // 000B6441 + 0x00, 0x08, 0x9A, 0x54, // 00089A54 + 0x00, 0x09, 0xA4, 0x78, // 0009A478 + 0x00, 0x0A, 0xEC, 0x8C, // 000AEC8C + 0x00, 0x0A, 0xE4, 0x7F, // 000AE47F + 0x00, 0x0A, 0xF4, 0x84, // 000AF484 + 0x00, 0x0A, 0xF4, 0x8C, // 000AF48C + 0x00, 0x0A, 0xCC, 0x84, // 000ACC84 + 0x00, 0x07, 0x64, 0x3F, // 0007643F + 0x00, 0x07, 0x27, 0xFF, // 000727FF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xA4, 0x44, // 0009A444 + 0x00, 0x09, 0x85, 0xC2, // 000985C2 + 0x00, 0x09, 0x86, 0xC3, // 000986C3 + 0x00, 0x08, 0x00, 0xC0, // 000800C0 + 0x00, 0x08, 0x12, 0x50, // 00081250 + 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 + 0x00, 0x08, 0x9A, 0x54, // 00089A54 + 0x00, 0x02, 0x87, 0x18, // 00028718 + 0x00, 0x08, 0x92, 0x54, // 00089254 + 0x00, 0x08, 0x2E, 0x40, // 00082E40 + 0x00, 0x08, 0x31, 0x40, // 00083140 + 0x00, 0x08, 0x9A, 0x54, // 00089A54 + 0x00, 0x09, 0x8D, 0xC2, // 00098DC2 + 0x00, 0x09, 0x8E, 0xC3, // 00098EC3 + 0x00, 0x08, 0x09, 0xC1, // 000809C1 + 0x00, 0x08, 0x12, 0x50, // 00081250 + 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 + 0x00, 0x08, 0x9A, 0x54, // 00089A54 + 0x00, 0x02, 0x87, 0x08, // 00028708 + 0x00, 0x08, 0x92, 0x54, // 00089254 + 0x00, 0x06, 0x28, 0x6C, // 0006286C + 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 + 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 + 0x00, 0x06, 0x90, 0x68, // 00069068 + 0x00, 0x08, 0xAD, 0x40, // 0008AD40 + 0x00, 0x02, 0x9F, 0x30, // 00029F30 + 0x00, 0x09, 0x90, 0x48, // 00099048 + 0x00, 0x09, 0xB0, 0x78, // 0009B078 + 0x00, 0x08, 0x02, 0xC6, // 000802C6 + 0x00, 0x09, 0x91, 0x48, // 00099148 + 0x00, 0x09, 0xB1, 0x78, // 0009B178 + 0x00, 0x08, 0x0A, 0xC6, // 00080AC6 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 + 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 + 0x00, 0x02, 0x81, 0x18, // 00028118 + 0x00, 0x07, 0x7C, 0x01, // 00077C01 + 0x00, 0x07, 0x3C, 0xC0, // 00073CC0 + 0x00, 0x07, 0x74, 0x01, // 00077401 + 0x00, 0x07, 0x35, 0x60, // 00073560 + 0x00, 0x06, 0x20, 0x2E, // 0006202E + 0x00, 0x06, 0x18, 0x1C, // 0006181C + 0x00, 0x06, 0x10, 0x6E, // 0006106E + 0x00, 0x06, 0x00, 0x75, // 00060075 + 0x00, 0x06, 0x08, 0x7A, // 0006087A + 0x00, 0x06, 0xA0, 0x20, // 0006A020 + 0x00, 0x08, 0x9C, 0xC3, // 00089CC3 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x1B, 0xC2, // 00081BC2 + 0x00, 0x09, 0x16, 0xC3, // 000916C3 + 0x00, 0x02, 0x89, 0x10, // 00028910 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x30, // 00070430 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9E, 0x20, // 00029E20 + 0x00, 0x08, 0x97, 0xC3, // 000897C3 + 0x00, 0x02, 0x89, 0x10, // 00028910 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x70, // 00070470 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x98, 0x7F, // 0006987F + 0x00, 0x06, 0x84, 0x06, // 00068406 + 0x00, 0x06, 0x80, 0x75, // 00068075 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x15, 0xFC, // 000215FC + 0x00, 0x07, 0x4C, 0x05, // 00074C05 + 0x00, 0x07, 0x0D, 0xE2, // 00070DE2 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x0F, // 0006880F + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x32, // 00070E32 + 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x8C, 0x22, // 00068C22 + 0x00, 0x06, 0x5C, 0x14, // 00065C14 + 0x00, 0x06, 0xA8, 0x74, // 0006A874 + 0x00, 0x06, 0x5C, 0x24, // 00065C24 + 0x00, 0x06, 0x5C, 0x26, // 00065C26 + 0x00, 0x06, 0x5C, 0x2E, // 00065C2E + 0x00, 0x06, 0x5C, 0x25, // 00065C25 + 0x00, 0x06, 0x5C, 0x27, // 00065C27 + 0x00, 0x06, 0x5C, 0x2F, // 00065C2F + 0x00, 0x06, 0x5C, 0x44, // 00065C44 + 0x00, 0x04, 0x80, 0x03, // 00048003 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0xC1, 0x06, // 0000C106 + 0x00, 0x06, 0x84, 0x74, // 00068474 + 0x00, 0x06, 0x84, 0x43, // 00068443 + 0x00, 0x06, 0x5C, 0x3C, // 00065C3C + 0x00, 0x06, 0x5C, 0x3B, // 00065C3B + 0x00, 0x06, 0x5C, 0x54, // 00065C54 + 0x00, 0x06, 0x5C, 0x53, // 00065C53 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x25, // 00070E25 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA8, 0x74, // 0006A874 + 0x00, 0x06, 0x8C, 0x22, // 00068C22 + 0x00, 0x06, 0x5C, 0x14, // 00065C14 + 0x00, 0x06, 0x5C, 0x24, // 00065C24 + 0x00, 0x06, 0x5C, 0x26, // 00065C26 + 0x00, 0x06, 0x5C, 0x2E, // 00065C2E + 0x00, 0x06, 0x5C, 0x25, // 00065C25 + 0x00, 0x06, 0x5C, 0x27, // 00065C27 + 0x00, 0x06, 0x5C, 0x2F, // 00065C2F + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x06, 0x5C, 0x44, // 00065C44 + 0x00, 0x06, 0x5C, 0x43, // 00065C43 + 0x00, 0x06, 0x5C, 0x3C, // 00065C3C + 0x00, 0x06, 0x5C, 0x3B, // 00065C3B + 0x00, 0x06, 0x5C, 0x54, // 00065C54 + 0x00, 0x06, 0x5C, 0x53, // 00065C53 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x02, // 00071C02 + 0x00, 0x02, 0x81, 0x10, // 00028110 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x01, // 00071C01 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x65, // 00071665 + 0x00, 0x06, 0x00, 0x61, // 00060061 + 0x00, 0x06, 0x20, 0x7A, // 0006207A + 0x00, 0x07, 0x4C, 0x05, // 00074C05 + 0x00, 0x06, 0x9C, 0x7F, // 00069C7F + 0x00, 0x06, 0x90, 0x22, // 00069022 + 0x00, 0x04, 0x1F, 0x00, // 00041F00 + 0x00, 0x08, 0xA4, 0x40, // 0008A440 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x07, 0x0C, 0x14, // 00070C14 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x98, 0x1F, // 0007981F + 0x00, 0x04, 0x17, 0x00, // 00041700 + 0x00, 0x08, 0xA4, 0x40, // 0008A440 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x06, 0x00, 0x6A, // 0006006A + 0x00, 0x08, 0x12, 0x41, // 00081241 + 0x00, 0x06, 0x88, 0x0F, // 0006880F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x61, // 00068061 + 0x00, 0x07, 0x90, 0x07, // 00079007 + 0x00, 0x06, 0x3C, 0x26, // 00063C26 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x08, 0x3F, 0x40, // 00083F40 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x06, 0x1C, 0x1C, // 00061C1C + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xBC, 0x1C, // 0006BC1C + 0x00, 0x04, 0xB0, 0x0D, // 0004B00D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xB6, 0x7C, // 0009B67C + 0x00, 0x01, 0x05, 0x10, // 00010510 + 0x00, 0x09, 0xA6, 0x7F, // 0009A67F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x00, 0x42, // 00080042 + 0x00, 0x0B, 0x49, 0x40, // 000B4940 + 0x00, 0x09, 0xB6, 0x7F, // 0009B67F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x09, 0x42, // 00080942 + 0x00, 0x07, 0x84, 0x0C, // 0007840C + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x09, 0xA6, 0x7F, // 0009A67F + 0x00, 0x07, 0x8C, 0x0C, // 00078C0C + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x30, // 00072430 + 0x00, 0x08, 0x2D, 0x41, // 00082D41 + 0x00, 0x08, 0xA4, 0xC5, // 0008A4C5 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x16, 0x35, // 00021635 + 0x00, 0x02, 0x81, 0x08, // 00028108 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x9C, 0x1C, // 00069C1C + 0x00, 0x06, 0x04, 0x6A, // 0006046A + 0x00, 0x06, 0x08, 0x77, // 00060877 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x17, 0x12, // 00071712 + 0x00, 0x08, 0x80, 0x40, // 00088040 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x16, 0x71, // 00021671 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x02, 0x88, 0x08, // 00028808 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x06, 0x24, 0x66, // 00062466 + 0x00, 0x06, 0x2C, 0x67, // 00062C67 + 0x00, 0x06, 0x34, 0x68, // 00063468 + 0x00, 0x06, 0x3C, 0x69, // 00063C69 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0B, 0x64, 0xC4, // 000B64C4 + 0x00, 0x0B, 0x6D, 0xC5, // 000B6DC5 + 0x00, 0x0B, 0x76, 0xC6, // 000B76C6 + 0x00, 0x0B, 0x7F, 0xC7, // 000B7FC7 + 0x00, 0x08, 0x25, 0x8C, // 0008258C + 0x00, 0x08, 0x2D, 0x8D, // 00082D8D + 0x00, 0x08, 0x35, 0x8E, // 0008358E + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x08, 0x3D, 0x8F, // 00083D8F + 0x00, 0x06, 0x84, 0x6A, // 0006846A + 0x00, 0x07, 0xA0, 0x0D, // 0007A00D + 0x00, 0x07, 0xA8, 0x0D, // 0007A80D + 0x00, 0x07, 0xB0, 0x0D, // 0007B00D + 0x00, 0x07, 0xB8, 0x0D, // 0007B80D + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x06, 0x90, 0x22, // 00069022 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x04, 0x2F, 0x08, // 00042F08 + 0x00, 0x04, 0x37, 0x08, // 00043708 + 0x00, 0x04, 0x3F, 0x08, // 00043F08 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x06, 0x84, 0x6A, // 0006846A + 0x00, 0x07, 0xA0, 0x0D, // 0007A00D + 0x00, 0x07, 0xA8, 0x0D, // 0007A80D + 0x00, 0x07, 0xB0, 0x0D, // 0007B00D + 0x00, 0x07, 0xB8, 0x0D, // 0007B80D + 0x00, 0x00, 0x00, 0x00, // 00000000 }; // addres 06800 count 1077 (4314 bytes) static const unsigned char maspcm_array10[] = { - 0xf0, 0x00, 0x04, 0x35, 0x08, 0x00, - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0F, 0x00, // 00070F00 - 0x00, 0x0B, 0x52, 0x7F, // 000B527F - 0x00, 0x0B, 0x5B, 0x7E, // 000B5B7E - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x0A, 0x09, 0x78, // 000A0978 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x08, 0xA1, 0x41, // 0008A141 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0B, 0x5B, 0x7E, // 000B5B7E - 0x00, 0x07, 0x64, 0x01, // 00076401 - 0x00, 0x07, 0x26, 0x69, // 00072669 - 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F - 0x00, 0x0B, 0x75, 0x7E, // 000B757E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA0, 0x22, // 0006A022 - 0x00, 0x0A, 0xF7, 0x86, // 000AF786 - 0x00, 0x0A, 0xEF, 0x85, // 000AEF85 - 0x00, 0x0A, 0x36, 0x7F, // 000A367F - 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F - 0x00, 0x0B, 0x64, 0x70, // 000B6470 - 0x00, 0x06, 0x98, 0x79, // 00069879 - 0x00, 0x06, 0x90, 0x78, // 00069078 - 0x00, 0x06, 0xA8, 0x77, // 0006A877 - 0x00, 0x06, 0xB0, 0x7A, // 0006B07A - 0x00, 0x06, 0xBC, 0x64, // 0006BC64 - 0x00, 0x06, 0xB8, 0x71, // 0006B871 - 0x00, 0x06, 0xB8, 0x70, // 0006B870 - 0x00, 0x06, 0xB8, 0x69, // 0006B869 - 0x00, 0x06, 0xB8, 0x7B, // 0006B87B - 0x00, 0x06, 0xB8, 0x7C, // 0006B87C - 0x00, 0x06, 0x9C, 0x6B, // 00069C6B - 0x00, 0x06, 0xBC, 0x6E, // 0006BC6E - 0x00, 0x06, 0xBC, 0x72, // 0006BC72 - 0x00, 0x06, 0xB8, 0x74, // 0006B874 - 0x00, 0x06, 0xB8, 0x7D, // 0006B87D - 0x00, 0x06, 0xBC, 0x73, // 0006BC73 - 0x00, 0x06, 0x9C, 0x7D, // 00069C7D - 0x00, 0x06, 0xBC, 0x7C, // 0006BC7C - 0x00, 0x06, 0xBC, 0x7B, // 0006BC7B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x3C, 0x65, // 00063C65 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xBF, 0x41, // 0009BF41 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xBC, 0x7A, // 0006BC7A - 0x00, 0x07, 0x7C, 0x01, // 00077C01 - 0x00, 0x07, 0x3D, 0xFF, // 00073DFF - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1C, 0x90, // 00071C90 - 0x00, 0x07, 0x74, 0x01, // 00077401 - 0x00, 0x07, 0x34, 0xA0, // 000734A0 - 0x00, 0x06, 0x08, 0x76, // 00060876 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x21, 0x41, // 00082141 - 0x00, 0x06, 0xB8, 0x16, // 0006B816 - 0x00, 0x06, 0x90, 0x24, // 00069024 - 0x00, 0x06, 0x90, 0x2C, // 0006902C - 0x00, 0x06, 0x90, 0x1C, // 0006901C - 0x00, 0x06, 0x90, 0x20, // 00069020 - 0x00, 0x06, 0x98, 0x25, // 00069825 - 0x00, 0x06, 0x98, 0x2D, // 0006982D - 0x00, 0x06, 0xB0, 0x1D, // 0006B01D - 0x00, 0x06, 0xA0, 0x10, // 0006A010 - 0x00, 0x06, 0x98, 0x21, // 00069821 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3C, 0x24, // 00073C24 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x07, 0x6C, 0x01, // 00076C01 - 0x00, 0x07, 0x2C, 0x98, // 00072C98 - 0x00, 0x06, 0xBC, 0x16, // 0006BC16 - 0x00, 0x06, 0x94, 0x2A, // 0006942A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xAC, 0x2B, // 0006AC2B - 0x00, 0x07, 0x7C, 0x01, // 00077C01 - 0x00, 0x07, 0x3D, 0xFF, // 00073DFF - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x00, // 00071E00 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2C, 0x90, // 00072C90 - 0x00, 0x06, 0xBC, 0x14, // 0006BC14 - 0x00, 0x06, 0x94, 0x1C, // 0006941C - 0x00, 0x06, 0x9C, 0x26, // 00069C26 - 0x00, 0x06, 0x9C, 0x2E, // 00069C2E - 0x00, 0x06, 0xAC, 0x1D, // 0006AC1D - 0x00, 0x06, 0xAC, 0x27, // 0006AC27 - 0x00, 0x06, 0xAC, 0x2F, // 0006AC2F - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x04, // 00070C04 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x10, // 00071410 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x4B, // 0006884B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x94, 0x06, // 00069406 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x62, // 00071E62 - 0x00, 0x06, 0x10, 0x78, // 00061078 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1F, 0x18, // 00071F18 - 0x00, 0x06, 0x98, 0x22, // 00069822 - 0x00, 0x08, 0x92, 0x41, // 00089241 - 0x00, 0x02, 0x9E, 0xF0, // 00029EF0 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2C, 0x80, // 00072C80 - 0x00, 0x07, 0x74, 0x00, // 00077400 - 0x00, 0x07, 0x34, 0x04, // 00073404 - 0x00, 0x0A, 0xED, 0xC0, // 000AEDC0 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x1B, 0xC6, // 00081BC6 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2C, 0x40, // 00072C40 - 0x00, 0x07, 0x74, 0x02, // 00077402 - 0x00, 0x07, 0x34, 0x00, // 00073400 - 0x00, 0x0A, 0xED, 0xC0, // 000AEDC0 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x1B, 0xC6, // 00081BC6 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2C, 0x04, // 00072C04 - 0x00, 0x07, 0x74, 0x00, // 00077400 - 0x00, 0x07, 0x34, 0x20, // 00073420 - 0x00, 0x04, 0x17, 0x00, // 00041700 - 0x00, 0x0A, 0xED, 0xC0, // 000AEDC0 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x1B, 0xC6, // 00081BC6 - 0x00, 0x0A, 0xD2, 0x41, // 000AD241 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x27, 0x18, // 00072718 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x98, 0x3B, // 0006983B - 0x00, 0x06, 0x9C, 0x75, // 00069C75 - 0x00, 0x06, 0xA0, 0x53, // 0006A053 - 0x00, 0x06, 0x28, 0x77, // 00062877 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x40, // 00071640 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x90, // 00072490 - 0x00, 0x0B, 0x49, 0x7D, // 000B497D - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x6C, // 0007066C - 0x00, 0x06, 0x90, 0x1E, // 0006901E - 0x00, 0x06, 0xA0, 0x1F, // 0006A01F - 0x00, 0x06, 0x88, 0x14, // 00068814 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x04, 0x17, 0x08, // 00041708 - 0x00, 0x04, 0x1F, 0x08, // 00041F08 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x08, 0xAD, 0x40, // 0008AD40 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0B, 0x49, 0x40, // 000B4940 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x07, 0x88, 0x0D, // 0007880D - 0x00, 0x07, 0x90, 0x0D, // 0007900D - 0x00, 0x07, 0x98, 0x0D, // 0007980D - 0x00, 0x07, 0xA0, 0x0D, // 0007A00D - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x50, // 00071650 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x26, 0x90, // 00072690 - 0x00, 0x0B, 0x49, 0x7D, // 000B497D - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x70, // 00070670 - 0x00, 0x06, 0x94, 0x20, // 00069420 - 0x00, 0x06, 0xA4, 0x21, // 0006A421 - 0x00, 0x06, 0x8C, 0x15, // 00068C15 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0B, 0x52, 0x75, // 000B5275 - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x07, 0x8C, 0x0E, // 00078C0E - 0x00, 0x07, 0x8C, 0x0E, // 00078C0E - 0x00, 0x07, 0x8C, 0x0E, // 00078C0E - 0x00, 0x07, 0x8C, 0x0E, // 00078C0E - 0x00, 0x06, 0x94, 0x15, // 00069415 - 0x00, 0x02, 0x1C, 0x0E, // 00021C0E - 0x00, 0x07, 0x4C, 0x06, // 00074C06 - 0x00, 0x07, 0x0C, 0xD3, // 00070CD3 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x0F, // 0006880F - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x32, // 00070E32 - 0x00, 0x07, 0x64, 0x01, // 00076401 - 0x00, 0x07, 0x26, 0x70, // 00072670 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2E, 0x90, // 00072E90 - 0x00, 0x06, 0x8C, 0x22, // 00068C22 - 0x00, 0x04, 0x80, 0x4F, // 0004804F - 0x00, 0x06, 0x08, 0x78, // 00060878 - 0x00, 0x06, 0xA4, 0x24, // 0006A424 - 0x00, 0x06, 0xAC, 0x25, // 0006AC25 - 0x00, 0x06, 0x5C, 0x3C, // 00065C3C - 0x00, 0x06, 0x5C, 0x3B, // 00065C3B - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x19, 0x1D, // 0002191D - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x02, 0x3F, 0xCC, // 00023FCC - 0x00, 0x07, 0x6C, 0x06, // 00076C06 - 0x00, 0x07, 0x2C, 0xEB, // 00072CEB - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x0B, 0x52, 0x7F, // 000B527F - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0A, 0xC7, 0x82, // 000AC782 - 0x00, 0x02, 0x9E, 0x20, // 00029E20 - 0x00, 0x0A, 0xC7, 0x81, // 000AC781 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x1B, 0x7F, // 00021B7F - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x54, 0x04, // 00075404 - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x06, 0x30, 0x2C, // 0006302C - 0x00, 0x08, 0x92, 0x41, // 00089241 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x19, 0x0C, // 0002190C - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0A, 0xF6, 0x41, // 000AF641 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x18, 0xFA, // 000218FA - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x30, 0x2C, // 0006302C - 0x00, 0x08, 0x92, 0x41, // 00089241 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x19, 0x0C, // 0002190C - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0A, 0xF6, 0x41, // 000AF641 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x19, 0x03, // 00021903 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x38, 0x52, // 00063852 - 0x00, 0x06, 0x30, 0x2C, // 0006302C - 0x00, 0x09, 0xBF, 0x7A, // 0009BF7A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0xFF, 0x41, // 000AFF41 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0B, 0x36, 0x41, // 000B3641 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xB0, 0x2C, // 0006B02C - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x18, 0xE4, // 000218E4 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x40, 0x7D, // 000B407D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x84, 0x15, // 00068415 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0xB8, 0x16, // 0004B816 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x06, 0x27, // 000C0627 - 0x00, 0x04, 0x35, 0x18, // 00043518 - 0x00, 0x04, 0xB8, 0x1E, // 0004B81E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0E, 0x06, 0x27, // 000E0627 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0xB8, 0x16, // 0004B816 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x0E, 0x27, // 000C0E27 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0xB8, 0x0E, // 0004B80E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0E, 0x0E, 0x27, // 000E0E27 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0xB8, 0x16, // 0004B816 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x16, 0x27, // 000C1627 - 0x00, 0x04, 0x35, 0x18, // 00043518 - 0x00, 0x04, 0xB8, 0x1E, // 0004B81E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0E, 0x16, 0x27, // 000E1627 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0xB8, 0x16, // 0004B816 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x1E, 0x27, // 000C1E27 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0xB8, 0x0E, // 0004B80E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0E, 0x1E, 0x27, // 000E1E27 - 0x00, 0x07, 0x64, 0x01, // 00076401 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x27, 0x12, // 00072712 - 0x00, 0x07, 0x80, 0x0D, // 0007800D - 0x00, 0x07, 0x88, 0x0D, // 0007880D - 0x00, 0x07, 0x90, 0x0D, // 0007900D - 0x00, 0x07, 0x98, 0x0D, // 0007980D - 0x00, 0x06, 0xA0, 0x22, // 0006A022 - 0x00, 0x07, 0x80, 0x0F, // 0007800F - 0x00, 0x07, 0x88, 0x0F, // 0007880F - 0x00, 0x07, 0x90, 0x0F, // 0007900F - 0x00, 0x07, 0x98, 0x07, // 00079807 - 0x00, 0x06, 0x2C, 0x79, // 00062C79 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x09, 0x0D, // 000C090D - 0x00, 0x0C, 0x11, 0x0D, // 000C110D - 0x00, 0x0C, 0x19, 0x0D, // 000C190D - 0x00, 0x0C, 0x21, 0x0D, // 000C210D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x8C, 0x66, // 00068C66 - 0x00, 0x06, 0x94, 0x67, // 00069467 - 0x00, 0x06, 0x9C, 0x68, // 00069C68 - 0x00, 0x06, 0xA4, 0x69, // 0006A469 - 0x00, 0x06, 0x00, 0x7A, // 0006007A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0x40, // 00088040 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x19, 0xF8, // 000219F8 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x00, 0x24, // 00060024 - 0x00, 0x06, 0x08, 0x78, // 00060878 - 0x00, 0x06, 0x18, 0x76, // 00061876 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x08, 0x89, 0x41, // 00088941 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x06, 0x00, 0x2C, // 0006002C - 0x00, 0x06, 0x08, 0x1C, // 0006081C - 0x00, 0x08, 0x80, 0xC1, // 000880C1 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x08, 0x9B, 0x41, // 00089B41 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x09, 0x80, 0x7F, // 0009807F - 0x00, 0x06, 0x14, 0x7B, // 0006147B - 0x00, 0x06, 0x1C, 0x7A, // 00061C7A - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9F, 0x28, // 00029F28 - 0x00, 0x08, 0x98, 0xC3, // 000898C3 - 0x00, 0x02, 0x87, 0x10, // 00028710 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x02, 0x81, 0x08, // 00028108 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x94, 0x7B, // 0006947B - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x12, // 00071412 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x00, // 00071E00 - 0x00, 0x08, 0xA0, 0xC2, // 0008A0C2 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x19, 0xF8, // 000219F8 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x24, 0x2A, // 0006242A - 0x00, 0x08, 0xA3, 0xC4, // 0008A3C4 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x19, 0xF8, // 000219F8 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x01, // 00071E01 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x09, // 00070409 - 0x00, 0x06, 0x08, 0x69, // 00060869 - 0x00, 0x06, 0x9C, 0x22, // 00069C22 - 0x00, 0x06, 0x10, 0x6A, // 0006106A - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x19, 0xA4, // 000219A4 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0x92, 0x41, // 00089241 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x19, 0xA4, // 000219A4 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x07, 0x55, 0x5C, // 0007555C - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x07, 0x5D, 0x04, // 00075D04 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x07, 0x65, 0x58, // 00076558 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x6D, 0x14, // 00076D14 - 0x00, 0x07, 0x2C, 0x00, // 00072C00 - 0x00, 0x07, 0x94, 0x0F, // 0007940F - 0x00, 0x07, 0x9C, 0x0F, // 00079C0F - 0x00, 0x07, 0xA4, 0x0F, // 0007A40F - 0x00, 0x07, 0xAC, 0x0F, // 0007AC0F - 0x00, 0x06, 0x38, 0x3A, // 0006383A - 0x00, 0x0B, 0x76, 0x7D, // 000B767D - 0x00, 0x06, 0x10, 0x6C, // 0006106C - 0x00, 0x0A, 0xFF, 0x5F, // 000AFF5F - 0x00, 0x06, 0x84, 0x05, // 00068405 - 0x00, 0x02, 0x9F, 0x18, // 00029F18 - 0x00, 0x09, 0x3F, 0x54, // 00093F54 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xB4, 0x15, // 0006B415 - 0x00, 0x07, 0x77, 0xFC, // 000777FC - 0x00, 0x07, 0x34, 0x00, // 00073400 - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x01, 0x4E, 0x80, // 00014E80 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0x80, 0x87, // 00098087 - 0x00, 0x09, 0x88, 0x87, // 00098887 - 0x00, 0x0C, 0x20, 0x12, // 000C2012 - 0x00, 0x0E, 0x21, 0x12, // 000E2112 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x28, 0x12, // 000C2812 - 0x00, 0x0E, 0x29, 0x12, // 000E2912 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0x84, 0x48, // 00098448 - 0x00, 0x09, 0x8D, 0x48, // 00098D48 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x09, 0xA4, 0x48, // 0009A448 - 0x00, 0x08, 0x04, 0x40, // 00080440 - 0x00, 0x09, 0xAD, 0x48, // 0009AD48 - 0x00, 0x08, 0x0D, 0x40, // 00080D40 - 0x00, 0x0A, 0xE4, 0xC6, // 000AE4C6 - 0x00, 0x0A, 0xC0, 0xC6, // 000AC0C6 - 0x00, 0x0A, 0xED, 0xC6, // 000AEDC6 - 0x00, 0x0A, 0xC9, 0xC6, // 000AC9C6 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0xE4, 0x0F, // 0007E40F - 0x00, 0x07, 0xC4, 0x0F, // 0007C40F - 0x00, 0x07, 0xEC, 0x0F, // 0007EC0F - 0x00, 0x07, 0xCC, 0x0F, // 0007CC0F - 0x00, 0x06, 0x00, 0x69, // 00060069 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x65, // 00070E65 - 0x00, 0x08, 0x00, 0x41, // 00080041 - 0x00, 0x06, 0x1C, 0x64, // 00061C64 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x39, // 00071439 - 0x00, 0x06, 0x88, 0x22, // 00068822 - 0x00, 0x04, 0x0F, 0x00, // 00040F00 - 0x00, 0x08, 0x90, 0xC2, // 000890C2 - 0x00, 0x02, 0x9E, 0x28, // 00029E28 - 0x00, 0x08, 0x9B, 0x40, // 00089B40 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x02, 0x1B, 0x7F, // 00021B7F - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x08, 0x09, 0x41, // 00080941 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x69, // 00068069 - 0x00, 0x07, 0x88, 0x07, // 00078807 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x0B, 0x76, 0x75, // 000B7675 - 0x00, 0x07, 0x0E, 0x01, // 00070E01 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x04, // 00070404 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x06, 0x80, 0x4B, // 0006804B - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x05, 0x3D, // 0007053D - 0x00, 0x06, 0xB4, 0x15, // 0006B415 - 0x00, 0x06, 0x8C, 0x2A, // 00068C2A - 0x00, 0x06, 0x94, 0x72, // 00069472 - 0x00, 0x06, 0x80, 0x4B, // 0006804B - 0x00, 0x06, 0x00, 0x24, // 00060024 - 0x00, 0x06, 0x08, 0x78, // 00060878 - 0x00, 0x06, 0x18, 0x76, // 00061876 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x08, 0x89, 0x41, // 00088941 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x06, 0x00, 0x2C, // 0006002C - 0x00, 0x06, 0x08, 0x20, // 00060820 - 0x00, 0x08, 0x80, 0xC1, // 000880C1 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x06, 0x0C, 0x26, // 00060C26 - 0x00, 0x06, 0x14, 0x1C, // 0006141C - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x00, // 00071E00 - 0x00, 0x08, 0x89, 0xC2, // 000889C2 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x09, 0xC3, // 000809C3 - 0x00, 0x06, 0x24, 0x24, // 00062424 - 0x00, 0x09, 0x22, 0xC4, // 000922C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x24, 0xC3, // 000824C3 - 0x00, 0x09, 0x29, 0xC4, // 000929C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x0C, 0x40, // 00080C40 - 0x00, 0x06, 0x24, 0x2E, // 0006242E - 0x00, 0x09, 0x22, 0xC4, // 000922C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x24, 0xC3, // 000824C3 - 0x00, 0x09, 0x29, 0xC4, // 000929C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x0C, 0x40, // 00080C40 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x20, // 00071420 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0xC2, // 000880C2 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x1A, 0x86, // 00021A86 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0x89, 0xC2, // 000889C2 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x1A, 0x86, // 00021A86 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x28, 0x3A, // 0006283A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0xED, 0x5F, // 000AED5F - 0x00, 0x02, 0x9F, 0x18, // 00029F18 - 0x00, 0x09, 0x2D, 0x54, // 00092D54 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x04, 0xB8, 0x0D, // 0004B80D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xBF, 0x7C, // 0009BF7C - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x01, 0x0D, 0x10, // 00010D10 - 0x00, 0x06, 0x20, 0x76, // 00062076 - 0x00, 0x09, 0x86, 0x8D, // 0009868D - 0x00, 0x09, 0x8E, 0x8D, // 00098E8D - 0x00, 0x08, 0xA4, 0x40, // 0008A440 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x08, 0x40, // 00080840 - 0x00, 0x0C, 0x31, 0x08, // 000C3108 - 0x00, 0x0E, 0x31, 0x09, // 000E3109 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x01, 0x08, // 000C0108 - 0x00, 0x0E, 0x01, 0x09, // 000E0109 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0xF6, 0x7C, // 000AF67C - 0x00, 0x09, 0x9F, 0x7F, // 00099F7F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x36, 0x42, // 00083642 - 0x00, 0x0A, 0xC0, 0x7C, // 000AC07C - 0x00, 0x09, 0xBF, 0x7F, // 0009BF7F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x00, 0x42, // 00080042 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0xF4, 0x0C, // 0007F40C - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0xC4, 0x0C, // 0007C40C - 0x00, 0x02, 0x16, 0x52, // 00021652 - 0x00, 0x07, 0x4C, 0x06, // 00074C06 - 0x00, 0x07, 0x0E, 0x56, // 00070E56 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x0F, // 0006880F - 0x00, 0x06, 0x00, 0x7B, // 0006007B - 0x00, 0x06, 0x10, 0x74, // 00061074 - 0x00, 0x08, 0x00, 0x41, // 00080041 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x30, // 00071C30 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9E, 0x18, // 00029E18 - 0x00, 0x08, 0x88, 0xC3, // 000888C3 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x02, 0x15, 0xDB, // 000215DB - 0x00, 0x07, 0x4C, 0x06, // 00074C06 - 0x00, 0x07, 0x0E, 0x66, // 00070E66 - 0x00, 0x06, 0x80, 0x7B, // 0006807B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x0E, // 0006880E - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x06, 0x08, 0x24, // 00060824 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x06, 0x08, 0x2C, // 0006082C - 0x00, 0x06, 0x34, 0x26, // 00063426 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x86, 0xC1, // 000886C1 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1F, 0x00, // 00071F00 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x08, 0xA8, 0xC3, // 0008A8C3 - 0x00, 0x02, 0x87, 0x08, // 00028708 - 0x00, 0x08, 0x80, 0xC2, // 000880C2 - 0x00, 0x06, 0x20, 0x74, // 00062074 - 0x00, 0x08, 0x28, 0xC3, // 000828C3 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x06, 0x18, 0x79, // 00061879 - 0x00, 0x06, 0x14, 0x6E, // 0006146E - 0x00, 0x08, 0xA4, 0x41, // 0008A441 - 0x00, 0x02, 0x9E, 0x20, // 00029E20 - 0x00, 0x08, 0xBB, 0x42, // 0008BB42 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F - 0x00, 0x08, 0x10, 0x40, // 00081040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x98, 0x79, // 00069879 - 0x00, 0x06, 0x94, 0x6E, // 0006946E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x06, 0x08, 0x24, // 00060824 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x06, 0x08, 0x2C, // 0006082C - 0x00, 0x06, 0x00, 0x1C, // 0006001C - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x06, 0x18, 0x71, // 00061871 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x24, 0x6B, // 0006246B - 0x00, 0x08, 0xA9, 0xC0, // 0008A9C0 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x2D, 0xC2, // 00082DC2 - 0x00, 0x08, 0xB4, 0x41, // 0008B441 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x1A, 0xA5, // 00021AA5 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0xB5, 0x42, // 0008B542 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x1A, 0xA5, // 00021AA5 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x34, 0x26, // 00063426 - 0x00, 0x0A, 0xD1, 0x41, // 000AD141 - 0x00, 0x0A, 0xF6, 0x7E, // 000AF67E - 0x00, 0x08, 0x12, 0xC6, // 000812C6 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x0A, 0xC2, 0x7E, // 000AC27E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA4, 0x6B, // 0006A46B - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x25, // 00072425 - 0x00, 0x08, 0x93, 0xC5, // 000893C5 - 0x00, 0x06, 0xA8, 0x71, // 0006A871 - 0x00, 0x08, 0x9C, 0xC2, // 00089CC2 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x1B, 0x86, // 00021B86 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x06, 0x18, 0x52, // 00061852 - 0x00, 0x07, 0x54, 0x08, // 00075408 - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x07, 0x7C, 0x06, // 00077C06 - 0x00, 0x07, 0x3E, 0xFD, // 00073EFD - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0A, 0xC3, 0xC2, // 000AC3C2 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x1B, 0xA7, // 00021BA7 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0xB8, 0x0F, // 0006B80F - 0x00, 0x06, 0x34, 0x26, // 00063426 - 0x00, 0x06, 0x3C, 0x1C, // 00063C1C - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x06, 0x18, 0x70, // 00061870 - 0x00, 0x08, 0x86, 0xC7, // 000886C7 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x25, // 00072425 - 0x00, 0x06, 0x28, 0x79, // 00062879 - 0x00, 0x08, 0x93, 0xC0, // 000893C0 - 0x00, 0x06, 0x80, 0x70, // 00068070 - 0x00, 0x08, 0x94, 0xC2, // 000894C2 - 0x00, 0x02, 0x88, 0x38, // 00028838 - 0x00, 0x08, 0xBD, 0x41, // 0008BD41 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x09, 0xAD, 0x41, // 0009AD41 - 0x00, 0x07, 0x7C, 0x06, // 00077C06 - 0x00, 0x07, 0x3E, 0xFD, // 00073EFD - 0x00, 0x02, 0x1B, 0xB0, // 00021BB0 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0xA8, 0x79, // 0006A879 - 0x00, 0x06, 0xB8, 0x0F, // 0006B80F - 0x00, 0x06, 0x14, 0x26, // 00061426 - 0x00, 0x06, 0x20, 0x7D, // 0006207D - 0x00, 0x06, 0x28, 0x7C, // 0006287C - 0x00, 0x08, 0x32, 0x60, // 00083260 - 0x00, 0x02, 0x86, 0x18, // 00028618 - 0x00, 0x08, 0x2D, 0xC4, // 00082DC4 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x02, 0x81, 0x08, // 00028108 - 0x00, 0x0B, 0x64, 0x7F, // 000B647F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA8, 0x7C, // 0006A87C - 0x00, 0x06, 0xA0, 0x7D, // 0006A07D - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3C, 0x01, // 00073C01 - 0x00, 0x06, 0x00, 0x7C, // 0006007C - 0x00, 0x06, 0x30, 0x79, // 00063079 - 0x00, 0x08, 0xBF, 0xC0, // 0008BFC0 - 0x00, 0x02, 0x88, 0xC0, // 000288C0 - 0x00, 0x08, 0xB6, 0x41, // 0008B641 - 0x00, 0x02, 0x9E, 0xB0, // 00029EB0 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x08, 0xBA, 0xC1, // 0008BAC1 - 0x00, 0x06, 0x34, 0x6E, // 0006346E - 0x00, 0x08, 0xBF, 0xC6, // 0008BFC6 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1F, 0x00, // 00071F00 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x08, 0xAF, 0xC3, // 0008AFC3 - 0x00, 0x02, 0x87, 0x08, // 00028708 - 0x00, 0x08, 0xBF, 0xC2, // 0008BFC2 - 0x00, 0x08, 0x2F, 0xC3, // 00082FC3 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x3F, 0xC2, // 00083FC2 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x1C, 0x15, // 00021C15 - 0x00, 0x07, 0x4C, 0x06, // 00074C06 - 0x00, 0x07, 0x0E, 0xFD, // 00070EFD - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x7C, // 0006807C - 0x00, 0x06, 0x88, 0x0F, // 0006880F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x04, 0x64, // 00060464 - 0x00, 0x06, 0x0C, 0x72, // 00060C72 - 0x00, 0x06, 0x10, 0x74, // 00061074 - 0x00, 0x08, 0x80, 0x40, // 00088040 - 0x00, 0x02, 0x9F, 0x40, // 00029F40 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x1B, 0x7F, // 00021B7F - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x1B, 0x7F, // 00021B7F - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x01, // 00070C01 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x81, 0x10, // 00028110 - 0x00, 0x02, 0x1B, 0x68, // 00021B68 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x80, 0x07, // 00078007 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x06, 0x14, 0x64, // 00061464 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0A, 0xC7, 0x81, // 000AC781 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0B, 0x52, 0x7F, // 000B527F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x94, 0x64, // 00069464 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x69, // 00070669 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x02, // 00070C02 - 0x00, 0x06, 0x10, 0x7A, // 0006107A - 0x00, 0x06, 0x20, 0x1C, // 0006201C - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0A, 0xC3, 0x81, // 000AC381 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x0B, 0x52, 0x7F, // 000B527F - 0x00, 0x02, 0x81, 0x48, // 00028148 - 0x00, 0x08, 0x9A, 0x41, // 00089A41 - 0x00, 0x02, 0x9E, 0x38, // 00029E38 - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x06, 0x08, 0x24, // 00060824 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x06, 0x08, 0x2C, // 0006082C - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x0A, 0xE1, 0x7E, // 000AE17E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x7A, // 0006907A - 0x00, 0x06, 0xA0, 0x1C, // 0006A01C - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x69, // 00070669 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x01, // 00070C01 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x6C, // 0007066C - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0A, 0xCF, 0x81, // 000ACF81 - 0x00, 0x06, 0x18, 0x77, // 00061877 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0B, 0x09, 0xC3, // 000B09C3 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x1B, 0x68, // 00021B68 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x24, 0x6B, // 0006246B - 0x00, 0x0B, 0x1B, 0x41, // 000B1B41 - 0x00, 0x06, 0x14, 0x65, // 00061465 - 0x00, 0x06, 0x04, 0x6A, // 0006046A - 0x00, 0x08, 0x28, 0x41, // 00082841 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x82, 0xC0, // 000882C0 - 0x00, 0x08, 0xA4, 0x40, // 0008A440 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x1B, 0x66, // 00021B66 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0B, 0x40, 0x41, // 000B4041 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x08, 0x9B, 0x40, // 00089B40 - 0x00, 0x02, 0x9E, 0x28, // 00029E28 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x04, 0x2F, 0x08, // 00042F08 - 0x00, 0x04, 0x37, 0x08, // 00043708 - 0x00, 0x04, 0x3F, 0x08, // 00043F08 - 0x00, 0x07, 0xA0, 0x0D, // 0007A00D - 0x00, 0x07, 0xA8, 0x0D, // 0007A80D - 0x00, 0x07, 0xB0, 0x0D, // 0007B00D - 0x00, 0x07, 0xB8, 0x0D, // 0007B80D - 0x00, 0x06, 0x98, 0x77, // 00069877 - 0x00, 0x06, 0x84, 0x6A, // 0006846A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x00, 0x6D, // 0006006D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xC0, 0x6D, // 0006C06D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x3F, 0xCC, // 00023FCC - 0x00, 0x07, 0x6C, 0x06, // 00076C06 - 0x00, 0x07, 0x2F, 0x78, // 00072F78 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x19, 0x5B, // 0002195B - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0xC1, 0x80, // 0000C180 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x00, 0x1C, // 0006001C - 0x00, 0x07, 0x6C, 0x01, // 00076C01 - 0x00, 0x07, 0x2E, 0x00, // 00072E00 - 0x00, 0x07, 0x7C, 0x01, // 00077C01 - 0x00, 0x07, 0x3E, 0x68, // 00073E68 - 0x00, 0x0A, 0xF1, 0x7E, // 000AF17E - 0x00, 0x09, 0x00, 0xC6, // 000900C6 - 0x00, 0x02, 0x88, 0x08, // 00028808 - 0x00, 0x08, 0x00, 0xC5, // 000800C5 - 0x00, 0x06, 0x2C, 0x64, // 00062C64 - 0x00, 0x0A, 0x00, 0x7F, // 000A007F - 0x00, 0x06, 0x20, 0x7A, // 0006207A - 0x00, 0x06, 0xB8, 0x22, // 0006B822 - 0x00, 0x04, 0x3F, 0x00, // 00043F00 - 0x00, 0x08, 0xA4, 0x40, // 0008A440 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x08, 0x3F, 0xC0, // 00083FC0 - 0x00, 0x08, 0xAD, 0x40, // 0008AD40 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x1B, 0x7F, // 00021B7F - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x2C, 0x7F, // 00062C7F - 0x00, 0x08, 0xA4, 0x40, // 0008A440 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0B, 0x6D, 0x6F, // 000B6D6F - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x02, 0x1A, 0xAD, // 00021AAD - 0x00, 0x06, 0xB0, 0x1C, // 0006B01C - 0x00, 0x0A, 0xFF, 0x7E, // 000AFF7E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x84, 0x72, // 00068472 - 0x00, 0x06, 0xAC, 0x7F, // 0006AC7F - 0x00, 0x07, 0xB8, 0x07, // 0007B807 - 0x00, 0x06, 0x10, 0x2C, // 0006102C - 0x00, 0x0B, 0x64, 0x6D, // 000B646D - 0x00, 0x0A, 0xD2, 0x7E, // 000AD27E - 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x81, 0x20, // 00028120 - 0x00, 0x06, 0x90, 0x1C, // 0006901C - 0x00, 0x06, 0x90, 0x20, // 00069020 - 0x00, 0x06, 0x9C, 0x7B, // 00069C7B - 0x00, 0x0B, 0x64, 0x6E, // 000B646E - 0x00, 0x06, 0x34, 0x6D, // 0006346D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA4, 0x7F, // 0006A47F - 0x00, 0x06, 0xB4, 0x0F, // 0006B40F - 0x00, 0x06, 0xB4, 0x6C, // 0006B46C - 0x00, 0x0B, 0x76, 0x7F, // 000B767F - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x08, 0x3F, 0x40, // 00083F40 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x06, 0xB4, 0x6B, // 0006B46B - 0x00, 0x04, 0xB0, 0x0D, // 0004B00D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xB6, 0x7C, // 0009B67C - 0x00, 0x01, 0x05, 0x10, // 00010510 - 0x00, 0x09, 0xA6, 0x7F, // 0009A67F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x00, 0x42, // 00080042 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x09, 0xB6, 0x7F, // 0009B67F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x3F, 0x42, // 00083F42 - 0x00, 0x07, 0x84, 0x0C, // 0007840C - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x09, 0xA6, 0x7F, // 0009A67F - 0x00, 0x07, 0xBC, 0x0C, // 0007BC0C - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x30, // 00072430 - 0x00, 0x08, 0x2D, 0x41, // 00082D41 - 0x00, 0x08, 0xA4, 0xC5, // 0008A4C5 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x1B, 0xBE, // 00021BBE - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3F, 0x18, // 00073F18 - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x06, 0x10, 0x24, // 00061024 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x9F, 0x18, // 00029F18 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3C, 0x00, // 00073C00 - 0x00, 0x06, 0x10, 0x2C, // 0006102C - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0xD2, 0x7E, // 000AD27E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F - 0x00, 0x06, 0x04, 0x64, // 00060464 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x00, 0xDE, 0x87, // 0000DE87 - 0x00, 0x06, 0x90, 0x1C, // 0006901C - 0x00, 0x06, 0x90, 0x20, // 00069020 - 0x00, 0x06, 0x9C, 0x62, // 00069C62 - 0x00, 0x06, 0x9C, 0x6E, // 00069C6E - 0x00, 0x06, 0x9C, 0x63, // 00069C63 - 0x00, 0x06, 0xAC, 0x7D, // 0006AC7D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x04, 0x73, // 00060473 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x00, // 00071E00 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x1B, 0x7F, // 00021B7F - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x08, 0x12, 0x42, // 00081242 - 0x00, 0x09, 0x1B, 0xC2, // 00091BC2 - 0x00, 0x02, 0x87, 0x08, // 00028708 - 0x00, 0x08, 0x92, 0xC3, // 000892C3 - 0x00, 0x06, 0x84, 0x73, // 00068473 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x27, 0x00, // 00072700 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3C, 0x00, // 00073C00 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F - 0x00, 0x06, 0xA4, 0x05, // 0006A405 - 0x00, 0x01, 0x41, 0x80, // 00014180 - 0x00, 0x06, 0xB8, 0x22, // 0006B822 - 0x00, 0x07, 0x98, 0x0F, // 0007980F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x98, 0x0F, // 0007980F - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x06, 0x90, 0x1C, // 0006901C - 0x00, 0x06, 0x9C, 0x62, // 00069C62 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x9C, 0x63, // 00069C63 - 0x00, 0x06, 0x9C, 0x6E, // 00069C6E - 0x00, 0x06, 0xAC, 0x7D, // 0006AC7D - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x84, 0x62, // 00068462 - 0x00, 0x06, 0x84, 0x63, // 00068463 - 0x00, 0x06, 0x04, 0x62, // 00060462 - 0x00, 0x06, 0x1C, 0x63, // 00061C63 - 0x00, 0x0A, 0x0F, 0x41, // 000A0F41 - 0x00, 0x08, 0x97, 0xC0, // 000897C0 - 0x00, 0x08, 0x1B, 0xC2, // 00081BC2 - 0x00, 0x0A, 0x12, 0x47, // 000A1247 - 0x00, 0x07, 0x65, 0x00, // 00076500 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x6D, 0x00, // 00076D00 - 0x00, 0x07, 0x2C, 0x00, // 00072C00 - 0x00, 0x07, 0x75, 0x00, // 00077500 - 0x00, 0x07, 0x34, 0x00, // 00073400 - 0x00, 0x0C, 0x12, 0x25, // 000C1225 - 0x00, 0x0E, 0x11, 0x24, // 000E1124 - 0x00, 0x0E, 0x13, 0x26, // 000E1326 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x04, 0x6C, // 0006046C - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x09, 0x12, 0xC0, // 000912C0 - 0x00, 0x06, 0xBC, 0x62, // 0006BC62 - 0x00, 0x06, 0x9C, 0x63, // 00069C63 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x94, 0x6C, // 0006946C - 0x00, 0x06, 0x94, 0x0F, // 0006940F - 0x00, 0x03, 0x33, 0x33, // 00033333 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 + 0xf0, 0x00, 0x04, 0x35, 0x08, 0x00, + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0F, 0x00, // 00070F00 + 0x00, 0x0B, 0x52, 0x7F, // 000B527F + 0x00, 0x0B, 0x5B, 0x7E, // 000B5B7E + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x0A, 0x09, 0x78, // 000A0978 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x08, 0xA1, 0x41, // 0008A141 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0B, 0x5B, 0x7E, // 000B5B7E + 0x00, 0x07, 0x64, 0x01, // 00076401 + 0x00, 0x07, 0x26, 0x69, // 00072669 + 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F + 0x00, 0x0B, 0x75, 0x7E, // 000B757E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA0, 0x22, // 0006A022 + 0x00, 0x0A, 0xF7, 0x86, // 000AF786 + 0x00, 0x0A, 0xEF, 0x85, // 000AEF85 + 0x00, 0x0A, 0x36, 0x7F, // 000A367F + 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F + 0x00, 0x0B, 0x64, 0x70, // 000B6470 + 0x00, 0x06, 0x98, 0x79, // 00069879 + 0x00, 0x06, 0x90, 0x78, // 00069078 + 0x00, 0x06, 0xA8, 0x77, // 0006A877 + 0x00, 0x06, 0xB0, 0x7A, // 0006B07A + 0x00, 0x06, 0xBC, 0x64, // 0006BC64 + 0x00, 0x06, 0xB8, 0x71, // 0006B871 + 0x00, 0x06, 0xB8, 0x70, // 0006B870 + 0x00, 0x06, 0xB8, 0x69, // 0006B869 + 0x00, 0x06, 0xB8, 0x7B, // 0006B87B + 0x00, 0x06, 0xB8, 0x7C, // 0006B87C + 0x00, 0x06, 0x9C, 0x6B, // 00069C6B + 0x00, 0x06, 0xBC, 0x6E, // 0006BC6E + 0x00, 0x06, 0xBC, 0x72, // 0006BC72 + 0x00, 0x06, 0xB8, 0x74, // 0006B874 + 0x00, 0x06, 0xB8, 0x7D, // 0006B87D + 0x00, 0x06, 0xBC, 0x73, // 0006BC73 + 0x00, 0x06, 0x9C, 0x7D, // 00069C7D + 0x00, 0x06, 0xBC, 0x7C, // 0006BC7C + 0x00, 0x06, 0xBC, 0x7B, // 0006BC7B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x3C, 0x65, // 00063C65 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xBF, 0x41, // 0009BF41 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xBC, 0x7A, // 0006BC7A + 0x00, 0x07, 0x7C, 0x01, // 00077C01 + 0x00, 0x07, 0x3D, 0xFF, // 00073DFF + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1C, 0x90, // 00071C90 + 0x00, 0x07, 0x74, 0x01, // 00077401 + 0x00, 0x07, 0x34, 0xA0, // 000734A0 + 0x00, 0x06, 0x08, 0x76, // 00060876 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x21, 0x41, // 00082141 + 0x00, 0x06, 0xB8, 0x16, // 0006B816 + 0x00, 0x06, 0x90, 0x24, // 00069024 + 0x00, 0x06, 0x90, 0x2C, // 0006902C + 0x00, 0x06, 0x90, 0x1C, // 0006901C + 0x00, 0x06, 0x90, 0x20, // 00069020 + 0x00, 0x06, 0x98, 0x25, // 00069825 + 0x00, 0x06, 0x98, 0x2D, // 0006982D + 0x00, 0x06, 0xB0, 0x1D, // 0006B01D + 0x00, 0x06, 0xA0, 0x10, // 0006A010 + 0x00, 0x06, 0x98, 0x21, // 00069821 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3C, 0x24, // 00073C24 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x07, 0x6C, 0x01, // 00076C01 + 0x00, 0x07, 0x2C, 0x98, // 00072C98 + 0x00, 0x06, 0xBC, 0x16, // 0006BC16 + 0x00, 0x06, 0x94, 0x2A, // 0006942A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xAC, 0x2B, // 0006AC2B + 0x00, 0x07, 0x7C, 0x01, // 00077C01 + 0x00, 0x07, 0x3D, 0xFF, // 00073DFF + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x00, // 00071E00 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2C, 0x90, // 00072C90 + 0x00, 0x06, 0xBC, 0x14, // 0006BC14 + 0x00, 0x06, 0x94, 0x1C, // 0006941C + 0x00, 0x06, 0x9C, 0x26, // 00069C26 + 0x00, 0x06, 0x9C, 0x2E, // 00069C2E + 0x00, 0x06, 0xAC, 0x1D, // 0006AC1D + 0x00, 0x06, 0xAC, 0x27, // 0006AC27 + 0x00, 0x06, 0xAC, 0x2F, // 0006AC2F + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x04, // 00070C04 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x10, // 00071410 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x4B, // 0006884B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x94, 0x06, // 00069406 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x62, // 00071E62 + 0x00, 0x06, 0x10, 0x78, // 00061078 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1F, 0x18, // 00071F18 + 0x00, 0x06, 0x98, 0x22, // 00069822 + 0x00, 0x08, 0x92, 0x41, // 00089241 + 0x00, 0x02, 0x9E, 0xF0, // 00029EF0 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2C, 0x80, // 00072C80 + 0x00, 0x07, 0x74, 0x00, // 00077400 + 0x00, 0x07, 0x34, 0x04, // 00073404 + 0x00, 0x0A, 0xED, 0xC0, // 000AEDC0 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x1B, 0xC6, // 00081BC6 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2C, 0x40, // 00072C40 + 0x00, 0x07, 0x74, 0x02, // 00077402 + 0x00, 0x07, 0x34, 0x00, // 00073400 + 0x00, 0x0A, 0xED, 0xC0, // 000AEDC0 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x1B, 0xC6, // 00081BC6 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2C, 0x04, // 00072C04 + 0x00, 0x07, 0x74, 0x00, // 00077400 + 0x00, 0x07, 0x34, 0x20, // 00073420 + 0x00, 0x04, 0x17, 0x00, // 00041700 + 0x00, 0x0A, 0xED, 0xC0, // 000AEDC0 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x1B, 0xC6, // 00081BC6 + 0x00, 0x0A, 0xD2, 0x41, // 000AD241 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x27, 0x18, // 00072718 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x98, 0x3B, // 0006983B + 0x00, 0x06, 0x9C, 0x75, // 00069C75 + 0x00, 0x06, 0xA0, 0x53, // 0006A053 + 0x00, 0x06, 0x28, 0x77, // 00062877 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x40, // 00071640 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x90, // 00072490 + 0x00, 0x0B, 0x49, 0x7D, // 000B497D + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x6C, // 0007066C + 0x00, 0x06, 0x90, 0x1E, // 0006901E + 0x00, 0x06, 0xA0, 0x1F, // 0006A01F + 0x00, 0x06, 0x88, 0x14, // 00068814 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x04, 0x17, 0x08, // 00041708 + 0x00, 0x04, 0x1F, 0x08, // 00041F08 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x08, 0xAD, 0x40, // 0008AD40 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0B, 0x49, 0x40, // 000B4940 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x07, 0x88, 0x0D, // 0007880D + 0x00, 0x07, 0x90, 0x0D, // 0007900D + 0x00, 0x07, 0x98, 0x0D, // 0007980D + 0x00, 0x07, 0xA0, 0x0D, // 0007A00D + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x50, // 00071650 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x26, 0x90, // 00072690 + 0x00, 0x0B, 0x49, 0x7D, // 000B497D + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x70, // 00070670 + 0x00, 0x06, 0x94, 0x20, // 00069420 + 0x00, 0x06, 0xA4, 0x21, // 0006A421 + 0x00, 0x06, 0x8C, 0x15, // 00068C15 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0B, 0x52, 0x75, // 000B5275 + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x07, 0x8C, 0x0E, // 00078C0E + 0x00, 0x07, 0x8C, 0x0E, // 00078C0E + 0x00, 0x07, 0x8C, 0x0E, // 00078C0E + 0x00, 0x07, 0x8C, 0x0E, // 00078C0E + 0x00, 0x06, 0x94, 0x15, // 00069415 + 0x00, 0x02, 0x1C, 0x0E, // 00021C0E + 0x00, 0x07, 0x4C, 0x06, // 00074C06 + 0x00, 0x07, 0x0C, 0xD3, // 00070CD3 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x0F, // 0006880F + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x32, // 00070E32 + 0x00, 0x07, 0x64, 0x01, // 00076401 + 0x00, 0x07, 0x26, 0x70, // 00072670 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2E, 0x90, // 00072E90 + 0x00, 0x06, 0x8C, 0x22, // 00068C22 + 0x00, 0x04, 0x80, 0x4F, // 0004804F + 0x00, 0x06, 0x08, 0x78, // 00060878 + 0x00, 0x06, 0xA4, 0x24, // 0006A424 + 0x00, 0x06, 0xAC, 0x25, // 0006AC25 + 0x00, 0x06, 0x5C, 0x3C, // 00065C3C + 0x00, 0x06, 0x5C, 0x3B, // 00065C3B + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x19, 0x1D, // 0002191D + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x02, 0x3F, 0xCC, // 00023FCC + 0x00, 0x07, 0x6C, 0x06, // 00076C06 + 0x00, 0x07, 0x2C, 0xEB, // 00072CEB + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x0B, 0x52, 0x7F, // 000B527F + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0A, 0xC7, 0x82, // 000AC782 + 0x00, 0x02, 0x9E, 0x20, // 00029E20 + 0x00, 0x0A, 0xC7, 0x81, // 000AC781 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x1B, 0x7F, // 00021B7F + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x54, 0x04, // 00075404 + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x06, 0x30, 0x2C, // 0006302C + 0x00, 0x08, 0x92, 0x41, // 00089241 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x19, 0x0C, // 0002190C + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0A, 0xF6, 0x41, // 000AF641 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x18, 0xFA, // 000218FA + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x30, 0x2C, // 0006302C + 0x00, 0x08, 0x92, 0x41, // 00089241 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x19, 0x0C, // 0002190C + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0A, 0xF6, 0x41, // 000AF641 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x19, 0x03, // 00021903 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x38, 0x52, // 00063852 + 0x00, 0x06, 0x30, 0x2C, // 0006302C + 0x00, 0x09, 0xBF, 0x7A, // 0009BF7A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0xFF, 0x41, // 000AFF41 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0B, 0x36, 0x41, // 000B3641 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xB0, 0x2C, // 0006B02C + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x18, 0xE4, // 000218E4 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x40, 0x7D, // 000B407D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x84, 0x15, // 00068415 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0xB8, 0x16, // 0004B816 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x06, 0x27, // 000C0627 + 0x00, 0x04, 0x35, 0x18, // 00043518 + 0x00, 0x04, 0xB8, 0x1E, // 0004B81E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0E, 0x06, 0x27, // 000E0627 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0xB8, 0x16, // 0004B816 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x0E, 0x27, // 000C0E27 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0xB8, 0x0E, // 0004B80E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0E, 0x0E, 0x27, // 000E0E27 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0xB8, 0x16, // 0004B816 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x16, 0x27, // 000C1627 + 0x00, 0x04, 0x35, 0x18, // 00043518 + 0x00, 0x04, 0xB8, 0x1E, // 0004B81E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0E, 0x16, 0x27, // 000E1627 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0xB8, 0x16, // 0004B816 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x1E, 0x27, // 000C1E27 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0xB8, 0x0E, // 0004B80E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0E, 0x1E, 0x27, // 000E1E27 + 0x00, 0x07, 0x64, 0x01, // 00076401 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x27, 0x12, // 00072712 + 0x00, 0x07, 0x80, 0x0D, // 0007800D + 0x00, 0x07, 0x88, 0x0D, // 0007880D + 0x00, 0x07, 0x90, 0x0D, // 0007900D + 0x00, 0x07, 0x98, 0x0D, // 0007980D + 0x00, 0x06, 0xA0, 0x22, // 0006A022 + 0x00, 0x07, 0x80, 0x0F, // 0007800F + 0x00, 0x07, 0x88, 0x0F, // 0007880F + 0x00, 0x07, 0x90, 0x0F, // 0007900F + 0x00, 0x07, 0x98, 0x07, // 00079807 + 0x00, 0x06, 0x2C, 0x79, // 00062C79 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x09, 0x0D, // 000C090D + 0x00, 0x0C, 0x11, 0x0D, // 000C110D + 0x00, 0x0C, 0x19, 0x0D, // 000C190D + 0x00, 0x0C, 0x21, 0x0D, // 000C210D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x8C, 0x66, // 00068C66 + 0x00, 0x06, 0x94, 0x67, // 00069467 + 0x00, 0x06, 0x9C, 0x68, // 00069C68 + 0x00, 0x06, 0xA4, 0x69, // 0006A469 + 0x00, 0x06, 0x00, 0x7A, // 0006007A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0x40, // 00088040 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x19, 0xF8, // 000219F8 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x00, 0x24, // 00060024 + 0x00, 0x06, 0x08, 0x78, // 00060878 + 0x00, 0x06, 0x18, 0x76, // 00061876 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x08, 0x89, 0x41, // 00088941 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x06, 0x00, 0x2C, // 0006002C + 0x00, 0x06, 0x08, 0x1C, // 0006081C + 0x00, 0x08, 0x80, 0xC1, // 000880C1 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x08, 0x9B, 0x41, // 00089B41 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x09, 0x80, 0x7F, // 0009807F + 0x00, 0x06, 0x14, 0x7B, // 0006147B + 0x00, 0x06, 0x1C, 0x7A, // 00061C7A + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9F, 0x28, // 00029F28 + 0x00, 0x08, 0x98, 0xC3, // 000898C3 + 0x00, 0x02, 0x87, 0x10, // 00028710 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x02, 0x81, 0x08, // 00028108 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x94, 0x7B, // 0006947B + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x12, // 00071412 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x00, // 00071E00 + 0x00, 0x08, 0xA0, 0xC2, // 0008A0C2 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x19, 0xF8, // 000219F8 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x24, 0x2A, // 0006242A + 0x00, 0x08, 0xA3, 0xC4, // 0008A3C4 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x19, 0xF8, // 000219F8 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x01, // 00071E01 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x09, // 00070409 + 0x00, 0x06, 0x08, 0x69, // 00060869 + 0x00, 0x06, 0x9C, 0x22, // 00069C22 + 0x00, 0x06, 0x10, 0x6A, // 0006106A + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x19, 0xA4, // 000219A4 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0x92, 0x41, // 00089241 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x19, 0xA4, // 000219A4 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x07, 0x55, 0x5C, // 0007555C + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x07, 0x5D, 0x04, // 00075D04 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x07, 0x65, 0x58, // 00076558 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x6D, 0x14, // 00076D14 + 0x00, 0x07, 0x2C, 0x00, // 00072C00 + 0x00, 0x07, 0x94, 0x0F, // 0007940F + 0x00, 0x07, 0x9C, 0x0F, // 00079C0F + 0x00, 0x07, 0xA4, 0x0F, // 0007A40F + 0x00, 0x07, 0xAC, 0x0F, // 0007AC0F + 0x00, 0x06, 0x38, 0x3A, // 0006383A + 0x00, 0x0B, 0x76, 0x7D, // 000B767D + 0x00, 0x06, 0x10, 0x6C, // 0006106C + 0x00, 0x0A, 0xFF, 0x5F, // 000AFF5F + 0x00, 0x06, 0x84, 0x05, // 00068405 + 0x00, 0x02, 0x9F, 0x18, // 00029F18 + 0x00, 0x09, 0x3F, 0x54, // 00093F54 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xB4, 0x15, // 0006B415 + 0x00, 0x07, 0x77, 0xFC, // 000777FC + 0x00, 0x07, 0x34, 0x00, // 00073400 + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x01, 0x4E, 0x80, // 00014E80 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0x80, 0x87, // 00098087 + 0x00, 0x09, 0x88, 0x87, // 00098887 + 0x00, 0x0C, 0x20, 0x12, // 000C2012 + 0x00, 0x0E, 0x21, 0x12, // 000E2112 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x28, 0x12, // 000C2812 + 0x00, 0x0E, 0x29, 0x12, // 000E2912 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0x84, 0x48, // 00098448 + 0x00, 0x09, 0x8D, 0x48, // 00098D48 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x09, 0xA4, 0x48, // 0009A448 + 0x00, 0x08, 0x04, 0x40, // 00080440 + 0x00, 0x09, 0xAD, 0x48, // 0009AD48 + 0x00, 0x08, 0x0D, 0x40, // 00080D40 + 0x00, 0x0A, 0xE4, 0xC6, // 000AE4C6 + 0x00, 0x0A, 0xC0, 0xC6, // 000AC0C6 + 0x00, 0x0A, 0xED, 0xC6, // 000AEDC6 + 0x00, 0x0A, 0xC9, 0xC6, // 000AC9C6 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0xE4, 0x0F, // 0007E40F + 0x00, 0x07, 0xC4, 0x0F, // 0007C40F + 0x00, 0x07, 0xEC, 0x0F, // 0007EC0F + 0x00, 0x07, 0xCC, 0x0F, // 0007CC0F + 0x00, 0x06, 0x00, 0x69, // 00060069 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x65, // 00070E65 + 0x00, 0x08, 0x00, 0x41, // 00080041 + 0x00, 0x06, 0x1C, 0x64, // 00061C64 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x39, // 00071439 + 0x00, 0x06, 0x88, 0x22, // 00068822 + 0x00, 0x04, 0x0F, 0x00, // 00040F00 + 0x00, 0x08, 0x90, 0xC2, // 000890C2 + 0x00, 0x02, 0x9E, 0x28, // 00029E28 + 0x00, 0x08, 0x9B, 0x40, // 00089B40 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x02, 0x1B, 0x7F, // 00021B7F + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x08, 0x09, 0x41, // 00080941 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x69, // 00068069 + 0x00, 0x07, 0x88, 0x07, // 00078807 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x0B, 0x76, 0x75, // 000B7675 + 0x00, 0x07, 0x0E, 0x01, // 00070E01 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x04, // 00070404 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x06, 0x80, 0x4B, // 0006804B + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x05, 0x3D, // 0007053D + 0x00, 0x06, 0xB4, 0x15, // 0006B415 + 0x00, 0x06, 0x8C, 0x2A, // 00068C2A + 0x00, 0x06, 0x94, 0x72, // 00069472 + 0x00, 0x06, 0x80, 0x4B, // 0006804B + 0x00, 0x06, 0x00, 0x24, // 00060024 + 0x00, 0x06, 0x08, 0x78, // 00060878 + 0x00, 0x06, 0x18, 0x76, // 00061876 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x08, 0x89, 0x41, // 00088941 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x06, 0x00, 0x2C, // 0006002C + 0x00, 0x06, 0x08, 0x20, // 00060820 + 0x00, 0x08, 0x80, 0xC1, // 000880C1 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x06, 0x0C, 0x26, // 00060C26 + 0x00, 0x06, 0x14, 0x1C, // 0006141C + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x00, // 00071E00 + 0x00, 0x08, 0x89, 0xC2, // 000889C2 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x09, 0xC3, // 000809C3 + 0x00, 0x06, 0x24, 0x24, // 00062424 + 0x00, 0x09, 0x22, 0xC4, // 000922C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x24, 0xC3, // 000824C3 + 0x00, 0x09, 0x29, 0xC4, // 000929C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x0C, 0x40, // 00080C40 + 0x00, 0x06, 0x24, 0x2E, // 0006242E + 0x00, 0x09, 0x22, 0xC4, // 000922C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x24, 0xC3, // 000824C3 + 0x00, 0x09, 0x29, 0xC4, // 000929C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x0C, 0x40, // 00080C40 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x20, // 00071420 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0xC2, // 000880C2 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x1A, 0x86, // 00021A86 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0x89, 0xC2, // 000889C2 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x1A, 0x86, // 00021A86 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x28, 0x3A, // 0006283A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0xED, 0x5F, // 000AED5F + 0x00, 0x02, 0x9F, 0x18, // 00029F18 + 0x00, 0x09, 0x2D, 0x54, // 00092D54 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x04, 0xB8, 0x0D, // 0004B80D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xBF, 0x7C, // 0009BF7C + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x01, 0x0D, 0x10, // 00010D10 + 0x00, 0x06, 0x20, 0x76, // 00062076 + 0x00, 0x09, 0x86, 0x8D, // 0009868D + 0x00, 0x09, 0x8E, 0x8D, // 00098E8D + 0x00, 0x08, 0xA4, 0x40, // 0008A440 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x08, 0x40, // 00080840 + 0x00, 0x0C, 0x31, 0x08, // 000C3108 + 0x00, 0x0E, 0x31, 0x09, // 000E3109 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x01, 0x08, // 000C0108 + 0x00, 0x0E, 0x01, 0x09, // 000E0109 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0xF6, 0x7C, // 000AF67C + 0x00, 0x09, 0x9F, 0x7F, // 00099F7F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x36, 0x42, // 00083642 + 0x00, 0x0A, 0xC0, 0x7C, // 000AC07C + 0x00, 0x09, 0xBF, 0x7F, // 0009BF7F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x00, 0x42, // 00080042 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0xF4, 0x0C, // 0007F40C + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0xC4, 0x0C, // 0007C40C + 0x00, 0x02, 0x16, 0x52, // 00021652 + 0x00, 0x07, 0x4C, 0x06, // 00074C06 + 0x00, 0x07, 0x0E, 0x56, // 00070E56 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x0F, // 0006880F + 0x00, 0x06, 0x00, 0x7B, // 0006007B + 0x00, 0x06, 0x10, 0x74, // 00061074 + 0x00, 0x08, 0x00, 0x41, // 00080041 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x30, // 00071C30 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9E, 0x18, // 00029E18 + 0x00, 0x08, 0x88, 0xC3, // 000888C3 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x02, 0x15, 0xDB, // 000215DB + 0x00, 0x07, 0x4C, 0x06, // 00074C06 + 0x00, 0x07, 0x0E, 0x66, // 00070E66 + 0x00, 0x06, 0x80, 0x7B, // 0006807B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x0E, // 0006880E + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x06, 0x08, 0x24, // 00060824 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x06, 0x08, 0x2C, // 0006082C + 0x00, 0x06, 0x34, 0x26, // 00063426 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x86, 0xC1, // 000886C1 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1F, 0x00, // 00071F00 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x08, 0xA8, 0xC3, // 0008A8C3 + 0x00, 0x02, 0x87, 0x08, // 00028708 + 0x00, 0x08, 0x80, 0xC2, // 000880C2 + 0x00, 0x06, 0x20, 0x74, // 00062074 + 0x00, 0x08, 0x28, 0xC3, // 000828C3 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x06, 0x18, 0x79, // 00061879 + 0x00, 0x06, 0x14, 0x6E, // 0006146E + 0x00, 0x08, 0xA4, 0x41, // 0008A441 + 0x00, 0x02, 0x9E, 0x20, // 00029E20 + 0x00, 0x08, 0xBB, 0x42, // 0008BB42 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F + 0x00, 0x08, 0x10, 0x40, // 00081040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x98, 0x79, // 00069879 + 0x00, 0x06, 0x94, 0x6E, // 0006946E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x06, 0x08, 0x24, // 00060824 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x06, 0x08, 0x2C, // 0006082C + 0x00, 0x06, 0x00, 0x1C, // 0006001C + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x06, 0x18, 0x71, // 00061871 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x24, 0x6B, // 0006246B + 0x00, 0x08, 0xA9, 0xC0, // 0008A9C0 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x2D, 0xC2, // 00082DC2 + 0x00, 0x08, 0xB4, 0x41, // 0008B441 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x1A, 0xA5, // 00021AA5 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0xB5, 0x42, // 0008B542 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x1A, 0xA5, // 00021AA5 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x34, 0x26, // 00063426 + 0x00, 0x0A, 0xD1, 0x41, // 000AD141 + 0x00, 0x0A, 0xF6, 0x7E, // 000AF67E + 0x00, 0x08, 0x12, 0xC6, // 000812C6 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x0A, 0xC2, 0x7E, // 000AC27E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA4, 0x6B, // 0006A46B + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x25, // 00072425 + 0x00, 0x08, 0x93, 0xC5, // 000893C5 + 0x00, 0x06, 0xA8, 0x71, // 0006A871 + 0x00, 0x08, 0x9C, 0xC2, // 00089CC2 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x1B, 0x86, // 00021B86 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x06, 0x18, 0x52, // 00061852 + 0x00, 0x07, 0x54, 0x08, // 00075408 + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x07, 0x7C, 0x06, // 00077C06 + 0x00, 0x07, 0x3E, 0xFD, // 00073EFD + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0A, 0xC3, 0xC2, // 000AC3C2 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x1B, 0xA7, // 00021BA7 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0xB8, 0x0F, // 0006B80F + 0x00, 0x06, 0x34, 0x26, // 00063426 + 0x00, 0x06, 0x3C, 0x1C, // 00063C1C + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x06, 0x18, 0x70, // 00061870 + 0x00, 0x08, 0x86, 0xC7, // 000886C7 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x25, // 00072425 + 0x00, 0x06, 0x28, 0x79, // 00062879 + 0x00, 0x08, 0x93, 0xC0, // 000893C0 + 0x00, 0x06, 0x80, 0x70, // 00068070 + 0x00, 0x08, 0x94, 0xC2, // 000894C2 + 0x00, 0x02, 0x88, 0x38, // 00028838 + 0x00, 0x08, 0xBD, 0x41, // 0008BD41 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x09, 0xAD, 0x41, // 0009AD41 + 0x00, 0x07, 0x7C, 0x06, // 00077C06 + 0x00, 0x07, 0x3E, 0xFD, // 00073EFD + 0x00, 0x02, 0x1B, 0xB0, // 00021BB0 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0xA8, 0x79, // 0006A879 + 0x00, 0x06, 0xB8, 0x0F, // 0006B80F + 0x00, 0x06, 0x14, 0x26, // 00061426 + 0x00, 0x06, 0x20, 0x7D, // 0006207D + 0x00, 0x06, 0x28, 0x7C, // 0006287C + 0x00, 0x08, 0x32, 0x60, // 00083260 + 0x00, 0x02, 0x86, 0x18, // 00028618 + 0x00, 0x08, 0x2D, 0xC4, // 00082DC4 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x02, 0x81, 0x08, // 00028108 + 0x00, 0x0B, 0x64, 0x7F, // 000B647F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA8, 0x7C, // 0006A87C + 0x00, 0x06, 0xA0, 0x7D, // 0006A07D + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3C, 0x01, // 00073C01 + 0x00, 0x06, 0x00, 0x7C, // 0006007C + 0x00, 0x06, 0x30, 0x79, // 00063079 + 0x00, 0x08, 0xBF, 0xC0, // 0008BFC0 + 0x00, 0x02, 0x88, 0xC0, // 000288C0 + 0x00, 0x08, 0xB6, 0x41, // 0008B641 + 0x00, 0x02, 0x9E, 0xB0, // 00029EB0 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x08, 0xBA, 0xC1, // 0008BAC1 + 0x00, 0x06, 0x34, 0x6E, // 0006346E + 0x00, 0x08, 0xBF, 0xC6, // 0008BFC6 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1F, 0x00, // 00071F00 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x08, 0xAF, 0xC3, // 0008AFC3 + 0x00, 0x02, 0x87, 0x08, // 00028708 + 0x00, 0x08, 0xBF, 0xC2, // 0008BFC2 + 0x00, 0x08, 0x2F, 0xC3, // 00082FC3 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x3F, 0xC2, // 00083FC2 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x1C, 0x15, // 00021C15 + 0x00, 0x07, 0x4C, 0x06, // 00074C06 + 0x00, 0x07, 0x0E, 0xFD, // 00070EFD + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x7C, // 0006807C + 0x00, 0x06, 0x88, 0x0F, // 0006880F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x04, 0x64, // 00060464 + 0x00, 0x06, 0x0C, 0x72, // 00060C72 + 0x00, 0x06, 0x10, 0x74, // 00061074 + 0x00, 0x08, 0x80, 0x40, // 00088040 + 0x00, 0x02, 0x9F, 0x40, // 00029F40 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x1B, 0x7F, // 00021B7F + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x1B, 0x7F, // 00021B7F + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x01, // 00070C01 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x81, 0x10, // 00028110 + 0x00, 0x02, 0x1B, 0x68, // 00021B68 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x80, 0x07, // 00078007 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x06, 0x14, 0x64, // 00061464 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0A, 0xC7, 0x81, // 000AC781 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0B, 0x52, 0x7F, // 000B527F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x94, 0x64, // 00069464 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x69, // 00070669 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x02, // 00070C02 + 0x00, 0x06, 0x10, 0x7A, // 0006107A + 0x00, 0x06, 0x20, 0x1C, // 0006201C + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0A, 0xC3, 0x81, // 000AC381 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x0B, 0x52, 0x7F, // 000B527F + 0x00, 0x02, 0x81, 0x48, // 00028148 + 0x00, 0x08, 0x9A, 0x41, // 00089A41 + 0x00, 0x02, 0x9E, 0x38, // 00029E38 + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x06, 0x08, 0x24, // 00060824 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x06, 0x08, 0x2C, // 0006082C + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x0A, 0xE1, 0x7E, // 000AE17E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x7A, // 0006907A + 0x00, 0x06, 0xA0, 0x1C, // 0006A01C + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x69, // 00070669 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x01, // 00070C01 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x6C, // 0007066C + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0A, 0xCF, 0x81, // 000ACF81 + 0x00, 0x06, 0x18, 0x77, // 00061877 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0B, 0x09, 0xC3, // 000B09C3 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x1B, 0x68, // 00021B68 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x24, 0x6B, // 0006246B + 0x00, 0x0B, 0x1B, 0x41, // 000B1B41 + 0x00, 0x06, 0x14, 0x65, // 00061465 + 0x00, 0x06, 0x04, 0x6A, // 0006046A + 0x00, 0x08, 0x28, 0x41, // 00082841 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x82, 0xC0, // 000882C0 + 0x00, 0x08, 0xA4, 0x40, // 0008A440 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x1B, 0x66, // 00021B66 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0B, 0x40, 0x41, // 000B4041 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x08, 0x9B, 0x40, // 00089B40 + 0x00, 0x02, 0x9E, 0x28, // 00029E28 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x04, 0x2F, 0x08, // 00042F08 + 0x00, 0x04, 0x37, 0x08, // 00043708 + 0x00, 0x04, 0x3F, 0x08, // 00043F08 + 0x00, 0x07, 0xA0, 0x0D, // 0007A00D + 0x00, 0x07, 0xA8, 0x0D, // 0007A80D + 0x00, 0x07, 0xB0, 0x0D, // 0007B00D + 0x00, 0x07, 0xB8, 0x0D, // 0007B80D + 0x00, 0x06, 0x98, 0x77, // 00069877 + 0x00, 0x06, 0x84, 0x6A, // 0006846A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x00, 0x6D, // 0006006D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xC0, 0x6D, // 0006C06D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x3F, 0xCC, // 00023FCC + 0x00, 0x07, 0x6C, 0x06, // 00076C06 + 0x00, 0x07, 0x2F, 0x78, // 00072F78 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x19, 0x5B, // 0002195B + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0xC1, 0x80, // 0000C180 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x00, 0x1C, // 0006001C + 0x00, 0x07, 0x6C, 0x01, // 00076C01 + 0x00, 0x07, 0x2E, 0x00, // 00072E00 + 0x00, 0x07, 0x7C, 0x01, // 00077C01 + 0x00, 0x07, 0x3E, 0x68, // 00073E68 + 0x00, 0x0A, 0xF1, 0x7E, // 000AF17E + 0x00, 0x09, 0x00, 0xC6, // 000900C6 + 0x00, 0x02, 0x88, 0x08, // 00028808 + 0x00, 0x08, 0x00, 0xC5, // 000800C5 + 0x00, 0x06, 0x2C, 0x64, // 00062C64 + 0x00, 0x0A, 0x00, 0x7F, // 000A007F + 0x00, 0x06, 0x20, 0x7A, // 0006207A + 0x00, 0x06, 0xB8, 0x22, // 0006B822 + 0x00, 0x04, 0x3F, 0x00, // 00043F00 + 0x00, 0x08, 0xA4, 0x40, // 0008A440 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x08, 0x3F, 0xC0, // 00083FC0 + 0x00, 0x08, 0xAD, 0x40, // 0008AD40 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x1B, 0x7F, // 00021B7F + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x2C, 0x7F, // 00062C7F + 0x00, 0x08, 0xA4, 0x40, // 0008A440 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0B, 0x6D, 0x6F, // 000B6D6F + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x02, 0x1A, 0xAD, // 00021AAD + 0x00, 0x06, 0xB0, 0x1C, // 0006B01C + 0x00, 0x0A, 0xFF, 0x7E, // 000AFF7E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x84, 0x72, // 00068472 + 0x00, 0x06, 0xAC, 0x7F, // 0006AC7F + 0x00, 0x07, 0xB8, 0x07, // 0007B807 + 0x00, 0x06, 0x10, 0x2C, // 0006102C + 0x00, 0x0B, 0x64, 0x6D, // 000B646D + 0x00, 0x0A, 0xD2, 0x7E, // 000AD27E + 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x81, 0x20, // 00028120 + 0x00, 0x06, 0x90, 0x1C, // 0006901C + 0x00, 0x06, 0x90, 0x20, // 00069020 + 0x00, 0x06, 0x9C, 0x7B, // 00069C7B + 0x00, 0x0B, 0x64, 0x6E, // 000B646E + 0x00, 0x06, 0x34, 0x6D, // 0006346D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA4, 0x7F, // 0006A47F + 0x00, 0x06, 0xB4, 0x0F, // 0006B40F + 0x00, 0x06, 0xB4, 0x6C, // 0006B46C + 0x00, 0x0B, 0x76, 0x7F, // 000B767F + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x08, 0x3F, 0x40, // 00083F40 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x06, 0xB4, 0x6B, // 0006B46B + 0x00, 0x04, 0xB0, 0x0D, // 0004B00D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xB6, 0x7C, // 0009B67C + 0x00, 0x01, 0x05, 0x10, // 00010510 + 0x00, 0x09, 0xA6, 0x7F, // 0009A67F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x00, 0x42, // 00080042 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x09, 0xB6, 0x7F, // 0009B67F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x3F, 0x42, // 00083F42 + 0x00, 0x07, 0x84, 0x0C, // 0007840C + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x09, 0xA6, 0x7F, // 0009A67F + 0x00, 0x07, 0xBC, 0x0C, // 0007BC0C + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x30, // 00072430 + 0x00, 0x08, 0x2D, 0x41, // 00082D41 + 0x00, 0x08, 0xA4, 0xC5, // 0008A4C5 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x1B, 0xBE, // 00021BBE + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3F, 0x18, // 00073F18 + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x06, 0x10, 0x24, // 00061024 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x9F, 0x18, // 00029F18 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3C, 0x00, // 00073C00 + 0x00, 0x06, 0x10, 0x2C, // 0006102C + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0xD2, 0x7E, // 000AD27E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F + 0x00, 0x06, 0x04, 0x64, // 00060464 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x00, 0xDE, 0x87, // 0000DE87 + 0x00, 0x06, 0x90, 0x1C, // 0006901C + 0x00, 0x06, 0x90, 0x20, // 00069020 + 0x00, 0x06, 0x9C, 0x62, // 00069C62 + 0x00, 0x06, 0x9C, 0x6E, // 00069C6E + 0x00, 0x06, 0x9C, 0x63, // 00069C63 + 0x00, 0x06, 0xAC, 0x7D, // 0006AC7D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x04, 0x73, // 00060473 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x00, // 00071E00 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x1B, 0x7F, // 00021B7F + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x08, 0x12, 0x42, // 00081242 + 0x00, 0x09, 0x1B, 0xC2, // 00091BC2 + 0x00, 0x02, 0x87, 0x08, // 00028708 + 0x00, 0x08, 0x92, 0xC3, // 000892C3 + 0x00, 0x06, 0x84, 0x73, // 00068473 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x27, 0x00, // 00072700 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3C, 0x00, // 00073C00 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F + 0x00, 0x06, 0xA4, 0x05, // 0006A405 + 0x00, 0x01, 0x41, 0x80, // 00014180 + 0x00, 0x06, 0xB8, 0x22, // 0006B822 + 0x00, 0x07, 0x98, 0x0F, // 0007980F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x98, 0x0F, // 0007980F + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x06, 0x90, 0x1C, // 0006901C + 0x00, 0x06, 0x9C, 0x62, // 00069C62 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x9C, 0x63, // 00069C63 + 0x00, 0x06, 0x9C, 0x6E, // 00069C6E + 0x00, 0x06, 0xAC, 0x7D, // 0006AC7D + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x84, 0x62, // 00068462 + 0x00, 0x06, 0x84, 0x63, // 00068463 + 0x00, 0x06, 0x04, 0x62, // 00060462 + 0x00, 0x06, 0x1C, 0x63, // 00061C63 + 0x00, 0x0A, 0x0F, 0x41, // 000A0F41 + 0x00, 0x08, 0x97, 0xC0, // 000897C0 + 0x00, 0x08, 0x1B, 0xC2, // 00081BC2 + 0x00, 0x0A, 0x12, 0x47, // 000A1247 + 0x00, 0x07, 0x65, 0x00, // 00076500 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x6D, 0x00, // 00076D00 + 0x00, 0x07, 0x2C, 0x00, // 00072C00 + 0x00, 0x07, 0x75, 0x00, // 00077500 + 0x00, 0x07, 0x34, 0x00, // 00073400 + 0x00, 0x0C, 0x12, 0x25, // 000C1225 + 0x00, 0x0E, 0x11, 0x24, // 000E1124 + 0x00, 0x0E, 0x13, 0x26, // 000E1326 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x04, 0x6C, // 0006046C + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x09, 0x12, 0xC0, // 000912C0 + 0x00, 0x06, 0xBC, 0x62, // 0006BC62 + 0x00, 0x06, 0x9C, 0x63, // 00069C63 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x94, 0x6C, // 0006946C + 0x00, 0x06, 0x94, 0x0F, // 0006940F + 0x00, 0x03, 0x33, 0x33, // 00033333 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 }; struct i2c_block { @@ -3163,39 +3163,39 @@ void i2c_random_write(int addr, int cmd, const unsigned char* data, int size) void mas_freeze(void) { - static const unsigned char freeze[] = { 0x00, 0x00 }; + static const unsigned char freeze[] = { 0x00, 0x00 }; - /* Freeze DSP */ - i2c_random_write(MAS_ADR, MAS_DATA_WRITE, freeze, sizeof(freeze)); - /* mas_run(0); in core implementation */ + /* Freeze DSP */ + i2c_random_write(MAS_ADR, MAS_DATA_WRITE, freeze, sizeof(freeze)); + /* mas_run(0); in core implementation */ /* stop all internal transfers */ - rb->mas_writereg(0x3b, 0x00318); /* stopdma 1 */ - rb->mas_writereg(0x43, 0x00300); /* stopdma 2 */ - rb->mas_writereg(0x4b, 0); /* stopdma 3 */ - rb->mas_writereg(0x53, 0x00318); /* stopdma 4 */ - rb->mas_writereg(0x6b, 0); /* stopdma 5 */ - rb->mas_writereg(0xbb, 0x00318); /* stopdma 6 */ - rb->mas_writereg(0xc3, 0x00300); /* stopdma 7 */ - rb->mas_writereg(0x06, 0); /* stopdma 8 */ + rb->mas_writereg(0x3b, 0x00318); /* stopdma 1 */ + rb->mas_writereg(0x43, 0x00300); /* stopdma 2 */ + rb->mas_writereg(0x4b, 0); /* stopdma 3 */ + rb->mas_writereg(0x53, 0x00318); /* stopdma 4 */ + rb->mas_writereg(0x6b, 0); /* stopdma 5 */ + rb->mas_writereg(0xbb, 0x00318); /* stopdma 6 */ + rb->mas_writereg(0xc3, 0x00300); /* stopdma 7 */ + rb->mas_writereg(0x06, 0); /* stopdma 8 */ } void mas_download_pcm(void) { static const unsigned char runi2s[] = { 0x10, 0x00 }; - unsigned i; + unsigned i; - mas_freeze(); + mas_freeze(); - // Download program to MAS memory - for ( i = 0; i < (sizeof(maspcm)/sizeof(struct i2c_block)); i++ ) - i2c_random_write(MAS_ADR, MAS_DATA_WRITE, maspcm[i].data, maspcm[i].len); + // Download program to MAS memory + for ( i = 0; i < (sizeof(maspcm)/sizeof(struct i2c_block)); i++ ) + i2c_random_write(MAS_ADR, MAS_DATA_WRITE, maspcm[i].data, maspcm[i].len); rb->mas_writereg(0x6b, 0xc0000); /* Reconfigure data to program memory */ /* Start execution at D0:1000 */ - i2c_random_write(MAS_ADR, MAS_DATA_WRITE, runi2s, sizeof(runi2s)); - /* mas_run(0x1000); in core implementation */ + i2c_random_write(MAS_ADR, MAS_DATA_WRITE, runi2s, sizeof(runi2s)); + /* mas_run(0x1000); in core implementation */ } void mas_restore(void) @@ -3204,12 +3204,12 @@ void mas_restore(void) static const unsigned char initdsp[] = { 0x8c, 0x00 }; unsigned long val; - i2c_random_write(MAS_ADR, MAS_CONTROL, resetdsp, sizeof(resetdsp)); - /* mas_direct_config_write(MAS_CONTROL, 0x8d00); in core implementation */ - rb->sleep(1); - i2c_random_write(MAS_ADR, MAS_CONTROL, initdsp, sizeof(initdsp)); - /* mas_direct_config_write(MAS_CONTROL, 0x8c00); in core implementation */ - + i2c_random_write(MAS_ADR, MAS_CONTROL, resetdsp, sizeof(resetdsp)); + /* mas_direct_config_write(MAS_CONTROL, 0x8d00); in core implementation */ + rb->sleep(1); + i2c_random_write(MAS_ADR, MAS_CONTROL, initdsp, sizeof(initdsp)); + /* mas_direct_config_write(MAS_CONTROL, 0x8c00); in core implementation */ + /* Stop the current application */ val = 0; rb->mas_writemem(MAS_BANK_D0, MAS_D0_APP_SELECT, &val, 1); @@ -3460,7 +3460,7 @@ int play_file(char* filename) int wanted, got; unsigned format, channels, samplerate, samplebits, bytes, time; unsigned rate = 0; - unsigned long mas; + unsigned long mas; fd = rb->open(filename, O_RDONLY); if (fd < 0) @@ -3649,7 +3649,7 @@ int play_file(char* filename) /* plugin entry point */ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { - ssize_t buf_size; + ssize_t buf_size; rb = api; diff --git a/apps/plugins/wavrecord.c b/apps/plugins/wavrecord.c index ee55763..e085af0 100644 --- a/apps/plugins/wavrecord.c +++ b/apps/plugins/wavrecord.c @@ -25,3055 +25,3055 @@ PLUGIN_HEADER // address 04640 count 30 (126 bytes) static const unsigned char maspcm_array1[] = { - 0xe0, 0x00, 0x00, 0x1e, 0x06, 0x40, - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x25, // 00000025 - 0x00, 0x00, 0x00, 0x04, // 00000004 - 0x00, 0x00, 0x48, 0x00, // 00004800 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0xFF, 0xFF, // 0000FFFF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x82, 0x00, // 00008200 - 0x00, 0x00, 0x00, 0x0A, // 0000000A - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x03, 0x18, // 00000318 - 0x00, 0x00, 0x03, 0x18, // 00000318 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x00, 0x03, 0x18, // 00000318 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x03, 0x00, // 00000300 + 0xe0, 0x00, 0x00, 0x1e, 0x06, 0x40, + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x25, // 00000025 + 0x00, 0x00, 0x00, 0x04, // 00000004 + 0x00, 0x00, 0x48, 0x00, // 00004800 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0xFF, 0xFF, // 0000FFFF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x82, 0x00, // 00008200 + 0x00, 0x00, 0x00, 0x0A, // 0000000A + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x03, 0x18, // 00000318 + 0x00, 0x00, 0x03, 0x18, // 00000318 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x00, 0x03, 0x18, // 00000318 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x03, 0x00, // 00000300 }; // address 04674 count 81 (330 bytes) static const unsigned char maspcm_array2[] = { - 0xe0, 0x00, 0x00, 0x51, 0x06, 0x74, - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x00, 0x02, // 00000002 - 0x00, 0x00, 0x00, 0x60, // 00000060 - 0x00, 0x00, 0x00, 0x60, // 00000060 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x00, 0xC0, 0x00, // 0000C000 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x1E, // 0000001E - 0x00, 0x00, 0x42, 0x11, // 00004211 - 0x00, 0x00, 0x58, 0x33, // 00005833 - 0x00, 0x00, 0x00, 0x02, // 00000002 - 0x00, 0x00, 0x00, 0x40, // 00000040 - 0x00, 0x00, 0x00, 0x40, // 00000040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x01, 0x20, 0x01, // 00012001 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x29, // 00000029 - 0x00, 0x00, 0x30, 0xC3, // 000030C3 - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x00, 0x02, // 00000002 - 0x00, 0x00, 0x00, 0x40, // 00000040 - 0x00, 0x00, 0x00, 0x40, // 00000040 - 0x00, 0x00, 0x02, 0x00, // 00000200 - 0x00, 0x01, 0x20, 0x00, // 00012000 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x2D, // 0000002D - 0x00, 0x00, 0x2C, 0x86, // 00002C86 - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x00, 0x01, // 00000001 - 0x00, 0x00, 0x00, 0x30, // 00000030 - 0x00, 0x00, 0x00, 0x30, // 00000030 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x01, 0x80, 0x00, // 00018000 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x3C, // 0000003C - 0x00, 0x00, 0x21, 0x93, // 00002193 - 0x00, 0x00, 0x58, 0x33, // 00005833 - 0x00, 0x00, 0x00, 0x01, // 00000001 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x40, 0x01, // 00024001 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x52, // 00000052 - 0x00, 0x00, 0x18, 0xAD, // 000018AD - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x00, 0x01, // 00000001 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x02, 0x00, // 00000200 - 0x00, 0x02, 0x40, 0x00, // 00024000 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x5A, // 0000005A - 0x00, 0x00, 0x16, 0x81, // 00001681 - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x18, // 00000018 - 0x00, 0x00, 0x00, 0x18, // 00000018 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x03, 0x00, 0x00, // 00030000 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0x78, // 00000078 - 0x00, 0x00, 0x10, 0xED, // 000010ED - 0x00, 0x00, 0x58, 0x33, // 00005833 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x10, // 00000010 - 0x00, 0x00, 0x00, 0x10, // 00000010 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x04, 0x80, 0x03, // 00048003 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0xA5, // 000000A5 - 0x00, 0x00, 0x0C, 0x56, // 00000C56 - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x10, // 00000010 - 0x00, 0x00, 0x00, 0x10, // 00000010 - 0x00, 0x00, 0x02, 0x00, // 00000200 - 0x00, 0x04, 0x80, 0x00, // 00048000 - 0x00, 0x00, 0x00, 0x14, // 00000014 - 0x00, 0x00, 0x00, 0xB4, // 000000B4 - 0x00, 0x00, 0x0B, 0x51, // 00000B51 + 0xe0, 0x00, 0x00, 0x51, 0x06, 0x74, + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x00, 0x02, // 00000002 + 0x00, 0x00, 0x00, 0x60, // 00000060 + 0x00, 0x00, 0x00, 0x60, // 00000060 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x00, 0xC0, 0x00, // 0000C000 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x1E, // 0000001E + 0x00, 0x00, 0x42, 0x11, // 00004211 + 0x00, 0x00, 0x58, 0x33, // 00005833 + 0x00, 0x00, 0x00, 0x02, // 00000002 + 0x00, 0x00, 0x00, 0x40, // 00000040 + 0x00, 0x00, 0x00, 0x40, // 00000040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x01, 0x20, 0x01, // 00012001 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x29, // 00000029 + 0x00, 0x00, 0x30, 0xC3, // 000030C3 + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x00, 0x02, // 00000002 + 0x00, 0x00, 0x00, 0x40, // 00000040 + 0x00, 0x00, 0x00, 0x40, // 00000040 + 0x00, 0x00, 0x02, 0x00, // 00000200 + 0x00, 0x01, 0x20, 0x00, // 00012000 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x2D, // 0000002D + 0x00, 0x00, 0x2C, 0x86, // 00002C86 + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x00, 0x01, // 00000001 + 0x00, 0x00, 0x00, 0x30, // 00000030 + 0x00, 0x00, 0x00, 0x30, // 00000030 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x01, 0x80, 0x00, // 00018000 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x3C, // 0000003C + 0x00, 0x00, 0x21, 0x93, // 00002193 + 0x00, 0x00, 0x58, 0x33, // 00005833 + 0x00, 0x00, 0x00, 0x01, // 00000001 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x40, 0x01, // 00024001 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x52, // 00000052 + 0x00, 0x00, 0x18, 0xAD, // 000018AD + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x00, 0x01, // 00000001 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x02, 0x00, // 00000200 + 0x00, 0x02, 0x40, 0x00, // 00024000 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x5A, // 0000005A + 0x00, 0x00, 0x16, 0x81, // 00001681 + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x18, // 00000018 + 0x00, 0x00, 0x00, 0x18, // 00000018 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x03, 0x00, 0x00, // 00030000 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0x78, // 00000078 + 0x00, 0x00, 0x10, 0xED, // 000010ED + 0x00, 0x00, 0x58, 0x33, // 00005833 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x10, // 00000010 + 0x00, 0x00, 0x00, 0x10, // 00000010 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x04, 0x80, 0x03, // 00048003 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0xA5, // 000000A5 + 0x00, 0x00, 0x0C, 0x56, // 00000C56 + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x10, // 00000010 + 0x00, 0x00, 0x00, 0x10, // 00000010 + 0x00, 0x00, 0x02, 0x00, // 00000200 + 0x00, 0x04, 0x80, 0x00, // 00048000 + 0x00, 0x00, 0x00, 0x14, // 00000014 + 0x00, 0x00, 0x00, 0xB4, // 000000B4 + 0x00, 0x00, 0x0B, 0x51, // 00000B51 }; // address 04661 count 19 (82 bytes) static const unsigned char maspcm_array3[] = { - 0xe0, 0x00, 0x00, 0x13, 0x06, 0x61, - 0x00, 0x00, 0x01, 0x25, // 00000125 - 0x00, 0x00, 0x00, 0x05, // 00000005 - 0x00, 0x00, 0x48, 0x00, // 00004800 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x82, 0x00, // 00008200 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x08, 0x00, 0x00, // 00080000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x00, // 00080000 + 0xe0, 0x00, 0x00, 0x13, 0x06, 0x61, + 0x00, 0x00, 0x01, 0x25, // 00000125 + 0x00, 0x00, 0x00, 0x05, // 00000005 + 0x00, 0x00, 0x48, 0x00, // 00004800 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x82, 0x00, // 00008200 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x08, 0x00, 0x00, // 00080000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x00, // 00080000 }; // address 046E4 count 16 (70 bytes) static const unsigned char maspcm_array4[] = { - 0xe0, 0x00, 0x00, 0x10, 0x06, 0xe4, - 0x00, 0x00, 0x06, 0x74, // 00000674 - 0x00, 0x00, 0x06, 0x7D, // 0000067D - 0x00, 0x00, 0x06, 0x86, // 00000686 - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x00, 0x06, 0x8F, // 0000068F - 0x00, 0x00, 0x06, 0x98, // 00000698 - 0x00, 0x00, 0x06, 0xA1, // 000006A1 - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x00, 0x06, 0xAA, // 000006AA - 0x00, 0x00, 0x06, 0xB3, // 000006B3 - 0x00, 0x00, 0x06, 0xBC, // 000006BC - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF - 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0xe0, 0x00, 0x00, 0x10, 0x06, 0xe4, + 0x00, 0x00, 0x06, 0x74, // 00000674 + 0x00, 0x00, 0x06, 0x7D, // 0000067D + 0x00, 0x00, 0x06, 0x86, // 00000686 + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x00, 0x06, 0x8F, // 0000068F + 0x00, 0x00, 0x06, 0x98, // 00000698 + 0x00, 0x00, 0x06, 0xA1, // 000006A1 + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x00, 0x06, 0xAA, // 000006AA + 0x00, 0x00, 0x06, 0xB3, // 000006B3 + 0x00, 0x00, 0x06, 0xBC, // 000006BC + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF + 0x00, 0x0F, 0xFF, 0xFF, // 000FFFFF }; // address 04700 count 18 (78 byte) static const unsigned char maspcm_array5[] = { - 0xe0, 0x00, 0x00, 0x12, 0x07, 0x00, - 0x00, 0x00, 0x06, 0xBC, // 000006BC - 0x00, 0x00, 0x00, 0x0A, // 0000000A - 0x00, 0x00, 0x06, 0x74, // 00000674 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x06, 0x7D, // 0000067D - 0x00, 0x00, 0x00, 0x01, // 00000001 - 0x00, 0x00, 0x06, 0x86, // 00000686 - 0x00, 0x00, 0x00, 0x02, // 00000002 - 0x00, 0x00, 0x06, 0x8F, // 0000068F - 0x00, 0x00, 0x00, 0x04, // 00000004 - 0x00, 0x00, 0x06, 0x98, // 00000698 - 0x00, 0x00, 0x00, 0x05, // 00000005 - 0x00, 0x00, 0x06, 0xA1, // 000006A1 - 0x00, 0x00, 0x00, 0x06, // 00000006 - 0x00, 0x00, 0x06, 0xAA, // 000006AA - 0x00, 0x00, 0x00, 0x08, // 00000008 - 0x00, 0x00, 0x06, 0xB3, // 000006B3 - 0x00, 0x00, 0x00, 0x09, // 00000009 + 0xe0, 0x00, 0x00, 0x12, 0x07, 0x00, + 0x00, 0x00, 0x06, 0xBC, // 000006BC + 0x00, 0x00, 0x00, 0x0A, // 0000000A + 0x00, 0x00, 0x06, 0x74, // 00000674 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x06, 0x7D, // 0000067D + 0x00, 0x00, 0x00, 0x01, // 00000001 + 0x00, 0x00, 0x06, 0x86, // 00000686 + 0x00, 0x00, 0x00, 0x02, // 00000002 + 0x00, 0x00, 0x06, 0x8F, // 0000068F + 0x00, 0x00, 0x00, 0x04, // 00000004 + 0x00, 0x00, 0x06, 0x98, // 00000698 + 0x00, 0x00, 0x00, 0x05, // 00000005 + 0x00, 0x00, 0x06, 0xA1, // 000006A1 + 0x00, 0x00, 0x00, 0x06, // 00000006 + 0x00, 0x00, 0x06, 0xAA, // 000006AA + 0x00, 0x00, 0x00, 0x08, // 00000008 + 0x00, 0x00, 0x06, 0xB3, // 000006B3 + 0x00, 0x00, 0x00, 0x09, // 00000009 }; // address 06600 count 63 (258 bytes) static const unsigned char maspcm_array6[] = { - 0xf0, 0x00, 0x00, 0x3f, 0x06, 0x00, - 0x00, 0x00, 0x0B, 0xAD, // 00000BAD - 0x00, 0x00, 0x10, 0x00, // 00001000 - 0x00, 0x00, 0x20, 0x00, // 00002000 - 0x00, 0x00, 0x30, 0x00, // 00003000 - 0x00, 0x00, 0x40, 0x00, // 00004000 - 0x00, 0x00, 0x50, 0x00, // 00005000 - 0x00, 0x00, 0x60, 0x00, // 00006000 - 0x00, 0x00, 0x70, 0x00, // 00007000 - 0x00, 0x00, 0x80, 0x00, // 00008000 - 0x00, 0x00, 0x90, 0x00, // 00009000 - 0x00, 0x00, 0xA0, 0x00, // 0000A000 - 0x00, 0x00, 0xB0, 0x00, // 0000B000 - 0x00, 0x00, 0xC0, 0x00, // 0000C000 - 0x00, 0x00, 0xD0, 0x00, // 0000D000 - 0x00, 0x00, 0xE0, 0x00, // 0000E000 - 0x00, 0x00, 0xF0, 0x00, // 0000F000 - 0x00, 0x01, 0x00, 0x00, // 00010000 - 0x00, 0x01, 0x10, 0x00, // 00011000 - 0x00, 0x01, 0x20, 0x00, // 00012000 - 0x00, 0x01, 0x30, 0x00, // 00013000 - 0x00, 0x01, 0x40, 0x00, // 00014000 - 0x00, 0x01, 0x50, 0x00, // 00015000 - 0x00, 0x01, 0x60, 0x00, // 00016000 - 0x00, 0x01, 0x70, 0x00, // 00017000 - 0x00, 0x01, 0x80, 0x00, // 00018000 - 0x00, 0x01, 0x90, 0x00, // 00019000 - 0x00, 0x01, 0xA0, 0x00, // 0001A000 - 0x00, 0x01, 0xB0, 0x00, // 0001B000 - 0x00, 0x01, 0xC0, 0x00, // 0001C000 - 0x00, 0x01, 0xD0, 0x00, // 0001D000 - 0x00, 0x01, 0xE0, 0x00, // 0001E000 - 0x00, 0x01, 0xF0, 0x00, // 0001F000 - 0x00, 0x02, 0x00, 0x00, // 00020000 - 0x00, 0x02, 0x10, 0x00, // 00021000 - 0x00, 0x02, 0x20, 0x00, // 00022000 - 0x00, 0x02, 0x30, 0x00, // 00023000 - 0x00, 0x02, 0x40, 0x00, // 00024000 - 0x00, 0x00, 0x05, 0xFF, // 000005FF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x90, // 00000090 - 0x00, 0x00, 0x00, 0x90, // 00000090 - 0x00, 0x00, 0x00, 0x90, // 00000090 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x00, 0x00, 0x20, // 00000020 - 0x00, 0x00, 0x03, 0x00, // 00000300 - 0x00, 0x00, 0x05, 0xFF, // 000005FF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x90, // 00000090 - 0x00, 0x00, 0x00, 0x90, // 00000090 - 0x00, 0x00, 0x00, 0x90, // 00000090 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x0C, // 0000000C + 0xf0, 0x00, 0x00, 0x3f, 0x06, 0x00, + 0x00, 0x00, 0x0B, 0xAD, // 00000BAD + 0x00, 0x00, 0x10, 0x00, // 00001000 + 0x00, 0x00, 0x20, 0x00, // 00002000 + 0x00, 0x00, 0x30, 0x00, // 00003000 + 0x00, 0x00, 0x40, 0x00, // 00004000 + 0x00, 0x00, 0x50, 0x00, // 00005000 + 0x00, 0x00, 0x60, 0x00, // 00006000 + 0x00, 0x00, 0x70, 0x00, // 00007000 + 0x00, 0x00, 0x80, 0x00, // 00008000 + 0x00, 0x00, 0x90, 0x00, // 00009000 + 0x00, 0x00, 0xA0, 0x00, // 0000A000 + 0x00, 0x00, 0xB0, 0x00, // 0000B000 + 0x00, 0x00, 0xC0, 0x00, // 0000C000 + 0x00, 0x00, 0xD0, 0x00, // 0000D000 + 0x00, 0x00, 0xE0, 0x00, // 0000E000 + 0x00, 0x00, 0xF0, 0x00, // 0000F000 + 0x00, 0x01, 0x00, 0x00, // 00010000 + 0x00, 0x01, 0x10, 0x00, // 00011000 + 0x00, 0x01, 0x20, 0x00, // 00012000 + 0x00, 0x01, 0x30, 0x00, // 00013000 + 0x00, 0x01, 0x40, 0x00, // 00014000 + 0x00, 0x01, 0x50, 0x00, // 00015000 + 0x00, 0x01, 0x60, 0x00, // 00016000 + 0x00, 0x01, 0x70, 0x00, // 00017000 + 0x00, 0x01, 0x80, 0x00, // 00018000 + 0x00, 0x01, 0x90, 0x00, // 00019000 + 0x00, 0x01, 0xA0, 0x00, // 0001A000 + 0x00, 0x01, 0xB0, 0x00, // 0001B000 + 0x00, 0x01, 0xC0, 0x00, // 0001C000 + 0x00, 0x01, 0xD0, 0x00, // 0001D000 + 0x00, 0x01, 0xE0, 0x00, // 0001E000 + 0x00, 0x01, 0xF0, 0x00, // 0001F000 + 0x00, 0x02, 0x00, 0x00, // 00020000 + 0x00, 0x02, 0x10, 0x00, // 00021000 + 0x00, 0x02, 0x20, 0x00, // 00022000 + 0x00, 0x02, 0x30, 0x00, // 00023000 + 0x00, 0x02, 0x40, 0x00, // 00024000 + 0x00, 0x00, 0x05, 0xFF, // 000005FF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x90, // 00000090 + 0x00, 0x00, 0x00, 0x90, // 00000090 + 0x00, 0x00, 0x00, 0x90, // 00000090 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x00, 0x00, 0x20, // 00000020 + 0x00, 0x00, 0x03, 0x00, // 00000300 + 0x00, 0x00, 0x05, 0xFF, // 000005FF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x90, // 00000090 + 0x00, 0x00, 0x00, 0x90, // 00000090 + 0x00, 0x00, 0x00, 0x90, // 00000090 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x0C, // 0000000C }; // address 06640 count 12 (54 bytes) static const unsigned char maspcm_array7[] = { - 0xf0, 0x00, 0x00, 0x0c, 0x06, 0x40, - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 + 0xf0, 0x00, 0x00, 0x0c, 0x06, 0x40, + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 }; // address 06660 count 28 (118 bytes) static const unsigned char maspcm_array8[] = { - 0xf0, 0x00, 0x00, 0x1c, 0x06, 0x60, - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 + 0xf0, 0x00, 0x00, 0x1c, 0x06, 0x60, + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 }; // address 04800 count 1668 (6678 bytes) static const unsigned char maspcm_array9[] = { - 0xe0, 0x00, 0x06, 0x84, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x47, 0xC0, // 000747C0 - 0x00, 0x07, 0x04, 0x00, // 00070400 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xC0, 0x6B, // 0006C06B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x90, // 00070690 - 0x00, 0x07, 0x4C, 0x07, // 00074C07 - 0x00, 0x07, 0x0F, 0xFF, // 00070FFF - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x06, 0x80, 0x1D, // 0006801D - 0x00, 0x06, 0x80, 0x1F, // 0006801F - 0x00, 0x06, 0x80, 0x21, // 00068021 - 0x00, 0x06, 0x80, 0x23, // 00068023 - 0x00, 0x06, 0x84, 0x1D, // 0006841D - 0x00, 0x06, 0x84, 0x1F, // 0006841F - 0x00, 0x06, 0x84, 0x21, // 00068421 - 0x00, 0x06, 0x84, 0x23, // 00068423 - 0x00, 0x06, 0x88, 0x17, // 00068817 - 0x00, 0x06, 0x8C, 0x17, // 00068C17 - 0x00, 0x06, 0xD0, 0x6D, // 0006D06D - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x57, // 00071E57 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x90, // 00070690 - 0x00, 0x07, 0x4C, 0x07, // 00074C07 - 0x00, 0x07, 0x0F, 0xFF, // 00070FFF - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x06, 0x80, 0x1D, // 0006801D - 0x00, 0x06, 0x80, 0x1F, // 0006801F - 0x00, 0x06, 0x80, 0x21, // 00068021 - 0x00, 0x06, 0x80, 0x23, // 00068023 - 0x00, 0x06, 0x84, 0x1D, // 0006841D - 0x00, 0x06, 0x84, 0x1F, // 0006841F - 0x00, 0x06, 0x84, 0x21, // 00068421 - 0x00, 0x06, 0x84, 0x23, // 00068423 - 0x00, 0x06, 0x88, 0x17, // 00068817 - 0x00, 0x06, 0x8C, 0x17, // 00068C17 - 0x00, 0x06, 0xD0, 0x6D, // 0006D06D - 0x00, 0x06, 0x98, 0x1E, // 0006981E - 0x00, 0x04, 0x05, 0x08, // 00040508 - 0x00, 0x04, 0x0D, 0x08, // 00040D08 - 0x00, 0x04, 0x15, 0x08, // 00041508 - 0x00, 0x04, 0x1D, 0x08, // 00041D08 - 0x00, 0x04, 0x25, 0x08, // 00042508 - 0x00, 0x04, 0x2D, 0x08, // 00042D08 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3C, 0x30, // 00073C30 - 0x00, 0x06, 0x80, 0x3B, // 0006803B - 0x00, 0x06, 0x88, 0x5B, // 0006885B - 0x00, 0x06, 0x94, 0x3B, // 0006943B - 0x00, 0x06, 0x9C, 0x43, // 00069C43 - 0x00, 0x06, 0xA0, 0x53, // 0006A053 - 0x00, 0x06, 0xA8, 0x4B, // 0006A84B - 0x00, 0x06, 0xB4, 0x53, // 0006B453 - 0x00, 0x06, 0xBC, 0x06, // 0006BC06 - 0x00, 0x07, 0x74, 0x01, // 00077401 - 0x00, 0x07, 0x36, 0x63, // 00073663 - 0x00, 0x02, 0x12, 0x57, // 00021257 - 0x00, 0x07, 0x6C, 0x18, // 00076C18 - 0x00, 0x07, 0x2C, 0x00, // 00072C00 - 0x00, 0x07, 0x7C, 0x04, // 00077C04 - 0x00, 0x07, 0x3C, 0x45, // 00073C45 - 0x00, 0x06, 0xB0, 0x20, // 0006B020 - 0x00, 0x04, 0x36, 0x00, // 00043600 - 0x00, 0x02, 0x12, 0x46, // 00021246 - 0x00, 0x07, 0x7C, 0x04, // 00077C04 - 0x00, 0x07, 0x3C, 0x4C, // 00073C4C - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x66, // 00070666 - 0x00, 0x0B, 0x49, 0x40, // 000B4940 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x94, 0x7F, // 0006947F - 0x00, 0x06, 0x80, 0x1C, // 0006801C - 0x00, 0x07, 0x88, 0x04, // 00078804 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x0B, 0x49, 0x7F, // 000B497F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x1C, // 0006801C - 0x00, 0x04, 0x14, 0x00, // 00041400 - 0x00, 0x0A, 0xC1, 0xC2, // 000AC1C2 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x02, 0x10, 0x70, // 00021070 - 0x00, 0x0A, 0xD2, 0x7E, // 000AD27E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x90, 0x04, // 00079004 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0xC2, 0xC1, // 000AC2C1 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x02, 0x10, 0x85, // 00021085 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x00, 0x6D, // 0006006D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x00, 0x41, // 00080041 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xC0, 0x6D, // 0006C06D - 0x00, 0x02, 0x3F, 0xCC, // 00023FCC - 0x00, 0x07, 0x6C, 0x04, // 00076C04 - 0x00, 0x07, 0x2C, 0x7E, // 00072C7E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x10, 0x54, // 00021054 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0x80, 0x74, // 00098074 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1F, 0x00, // 00071F00 - 0x00, 0x08, 0x80, 0x42, // 00088042 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x11, 0x51, // 00021151 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0A, 0xC2, 0xC3, // 000AC2C3 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0x80, 0x78, // 00098078 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0x42, // 00088042 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x11, 0x51, // 00021151 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0F, 0x00, // 00070F00 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x66, // 00070666 - 0x00, 0x07, 0x56, 0x00, // 00075600 - 0x00, 0x07, 0x14, 0x03, // 00071403 - 0x00, 0x06, 0x8C, 0x3B, // 00068C3B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x1C, // 0006801C - 0x00, 0x07, 0x90, 0x04, // 00079004 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2F, 0x00, // 00072F00 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x00, // 00070400 - 0x00, 0x0B, 0x49, 0x40, // 000B4940 - 0x00, 0x06, 0xAC, 0x05, // 0006AC05 - 0x00, 0x01, 0x41, 0x00, // 00014100 - 0x00, 0x06, 0x84, 0x1C, // 0006841C - 0x00, 0x07, 0x8C, 0x0C, // 00078C0C - 0x00, 0x07, 0x8C, 0x0C, // 00078C0C - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1C, 0x90, // 00071C90 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x17, 0x00, // 00071700 - 0x00, 0x07, 0x64, 0x01, // 00076401 - 0x00, 0x07, 0x25, 0xFF, // 000725FF - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2C, 0x00, // 00072C00 - 0x00, 0x06, 0x9C, 0x25, // 00069C25 - 0x00, 0x06, 0x98, 0x2D, // 0006982D - 0x00, 0x06, 0x94, 0x3C, // 0006943C - 0x00, 0x06, 0xA4, 0x16, // 0006A416 - 0x00, 0x06, 0xA0, 0x16, // 0006A016 - 0x00, 0x06, 0x8C, 0x3B, // 00068C3B - 0x00, 0x06, 0xAC, 0x24, // 0006AC24 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0F, 0x00, // 00070F00 - 0x00, 0x0B, 0x52, 0x6F, // 000B526F - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1E, 0x90, // 00071E90 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x1E, // 0006881E - 0x00, 0x06, 0x90, 0x15, // 00069015 - 0x00, 0x06, 0x98, 0x1F, // 0006981F - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x84, 0x6F, // 0006846F - 0x00, 0x06, 0x84, 0x70, // 00068470 - 0x00, 0x04, 0x05, 0x10, // 00040510 - 0x00, 0x07, 0x74, 0x01, // 00077401 - 0x00, 0x07, 0x36, 0x63, // 00073663 - 0x00, 0x02, 0x12, 0x57, // 00021257 - 0x00, 0x06, 0x80, 0x1C, // 0006801C - 0x00, 0x04, 0x2C, 0x08, // 00042C08 - 0x00, 0x07, 0x7C, 0x04, // 00077C04 - 0x00, 0x07, 0x3C, 0xD2, // 00073CD2 - 0x00, 0x06, 0xB0, 0x22, // 0006B022 - 0x00, 0x04, 0x37, 0x08, // 00043708 - 0x00, 0x04, 0x14, 0x20, // 00041420 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x07, 0x66, 0x00, // 00076600 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x5C, 0x80, // 00075C80 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3D, 0x00, // 00073D00 - 0x00, 0x0A, 0xC8, 0xC4, // 000AC8C4 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x36, 0xC4, // 000836C4 - 0x00, 0x0A, 0xC8, 0xC3, // 000AC8C3 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x12, 0x41, // 00081241 - 0x00, 0x0A, 0xC8, 0xC7, // 000AC8C7 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x02, 0x12, 0x46, // 00021246 - 0x00, 0x09, 0x92, 0x51, // 00099251 - 0x00, 0x08, 0x36, 0xC2, // 000836C2 - 0x00, 0x07, 0x7C, 0x04, // 00077C04 - 0x00, 0x07, 0x3C, 0xEA, // 00073CEA - 0x00, 0x06, 0xAC, 0x6D, // 0006AC6D - 0x00, 0x06, 0xAC, 0x6C, // 0006AC6C - 0x00, 0x0B, 0x7F, 0x7F, // 000B7F7F - 0x00, 0x09, 0xB6, 0x7D, // 0009B67D - 0x00, 0x0A, 0x3F, 0x53, // 000A3F53 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x0A, 0xF6, 0x43, // 000AF643 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1F, 0x18, // 00071F18 - 0x00, 0x07, 0x6C, 0x04, // 00076C04 - 0x00, 0x07, 0x2C, 0x00, // 00072C00 - 0x00, 0x04, 0x0C, 0x08, // 00040C08 - 0x00, 0x08, 0xB6, 0x41, // 0008B641 - 0x00, 0x0A, 0x09, 0xC6, // 000A09C6 - 0x00, 0x08, 0x8F, 0xC1, // 00088FC1 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x09, 0x25, // 000C0925 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x00, // 00070400 - 0x00, 0x06, 0x98, 0x53, // 00069853 - 0x00, 0x06, 0x90, 0x2C, // 0006902C - 0x00, 0x06, 0xA4, 0x24, // 0006A424 - 0x00, 0x06, 0x80, 0x53, // 00068053 - 0x00, 0x06, 0x88, 0x54, // 00068854 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x06, 0x14, 0x6F, // 0006146F - 0x00, 0x06, 0x00, 0x52, // 00060052 - 0x00, 0x08, 0x12, 0x41, // 00081241 - 0x00, 0x06, 0x1C, 0x70, // 00061C70 - 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 - 0x00, 0x02, 0x9F, 0x38, // 00029F38 - 0x00, 0x0A, 0x09, 0x74, // 000A0974 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0xC9, 0x43, // 000AC943 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0xA1, 0x42, // 0008A142 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x08, 0x1B, 0x41, // 00081B41 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x94, 0x6F, // 0006946F - 0x00, 0x06, 0x9C, 0x70, // 00069C70 - 0x00, 0x06, 0x00, 0x6D, // 0006006D - 0x00, 0x02, 0x3F, 0xCC, // 00023FCC - 0x00, 0x0B, 0x00, 0x41, // 000B0041 - 0x00, 0x07, 0x6C, 0x04, // 00076C04 - 0x00, 0x07, 0x2D, 0x1E, // 00072D1E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x6D, // 0006806D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x04, 0x24, // 00060424 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x61, // 00071661 - 0x00, 0x08, 0x8C, 0x80, // 00088C80 - 0x00, 0x02, 0x89, 0x10, // 00028910 - 0x00, 0x02, 0x11, 0x03, // 00021103 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x90, 0x22, // 00069022 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x07, 0x54, 0x0C, // 0007540C - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x0A, 0xD8, 0x7E, // 000AD87E - 0x00, 0x0A, 0xC8, 0x41, // 000AC841 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0A, 0xC8, 0xC2, // 000AC8C2 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x10, 0x08, // 00021008 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x98, 0x07, // 00079807 - 0x00, 0x06, 0x04, 0x6F, // 0006046F - 0x00, 0x06, 0x0C, 0x70, // 00060C70 - 0x00, 0x0A, 0x10, 0x7D, // 000A107D - 0x00, 0x08, 0x90, 0xC2, // 000890C2 - 0x00, 0x08, 0x99, 0xC2, // 000899C2 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x10, 0xC2, // 000210C2 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x6B, // 00070E6B - 0x00, 0x0B, 0x52, 0x50, // 000B5250 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x1C, // 0006881C - 0x00, 0x0A, 0xCC, 0x82, // 000ACC82 - 0x00, 0x04, 0x1D, 0x88, // 00041D88 - 0x00, 0x04, 0x1D, 0x00, // 00041D00 - 0x00, 0x08, 0x09, 0xC3, // 000809C3 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x88, 0x04, // 00078804 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x90, // 00070690 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0F, 0x00, // 00070F00 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x17, 0x18, // 00071718 - 0x00, 0x06, 0x80, 0x1F, // 0006801F - 0x00, 0x06, 0x8C, 0x3B, // 00068C3B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x53, // 00069053 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x65, // 00070E65 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x07, 0x64, 0x01, // 00076401 - 0x00, 0x07, 0x26, 0x68, // 00072668 - 0x00, 0x06, 0x88, 0x20, // 00068820 - 0x00, 0x07, 0x90, 0x06, // 00079006 - 0x00, 0x06, 0x94, 0x7F, // 0006947F - 0x00, 0x06, 0xA0, 0x22, // 0006A022 - 0x00, 0x07, 0x90, 0x07, // 00079007 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x6B, // 00070E6B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x20, // 00068820 - 0x00, 0x04, 0x0E, 0x00, // 00040E00 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x40, // 00071C40 - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x0A, 0xD1, 0xC3, // 000AD1C3 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x6A, // 0006806A - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x20, // 00071C20 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x0A, 0xD1, 0xC3, // 000AD1C3 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x6C, // 0006806C - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x10, // 00071C10 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x0A, 0xD1, 0xC3, // 000AD1C3 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x76, // 00068076 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x67, // 00071E67 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0xE4, // 000706E4 - 0x00, 0x0A, 0xD1, 0x4F, // 000AD14F - 0x00, 0x08, 0x10, 0xC2, // 000810C2 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x98, 0x1C, // 0006981C - 0x00, 0x07, 0x90, 0x04, // 00079004 - 0x00, 0x06, 0x90, 0x1C, // 0006901C - 0x00, 0x04, 0x14, 0x00, // 00041400 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x22, // 00069022 - 0x00, 0x04, 0x2F, 0x08, // 00042F08 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0F, 0x00, // 00070F00 - 0x00, 0x07, 0x54, 0x08, // 00075408 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x06, 0x80, 0x1C, // 0006801C - 0x00, 0x0A, 0xCC, 0x81, // 000ACC81 - 0x00, 0x08, 0x92, 0xC1, // 000892C1 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x11, 0xBD, // 000211BD - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x74, 0x01, // 00077401 - 0x00, 0x02, 0x12, 0x57, // 00021257 - 0x00, 0x07, 0x36, 0x63, // 00073663 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x7C, 0x04, // 00077C04 - 0x00, 0x07, 0x3D, 0xA4, // 00073DA4 - 0x00, 0x06, 0xB0, 0x20, // 0006B020 - 0x00, 0x04, 0x36, 0x08, // 00043608 - 0x00, 0x04, 0x17, 0x08, // 00041708 - 0x00, 0x04, 0x06, 0x00, // 00040600 - 0x00, 0x07, 0x66, 0x00, // 00076600 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x5C, 0x80, // 00075C80 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3D, 0x00, // 00073D00 - 0x00, 0x0A, 0xC8, 0xC4, // 000AC8C4 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x36, 0xC4, // 000836C4 - 0x00, 0x0A, 0xC8, 0xC3, // 000AC8C3 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x12, 0x41, // 00081241 - 0x00, 0x0A, 0xC8, 0xC7, // 000AC8C7 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x12, 0x46, // 00021246 - 0x00, 0x09, 0x92, 0x51, // 00099251 - 0x00, 0x08, 0x36, 0xC2, // 000836C2 - 0x00, 0x07, 0x7C, 0x04, // 00077C04 - 0x00, 0x07, 0x3D, 0xBF, // 00073DBF - 0x00, 0x06, 0xAC, 0x6D, // 0006AC6D - 0x00, 0x06, 0xAC, 0x6C, // 0006AC6C - 0x00, 0x04, 0x06, 0x08, // 00040608 - 0x00, 0x04, 0x07, 0x08, // 00040708 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x62, // 00070E62 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x2D, // 0007142D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x1C, // 0006881C - 0x00, 0x04, 0x0C, 0x00, // 00040C00 - 0x00, 0x0A, 0xD2, 0xC1, // 000AD2C1 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x4F, // 0006904F - 0x00, 0x06, 0x94, 0x77, // 00069477 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x39, // 00070639 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x61, // 00070E61 - 0x00, 0x07, 0x54, 0x12, // 00075412 - 0x00, 0x07, 0x14, 0x30, // 00071430 - 0x00, 0x06, 0x84, 0x1C, // 0006841C - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x06, 0x88, 0x1C, // 0006881C - 0x00, 0x04, 0x0C, 0x00, // 00040C00 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x04, 0x37, 0x08, // 00043708 - 0x00, 0x09, 0xAC, 0x7F, // 0009AC7F - 0x00, 0x0A, 0xC1, 0x50, // 000AC150 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0A, 0x24, 0x7F, // 000A247F - 0x00, 0x0A, 0xC9, 0xC2, // 000AC9C2 - 0x00, 0x08, 0x0B, 0xC1, // 00080BC1 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0xA4, 0x00, // 0007A400 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x07, 0x8C, 0x00, // 00078C00 - 0x00, 0x07, 0xAC, 0x00, // 0007AC00 - 0x00, 0x04, 0xA8, 0x00, // 0004A800 - 0x00, 0x07, 0xB4, 0x00, // 0007B400 - 0x00, 0x06, 0x84, 0x45, // 00068445 - 0x00, 0x06, 0x84, 0x46, // 00068446 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x40, // 00071640 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x26, 0x90, // 00072690 - 0x00, 0x0B, 0x49, 0x75, // 000B4975 - 0x00, 0x06, 0x94, 0x1E, // 0006941E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA4, 0x1F, // 0006A41F - 0x00, 0x06, 0x8C, 0x15, // 00068C15 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x6A, // 0007066A - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x04, 0x17, 0x08, // 00041708 - 0x00, 0x04, 0x1F, 0x08, // 00041F08 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x04, 0x2F, 0x08, // 00042F08 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x06, 0xA4, 0x65, // 0006A465 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x84, 0x0D, // 0007840D - 0x00, 0x07, 0x8C, 0x5D, // 00078C5D - 0x00, 0x06, 0xAC, 0x79, // 0006AC79 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x6C, // 0007066C - 0x00, 0x0B, 0x76, 0x41, // 000B7641 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0C, 0x0B, 0x0D, // 000C0B0D - 0x00, 0x0C, 0x13, 0x0D, // 000C130D - 0x00, 0x0C, 0x1B, 0x0D, // 000C1B0D - 0x00, 0x0C, 0x23, 0x0D, // 000C230D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xB4, 0x6A, // 0006B46A - 0x00, 0x06, 0x8C, 0x66, // 00068C66 - 0x00, 0x06, 0x94, 0x67, // 00069467 - 0x00, 0x06, 0x9C, 0x68, // 00069C68 - 0x00, 0x06, 0xA4, 0x69, // 0006A469 - 0x00, 0x07, 0x64, 0x01, // 00076401 - 0x00, 0x07, 0x27, 0x12, // 00072712 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x03, 0x00, // 00040300 - 0x00, 0x04, 0x0B, 0x00, // 00040B00 - 0x00, 0x04, 0x13, 0x00, // 00041300 - 0x00, 0x04, 0x1B, 0x00, // 00041B00 - 0x00, 0x06, 0xA0, 0x22, // 0006A022 - 0x00, 0x07, 0x80, 0x0F, // 0007800F - 0x00, 0x07, 0x88, 0x0F, // 0007880F - 0x00, 0x07, 0x90, 0x0F, // 0007900F - 0x00, 0x07, 0x98, 0x07, // 00079807 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x1C, // 0006801C - 0x00, 0x0A, 0xC4, 0x81, // 000AC481 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0x80, 0x74, // 00098074 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x66, // 00071E66 - 0x00, 0x07, 0x64, 0x04, // 00076404 - 0x00, 0x07, 0x24, 0x08, // 00072408 - 0x00, 0x08, 0x88, 0x41, // 00088841 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x02, 0x12, 0x8F, // 0002128F - 0x00, 0x07, 0x56, 0x00, // 00075600 - 0x00, 0x07, 0x14, 0x01, // 00071401 - 0x00, 0x06, 0xA0, 0x08, // 0006A008 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x98, 0x20, // 00069820 - 0x00, 0x07, 0x90, 0x06, // 00079006 - 0x00, 0x08, 0x98, 0x42, // 00089842 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x02, 0x18, 0x00, // 00021800 - 0x00, 0x07, 0x56, 0x00, // 00075600 - 0x00, 0x07, 0x14, 0x02, // 00071402 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x90, 0x06, // 00079006 - 0x00, 0x02, 0x10, 0x54, // 00021054 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x64, 0x68, // 000B6468 - 0x00, 0x0A, 0xBE, 0xC4, // 000ABEC4 - 0x00, 0x09, 0xA4, 0x46, // 0009A446 - 0x00, 0x0B, 0x7F, 0xC7, // 000B7FC7 - 0x00, 0x06, 0xB8, 0x0F, // 0006B80F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA4, 0x05, // 0006A405 - 0x00, 0x06, 0xBC, 0x0D, // 0006BC0D - 0x00, 0x01, 0x41, 0x00, // 00014100 - 0x00, 0x06, 0xAC, 0x0F, // 0006AC0F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x06, 0xB4, 0x0D, // 0006B40D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xBD, 0x4A, // 0009BD4A - 0x00, 0x09, 0xB6, 0x7C, // 0009B67C - 0x00, 0x0A, 0xE4, 0x40, // 000AE440 - 0x00, 0x06, 0xB8, 0x0F, // 0006B80F - 0x00, 0x07, 0x6F, 0xFF, // 00076FFF - 0x00, 0x07, 0x2F, 0xFF, // 00072FFF - 0x00, 0x01, 0x03, 0xA6, // 000103A6 - 0x00, 0x0A, 0x2D, 0x7C, // 000A2D7C - 0x00, 0x09, 0xA4, 0x41, // 0009A441 - 0x00, 0x09, 0xBF, 0x41, // 0009BF41 - 0x00, 0x08, 0xE4, 0xC5, // 0008E4C5 - 0x00, 0x09, 0x1E, 0xC4, // 00091EC4 - 0x00, 0x02, 0x87, 0x10, // 00028710 - 0x00, 0x0A, 0xE3, 0xC3, // 000AE3C3 - 0x00, 0x08, 0xBF, 0xC5, // 0008BFC5 - 0x00, 0x07, 0x75, 0xD9, // 000775D9 - 0x00, 0x07, 0x36, 0x23, // 00073623 - 0x00, 0x09, 0xA7, 0x40, // 0009A740 - 0x00, 0x07, 0x6D, 0x14, // 00076D14 - 0x00, 0x0C, 0x36, 0x27, // 000C3627 - 0x00, 0x07, 0x2F, 0x2C, // 00072F2C - 0x00, 0x0B, 0x7D, 0x75, // 000B7D75 - 0x00, 0x08, 0xAD, 0xC4, // 0008ADC4 - 0x00, 0x00, 0xC7, 0x87, // 0000C787 - 0x00, 0x0A, 0x6E, 0xC6, // 000A6EC6 - 0x00, 0x09, 0xA4, 0x44, // 0009A444 - 0x00, 0x08, 0xAD, 0x41, // 0008AD41 - 0x00, 0x09, 0xA4, 0xC5, // 0009A4C5 - 0x00, 0x09, 0xAD, 0x43, // 0009AD43 - 0x00, 0x09, 0xB4, 0x6D, // 0009B46D - 0x00, 0x09, 0xA4, 0x49, // 0009A449 - 0x00, 0x0A, 0xF6, 0x7F, // 000AF67F - 0x00, 0x0A, 0x24, 0x77, // 000A2477 - 0x00, 0x02, 0x86, 0x30, // 00028630 - 0x00, 0x08, 0x36, 0x41, // 00083641 - 0x00, 0x08, 0xBE, 0x48, // 0008BE48 - 0x00, 0x02, 0x87, 0x18, // 00028718 - 0x00, 0x09, 0xA4, 0x49, // 0009A449 - 0x00, 0x08, 0xB6, 0x41, // 0008B641 - 0x00, 0x09, 0xA4, 0x77, // 0009A477 - 0x00, 0x0B, 0x7F, 0x74, // 000B7F74 - 0x00, 0x08, 0xB6, 0x44, // 0008B644 - 0x00, 0x02, 0x9E, 0x20, // 00029E20 - 0x00, 0x0B, 0x5B, 0x41, // 000B5B41 - 0x00, 0x08, 0x36, 0x41, // 00083641 - 0x00, 0x09, 0x9B, 0x53, // 00099B53 - 0x00, 0x08, 0x24, 0xC3, // 000824C3 - 0x00, 0x08, 0xB6, 0x41, // 0008B641 - 0x00, 0x00, 0xC7, 0x87, // 0000C787 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x09, 0xB6, 0x4F, // 0009B64F - 0x00, 0x08, 0x35, 0xC6, // 000835C6 - 0x00, 0x0B, 0x3F, 0xC7, // 000B3FC7 - 0x00, 0x0A, 0xEC, 0xC4, // 000AECC4 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0D, 0x00, // 00070D00 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x52, 0x7F, // 000B527F - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x69, // 00071E69 - 0x00, 0x0B, 0x64, 0x7F, // 000B647F - 0x00, 0x06, 0x90, 0x78, // 00069078 - 0x00, 0x0B, 0x6D, 0x7E, // 000B6D7E - 0x00, 0x06, 0x98, 0x22, // 00069822 - 0x00, 0x0A, 0xDF, 0x84, // 000ADF84 - 0x00, 0x0A, 0xDF, 0x85, // 000ADF85 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x98, 0x77, // 00069877 - 0x00, 0x06, 0x98, 0x7A, // 0006987A - 0x00, 0x06, 0xB8, 0x68, // 0006B868 - 0x00, 0x06, 0xB8, 0x69, // 0006B869 - 0x00, 0x06, 0xB8, 0x6F, // 0006B86F - 0x00, 0x06, 0xB8, 0x70, // 0006B870 - 0x00, 0x06, 0xB8, 0x71, // 0006B871 - 0x00, 0x06, 0xB8, 0x72, // 0006B872 - 0x00, 0x06, 0xB8, 0x73, // 0006B873 - 0x00, 0x06, 0xB8, 0x74, // 0006B874 - 0x00, 0x06, 0xB8, 0x75, // 0006B875 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x28, 0x6A, // 0006286A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA8, 0x61, // 0006A861 - 0x00, 0x07, 0x65, 0x5D, // 0007655D - 0x00, 0x07, 0x24, 0x10, // 00072410 - 0x00, 0x06, 0x30, 0x6C, // 0006306C - 0x00, 0x07, 0x6D, 0x59, // 00076D59 - 0x00, 0x07, 0x2C, 0x50, // 00072C50 - 0x00, 0x08, 0xB6, 0x40, // 0008B640 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x07, 0x65, 0x05, // 00076505 - 0x00, 0x07, 0x25, 0x70, // 00072570 - 0x00, 0x07, 0x6D, 0x15, // 00076D15 - 0x00, 0x07, 0x2D, 0x60, // 00072D60 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA0, 0x66, // 0006A066 - 0x00, 0x06, 0xA8, 0x67, // 0006A867 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x20, // 00071C20 - 0x00, 0x07, 0x7C, 0x01, // 00077C01 - 0x00, 0x07, 0x3D, 0xFF, // 00073DFF - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x00, // 00070E00 - 0x00, 0x07, 0x74, 0x01, // 00077401 - 0x00, 0x07, 0x35, 0xFF, // 000735FF - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x26, 0x98, // 00072698 - 0x00, 0x07, 0x6C, 0x01, // 00076C01 - 0x00, 0x07, 0x2C, 0x90, // 00072C90 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x90, // 00070490 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x06, 0x98, 0x15, // 00069815 - 0x00, 0x06, 0xB8, 0x16, // 0006B816 - 0x00, 0x06, 0xB4, 0x14, // 0006B414 - 0x00, 0x06, 0x88, 0x28, // 00068828 - 0x00, 0x06, 0x88, 0x22, // 00068822 - 0x00, 0x06, 0x90, 0x2E, // 0006902E - 0x00, 0x06, 0x90, 0x1C, // 0006901C - 0x00, 0x06, 0x90, 0x20, // 00069020 - 0x00, 0x06, 0x9C, 0x1C, // 00069C1C - 0x00, 0x06, 0xB4, 0x26, // 0006B426 - 0x00, 0x06, 0xB4, 0x24, // 0006B424 - 0x00, 0x06, 0xB4, 0x2E, // 0006B42E - 0x00, 0x06, 0xA0, 0x29, // 0006A029 - 0x00, 0x06, 0xA8, 0x1D, // 0006A81D - 0x00, 0x06, 0xA8, 0x21, // 0006A821 - 0x00, 0x06, 0xA8, 0x2F, // 0006A82F - 0x00, 0x06, 0x84, 0x1D, // 0006841D - 0x00, 0x08, 0x3F, 0x41, // 00083F41 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x01, 0x01, 0x21, // 00010121 - 0x00, 0x06, 0xB8, 0x6E, // 0006B86E - 0x00, 0x07, 0xA8, 0x0F, // 0007A80F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x38, 0x78, // 00063878 - 0x00, 0x07, 0x44, 0x05, // 00074405 - 0x00, 0x07, 0x05, 0x89, // 00070589 - 0x00, 0x07, 0x4C, 0x05, // 00074C05 - 0x00, 0x07, 0x0D, 0x4B, // 00070D4B - 0x00, 0x07, 0x54, 0x05, // 00075405 - 0x00, 0x07, 0x15, 0x59, // 00071559 - 0x00, 0x07, 0x5C, 0x05, // 00075C05 - 0x00, 0x07, 0x1D, 0xBD, // 00071DBD - 0x00, 0x08, 0xBF, 0x40, // 0008BF40 - 0x00, 0x02, 0x9F, 0x40, // 00029F40 - 0x00, 0x07, 0x44, 0x05, // 00074405 - 0x00, 0x07, 0x04, 0xC8, // 000704C8 - 0x00, 0x07, 0x4C, 0x05, // 00074C05 - 0x00, 0x07, 0x0C, 0xEE, // 00070CEE - 0x00, 0x07, 0x54, 0x05, // 00075405 - 0x00, 0x07, 0x14, 0xF8, // 000714F8 - 0x00, 0x07, 0x5C, 0x05, // 00075C05 - 0x00, 0x07, 0x1D, 0x16, // 00071D16 - 0x00, 0x06, 0x80, 0x09, // 00068009 - 0x00, 0x06, 0x88, 0x0D, // 0006880D - 0x00, 0x06, 0x90, 0x0C, // 0006900C - 0x00, 0x06, 0x98, 0x0B, // 0006980B - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x27, 0x20, // 00072720 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x3F, 0x00, // 00043F00 - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x0A, 0xFF, 0x44, // 000AFF44 - 0x00, 0x06, 0xA0, 0x5B, // 0006A05B - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x27, 0x00, // 00072700 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x10, // 00071C10 - 0x00, 0x08, 0x80, 0x40, // 00088040 - 0x00, 0x06, 0xA0, 0x5B, // 0006A05B - 0x00, 0x02, 0x9E, 0x20, // 00029E20 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x64, 0x04, // 00076404 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x1C, 0x30, // 00071C30 - 0x00, 0x08, 0x24, 0xC7, // 000824C7 - 0x00, 0x06, 0x88, 0x4B, // 0006884B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x9C, 0x06, // 00069C06 - 0x00, 0x06, 0xA0, 0x5B, // 0006A05B - 0x00, 0x06, 0xA4, 0x76, // 0006A476 - 0x00, 0x06, 0x28, 0x77, // 00062877 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x40, // 00071640 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x90, // 00072490 - 0x00, 0x0B, 0x49, 0x7D, // 000B497D - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x6C, // 0007066C - 0x00, 0x06, 0x90, 0x1E, // 0006901E - 0x00, 0x06, 0xA0, 0x1F, // 0006A01F - 0x00, 0x06, 0x88, 0x14, // 00068814 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x04, 0x17, 0x08, // 00041708 - 0x00, 0x04, 0x1F, 0x08, // 00041F08 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x08, 0xAD, 0x40, // 0008AD40 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0B, 0x49, 0x40, // 000B4940 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x07, 0x88, 0x0D, // 0007880D - 0x00, 0x07, 0x90, 0x0D, // 0007900D - 0x00, 0x07, 0x98, 0x0D, // 0007980D - 0x00, 0x07, 0xA0, 0x0D, // 0007A00D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0xC1, 0x05, // 0000C105 - 0x00, 0x07, 0x44, 0x04, // 00074404 - 0x00, 0x07, 0x07, 0x43, // 00070743 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x0F, // 0006800F - 0x00, 0x06, 0x38, 0x61, // 00063861 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0xBF, 0x40, // 0008BF40 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x13, 0x6E, // 0002136E - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x20, // 00071420 - 0x00, 0x06, 0x18, 0x1C, // 0006181C - 0x00, 0x09, 0x12, 0xC0, // 000912C0 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x10, 0x6E, // 0006106E - 0x00, 0x08, 0x9B, 0x44, // 00089B44 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x1B, 0xC2, // 00081BC2 - 0x00, 0x07, 0x45, 0x5D, // 0007455D - 0x00, 0x07, 0x04, 0x10, // 00070410 - 0x00, 0x07, 0x4D, 0x59, // 00074D59 - 0x00, 0x07, 0x0C, 0x50, // 00070C50 - 0x00, 0x06, 0x98, 0x1C, // 0006981C - 0x00, 0x00, 0xC1, 0x04, // 0000C104 - 0x00, 0x07, 0x54, 0x04, // 00075404 - 0x00, 0x07, 0x17, 0x60, // 00071760 - 0x00, 0x09, 0x80, 0x48, // 00098048 - 0x00, 0x09, 0x89, 0x78, // 00098978 - 0x00, 0x08, 0x38, 0xC1, // 000838C1 - 0x00, 0x06, 0x90, 0x0F, // 0006900F - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x65, // 00071665 - 0x00, 0x0B, 0x49, 0x40, // 000B4940 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x22, // 00069022 - 0x00, 0x07, 0x88, 0x03, // 00078803 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x69, // 00068869 - 0x00, 0x06, 0x88, 0x61, // 00068861 - 0x00, 0x06, 0x08, 0x6F, // 0006086F - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x08, 0x89, 0x41, // 00088941 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x13, 0x8B, // 0002138B - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0x88, 0x42, // 00088842 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x00, 0xC1, 0x01, // 0000C101 - 0x00, 0x07, 0x44, 0x04, // 00074404 - 0x00, 0x07, 0x07, 0x7F, // 0007077F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x6F, // 0006906F - 0x00, 0x06, 0x80, 0x0F, // 0006800F - 0x00, 0x06, 0x10, 0x66, // 00061066 - 0x00, 0x08, 0x90, 0xC2, // 000890C2 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x16, 0x14, // 00021614 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x10, 0x67, // 00061067 - 0x00, 0x08, 0x91, 0xC2, // 000891C2 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x16, 0x14, // 00021614 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x10, 0x76, // 00061076 - 0x00, 0x06, 0x08, 0x7A, // 0006087A - 0x00, 0x0A, 0x00, 0xC2, // 000A00C2 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x20, // 00071420 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x90, 0xC2, // 000890C2 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x0C, 0x26, // 00060C26 - 0x00, 0x06, 0x14, 0x1C, // 0006141C - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x00, // 00071E00 - 0x00, 0x08, 0x89, 0xC2, // 000889C2 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x09, 0xC3, // 000809C3 - 0x00, 0x06, 0x24, 0x24, // 00062424 - 0x00, 0x09, 0x22, 0xC4, // 000922C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x24, 0xC3, // 000824C3 - 0x00, 0x09, 0x29, 0xC4, // 000929C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x0C, 0x40, // 00080C40 - 0x00, 0x06, 0x24, 0x2E, // 0006242E - 0x00, 0x09, 0x22, 0xC4, // 000922C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x24, 0xC3, // 000824C3 - 0x00, 0x09, 0x29, 0xC4, // 000929C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x0C, 0x40, // 00080C40 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2C, 0x20, // 00072C20 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x89, 0xC5, // 000889C5 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x6D, 0x70, // 000B6D70 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x04, 0xB8, 0x0D, // 0004B80D - 0x00, 0x06, 0xA8, 0x79, // 0006A879 - 0x00, 0x09, 0xBF, 0x7C, // 0009BF7C - 0x00, 0x00, 0xC1, 0x01, // 0000C101 - 0x00, 0x07, 0x44, 0x04, // 00074404 - 0x00, 0x07, 0x07, 0xC5, // 000707C5 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x0F, // 0006800F - 0x00, 0x06, 0x18, 0x76, // 00061876 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x9B, 0x40, // 00089B40 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x08, 0x29, 0x40, // 00082940 - 0x00, 0x08, 0x08, 0x40, // 00080840 - 0x00, 0x0C, 0x31, 0x08, // 000C3108 - 0x00, 0x0E, 0x31, 0x09, // 000E3109 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x10, 0x73, // 00061073 - 0x00, 0x0C, 0x01, 0x08, // 000C0108 - 0x00, 0x0E, 0x01, 0x09, // 000E0109 - 0x00, 0x0A, 0xF6, 0x7C, // 000AF67C - 0x00, 0x09, 0xA7, 0x7F, // 0009A77F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x36, 0x42, // 00083642 - 0x00, 0x0A, 0xC0, 0x7C, // 000AC07C - 0x00, 0x09, 0xBF, 0x7F, // 0009BF7F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x00, 0x42, // 00080042 - 0x00, 0x06, 0x20, 0x79, // 00062079 - 0x00, 0x08, 0x12, 0x42, // 00081242 - 0x00, 0x08, 0xA4, 0x41, // 0008A441 - 0x00, 0x07, 0xF4, 0x0C, // 0007F40C - 0x00, 0x07, 0xC4, 0x0C, // 0007C40C - 0x00, 0x02, 0x9F, 0x50, // 00029F50 - 0x00, 0x06, 0x90, 0x73, // 00069073 - 0x00, 0x06, 0xA0, 0x79, // 0006A079 - 0x00, 0x08, 0x9B, 0x41, // 00089B41 - 0x00, 0x02, 0x87, 0x20, // 00028720 - 0x00, 0x08, 0x0D, 0x40, // 00080D40 - 0x00, 0x08, 0x05, 0x40, // 00080540 - 0x00, 0x02, 0x13, 0xCB, // 000213CB - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x02, 0x13, 0xBE, // 000213BE - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x00, 0x74, // 00060074 - 0x00, 0x06, 0x0C, 0x1C, // 00060C1C - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x14, 0x80, // 00071480 - 0x00, 0x08, 0x80, 0x40, // 00088040 - 0x00, 0x02, 0x9E, 0x48, // 00029E48 - 0x00, 0x08, 0x91, 0xC2, // 000891C2 - 0x00, 0x02, 0x89, 0x38, // 00028938 - 0x00, 0x02, 0x15, 0xDB, // 000215DB - 0x00, 0x07, 0x44, 0x04, // 00074404 - 0x00, 0x07, 0x07, 0xF8, // 000707F8 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x0E, // 0006800E - 0x00, 0x02, 0x16, 0x52, // 00021652 - 0x00, 0x07, 0x4C, 0x04, // 00074C04 - 0x00, 0x07, 0x0F, 0xFF, // 00070FFF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x0F, // 0006880F - 0x00, 0x06, 0x00, 0x69, // 00060069 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x65, // 00070E65 - 0x00, 0x08, 0x00, 0x41, // 00080041 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x20, // 00071420 - 0x00, 0x06, 0x18, 0x76, // 00061876 - 0x00, 0x0A, 0x12, 0xC3, // 000A12C3 - 0x00, 0x06, 0x88, 0x22, // 00068822 - 0x00, 0x08, 0x92, 0x41, // 00089241 - 0x00, 0x0A, 0xC0, 0xC2, // 000AC0C2 - 0x00, 0x04, 0x0F, 0x00, // 00040F00 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x14, 0x14, // 00021414 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0x09, 0x41, // 00080941 - 0x00, 0x06, 0x00, 0x6A, // 0006006A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x69, // 00068069 - 0x00, 0x07, 0x88, 0x07, // 00078807 - 0x00, 0x06, 0x80, 0x6F, // 0006806F - 0x00, 0x00, 0xC1, 0x03, // 0000C103 - 0x00, 0x07, 0x44, 0x05, // 00074405 - 0x00, 0x07, 0x04, 0x1B, // 0007041B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x0F, // 0006800F - 0x00, 0x06, 0x04, 0x26, // 00060426 - 0x00, 0x06, 0x28, 0x7A, // 0006287A - 0x00, 0x06, 0x38, 0x7A, // 0006387A - 0x00, 0x06, 0x0C, 0x1C, // 00060C1C - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x06, 0x18, 0x70, // 00061870 - 0x00, 0x08, 0x80, 0xC1, // 000880C1 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x07, 0x74, 0x00, // 00077400 - 0x00, 0x07, 0x34, 0x40, // 00073440 - 0x00, 0x06, 0x08, 0x74, // 00060874 - 0x00, 0x08, 0xA5, 0x41, // 0008A541 - 0x00, 0x02, 0x9E, 0x30, // 00029E30 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x08, 0xA0, 0xC6, // 0008A0C6 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x02, 0x81, 0x80, // 00028180 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x70, // 00029F70 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x21, // 00072421 - 0x00, 0x08, 0x93, 0xC0, // 000893C0 - 0x00, 0x06, 0x80, 0x70, // 00068070 - 0x00, 0x06, 0xA8, 0x7A, // 0006A87A - 0x00, 0x08, 0x94, 0xC2, // 000894C2 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x16, 0x11, // 00021611 - 0x00, 0x07, 0x44, 0x05, // 00074405 - 0x00, 0x07, 0x04, 0x40, // 00070440 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x0F, // 0006800F - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x01, // 00070C01 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x81, 0x10, // 00028110 - 0x00, 0x02, 0x14, 0xAC, // 000214AC - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x80, 0x07, // 00078007 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0A, 0xC7, 0x81, // 000AC781 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x14, 0xC1, // 000214C1 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x69, // 00070669 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x01, // 00070C01 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x6C, // 0007066C - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x06, 0x10, 0x7A, // 0006107A - 0x00, 0x06, 0x18, 0x77, // 00061877 - 0x00, 0x04, 0x25, 0x08, // 00042508 - 0x00, 0x04, 0x2D, 0x08, // 00042D08 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0x3D, 0x08, // 00043D08 - 0x00, 0x0A, 0xCF, 0x81, // 000ACF81 - 0x00, 0x02, 0x9F, 0x70, // 00029F70 - 0x00, 0x06, 0x0C, 0x6A, // 00060C6A - 0x00, 0x08, 0x9B, 0x40, // 00089B40 - 0x00, 0x02, 0x9E, 0x50, // 00029E50 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9F, 0x30, // 00029F30 - 0x00, 0x0B, 0x49, 0x41, // 000B4941 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x02, 0x81, 0x08, // 00028108 - 0x00, 0x06, 0x0C, 0x65, // 00060C65 - 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F - 0x00, 0x02, 0x81, 0x70, // 00028170 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x06, 0x0C, 0x6A, // 00060C6A - 0x00, 0x08, 0x9B, 0x40, // 00089B40 - 0x00, 0x02, 0x9F, 0x50, // 00029F50 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9F, 0x30, // 00029F30 - 0x00, 0x0B, 0x49, 0x41, // 000B4941 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x04, 0x2F, 0x08, // 00042F08 - 0x00, 0x04, 0x37, 0x08, // 00043708 - 0x00, 0x04, 0x3F, 0x08, // 00043F08 - 0x00, 0x02, 0x81, 0x08, // 00028108 - 0x00, 0x06, 0x0C, 0x65, // 00060C65 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x06, 0x04, 0x6A, // 0006046A - 0x00, 0x06, 0x14, 0x65, // 00061465 - 0x00, 0x09, 0x00, 0xC2, // 000900C2 - 0x00, 0x08, 0x11, 0x41, // 00081141 - 0x00, 0x02, 0x9F, 0x18, // 00029F18 - 0x00, 0x08, 0x10, 0x41, // 00081041 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x08, 0x40, // 00080840 - 0x00, 0x07, 0xA0, 0x0D, // 0007A00D - 0x00, 0x07, 0xA8, 0x0D, // 0007A80D - 0x00, 0x07, 0xB0, 0x0D, // 0007B00D - 0x00, 0x06, 0x8C, 0x6A, // 00068C6A - 0x00, 0x07, 0xB8, 0x0D, // 0007B80D - 0x00, 0x06, 0x98, 0x77, // 00069877 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x69, // 00070669 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x02, // 00070C02 - 0x00, 0x06, 0x10, 0x7A, // 0006107A - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0A, 0xC3, 0x81, // 000AC381 - 0x00, 0x02, 0x9F, 0x58, // 00029F58 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9E, 0x40, // 00029E40 - 0x00, 0x0B, 0x52, 0x7E, // 000B527E - 0x00, 0x02, 0x16, 0x2E, // 0002162E - 0x00, 0x07, 0x44, 0x05, // 00074405 - 0x00, 0x07, 0x04, 0xAC, // 000704AC - 0x00, 0x06, 0x90, 0x7A, // 0006907A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x0F, // 0006800F - 0x00, 0x02, 0x81, 0x18, // 00028118 - 0x00, 0x08, 0x9A, 0x42, // 00089A42 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0B, 0x52, 0x7F, // 000B527F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x7A, // 0006907A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x00, 0x6D, // 0006006D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xC0, 0x6D, // 0006C06D - 0x00, 0x02, 0x3F, 0xCC, // 00023FCC - 0x00, 0x07, 0x6C, 0x05, // 00076C05 - 0x00, 0x07, 0x2C, 0xBA, // 00072CBA - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x13, 0x3B, // 0002133B - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0xC1, 0x80, // 0000C180 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x10, 0x68, // 00061068 - 0x00, 0x04, 0x04, 0x08, // 00040408 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x02, 0x14, 0xDD, // 000214DD - 0x00, 0x06, 0x28, 0x6C, // 0006286C - 0x00, 0x04, 0x0C, 0x08, // 00040C08 - 0x00, 0x07, 0x64, 0x3F, // 0007643F - 0x00, 0x07, 0x27, 0xFF, // 000727FF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xA4, 0x44, // 0009A444 - 0x00, 0x04, 0x14, 0x00, // 00041400 - 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 - 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 - 0x00, 0x0A, 0xD2, 0xC4, // 000AD2C4 - 0x00, 0x09, 0x80, 0x48, // 00098048 - 0x00, 0x09, 0xB1, 0x78, // 0009B178 - 0x00, 0x08, 0x00, 0xC6, // 000800C6 - 0x00, 0x09, 0x89, 0x48, // 00098948 - 0x00, 0x09, 0xB2, 0x78, // 0009B278 - 0x00, 0x08, 0x09, 0xC6, // 000809C6 - 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 - 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 - 0x00, 0x08, 0xAD, 0x40, // 0008AD40 - 0x00, 0x02, 0x9F, 0x30, // 00029F30 - 0x00, 0x09, 0x90, 0x48, // 00099048 - 0x00, 0x09, 0xB0, 0x78, // 0009B078 - 0x00, 0x08, 0x02, 0xC6, // 000802C6 - 0x00, 0x09, 0x91, 0x48, // 00099148 - 0x00, 0x09, 0xB1, 0x78, // 0009B178 - 0x00, 0x08, 0x0A, 0xC6, // 00080AC6 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 - 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x18, 0x68, // 00061868 - 0x00, 0x06, 0x00, 0x1C, // 0006001C - 0x00, 0x09, 0x9B, 0x7D, // 00099B7D - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x06, 0x08, 0x20, // 00060820 - 0x00, 0x06, 0x10, 0x6E, // 0006106E - 0x00, 0x08, 0x81, 0xC0, // 000881C0 - 0x00, 0x09, 0x03, 0xC0, // 000903C0 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x01, 0x0A, 0x20, // 00010A20 - 0x00, 0x0B, 0x49, 0x7F, // 000B497F - 0x00, 0x04, 0x14, 0x00, // 00041400 - 0x00, 0x0B, 0x76, 0x78, // 000B7678 - 0x00, 0x09, 0x92, 0x48, // 00099248 - 0x00, 0x09, 0x89, 0x48, // 00098948 - 0x00, 0x09, 0x9A, 0x68, // 00099A68 - 0x00, 0x08, 0x09, 0xC3, // 000809C3 - 0x00, 0x08, 0x9F, 0xC1, // 00089FC1 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x06, 0xB0, 0x68, // 0006B068 - 0x00, 0x09, 0x92, 0x48, // 00099248 - 0x00, 0x09, 0x89, 0x48, // 00098948 - 0x00, 0x09, 0x9A, 0x68, // 00099A68 - 0x00, 0x08, 0x09, 0xC3, // 000809C3 - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x04, 0x14, 0x08, // 00041408 - 0x00, 0x08, 0x9F, 0xC1, // 00089FC1 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x06, 0xB0, 0x68, // 0006B068 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x30, 0x71, // 00063071 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x08, 0xB6, 0x40, // 0008B640 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x02, 0x15, 0x31, // 00021531 - 0x00, 0x06, 0x18, 0x7A, // 0006187A - 0x00, 0x06, 0x30, 0x72, // 00063072 - 0x00, 0x07, 0x06, 0x00, // 00070600 - 0x00, 0x06, 0x08, 0x28, // 00060828 - 0x00, 0x08, 0x38, 0x41, // 00083841 - 0x00, 0x08, 0x90, 0xC1, // 000890C1 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x07, 0x54, 0x03, // 00075403 - 0x00, 0x07, 0x17, 0xF0, // 000717F0 - 0x00, 0x06, 0xB8, 0x22, // 0006B822 - 0x00, 0x01, 0x04, 0x90, // 00010490 - 0x00, 0x09, 0x92, 0x48, // 00099248 - 0x00, 0x0A, 0xE7, 0x8A, // 000AE78A - 0x00, 0x0A, 0xEF, 0x8A, // 000AEF8A - 0x00, 0x08, 0x36, 0x41, // 00083641 - 0x00, 0x09, 0xAD, 0x78, // 0009AD78 - 0x00, 0x08, 0x24, 0xC5, // 000824C5 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xB0, 0x72, // 0006B072 - 0x00, 0x07, 0xE0, 0x0E, // 0007E00E - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x08, 0x9B, 0x40, // 00089B40 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x06, 0xB0, 0x71, // 0006B071 - 0x00, 0x06, 0x08, 0x20, // 00060820 - 0x00, 0x06, 0x00, 0x1C, // 0006001C - 0x00, 0x06, 0x10, 0x6E, // 0006106E - 0x00, 0x08, 0x81, 0xC0, // 000881C0 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1D, 0xE8, // 00071DE8 - 0x00, 0x0B, 0x76, 0x7F, // 000B767F - 0x00, 0x08, 0x93, 0xC0, // 000893C0 - 0x00, 0x02, 0x88, 0x08, // 00028808 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x05, 0x38, // 00070538 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xB0, 0x71, // 0006B071 - 0x00, 0x06, 0xB8, 0x28, // 0006B828 - 0x00, 0x06, 0x80, 0x4B, // 0006804B - 0x00, 0x06, 0x00, 0x1C, // 0006001C - 0x00, 0x06, 0x08, 0x20, // 00060820 - 0x00, 0x06, 0x10, 0x6E, // 0006106E - 0x00, 0x08, 0x81, 0xC0, // 000881C0 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x06, 0x18, 0x68, // 00061868 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x0A, 0x10, 0x44, // 000A1044 - 0x00, 0x0A, 0x20, 0x42, // 000A2042 - 0x00, 0x08, 0x12, 0xC4, // 000812C4 - 0x00, 0x09, 0x03, 0xC2, // 000903C2 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0x00, 0x7C, // 000A007C - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x20, // 00070420 - 0x00, 0x07, 0x54, 0x05, // 00075405 - 0x00, 0x07, 0x15, 0x7C, // 0007157C - 0x00, 0x0B, 0x49, 0x41, // 000B4941 - 0x00, 0x0B, 0x64, 0x7F, // 000B647F - 0x00, 0x0B, 0x5B, 0x78, // 000B5B78 - 0x00, 0x09, 0xA4, 0x7C, // 0009A47C - 0x00, 0x06, 0x90, 0x0A, // 0006900A - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x09, 0x94, 0x83, // 00099483 - 0x00, 0x08, 0x36, 0x41, // 00083641 - 0x00, 0x09, 0x89, 0x41, // 00098941 - 0x00, 0x09, 0x92, 0x41, // 00099241 - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x09, 0xC4, // 000809C4 - 0x00, 0x01, 0x04, 0x13, // 00010413 - 0x00, 0x08, 0xAF, 0xC1, // 0008AFC1 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x00, 0xC1, 0x82, // 0000C182 - 0x00, 0x08, 0x36, 0x41, // 00083641 - 0x00, 0x09, 0x89, 0x41, // 00098941 - 0x00, 0x09, 0x92, 0x41, // 00099241 - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x09, 0xC4, // 000809C4 - 0x00, 0x08, 0xAF, 0xC1, // 0008AFC1 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x00, 0xC1, 0x82, // 0000C182 - 0x00, 0x04, 0x2C, 0x08, // 00042C08 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x15, 0x62, // 00021562 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x02, 0x81, 0x08, // 00028108 - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x08, 0xAE, 0x54, // 0008AE54 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xB0, 0x68, // 0006B068 - 0x00, 0x04, 0x34, 0x08, // 00043408 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x10, 0x68, // 00061068 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x82, 0x47, // 00088247 - 0x00, 0x02, 0x88, 0x08, // 00028808 - 0x00, 0x02, 0x15, 0x96, // 00021596 - 0x00, 0x0B, 0x64, 0x41, // 000B6441 - 0x00, 0x08, 0x9A, 0x54, // 00089A54 - 0x00, 0x09, 0xA4, 0x78, // 0009A478 - 0x00, 0x0A, 0xEC, 0x8C, // 000AEC8C - 0x00, 0x0A, 0xE4, 0x7F, // 000AE47F - 0x00, 0x0A, 0xF4, 0x84, // 000AF484 - 0x00, 0x0A, 0xF4, 0x8C, // 000AF48C - 0x00, 0x0A, 0xCC, 0x84, // 000ACC84 - 0x00, 0x07, 0x64, 0x3F, // 0007643F - 0x00, 0x07, 0x27, 0xFF, // 000727FF - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xA4, 0x44, // 0009A444 - 0x00, 0x09, 0x85, 0xC2, // 000985C2 - 0x00, 0x09, 0x86, 0xC3, // 000986C3 - 0x00, 0x08, 0x00, 0xC0, // 000800C0 - 0x00, 0x08, 0x12, 0x50, // 00081250 - 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 - 0x00, 0x08, 0x9A, 0x54, // 00089A54 - 0x00, 0x02, 0x87, 0x18, // 00028718 - 0x00, 0x08, 0x92, 0x54, // 00089254 - 0x00, 0x08, 0x2E, 0x40, // 00082E40 - 0x00, 0x08, 0x31, 0x40, // 00083140 - 0x00, 0x08, 0x9A, 0x54, // 00089A54 - 0x00, 0x09, 0x8D, 0xC2, // 00098DC2 - 0x00, 0x09, 0x8E, 0xC3, // 00098EC3 - 0x00, 0x08, 0x09, 0xC1, // 000809C1 - 0x00, 0x08, 0x12, 0x50, // 00081250 - 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 - 0x00, 0x08, 0x9A, 0x54, // 00089A54 - 0x00, 0x02, 0x87, 0x08, // 00028708 - 0x00, 0x08, 0x92, 0x54, // 00089254 - 0x00, 0x06, 0x28, 0x6C, // 0006286C - 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 - 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 - 0x00, 0x06, 0x90, 0x68, // 00069068 - 0x00, 0x08, 0xAD, 0x40, // 0008AD40 - 0x00, 0x02, 0x9F, 0x30, // 00029F30 - 0x00, 0x09, 0x90, 0x48, // 00099048 - 0x00, 0x09, 0xB0, 0x78, // 0009B078 - 0x00, 0x08, 0x02, 0xC6, // 000802C6 - 0x00, 0x09, 0x91, 0x48, // 00099148 - 0x00, 0x09, 0xB1, 0x78, // 0009B178 - 0x00, 0x08, 0x0A, 0xC6, // 00080AC6 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 - 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 - 0x00, 0x02, 0x81, 0x18, // 00028118 - 0x00, 0x07, 0x7C, 0x01, // 00077C01 - 0x00, 0x07, 0x3C, 0xC0, // 00073CC0 - 0x00, 0x07, 0x74, 0x01, // 00077401 - 0x00, 0x07, 0x35, 0x60, // 00073560 - 0x00, 0x06, 0x20, 0x2E, // 0006202E - 0x00, 0x06, 0x18, 0x1C, // 0006181C - 0x00, 0x06, 0x10, 0x6E, // 0006106E - 0x00, 0x06, 0x00, 0x75, // 00060075 - 0x00, 0x06, 0x08, 0x7A, // 0006087A - 0x00, 0x06, 0xA0, 0x20, // 0006A020 - 0x00, 0x08, 0x9C, 0xC3, // 00089CC3 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x1B, 0xC2, // 00081BC2 - 0x00, 0x09, 0x16, 0xC3, // 000916C3 - 0x00, 0x02, 0x89, 0x10, // 00028910 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x30, // 00070430 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9E, 0x20, // 00029E20 - 0x00, 0x08, 0x97, 0xC3, // 000897C3 - 0x00, 0x02, 0x89, 0x10, // 00028910 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x70, // 00070470 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x98, 0x7F, // 0006987F - 0x00, 0x06, 0x84, 0x06, // 00068406 - 0x00, 0x06, 0x80, 0x75, // 00068075 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x15, 0xFC, // 000215FC - 0x00, 0x07, 0x4C, 0x05, // 00074C05 - 0x00, 0x07, 0x0D, 0xE2, // 00070DE2 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x0F, // 0006880F - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x32, // 00070E32 - 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x8C, 0x22, // 00068C22 - 0x00, 0x06, 0x5C, 0x14, // 00065C14 - 0x00, 0x06, 0xA8, 0x74, // 0006A874 - 0x00, 0x06, 0x5C, 0x24, // 00065C24 - 0x00, 0x06, 0x5C, 0x26, // 00065C26 - 0x00, 0x06, 0x5C, 0x2E, // 00065C2E - 0x00, 0x06, 0x5C, 0x25, // 00065C25 - 0x00, 0x06, 0x5C, 0x27, // 00065C27 - 0x00, 0x06, 0x5C, 0x2F, // 00065C2F - 0x00, 0x06, 0x5C, 0x44, // 00065C44 - 0x00, 0x04, 0x80, 0x03, // 00048003 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0xC1, 0x06, // 0000C106 - 0x00, 0x06, 0x84, 0x74, // 00068474 - 0x00, 0x06, 0x84, 0x43, // 00068443 - 0x00, 0x06, 0x5C, 0x3C, // 00065C3C - 0x00, 0x06, 0x5C, 0x3B, // 00065C3B - 0x00, 0x06, 0x5C, 0x54, // 00065C54 - 0x00, 0x06, 0x5C, 0x53, // 00065C53 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x25, // 00070E25 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA8, 0x74, // 0006A874 - 0x00, 0x06, 0x8C, 0x22, // 00068C22 - 0x00, 0x06, 0x5C, 0x14, // 00065C14 - 0x00, 0x06, 0x5C, 0x24, // 00065C24 - 0x00, 0x06, 0x5C, 0x26, // 00065C26 - 0x00, 0x06, 0x5C, 0x2E, // 00065C2E - 0x00, 0x06, 0x5C, 0x25, // 00065C25 - 0x00, 0x06, 0x5C, 0x27, // 00065C27 - 0x00, 0x06, 0x5C, 0x2F, // 00065C2F - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x06, 0x5C, 0x44, // 00065C44 - 0x00, 0x06, 0x5C, 0x43, // 00065C43 - 0x00, 0x06, 0x5C, 0x3C, // 00065C3C - 0x00, 0x06, 0x5C, 0x3B, // 00065C3B - 0x00, 0x06, 0x5C, 0x54, // 00065C54 - 0x00, 0x06, 0x5C, 0x53, // 00065C53 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x02, // 00071C02 - 0x00, 0x02, 0x81, 0x10, // 00028110 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x01, // 00071C01 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x65, // 00071665 - 0x00, 0x06, 0x00, 0x61, // 00060061 - 0x00, 0x06, 0x20, 0x7A, // 0006207A - 0x00, 0x07, 0x4C, 0x05, // 00074C05 - 0x00, 0x06, 0x9C, 0x7F, // 00069C7F - 0x00, 0x06, 0x90, 0x22, // 00069022 - 0x00, 0x04, 0x1F, 0x00, // 00041F00 - 0x00, 0x08, 0xA4, 0x40, // 0008A440 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x07, 0x0C, 0x14, // 00070C14 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x98, 0x1F, // 0007981F - 0x00, 0x04, 0x17, 0x00, // 00041700 - 0x00, 0x08, 0xA4, 0x40, // 0008A440 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x06, 0x00, 0x6A, // 0006006A - 0x00, 0x08, 0x12, 0x41, // 00081241 - 0x00, 0x06, 0x88, 0x0F, // 0006880F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x61, // 00068061 - 0x00, 0x07, 0x90, 0x07, // 00079007 - 0x00, 0x06, 0x3C, 0x26, // 00063C26 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x08, 0x3F, 0x40, // 00083F40 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x06, 0x1C, 0x1C, // 00061C1C - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xBC, 0x1C, // 0006BC1C - 0x00, 0x04, 0xB0, 0x0D, // 0004B00D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xB6, 0x7C, // 0009B67C - 0x00, 0x01, 0x05, 0x10, // 00010510 - 0x00, 0x09, 0xA6, 0x7F, // 0009A67F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x00, 0x42, // 00080042 - 0x00, 0x0B, 0x49, 0x40, // 000B4940 - 0x00, 0x09, 0xB6, 0x7F, // 0009B67F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x09, 0x42, // 00080942 - 0x00, 0x07, 0x84, 0x0C, // 0007840C - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x09, 0xA6, 0x7F, // 0009A67F - 0x00, 0x07, 0x8C, 0x0C, // 00078C0C - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x30, // 00072430 - 0x00, 0x08, 0x2D, 0x41, // 00082D41 - 0x00, 0x08, 0xA4, 0xC5, // 0008A4C5 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x16, 0x35, // 00021635 - 0x00, 0x02, 0x81, 0x08, // 00028108 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x9C, 0x1C, // 00069C1C - 0x00, 0x06, 0x04, 0x6A, // 0006046A - 0x00, 0x06, 0x08, 0x77, // 00060877 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x17, 0x12, // 00071712 - 0x00, 0x08, 0x80, 0x40, // 00088040 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x16, 0x71, // 00021671 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x02, 0x88, 0x08, // 00028808 - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x06, 0x24, 0x66, // 00062466 - 0x00, 0x06, 0x2C, 0x67, // 00062C67 - 0x00, 0x06, 0x34, 0x68, // 00063468 - 0x00, 0x06, 0x3C, 0x69, // 00063C69 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0B, 0x64, 0xC4, // 000B64C4 - 0x00, 0x0B, 0x6D, 0xC5, // 000B6DC5 - 0x00, 0x0B, 0x76, 0xC6, // 000B76C6 - 0x00, 0x0B, 0x7F, 0xC7, // 000B7FC7 - 0x00, 0x08, 0x25, 0x8C, // 0008258C - 0x00, 0x08, 0x2D, 0x8D, // 00082D8D - 0x00, 0x08, 0x35, 0x8E, // 0008358E - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x08, 0x3D, 0x8F, // 00083D8F - 0x00, 0x06, 0x84, 0x6A, // 0006846A - 0x00, 0x07, 0xA0, 0x0D, // 0007A00D - 0x00, 0x07, 0xA8, 0x0D, // 0007A80D - 0x00, 0x07, 0xB0, 0x0D, // 0007B00D - 0x00, 0x07, 0xB8, 0x0D, // 0007B80D - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x06, 0x90, 0x22, // 00069022 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x04, 0x2F, 0x08, // 00042F08 - 0x00, 0x04, 0x37, 0x08, // 00043708 - 0x00, 0x04, 0x3F, 0x08, // 00043F08 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x06, 0x84, 0x6A, // 0006846A - 0x00, 0x07, 0xA0, 0x0D, // 0007A00D - 0x00, 0x07, 0xA8, 0x0D, // 0007A80D - 0x00, 0x07, 0xB0, 0x0D, // 0007B00D - 0x00, 0x07, 0xB8, 0x0D, // 0007B80D - 0x00, 0x00, 0x00, 0x00, // 00000000 + 0xe0, 0x00, 0x06, 0x84, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x47, 0xC0, // 000747C0 + 0x00, 0x07, 0x04, 0x00, // 00070400 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xC0, 0x6B, // 0006C06B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x90, // 00070690 + 0x00, 0x07, 0x4C, 0x07, // 00074C07 + 0x00, 0x07, 0x0F, 0xFF, // 00070FFF + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x06, 0x80, 0x1D, // 0006801D + 0x00, 0x06, 0x80, 0x1F, // 0006801F + 0x00, 0x06, 0x80, 0x21, // 00068021 + 0x00, 0x06, 0x80, 0x23, // 00068023 + 0x00, 0x06, 0x84, 0x1D, // 0006841D + 0x00, 0x06, 0x84, 0x1F, // 0006841F + 0x00, 0x06, 0x84, 0x21, // 00068421 + 0x00, 0x06, 0x84, 0x23, // 00068423 + 0x00, 0x06, 0x88, 0x17, // 00068817 + 0x00, 0x06, 0x8C, 0x17, // 00068C17 + 0x00, 0x06, 0xD0, 0x6D, // 0006D06D + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x57, // 00071E57 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x90, // 00070690 + 0x00, 0x07, 0x4C, 0x07, // 00074C07 + 0x00, 0x07, 0x0F, 0xFF, // 00070FFF + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x06, 0x80, 0x1D, // 0006801D + 0x00, 0x06, 0x80, 0x1F, // 0006801F + 0x00, 0x06, 0x80, 0x21, // 00068021 + 0x00, 0x06, 0x80, 0x23, // 00068023 + 0x00, 0x06, 0x84, 0x1D, // 0006841D + 0x00, 0x06, 0x84, 0x1F, // 0006841F + 0x00, 0x06, 0x84, 0x21, // 00068421 + 0x00, 0x06, 0x84, 0x23, // 00068423 + 0x00, 0x06, 0x88, 0x17, // 00068817 + 0x00, 0x06, 0x8C, 0x17, // 00068C17 + 0x00, 0x06, 0xD0, 0x6D, // 0006D06D + 0x00, 0x06, 0x98, 0x1E, // 0006981E + 0x00, 0x04, 0x05, 0x08, // 00040508 + 0x00, 0x04, 0x0D, 0x08, // 00040D08 + 0x00, 0x04, 0x15, 0x08, // 00041508 + 0x00, 0x04, 0x1D, 0x08, // 00041D08 + 0x00, 0x04, 0x25, 0x08, // 00042508 + 0x00, 0x04, 0x2D, 0x08, // 00042D08 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3C, 0x30, // 00073C30 + 0x00, 0x06, 0x80, 0x3B, // 0006803B + 0x00, 0x06, 0x88, 0x5B, // 0006885B + 0x00, 0x06, 0x94, 0x3B, // 0006943B + 0x00, 0x06, 0x9C, 0x43, // 00069C43 + 0x00, 0x06, 0xA0, 0x53, // 0006A053 + 0x00, 0x06, 0xA8, 0x4B, // 0006A84B + 0x00, 0x06, 0xB4, 0x53, // 0006B453 + 0x00, 0x06, 0xBC, 0x06, // 0006BC06 + 0x00, 0x07, 0x74, 0x01, // 00077401 + 0x00, 0x07, 0x36, 0x63, // 00073663 + 0x00, 0x02, 0x12, 0x57, // 00021257 + 0x00, 0x07, 0x6C, 0x18, // 00076C18 + 0x00, 0x07, 0x2C, 0x00, // 00072C00 + 0x00, 0x07, 0x7C, 0x04, // 00077C04 + 0x00, 0x07, 0x3C, 0x45, // 00073C45 + 0x00, 0x06, 0xB0, 0x20, // 0006B020 + 0x00, 0x04, 0x36, 0x00, // 00043600 + 0x00, 0x02, 0x12, 0x46, // 00021246 + 0x00, 0x07, 0x7C, 0x04, // 00077C04 + 0x00, 0x07, 0x3C, 0x4C, // 00073C4C + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x66, // 00070666 + 0x00, 0x0B, 0x49, 0x40, // 000B4940 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x94, 0x7F, // 0006947F + 0x00, 0x06, 0x80, 0x1C, // 0006801C + 0x00, 0x07, 0x88, 0x04, // 00078804 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x0B, 0x49, 0x7F, // 000B497F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x1C, // 0006801C + 0x00, 0x04, 0x14, 0x00, // 00041400 + 0x00, 0x0A, 0xC1, 0xC2, // 000AC1C2 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x02, 0x10, 0x70, // 00021070 + 0x00, 0x0A, 0xD2, 0x7E, // 000AD27E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x90, 0x04, // 00079004 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0xC2, 0xC1, // 000AC2C1 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x02, 0x10, 0x85, // 00021085 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x00, 0x6D, // 0006006D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x00, 0x41, // 00080041 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xC0, 0x6D, // 0006C06D + 0x00, 0x02, 0x3F, 0xCC, // 00023FCC + 0x00, 0x07, 0x6C, 0x04, // 00076C04 + 0x00, 0x07, 0x2C, 0x7E, // 00072C7E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x10, 0x54, // 00021054 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0x80, 0x74, // 00098074 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1F, 0x00, // 00071F00 + 0x00, 0x08, 0x80, 0x42, // 00088042 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x11, 0x51, // 00021151 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0A, 0xC2, 0xC3, // 000AC2C3 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0x80, 0x78, // 00098078 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0x42, // 00088042 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x11, 0x51, // 00021151 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0F, 0x00, // 00070F00 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x66, // 00070666 + 0x00, 0x07, 0x56, 0x00, // 00075600 + 0x00, 0x07, 0x14, 0x03, // 00071403 + 0x00, 0x06, 0x8C, 0x3B, // 00068C3B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x1C, // 0006801C + 0x00, 0x07, 0x90, 0x04, // 00079004 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2F, 0x00, // 00072F00 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x00, // 00070400 + 0x00, 0x0B, 0x49, 0x40, // 000B4940 + 0x00, 0x06, 0xAC, 0x05, // 0006AC05 + 0x00, 0x01, 0x41, 0x00, // 00014100 + 0x00, 0x06, 0x84, 0x1C, // 0006841C + 0x00, 0x07, 0x8C, 0x0C, // 00078C0C + 0x00, 0x07, 0x8C, 0x0C, // 00078C0C + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1C, 0x90, // 00071C90 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x17, 0x00, // 00071700 + 0x00, 0x07, 0x64, 0x01, // 00076401 + 0x00, 0x07, 0x25, 0xFF, // 000725FF + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2C, 0x00, // 00072C00 + 0x00, 0x06, 0x9C, 0x25, // 00069C25 + 0x00, 0x06, 0x98, 0x2D, // 0006982D + 0x00, 0x06, 0x94, 0x3C, // 0006943C + 0x00, 0x06, 0xA4, 0x16, // 0006A416 + 0x00, 0x06, 0xA0, 0x16, // 0006A016 + 0x00, 0x06, 0x8C, 0x3B, // 00068C3B + 0x00, 0x06, 0xAC, 0x24, // 0006AC24 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0F, 0x00, // 00070F00 + 0x00, 0x0B, 0x52, 0x6F, // 000B526F + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1E, 0x90, // 00071E90 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x1E, // 0006881E + 0x00, 0x06, 0x90, 0x15, // 00069015 + 0x00, 0x06, 0x98, 0x1F, // 0006981F + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x84, 0x6F, // 0006846F + 0x00, 0x06, 0x84, 0x70, // 00068470 + 0x00, 0x04, 0x05, 0x10, // 00040510 + 0x00, 0x07, 0x74, 0x01, // 00077401 + 0x00, 0x07, 0x36, 0x63, // 00073663 + 0x00, 0x02, 0x12, 0x57, // 00021257 + 0x00, 0x06, 0x80, 0x1C, // 0006801C + 0x00, 0x04, 0x2C, 0x08, // 00042C08 + 0x00, 0x07, 0x7C, 0x04, // 00077C04 + 0x00, 0x07, 0x3C, 0xD2, // 00073CD2 + 0x00, 0x06, 0xB0, 0x22, // 0006B022 + 0x00, 0x04, 0x37, 0x08, // 00043708 + 0x00, 0x04, 0x14, 0x20, // 00041420 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x07, 0x66, 0x00, // 00076600 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x5C, 0x80, // 00075C80 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3D, 0x00, // 00073D00 + 0x00, 0x0A, 0xC8, 0xC4, // 000AC8C4 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x36, 0xC4, // 000836C4 + 0x00, 0x0A, 0xC8, 0xC3, // 000AC8C3 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x12, 0x41, // 00081241 + 0x00, 0x0A, 0xC8, 0xC7, // 000AC8C7 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x02, 0x12, 0x46, // 00021246 + 0x00, 0x09, 0x92, 0x51, // 00099251 + 0x00, 0x08, 0x36, 0xC2, // 000836C2 + 0x00, 0x07, 0x7C, 0x04, // 00077C04 + 0x00, 0x07, 0x3C, 0xEA, // 00073CEA + 0x00, 0x06, 0xAC, 0x6D, // 0006AC6D + 0x00, 0x06, 0xAC, 0x6C, // 0006AC6C + 0x00, 0x0B, 0x7F, 0x7F, // 000B7F7F + 0x00, 0x09, 0xB6, 0x7D, // 0009B67D + 0x00, 0x0A, 0x3F, 0x53, // 000A3F53 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x0A, 0xF6, 0x43, // 000AF643 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1F, 0x18, // 00071F18 + 0x00, 0x07, 0x6C, 0x04, // 00076C04 + 0x00, 0x07, 0x2C, 0x00, // 00072C00 + 0x00, 0x04, 0x0C, 0x08, // 00040C08 + 0x00, 0x08, 0xB6, 0x41, // 0008B641 + 0x00, 0x0A, 0x09, 0xC6, // 000A09C6 + 0x00, 0x08, 0x8F, 0xC1, // 00088FC1 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x09, 0x25, // 000C0925 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x00, // 00070400 + 0x00, 0x06, 0x98, 0x53, // 00069853 + 0x00, 0x06, 0x90, 0x2C, // 0006902C + 0x00, 0x06, 0xA4, 0x24, // 0006A424 + 0x00, 0x06, 0x80, 0x53, // 00068053 + 0x00, 0x06, 0x88, 0x54, // 00068854 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x06, 0x14, 0x6F, // 0006146F + 0x00, 0x06, 0x00, 0x52, // 00060052 + 0x00, 0x08, 0x12, 0x41, // 00081241 + 0x00, 0x06, 0x1C, 0x70, // 00061C70 + 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 + 0x00, 0x02, 0x9F, 0x38, // 00029F38 + 0x00, 0x0A, 0x09, 0x74, // 000A0974 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0xC9, 0x43, // 000AC943 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0xA1, 0x42, // 0008A142 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x08, 0x1B, 0x41, // 00081B41 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x94, 0x6F, // 0006946F + 0x00, 0x06, 0x9C, 0x70, // 00069C70 + 0x00, 0x06, 0x00, 0x6D, // 0006006D + 0x00, 0x02, 0x3F, 0xCC, // 00023FCC + 0x00, 0x0B, 0x00, 0x41, // 000B0041 + 0x00, 0x07, 0x6C, 0x04, // 00076C04 + 0x00, 0x07, 0x2D, 0x1E, // 00072D1E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x6D, // 0006806D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x04, 0x24, // 00060424 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x61, // 00071661 + 0x00, 0x08, 0x8C, 0x80, // 00088C80 + 0x00, 0x02, 0x89, 0x10, // 00028910 + 0x00, 0x02, 0x11, 0x03, // 00021103 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x90, 0x22, // 00069022 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x07, 0x54, 0x0C, // 0007540C + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x0A, 0xD8, 0x7E, // 000AD87E + 0x00, 0x0A, 0xC8, 0x41, // 000AC841 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0A, 0xC8, 0xC2, // 000AC8C2 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x10, 0x08, // 00021008 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x98, 0x07, // 00079807 + 0x00, 0x06, 0x04, 0x6F, // 0006046F + 0x00, 0x06, 0x0C, 0x70, // 00060C70 + 0x00, 0x0A, 0x10, 0x7D, // 000A107D + 0x00, 0x08, 0x90, 0xC2, // 000890C2 + 0x00, 0x08, 0x99, 0xC2, // 000899C2 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x10, 0xC2, // 000210C2 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x6B, // 00070E6B + 0x00, 0x0B, 0x52, 0x50, // 000B5250 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x1C, // 0006881C + 0x00, 0x0A, 0xCC, 0x82, // 000ACC82 + 0x00, 0x04, 0x1D, 0x88, // 00041D88 + 0x00, 0x04, 0x1D, 0x00, // 00041D00 + 0x00, 0x08, 0x09, 0xC3, // 000809C3 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x88, 0x04, // 00078804 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x90, // 00070690 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0F, 0x00, // 00070F00 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x17, 0x18, // 00071718 + 0x00, 0x06, 0x80, 0x1F, // 0006801F + 0x00, 0x06, 0x8C, 0x3B, // 00068C3B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x53, // 00069053 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x65, // 00070E65 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x07, 0x64, 0x01, // 00076401 + 0x00, 0x07, 0x26, 0x68, // 00072668 + 0x00, 0x06, 0x88, 0x20, // 00068820 + 0x00, 0x07, 0x90, 0x06, // 00079006 + 0x00, 0x06, 0x94, 0x7F, // 0006947F + 0x00, 0x06, 0xA0, 0x22, // 0006A022 + 0x00, 0x07, 0x90, 0x07, // 00079007 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x6B, // 00070E6B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x20, // 00068820 + 0x00, 0x04, 0x0E, 0x00, // 00040E00 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x40, // 00071C40 + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x0A, 0xD1, 0xC3, // 000AD1C3 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x6A, // 0006806A + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x20, // 00071C20 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x0A, 0xD1, 0xC3, // 000AD1C3 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x6C, // 0006806C + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x10, // 00071C10 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x0A, 0xD1, 0xC3, // 000AD1C3 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x76, // 00068076 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x67, // 00071E67 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0xE4, // 000706E4 + 0x00, 0x0A, 0xD1, 0x4F, // 000AD14F + 0x00, 0x08, 0x10, 0xC2, // 000810C2 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x98, 0x1C, // 0006981C + 0x00, 0x07, 0x90, 0x04, // 00079004 + 0x00, 0x06, 0x90, 0x1C, // 0006901C + 0x00, 0x04, 0x14, 0x00, // 00041400 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x22, // 00069022 + 0x00, 0x04, 0x2F, 0x08, // 00042F08 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0F, 0x00, // 00070F00 + 0x00, 0x07, 0x54, 0x08, // 00075408 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x06, 0x80, 0x1C, // 0006801C + 0x00, 0x0A, 0xCC, 0x81, // 000ACC81 + 0x00, 0x08, 0x92, 0xC1, // 000892C1 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x11, 0xBD, // 000211BD + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x74, 0x01, // 00077401 + 0x00, 0x02, 0x12, 0x57, // 00021257 + 0x00, 0x07, 0x36, 0x63, // 00073663 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x7C, 0x04, // 00077C04 + 0x00, 0x07, 0x3D, 0xA4, // 00073DA4 + 0x00, 0x06, 0xB0, 0x20, // 0006B020 + 0x00, 0x04, 0x36, 0x08, // 00043608 + 0x00, 0x04, 0x17, 0x08, // 00041708 + 0x00, 0x04, 0x06, 0x00, // 00040600 + 0x00, 0x07, 0x66, 0x00, // 00076600 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x5C, 0x80, // 00075C80 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3D, 0x00, // 00073D00 + 0x00, 0x0A, 0xC8, 0xC4, // 000AC8C4 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x36, 0xC4, // 000836C4 + 0x00, 0x0A, 0xC8, 0xC3, // 000AC8C3 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x12, 0x41, // 00081241 + 0x00, 0x0A, 0xC8, 0xC7, // 000AC8C7 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x12, 0x46, // 00021246 + 0x00, 0x09, 0x92, 0x51, // 00099251 + 0x00, 0x08, 0x36, 0xC2, // 000836C2 + 0x00, 0x07, 0x7C, 0x04, // 00077C04 + 0x00, 0x07, 0x3D, 0xBF, // 00073DBF + 0x00, 0x06, 0xAC, 0x6D, // 0006AC6D + 0x00, 0x06, 0xAC, 0x6C, // 0006AC6C + 0x00, 0x04, 0x06, 0x08, // 00040608 + 0x00, 0x04, 0x07, 0x08, // 00040708 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x62, // 00070E62 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x2D, // 0007142D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x1C, // 0006881C + 0x00, 0x04, 0x0C, 0x00, // 00040C00 + 0x00, 0x0A, 0xD2, 0xC1, // 000AD2C1 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x4F, // 0006904F + 0x00, 0x06, 0x94, 0x77, // 00069477 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x39, // 00070639 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x61, // 00070E61 + 0x00, 0x07, 0x54, 0x12, // 00075412 + 0x00, 0x07, 0x14, 0x30, // 00071430 + 0x00, 0x06, 0x84, 0x1C, // 0006841C + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x06, 0x88, 0x1C, // 0006881C + 0x00, 0x04, 0x0C, 0x00, // 00040C00 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x04, 0x37, 0x08, // 00043708 + 0x00, 0x09, 0xAC, 0x7F, // 0009AC7F + 0x00, 0x0A, 0xC1, 0x50, // 000AC150 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0A, 0x24, 0x7F, // 000A247F + 0x00, 0x0A, 0xC9, 0xC2, // 000AC9C2 + 0x00, 0x08, 0x0B, 0xC1, // 00080BC1 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0xA4, 0x00, // 0007A400 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x07, 0x8C, 0x00, // 00078C00 + 0x00, 0x07, 0xAC, 0x00, // 0007AC00 + 0x00, 0x04, 0xA8, 0x00, // 0004A800 + 0x00, 0x07, 0xB4, 0x00, // 0007B400 + 0x00, 0x06, 0x84, 0x45, // 00068445 + 0x00, 0x06, 0x84, 0x46, // 00068446 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x40, // 00071640 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x26, 0x90, // 00072690 + 0x00, 0x0B, 0x49, 0x75, // 000B4975 + 0x00, 0x06, 0x94, 0x1E, // 0006941E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA4, 0x1F, // 0006A41F + 0x00, 0x06, 0x8C, 0x15, // 00068C15 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x6A, // 0007066A + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x04, 0x17, 0x08, // 00041708 + 0x00, 0x04, 0x1F, 0x08, // 00041F08 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x04, 0x2F, 0x08, // 00042F08 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x06, 0xA4, 0x65, // 0006A465 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x84, 0x0D, // 0007840D + 0x00, 0x07, 0x8C, 0x5D, // 00078C5D + 0x00, 0x06, 0xAC, 0x79, // 0006AC79 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x6C, // 0007066C + 0x00, 0x0B, 0x76, 0x41, // 000B7641 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0C, 0x0B, 0x0D, // 000C0B0D + 0x00, 0x0C, 0x13, 0x0D, // 000C130D + 0x00, 0x0C, 0x1B, 0x0D, // 000C1B0D + 0x00, 0x0C, 0x23, 0x0D, // 000C230D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xB4, 0x6A, // 0006B46A + 0x00, 0x06, 0x8C, 0x66, // 00068C66 + 0x00, 0x06, 0x94, 0x67, // 00069467 + 0x00, 0x06, 0x9C, 0x68, // 00069C68 + 0x00, 0x06, 0xA4, 0x69, // 0006A469 + 0x00, 0x07, 0x64, 0x01, // 00076401 + 0x00, 0x07, 0x27, 0x12, // 00072712 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x03, 0x00, // 00040300 + 0x00, 0x04, 0x0B, 0x00, // 00040B00 + 0x00, 0x04, 0x13, 0x00, // 00041300 + 0x00, 0x04, 0x1B, 0x00, // 00041B00 + 0x00, 0x06, 0xA0, 0x22, // 0006A022 + 0x00, 0x07, 0x80, 0x0F, // 0007800F + 0x00, 0x07, 0x88, 0x0F, // 0007880F + 0x00, 0x07, 0x90, 0x0F, // 0007900F + 0x00, 0x07, 0x98, 0x07, // 00079807 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x1C, // 0006801C + 0x00, 0x0A, 0xC4, 0x81, // 000AC481 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0x80, 0x74, // 00098074 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x66, // 00071E66 + 0x00, 0x07, 0x64, 0x04, // 00076404 + 0x00, 0x07, 0x24, 0x08, // 00072408 + 0x00, 0x08, 0x88, 0x41, // 00088841 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x02, 0x12, 0x8F, // 0002128F + 0x00, 0x07, 0x56, 0x00, // 00075600 + 0x00, 0x07, 0x14, 0x01, // 00071401 + 0x00, 0x06, 0xA0, 0x08, // 0006A008 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x98, 0x20, // 00069820 + 0x00, 0x07, 0x90, 0x06, // 00079006 + 0x00, 0x08, 0x98, 0x42, // 00089842 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x02, 0x18, 0x00, // 00021800 + 0x00, 0x07, 0x56, 0x00, // 00075600 + 0x00, 0x07, 0x14, 0x02, // 00071402 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x90, 0x06, // 00079006 + 0x00, 0x02, 0x10, 0x54, // 00021054 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x64, 0x68, // 000B6468 + 0x00, 0x0A, 0xBE, 0xC4, // 000ABEC4 + 0x00, 0x09, 0xA4, 0x46, // 0009A446 + 0x00, 0x0B, 0x7F, 0xC7, // 000B7FC7 + 0x00, 0x06, 0xB8, 0x0F, // 0006B80F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA4, 0x05, // 0006A405 + 0x00, 0x06, 0xBC, 0x0D, // 0006BC0D + 0x00, 0x01, 0x41, 0x00, // 00014100 + 0x00, 0x06, 0xAC, 0x0F, // 0006AC0F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x06, 0xB4, 0x0D, // 0006B40D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xBD, 0x4A, // 0009BD4A + 0x00, 0x09, 0xB6, 0x7C, // 0009B67C + 0x00, 0x0A, 0xE4, 0x40, // 000AE440 + 0x00, 0x06, 0xB8, 0x0F, // 0006B80F + 0x00, 0x07, 0x6F, 0xFF, // 00076FFF + 0x00, 0x07, 0x2F, 0xFF, // 00072FFF + 0x00, 0x01, 0x03, 0xA6, // 000103A6 + 0x00, 0x0A, 0x2D, 0x7C, // 000A2D7C + 0x00, 0x09, 0xA4, 0x41, // 0009A441 + 0x00, 0x09, 0xBF, 0x41, // 0009BF41 + 0x00, 0x08, 0xE4, 0xC5, // 0008E4C5 + 0x00, 0x09, 0x1E, 0xC4, // 00091EC4 + 0x00, 0x02, 0x87, 0x10, // 00028710 + 0x00, 0x0A, 0xE3, 0xC3, // 000AE3C3 + 0x00, 0x08, 0xBF, 0xC5, // 0008BFC5 + 0x00, 0x07, 0x75, 0xD9, // 000775D9 + 0x00, 0x07, 0x36, 0x23, // 00073623 + 0x00, 0x09, 0xA7, 0x40, // 0009A740 + 0x00, 0x07, 0x6D, 0x14, // 00076D14 + 0x00, 0x0C, 0x36, 0x27, // 000C3627 + 0x00, 0x07, 0x2F, 0x2C, // 00072F2C + 0x00, 0x0B, 0x7D, 0x75, // 000B7D75 + 0x00, 0x08, 0xAD, 0xC4, // 0008ADC4 + 0x00, 0x00, 0xC7, 0x87, // 0000C787 + 0x00, 0x0A, 0x6E, 0xC6, // 000A6EC6 + 0x00, 0x09, 0xA4, 0x44, // 0009A444 + 0x00, 0x08, 0xAD, 0x41, // 0008AD41 + 0x00, 0x09, 0xA4, 0xC5, // 0009A4C5 + 0x00, 0x09, 0xAD, 0x43, // 0009AD43 + 0x00, 0x09, 0xB4, 0x6D, // 0009B46D + 0x00, 0x09, 0xA4, 0x49, // 0009A449 + 0x00, 0x0A, 0xF6, 0x7F, // 000AF67F + 0x00, 0x0A, 0x24, 0x77, // 000A2477 + 0x00, 0x02, 0x86, 0x30, // 00028630 + 0x00, 0x08, 0x36, 0x41, // 00083641 + 0x00, 0x08, 0xBE, 0x48, // 0008BE48 + 0x00, 0x02, 0x87, 0x18, // 00028718 + 0x00, 0x09, 0xA4, 0x49, // 0009A449 + 0x00, 0x08, 0xB6, 0x41, // 0008B641 + 0x00, 0x09, 0xA4, 0x77, // 0009A477 + 0x00, 0x0B, 0x7F, 0x74, // 000B7F74 + 0x00, 0x08, 0xB6, 0x44, // 0008B644 + 0x00, 0x02, 0x9E, 0x20, // 00029E20 + 0x00, 0x0B, 0x5B, 0x41, // 000B5B41 + 0x00, 0x08, 0x36, 0x41, // 00083641 + 0x00, 0x09, 0x9B, 0x53, // 00099B53 + 0x00, 0x08, 0x24, 0xC3, // 000824C3 + 0x00, 0x08, 0xB6, 0x41, // 0008B641 + 0x00, 0x00, 0xC7, 0x87, // 0000C787 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x09, 0xB6, 0x4F, // 0009B64F + 0x00, 0x08, 0x35, 0xC6, // 000835C6 + 0x00, 0x0B, 0x3F, 0xC7, // 000B3FC7 + 0x00, 0x0A, 0xEC, 0xC4, // 000AECC4 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0D, 0x00, // 00070D00 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x52, 0x7F, // 000B527F + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x69, // 00071E69 + 0x00, 0x0B, 0x64, 0x7F, // 000B647F + 0x00, 0x06, 0x90, 0x78, // 00069078 + 0x00, 0x0B, 0x6D, 0x7E, // 000B6D7E + 0x00, 0x06, 0x98, 0x22, // 00069822 + 0x00, 0x0A, 0xDF, 0x84, // 000ADF84 + 0x00, 0x0A, 0xDF, 0x85, // 000ADF85 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x98, 0x77, // 00069877 + 0x00, 0x06, 0x98, 0x7A, // 0006987A + 0x00, 0x06, 0xB8, 0x68, // 0006B868 + 0x00, 0x06, 0xB8, 0x69, // 0006B869 + 0x00, 0x06, 0xB8, 0x6F, // 0006B86F + 0x00, 0x06, 0xB8, 0x70, // 0006B870 + 0x00, 0x06, 0xB8, 0x71, // 0006B871 + 0x00, 0x06, 0xB8, 0x72, // 0006B872 + 0x00, 0x06, 0xB8, 0x73, // 0006B873 + 0x00, 0x06, 0xB8, 0x74, // 0006B874 + 0x00, 0x06, 0xB8, 0x75, // 0006B875 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x28, 0x6A, // 0006286A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA8, 0x61, // 0006A861 + 0x00, 0x07, 0x65, 0x5D, // 0007655D + 0x00, 0x07, 0x24, 0x10, // 00072410 + 0x00, 0x06, 0x30, 0x6C, // 0006306C + 0x00, 0x07, 0x6D, 0x59, // 00076D59 + 0x00, 0x07, 0x2C, 0x50, // 00072C50 + 0x00, 0x08, 0xB6, 0x40, // 0008B640 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x07, 0x65, 0x05, // 00076505 + 0x00, 0x07, 0x25, 0x70, // 00072570 + 0x00, 0x07, 0x6D, 0x15, // 00076D15 + 0x00, 0x07, 0x2D, 0x60, // 00072D60 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA0, 0x66, // 0006A066 + 0x00, 0x06, 0xA8, 0x67, // 0006A867 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x20, // 00071C20 + 0x00, 0x07, 0x7C, 0x01, // 00077C01 + 0x00, 0x07, 0x3D, 0xFF, // 00073DFF + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x00, // 00070E00 + 0x00, 0x07, 0x74, 0x01, // 00077401 + 0x00, 0x07, 0x35, 0xFF, // 000735FF + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x26, 0x98, // 00072698 + 0x00, 0x07, 0x6C, 0x01, // 00076C01 + 0x00, 0x07, 0x2C, 0x90, // 00072C90 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x90, // 00070490 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x06, 0x98, 0x15, // 00069815 + 0x00, 0x06, 0xB8, 0x16, // 0006B816 + 0x00, 0x06, 0xB4, 0x14, // 0006B414 + 0x00, 0x06, 0x88, 0x28, // 00068828 + 0x00, 0x06, 0x88, 0x22, // 00068822 + 0x00, 0x06, 0x90, 0x2E, // 0006902E + 0x00, 0x06, 0x90, 0x1C, // 0006901C + 0x00, 0x06, 0x90, 0x20, // 00069020 + 0x00, 0x06, 0x9C, 0x1C, // 00069C1C + 0x00, 0x06, 0xB4, 0x26, // 0006B426 + 0x00, 0x06, 0xB4, 0x24, // 0006B424 + 0x00, 0x06, 0xB4, 0x2E, // 0006B42E + 0x00, 0x06, 0xA0, 0x29, // 0006A029 + 0x00, 0x06, 0xA8, 0x1D, // 0006A81D + 0x00, 0x06, 0xA8, 0x21, // 0006A821 + 0x00, 0x06, 0xA8, 0x2F, // 0006A82F + 0x00, 0x06, 0x84, 0x1D, // 0006841D + 0x00, 0x08, 0x3F, 0x41, // 00083F41 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x01, 0x01, 0x21, // 00010121 + 0x00, 0x06, 0xB8, 0x6E, // 0006B86E + 0x00, 0x07, 0xA8, 0x0F, // 0007A80F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x38, 0x78, // 00063878 + 0x00, 0x07, 0x44, 0x05, // 00074405 + 0x00, 0x07, 0x05, 0x89, // 00070589 + 0x00, 0x07, 0x4C, 0x05, // 00074C05 + 0x00, 0x07, 0x0D, 0x4B, // 00070D4B + 0x00, 0x07, 0x54, 0x05, // 00075405 + 0x00, 0x07, 0x15, 0x59, // 00071559 + 0x00, 0x07, 0x5C, 0x05, // 00075C05 + 0x00, 0x07, 0x1D, 0xBD, // 00071DBD + 0x00, 0x08, 0xBF, 0x40, // 0008BF40 + 0x00, 0x02, 0x9F, 0x40, // 00029F40 + 0x00, 0x07, 0x44, 0x05, // 00074405 + 0x00, 0x07, 0x04, 0xC8, // 000704C8 + 0x00, 0x07, 0x4C, 0x05, // 00074C05 + 0x00, 0x07, 0x0C, 0xEE, // 00070CEE + 0x00, 0x07, 0x54, 0x05, // 00075405 + 0x00, 0x07, 0x14, 0xF8, // 000714F8 + 0x00, 0x07, 0x5C, 0x05, // 00075C05 + 0x00, 0x07, 0x1D, 0x16, // 00071D16 + 0x00, 0x06, 0x80, 0x09, // 00068009 + 0x00, 0x06, 0x88, 0x0D, // 0006880D + 0x00, 0x06, 0x90, 0x0C, // 0006900C + 0x00, 0x06, 0x98, 0x0B, // 0006980B + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x27, 0x20, // 00072720 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x3F, 0x00, // 00043F00 + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x0A, 0xFF, 0x44, // 000AFF44 + 0x00, 0x06, 0xA0, 0x5B, // 0006A05B + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x27, 0x00, // 00072700 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x10, // 00071C10 + 0x00, 0x08, 0x80, 0x40, // 00088040 + 0x00, 0x06, 0xA0, 0x5B, // 0006A05B + 0x00, 0x02, 0x9E, 0x20, // 00029E20 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x64, 0x04, // 00076404 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x1C, 0x30, // 00071C30 + 0x00, 0x08, 0x24, 0xC7, // 000824C7 + 0x00, 0x06, 0x88, 0x4B, // 0006884B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x9C, 0x06, // 00069C06 + 0x00, 0x06, 0xA0, 0x5B, // 0006A05B + 0x00, 0x06, 0xA4, 0x76, // 0006A476 + 0x00, 0x06, 0x28, 0x77, // 00062877 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x40, // 00071640 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x90, // 00072490 + 0x00, 0x0B, 0x49, 0x7D, // 000B497D + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x6C, // 0007066C + 0x00, 0x06, 0x90, 0x1E, // 0006901E + 0x00, 0x06, 0xA0, 0x1F, // 0006A01F + 0x00, 0x06, 0x88, 0x14, // 00068814 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x04, 0x17, 0x08, // 00041708 + 0x00, 0x04, 0x1F, 0x08, // 00041F08 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x08, 0xAD, 0x40, // 0008AD40 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0B, 0x49, 0x40, // 000B4940 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x07, 0x88, 0x0D, // 0007880D + 0x00, 0x07, 0x90, 0x0D, // 0007900D + 0x00, 0x07, 0x98, 0x0D, // 0007980D + 0x00, 0x07, 0xA0, 0x0D, // 0007A00D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0xC1, 0x05, // 0000C105 + 0x00, 0x07, 0x44, 0x04, // 00074404 + 0x00, 0x07, 0x07, 0x43, // 00070743 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x0F, // 0006800F + 0x00, 0x06, 0x38, 0x61, // 00063861 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0xBF, 0x40, // 0008BF40 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x13, 0x6E, // 0002136E + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x20, // 00071420 + 0x00, 0x06, 0x18, 0x1C, // 0006181C + 0x00, 0x09, 0x12, 0xC0, // 000912C0 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x10, 0x6E, // 0006106E + 0x00, 0x08, 0x9B, 0x44, // 00089B44 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x1B, 0xC2, // 00081BC2 + 0x00, 0x07, 0x45, 0x5D, // 0007455D + 0x00, 0x07, 0x04, 0x10, // 00070410 + 0x00, 0x07, 0x4D, 0x59, // 00074D59 + 0x00, 0x07, 0x0C, 0x50, // 00070C50 + 0x00, 0x06, 0x98, 0x1C, // 0006981C + 0x00, 0x00, 0xC1, 0x04, // 0000C104 + 0x00, 0x07, 0x54, 0x04, // 00075404 + 0x00, 0x07, 0x17, 0x60, // 00071760 + 0x00, 0x09, 0x80, 0x48, // 00098048 + 0x00, 0x09, 0x89, 0x78, // 00098978 + 0x00, 0x08, 0x38, 0xC1, // 000838C1 + 0x00, 0x06, 0x90, 0x0F, // 0006900F + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x65, // 00071665 + 0x00, 0x0B, 0x49, 0x40, // 000B4940 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x22, // 00069022 + 0x00, 0x07, 0x88, 0x03, // 00078803 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x69, // 00068869 + 0x00, 0x06, 0x88, 0x61, // 00068861 + 0x00, 0x06, 0x08, 0x6F, // 0006086F + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x08, 0x89, 0x41, // 00088941 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x13, 0x8B, // 0002138B + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0x88, 0x42, // 00088842 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x00, 0xC1, 0x01, // 0000C101 + 0x00, 0x07, 0x44, 0x04, // 00074404 + 0x00, 0x07, 0x07, 0x7F, // 0007077F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x6F, // 0006906F + 0x00, 0x06, 0x80, 0x0F, // 0006800F + 0x00, 0x06, 0x10, 0x66, // 00061066 + 0x00, 0x08, 0x90, 0xC2, // 000890C2 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x16, 0x14, // 00021614 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x10, 0x67, // 00061067 + 0x00, 0x08, 0x91, 0xC2, // 000891C2 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x16, 0x14, // 00021614 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x10, 0x76, // 00061076 + 0x00, 0x06, 0x08, 0x7A, // 0006087A + 0x00, 0x0A, 0x00, 0xC2, // 000A00C2 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x20, // 00071420 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x90, 0xC2, // 000890C2 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x0C, 0x26, // 00060C26 + 0x00, 0x06, 0x14, 0x1C, // 0006141C + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x00, // 00071E00 + 0x00, 0x08, 0x89, 0xC2, // 000889C2 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x09, 0xC3, // 000809C3 + 0x00, 0x06, 0x24, 0x24, // 00062424 + 0x00, 0x09, 0x22, 0xC4, // 000922C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x24, 0xC3, // 000824C3 + 0x00, 0x09, 0x29, 0xC4, // 000929C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x0C, 0x40, // 00080C40 + 0x00, 0x06, 0x24, 0x2E, // 0006242E + 0x00, 0x09, 0x22, 0xC4, // 000922C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x24, 0xC3, // 000824C3 + 0x00, 0x09, 0x29, 0xC4, // 000929C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x0C, 0x40, // 00080C40 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2C, 0x20, // 00072C20 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x89, 0xC5, // 000889C5 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x6D, 0x70, // 000B6D70 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x04, 0xB8, 0x0D, // 0004B80D + 0x00, 0x06, 0xA8, 0x79, // 0006A879 + 0x00, 0x09, 0xBF, 0x7C, // 0009BF7C + 0x00, 0x00, 0xC1, 0x01, // 0000C101 + 0x00, 0x07, 0x44, 0x04, // 00074404 + 0x00, 0x07, 0x07, 0xC5, // 000707C5 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x0F, // 0006800F + 0x00, 0x06, 0x18, 0x76, // 00061876 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x9B, 0x40, // 00089B40 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x08, 0x29, 0x40, // 00082940 + 0x00, 0x08, 0x08, 0x40, // 00080840 + 0x00, 0x0C, 0x31, 0x08, // 000C3108 + 0x00, 0x0E, 0x31, 0x09, // 000E3109 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x10, 0x73, // 00061073 + 0x00, 0x0C, 0x01, 0x08, // 000C0108 + 0x00, 0x0E, 0x01, 0x09, // 000E0109 + 0x00, 0x0A, 0xF6, 0x7C, // 000AF67C + 0x00, 0x09, 0xA7, 0x7F, // 0009A77F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x36, 0x42, // 00083642 + 0x00, 0x0A, 0xC0, 0x7C, // 000AC07C + 0x00, 0x09, 0xBF, 0x7F, // 0009BF7F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x00, 0x42, // 00080042 + 0x00, 0x06, 0x20, 0x79, // 00062079 + 0x00, 0x08, 0x12, 0x42, // 00081242 + 0x00, 0x08, 0xA4, 0x41, // 0008A441 + 0x00, 0x07, 0xF4, 0x0C, // 0007F40C + 0x00, 0x07, 0xC4, 0x0C, // 0007C40C + 0x00, 0x02, 0x9F, 0x50, // 00029F50 + 0x00, 0x06, 0x90, 0x73, // 00069073 + 0x00, 0x06, 0xA0, 0x79, // 0006A079 + 0x00, 0x08, 0x9B, 0x41, // 00089B41 + 0x00, 0x02, 0x87, 0x20, // 00028720 + 0x00, 0x08, 0x0D, 0x40, // 00080D40 + 0x00, 0x08, 0x05, 0x40, // 00080540 + 0x00, 0x02, 0x13, 0xCB, // 000213CB + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x02, 0x13, 0xBE, // 000213BE + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x00, 0x74, // 00060074 + 0x00, 0x06, 0x0C, 0x1C, // 00060C1C + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x14, 0x80, // 00071480 + 0x00, 0x08, 0x80, 0x40, // 00088040 + 0x00, 0x02, 0x9E, 0x48, // 00029E48 + 0x00, 0x08, 0x91, 0xC2, // 000891C2 + 0x00, 0x02, 0x89, 0x38, // 00028938 + 0x00, 0x02, 0x15, 0xDB, // 000215DB + 0x00, 0x07, 0x44, 0x04, // 00074404 + 0x00, 0x07, 0x07, 0xF8, // 000707F8 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x0E, // 0006800E + 0x00, 0x02, 0x16, 0x52, // 00021652 + 0x00, 0x07, 0x4C, 0x04, // 00074C04 + 0x00, 0x07, 0x0F, 0xFF, // 00070FFF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x0F, // 0006880F + 0x00, 0x06, 0x00, 0x69, // 00060069 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x65, // 00070E65 + 0x00, 0x08, 0x00, 0x41, // 00080041 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x20, // 00071420 + 0x00, 0x06, 0x18, 0x76, // 00061876 + 0x00, 0x0A, 0x12, 0xC3, // 000A12C3 + 0x00, 0x06, 0x88, 0x22, // 00068822 + 0x00, 0x08, 0x92, 0x41, // 00089241 + 0x00, 0x0A, 0xC0, 0xC2, // 000AC0C2 + 0x00, 0x04, 0x0F, 0x00, // 00040F00 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x14, 0x14, // 00021414 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0x09, 0x41, // 00080941 + 0x00, 0x06, 0x00, 0x6A, // 0006006A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x69, // 00068069 + 0x00, 0x07, 0x88, 0x07, // 00078807 + 0x00, 0x06, 0x80, 0x6F, // 0006806F + 0x00, 0x00, 0xC1, 0x03, // 0000C103 + 0x00, 0x07, 0x44, 0x05, // 00074405 + 0x00, 0x07, 0x04, 0x1B, // 0007041B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x0F, // 0006800F + 0x00, 0x06, 0x04, 0x26, // 00060426 + 0x00, 0x06, 0x28, 0x7A, // 0006287A + 0x00, 0x06, 0x38, 0x7A, // 0006387A + 0x00, 0x06, 0x0C, 0x1C, // 00060C1C + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x06, 0x18, 0x70, // 00061870 + 0x00, 0x08, 0x80, 0xC1, // 000880C1 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x07, 0x74, 0x00, // 00077400 + 0x00, 0x07, 0x34, 0x40, // 00073440 + 0x00, 0x06, 0x08, 0x74, // 00060874 + 0x00, 0x08, 0xA5, 0x41, // 0008A541 + 0x00, 0x02, 0x9E, 0x30, // 00029E30 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x08, 0xA0, 0xC6, // 0008A0C6 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x02, 0x81, 0x80, // 00028180 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x70, // 00029F70 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x21, // 00072421 + 0x00, 0x08, 0x93, 0xC0, // 000893C0 + 0x00, 0x06, 0x80, 0x70, // 00068070 + 0x00, 0x06, 0xA8, 0x7A, // 0006A87A + 0x00, 0x08, 0x94, 0xC2, // 000894C2 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x16, 0x11, // 00021611 + 0x00, 0x07, 0x44, 0x05, // 00074405 + 0x00, 0x07, 0x04, 0x40, // 00070440 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x0F, // 0006800F + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x01, // 00070C01 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x81, 0x10, // 00028110 + 0x00, 0x02, 0x14, 0xAC, // 000214AC + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x80, 0x07, // 00078007 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0A, 0xC7, 0x81, // 000AC781 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x14, 0xC1, // 000214C1 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x69, // 00070669 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x01, // 00070C01 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x6C, // 0007066C + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x06, 0x10, 0x7A, // 0006107A + 0x00, 0x06, 0x18, 0x77, // 00061877 + 0x00, 0x04, 0x25, 0x08, // 00042508 + 0x00, 0x04, 0x2D, 0x08, // 00042D08 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0x3D, 0x08, // 00043D08 + 0x00, 0x0A, 0xCF, 0x81, // 000ACF81 + 0x00, 0x02, 0x9F, 0x70, // 00029F70 + 0x00, 0x06, 0x0C, 0x6A, // 00060C6A + 0x00, 0x08, 0x9B, 0x40, // 00089B40 + 0x00, 0x02, 0x9E, 0x50, // 00029E50 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9F, 0x30, // 00029F30 + 0x00, 0x0B, 0x49, 0x41, // 000B4941 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x02, 0x81, 0x08, // 00028108 + 0x00, 0x06, 0x0C, 0x65, // 00060C65 + 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F + 0x00, 0x02, 0x81, 0x70, // 00028170 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x06, 0x0C, 0x6A, // 00060C6A + 0x00, 0x08, 0x9B, 0x40, // 00089B40 + 0x00, 0x02, 0x9F, 0x50, // 00029F50 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9F, 0x30, // 00029F30 + 0x00, 0x0B, 0x49, 0x41, // 000B4941 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x04, 0x2F, 0x08, // 00042F08 + 0x00, 0x04, 0x37, 0x08, // 00043708 + 0x00, 0x04, 0x3F, 0x08, // 00043F08 + 0x00, 0x02, 0x81, 0x08, // 00028108 + 0x00, 0x06, 0x0C, 0x65, // 00060C65 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x06, 0x04, 0x6A, // 0006046A + 0x00, 0x06, 0x14, 0x65, // 00061465 + 0x00, 0x09, 0x00, 0xC2, // 000900C2 + 0x00, 0x08, 0x11, 0x41, // 00081141 + 0x00, 0x02, 0x9F, 0x18, // 00029F18 + 0x00, 0x08, 0x10, 0x41, // 00081041 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x08, 0x40, // 00080840 + 0x00, 0x07, 0xA0, 0x0D, // 0007A00D + 0x00, 0x07, 0xA8, 0x0D, // 0007A80D + 0x00, 0x07, 0xB0, 0x0D, // 0007B00D + 0x00, 0x06, 0x8C, 0x6A, // 00068C6A + 0x00, 0x07, 0xB8, 0x0D, // 0007B80D + 0x00, 0x06, 0x98, 0x77, // 00069877 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x69, // 00070669 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x02, // 00070C02 + 0x00, 0x06, 0x10, 0x7A, // 0006107A + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0A, 0xC3, 0x81, // 000AC381 + 0x00, 0x02, 0x9F, 0x58, // 00029F58 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9E, 0x40, // 00029E40 + 0x00, 0x0B, 0x52, 0x7E, // 000B527E + 0x00, 0x02, 0x16, 0x2E, // 0002162E + 0x00, 0x07, 0x44, 0x05, // 00074405 + 0x00, 0x07, 0x04, 0xAC, // 000704AC + 0x00, 0x06, 0x90, 0x7A, // 0006907A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x0F, // 0006800F + 0x00, 0x02, 0x81, 0x18, // 00028118 + 0x00, 0x08, 0x9A, 0x42, // 00089A42 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0B, 0x52, 0x7F, // 000B527F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x7A, // 0006907A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x00, 0x6D, // 0006006D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xC0, 0x6D, // 0006C06D + 0x00, 0x02, 0x3F, 0xCC, // 00023FCC + 0x00, 0x07, 0x6C, 0x05, // 00076C05 + 0x00, 0x07, 0x2C, 0xBA, // 00072CBA + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x13, 0x3B, // 0002133B + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0xC1, 0x80, // 0000C180 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x10, 0x68, // 00061068 + 0x00, 0x04, 0x04, 0x08, // 00040408 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x02, 0x14, 0xDD, // 000214DD + 0x00, 0x06, 0x28, 0x6C, // 0006286C + 0x00, 0x04, 0x0C, 0x08, // 00040C08 + 0x00, 0x07, 0x64, 0x3F, // 0007643F + 0x00, 0x07, 0x27, 0xFF, // 000727FF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xA4, 0x44, // 0009A444 + 0x00, 0x04, 0x14, 0x00, // 00041400 + 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 + 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 + 0x00, 0x0A, 0xD2, 0xC4, // 000AD2C4 + 0x00, 0x09, 0x80, 0x48, // 00098048 + 0x00, 0x09, 0xB1, 0x78, // 0009B178 + 0x00, 0x08, 0x00, 0xC6, // 000800C6 + 0x00, 0x09, 0x89, 0x48, // 00098948 + 0x00, 0x09, 0xB2, 0x78, // 0009B278 + 0x00, 0x08, 0x09, 0xC6, // 000809C6 + 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 + 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 + 0x00, 0x08, 0xAD, 0x40, // 0008AD40 + 0x00, 0x02, 0x9F, 0x30, // 00029F30 + 0x00, 0x09, 0x90, 0x48, // 00099048 + 0x00, 0x09, 0xB0, 0x78, // 0009B078 + 0x00, 0x08, 0x02, 0xC6, // 000802C6 + 0x00, 0x09, 0x91, 0x48, // 00099148 + 0x00, 0x09, 0xB1, 0x78, // 0009B178 + 0x00, 0x08, 0x0A, 0xC6, // 00080AC6 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 + 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x18, 0x68, // 00061868 + 0x00, 0x06, 0x00, 0x1C, // 0006001C + 0x00, 0x09, 0x9B, 0x7D, // 00099B7D + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x06, 0x08, 0x20, // 00060820 + 0x00, 0x06, 0x10, 0x6E, // 0006106E + 0x00, 0x08, 0x81, 0xC0, // 000881C0 + 0x00, 0x09, 0x03, 0xC0, // 000903C0 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x01, 0x0A, 0x20, // 00010A20 + 0x00, 0x0B, 0x49, 0x7F, // 000B497F + 0x00, 0x04, 0x14, 0x00, // 00041400 + 0x00, 0x0B, 0x76, 0x78, // 000B7678 + 0x00, 0x09, 0x92, 0x48, // 00099248 + 0x00, 0x09, 0x89, 0x48, // 00098948 + 0x00, 0x09, 0x9A, 0x68, // 00099A68 + 0x00, 0x08, 0x09, 0xC3, // 000809C3 + 0x00, 0x08, 0x9F, 0xC1, // 00089FC1 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x06, 0xB0, 0x68, // 0006B068 + 0x00, 0x09, 0x92, 0x48, // 00099248 + 0x00, 0x09, 0x89, 0x48, // 00098948 + 0x00, 0x09, 0x9A, 0x68, // 00099A68 + 0x00, 0x08, 0x09, 0xC3, // 000809C3 + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x04, 0x14, 0x08, // 00041408 + 0x00, 0x08, 0x9F, 0xC1, // 00089FC1 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x06, 0xB0, 0x68, // 0006B068 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x30, 0x71, // 00063071 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x08, 0xB6, 0x40, // 0008B640 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x02, 0x15, 0x31, // 00021531 + 0x00, 0x06, 0x18, 0x7A, // 0006187A + 0x00, 0x06, 0x30, 0x72, // 00063072 + 0x00, 0x07, 0x06, 0x00, // 00070600 + 0x00, 0x06, 0x08, 0x28, // 00060828 + 0x00, 0x08, 0x38, 0x41, // 00083841 + 0x00, 0x08, 0x90, 0xC1, // 000890C1 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x07, 0x54, 0x03, // 00075403 + 0x00, 0x07, 0x17, 0xF0, // 000717F0 + 0x00, 0x06, 0xB8, 0x22, // 0006B822 + 0x00, 0x01, 0x04, 0x90, // 00010490 + 0x00, 0x09, 0x92, 0x48, // 00099248 + 0x00, 0x0A, 0xE7, 0x8A, // 000AE78A + 0x00, 0x0A, 0xEF, 0x8A, // 000AEF8A + 0x00, 0x08, 0x36, 0x41, // 00083641 + 0x00, 0x09, 0xAD, 0x78, // 0009AD78 + 0x00, 0x08, 0x24, 0xC5, // 000824C5 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xB0, 0x72, // 0006B072 + 0x00, 0x07, 0xE0, 0x0E, // 0007E00E + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x08, 0x9B, 0x40, // 00089B40 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x06, 0xB0, 0x71, // 0006B071 + 0x00, 0x06, 0x08, 0x20, // 00060820 + 0x00, 0x06, 0x00, 0x1C, // 0006001C + 0x00, 0x06, 0x10, 0x6E, // 0006106E + 0x00, 0x08, 0x81, 0xC0, // 000881C0 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1D, 0xE8, // 00071DE8 + 0x00, 0x0B, 0x76, 0x7F, // 000B767F + 0x00, 0x08, 0x93, 0xC0, // 000893C0 + 0x00, 0x02, 0x88, 0x08, // 00028808 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x05, 0x38, // 00070538 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xB0, 0x71, // 0006B071 + 0x00, 0x06, 0xB8, 0x28, // 0006B828 + 0x00, 0x06, 0x80, 0x4B, // 0006804B + 0x00, 0x06, 0x00, 0x1C, // 0006001C + 0x00, 0x06, 0x08, 0x20, // 00060820 + 0x00, 0x06, 0x10, 0x6E, // 0006106E + 0x00, 0x08, 0x81, 0xC0, // 000881C0 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x06, 0x18, 0x68, // 00061868 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x0A, 0x10, 0x44, // 000A1044 + 0x00, 0x0A, 0x20, 0x42, // 000A2042 + 0x00, 0x08, 0x12, 0xC4, // 000812C4 + 0x00, 0x09, 0x03, 0xC2, // 000903C2 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0x00, 0x7C, // 000A007C + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x20, // 00070420 + 0x00, 0x07, 0x54, 0x05, // 00075405 + 0x00, 0x07, 0x15, 0x7C, // 0007157C + 0x00, 0x0B, 0x49, 0x41, // 000B4941 + 0x00, 0x0B, 0x64, 0x7F, // 000B647F + 0x00, 0x0B, 0x5B, 0x78, // 000B5B78 + 0x00, 0x09, 0xA4, 0x7C, // 0009A47C + 0x00, 0x06, 0x90, 0x0A, // 0006900A + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x09, 0x94, 0x83, // 00099483 + 0x00, 0x08, 0x36, 0x41, // 00083641 + 0x00, 0x09, 0x89, 0x41, // 00098941 + 0x00, 0x09, 0x92, 0x41, // 00099241 + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x09, 0xC4, // 000809C4 + 0x00, 0x01, 0x04, 0x13, // 00010413 + 0x00, 0x08, 0xAF, 0xC1, // 0008AFC1 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x00, 0xC1, 0x82, // 0000C182 + 0x00, 0x08, 0x36, 0x41, // 00083641 + 0x00, 0x09, 0x89, 0x41, // 00098941 + 0x00, 0x09, 0x92, 0x41, // 00099241 + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x09, 0xC4, // 000809C4 + 0x00, 0x08, 0xAF, 0xC1, // 0008AFC1 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x00, 0xC1, 0x82, // 0000C182 + 0x00, 0x04, 0x2C, 0x08, // 00042C08 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x15, 0x62, // 00021562 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x02, 0x81, 0x08, // 00028108 + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x08, 0xAE, 0x54, // 0008AE54 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xB0, 0x68, // 0006B068 + 0x00, 0x04, 0x34, 0x08, // 00043408 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x10, 0x68, // 00061068 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x82, 0x47, // 00088247 + 0x00, 0x02, 0x88, 0x08, // 00028808 + 0x00, 0x02, 0x15, 0x96, // 00021596 + 0x00, 0x0B, 0x64, 0x41, // 000B6441 + 0x00, 0x08, 0x9A, 0x54, // 00089A54 + 0x00, 0x09, 0xA4, 0x78, // 0009A478 + 0x00, 0x0A, 0xEC, 0x8C, // 000AEC8C + 0x00, 0x0A, 0xE4, 0x7F, // 000AE47F + 0x00, 0x0A, 0xF4, 0x84, // 000AF484 + 0x00, 0x0A, 0xF4, 0x8C, // 000AF48C + 0x00, 0x0A, 0xCC, 0x84, // 000ACC84 + 0x00, 0x07, 0x64, 0x3F, // 0007643F + 0x00, 0x07, 0x27, 0xFF, // 000727FF + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xA4, 0x44, // 0009A444 + 0x00, 0x09, 0x85, 0xC2, // 000985C2 + 0x00, 0x09, 0x86, 0xC3, // 000986C3 + 0x00, 0x08, 0x00, 0xC0, // 000800C0 + 0x00, 0x08, 0x12, 0x50, // 00081250 + 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 + 0x00, 0x08, 0x9A, 0x54, // 00089A54 + 0x00, 0x02, 0x87, 0x18, // 00028718 + 0x00, 0x08, 0x92, 0x54, // 00089254 + 0x00, 0x08, 0x2E, 0x40, // 00082E40 + 0x00, 0x08, 0x31, 0x40, // 00083140 + 0x00, 0x08, 0x9A, 0x54, // 00089A54 + 0x00, 0x09, 0x8D, 0xC2, // 00098DC2 + 0x00, 0x09, 0x8E, 0xC3, // 00098EC3 + 0x00, 0x08, 0x09, 0xC1, // 000809C1 + 0x00, 0x08, 0x12, 0x50, // 00081250 + 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 + 0x00, 0x08, 0x9A, 0x54, // 00089A54 + 0x00, 0x02, 0x87, 0x08, // 00028708 + 0x00, 0x08, 0x92, 0x54, // 00089254 + 0x00, 0x06, 0x28, 0x6C, // 0006286C + 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 + 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 + 0x00, 0x06, 0x90, 0x68, // 00069068 + 0x00, 0x08, 0xAD, 0x40, // 0008AD40 + 0x00, 0x02, 0x9F, 0x30, // 00029F30 + 0x00, 0x09, 0x90, 0x48, // 00099048 + 0x00, 0x09, 0xB0, 0x78, // 0009B078 + 0x00, 0x08, 0x02, 0xC6, // 000802C6 + 0x00, 0x09, 0x91, 0x48, // 00099148 + 0x00, 0x09, 0xB1, 0x78, // 0009B178 + 0x00, 0x08, 0x0A, 0xC6, // 00080AC6 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x0A, 0xC0, 0xC4, // 000AC0C4 + 0x00, 0x0A, 0xC9, 0xC4, // 000AC9C4 + 0x00, 0x02, 0x81, 0x18, // 00028118 + 0x00, 0x07, 0x7C, 0x01, // 00077C01 + 0x00, 0x07, 0x3C, 0xC0, // 00073CC0 + 0x00, 0x07, 0x74, 0x01, // 00077401 + 0x00, 0x07, 0x35, 0x60, // 00073560 + 0x00, 0x06, 0x20, 0x2E, // 0006202E + 0x00, 0x06, 0x18, 0x1C, // 0006181C + 0x00, 0x06, 0x10, 0x6E, // 0006106E + 0x00, 0x06, 0x00, 0x75, // 00060075 + 0x00, 0x06, 0x08, 0x7A, // 0006087A + 0x00, 0x06, 0xA0, 0x20, // 0006A020 + 0x00, 0x08, 0x9C, 0xC3, // 00089CC3 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x1B, 0xC2, // 00081BC2 + 0x00, 0x09, 0x16, 0xC3, // 000916C3 + 0x00, 0x02, 0x89, 0x10, // 00028910 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x30, // 00070430 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9E, 0x20, // 00029E20 + 0x00, 0x08, 0x97, 0xC3, // 000897C3 + 0x00, 0x02, 0x89, 0x10, // 00028910 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x70, // 00070470 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x98, 0x7F, // 0006987F + 0x00, 0x06, 0x84, 0x06, // 00068406 + 0x00, 0x06, 0x80, 0x75, // 00068075 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x15, 0xFC, // 000215FC + 0x00, 0x07, 0x4C, 0x05, // 00074C05 + 0x00, 0x07, 0x0D, 0xE2, // 00070DE2 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x0F, // 0006880F + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x32, // 00070E32 + 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x8C, 0x22, // 00068C22 + 0x00, 0x06, 0x5C, 0x14, // 00065C14 + 0x00, 0x06, 0xA8, 0x74, // 0006A874 + 0x00, 0x06, 0x5C, 0x24, // 00065C24 + 0x00, 0x06, 0x5C, 0x26, // 00065C26 + 0x00, 0x06, 0x5C, 0x2E, // 00065C2E + 0x00, 0x06, 0x5C, 0x25, // 00065C25 + 0x00, 0x06, 0x5C, 0x27, // 00065C27 + 0x00, 0x06, 0x5C, 0x2F, // 00065C2F + 0x00, 0x06, 0x5C, 0x44, // 00065C44 + 0x00, 0x04, 0x80, 0x03, // 00048003 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0xC1, 0x06, // 0000C106 + 0x00, 0x06, 0x84, 0x74, // 00068474 + 0x00, 0x06, 0x84, 0x43, // 00068443 + 0x00, 0x06, 0x5C, 0x3C, // 00065C3C + 0x00, 0x06, 0x5C, 0x3B, // 00065C3B + 0x00, 0x06, 0x5C, 0x54, // 00065C54 + 0x00, 0x06, 0x5C, 0x53, // 00065C53 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x25, // 00070E25 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA8, 0x74, // 0006A874 + 0x00, 0x06, 0x8C, 0x22, // 00068C22 + 0x00, 0x06, 0x5C, 0x14, // 00065C14 + 0x00, 0x06, 0x5C, 0x24, // 00065C24 + 0x00, 0x06, 0x5C, 0x26, // 00065C26 + 0x00, 0x06, 0x5C, 0x2E, // 00065C2E + 0x00, 0x06, 0x5C, 0x25, // 00065C25 + 0x00, 0x06, 0x5C, 0x27, // 00065C27 + 0x00, 0x06, 0x5C, 0x2F, // 00065C2F + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x06, 0x5C, 0x44, // 00065C44 + 0x00, 0x06, 0x5C, 0x43, // 00065C43 + 0x00, 0x06, 0x5C, 0x3C, // 00065C3C + 0x00, 0x06, 0x5C, 0x3B, // 00065C3B + 0x00, 0x06, 0x5C, 0x54, // 00065C54 + 0x00, 0x06, 0x5C, 0x53, // 00065C53 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x02, // 00071C02 + 0x00, 0x02, 0x81, 0x10, // 00028110 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x01, // 00071C01 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x65, // 00071665 + 0x00, 0x06, 0x00, 0x61, // 00060061 + 0x00, 0x06, 0x20, 0x7A, // 0006207A + 0x00, 0x07, 0x4C, 0x05, // 00074C05 + 0x00, 0x06, 0x9C, 0x7F, // 00069C7F + 0x00, 0x06, 0x90, 0x22, // 00069022 + 0x00, 0x04, 0x1F, 0x00, // 00041F00 + 0x00, 0x08, 0xA4, 0x40, // 0008A440 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x07, 0x0C, 0x14, // 00070C14 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x98, 0x1F, // 0007981F + 0x00, 0x04, 0x17, 0x00, // 00041700 + 0x00, 0x08, 0xA4, 0x40, // 0008A440 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x06, 0x00, 0x6A, // 0006006A + 0x00, 0x08, 0x12, 0x41, // 00081241 + 0x00, 0x06, 0x88, 0x0F, // 0006880F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x61, // 00068061 + 0x00, 0x07, 0x90, 0x07, // 00079007 + 0x00, 0x06, 0x3C, 0x26, // 00063C26 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x08, 0x3F, 0x40, // 00083F40 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x06, 0x1C, 0x1C, // 00061C1C + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xBC, 0x1C, // 0006BC1C + 0x00, 0x04, 0xB0, 0x0D, // 0004B00D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xB6, 0x7C, // 0009B67C + 0x00, 0x01, 0x05, 0x10, // 00010510 + 0x00, 0x09, 0xA6, 0x7F, // 0009A67F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x00, 0x42, // 00080042 + 0x00, 0x0B, 0x49, 0x40, // 000B4940 + 0x00, 0x09, 0xB6, 0x7F, // 0009B67F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x09, 0x42, // 00080942 + 0x00, 0x07, 0x84, 0x0C, // 0007840C + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x09, 0xA6, 0x7F, // 0009A67F + 0x00, 0x07, 0x8C, 0x0C, // 00078C0C + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x30, // 00072430 + 0x00, 0x08, 0x2D, 0x41, // 00082D41 + 0x00, 0x08, 0xA4, 0xC5, // 0008A4C5 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x16, 0x35, // 00021635 + 0x00, 0x02, 0x81, 0x08, // 00028108 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x9C, 0x1C, // 00069C1C + 0x00, 0x06, 0x04, 0x6A, // 0006046A + 0x00, 0x06, 0x08, 0x77, // 00060877 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x17, 0x12, // 00071712 + 0x00, 0x08, 0x80, 0x40, // 00088040 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x16, 0x71, // 00021671 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x02, 0x88, 0x08, // 00028808 + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x06, 0x24, 0x66, // 00062466 + 0x00, 0x06, 0x2C, 0x67, // 00062C67 + 0x00, 0x06, 0x34, 0x68, // 00063468 + 0x00, 0x06, 0x3C, 0x69, // 00063C69 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0B, 0x64, 0xC4, // 000B64C4 + 0x00, 0x0B, 0x6D, 0xC5, // 000B6DC5 + 0x00, 0x0B, 0x76, 0xC6, // 000B76C6 + 0x00, 0x0B, 0x7F, 0xC7, // 000B7FC7 + 0x00, 0x08, 0x25, 0x8C, // 0008258C + 0x00, 0x08, 0x2D, 0x8D, // 00082D8D + 0x00, 0x08, 0x35, 0x8E, // 0008358E + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x08, 0x3D, 0x8F, // 00083D8F + 0x00, 0x06, 0x84, 0x6A, // 0006846A + 0x00, 0x07, 0xA0, 0x0D, // 0007A00D + 0x00, 0x07, 0xA8, 0x0D, // 0007A80D + 0x00, 0x07, 0xB0, 0x0D, // 0007B00D + 0x00, 0x07, 0xB8, 0x0D, // 0007B80D + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x06, 0x90, 0x22, // 00069022 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x04, 0x2F, 0x08, // 00042F08 + 0x00, 0x04, 0x37, 0x08, // 00043708 + 0x00, 0x04, 0x3F, 0x08, // 00043F08 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x06, 0x84, 0x6A, // 0006846A + 0x00, 0x07, 0xA0, 0x0D, // 0007A00D + 0x00, 0x07, 0xA8, 0x0D, // 0007A80D + 0x00, 0x07, 0xB0, 0x0D, // 0007B00D + 0x00, 0x07, 0xB8, 0x0D, // 0007B80D + 0x00, 0x00, 0x00, 0x00, // 00000000 }; // addres 06800 count 1077 (4314 bytes) static const unsigned char maspcm_array10[] = { - 0xf0, 0x00, 0x04, 0x35, 0x08, 0x00, - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0F, 0x00, // 00070F00 - 0x00, 0x0B, 0x52, 0x7F, // 000B527F - 0x00, 0x0B, 0x5B, 0x7E, // 000B5B7E - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x0A, 0x09, 0x78, // 000A0978 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x08, 0xA1, 0x41, // 0008A141 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0B, 0x5B, 0x7E, // 000B5B7E - 0x00, 0x07, 0x64, 0x01, // 00076401 - 0x00, 0x07, 0x26, 0x69, // 00072669 - 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F - 0x00, 0x0B, 0x75, 0x7E, // 000B757E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA0, 0x22, // 0006A022 - 0x00, 0x0A, 0xF7, 0x86, // 000AF786 - 0x00, 0x0A, 0xEF, 0x85, // 000AEF85 - 0x00, 0x0A, 0x36, 0x7F, // 000A367F - 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F - 0x00, 0x0B, 0x64, 0x70, // 000B6470 - 0x00, 0x06, 0x98, 0x79, // 00069879 - 0x00, 0x06, 0x90, 0x78, // 00069078 - 0x00, 0x06, 0xA8, 0x77, // 0006A877 - 0x00, 0x06, 0xB0, 0x7A, // 0006B07A - 0x00, 0x06, 0xBC, 0x64, // 0006BC64 - 0x00, 0x06, 0xB8, 0x71, // 0006B871 - 0x00, 0x06, 0xB8, 0x70, // 0006B870 - 0x00, 0x06, 0xB8, 0x69, // 0006B869 - 0x00, 0x06, 0xB8, 0x7B, // 0006B87B - 0x00, 0x06, 0xB8, 0x7C, // 0006B87C - 0x00, 0x06, 0x9C, 0x6B, // 00069C6B - 0x00, 0x06, 0xBC, 0x6E, // 0006BC6E - 0x00, 0x06, 0xBC, 0x72, // 0006BC72 - 0x00, 0x06, 0xB8, 0x74, // 0006B874 - 0x00, 0x06, 0xB8, 0x7D, // 0006B87D - 0x00, 0x06, 0xBC, 0x73, // 0006BC73 - 0x00, 0x06, 0x9C, 0x7D, // 00069C7D - 0x00, 0x06, 0xBC, 0x7C, // 0006BC7C - 0x00, 0x06, 0xBC, 0x7B, // 0006BC7B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x3C, 0x65, // 00063C65 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xBF, 0x41, // 0009BF41 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xBC, 0x7A, // 0006BC7A - 0x00, 0x07, 0x7C, 0x01, // 00077C01 - 0x00, 0x07, 0x3D, 0xFF, // 00073DFF - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1C, 0x90, // 00071C90 - 0x00, 0x07, 0x74, 0x01, // 00077401 - 0x00, 0x07, 0x34, 0xA0, // 000734A0 - 0x00, 0x06, 0x08, 0x76, // 00060876 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x21, 0x41, // 00082141 - 0x00, 0x06, 0xB8, 0x16, // 0006B816 - 0x00, 0x06, 0x90, 0x24, // 00069024 - 0x00, 0x06, 0x90, 0x2C, // 0006902C - 0x00, 0x06, 0x90, 0x1C, // 0006901C - 0x00, 0x06, 0x90, 0x20, // 00069020 - 0x00, 0x06, 0x98, 0x25, // 00069825 - 0x00, 0x06, 0x98, 0x2D, // 0006982D - 0x00, 0x06, 0xB0, 0x1D, // 0006B01D - 0x00, 0x06, 0xA0, 0x10, // 0006A010 - 0x00, 0x06, 0x98, 0x21, // 00069821 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3C, 0x24, // 00073C24 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x07, 0x6C, 0x01, // 00076C01 - 0x00, 0x07, 0x2C, 0x98, // 00072C98 - 0x00, 0x06, 0xBC, 0x16, // 0006BC16 - 0x00, 0x06, 0x94, 0x2A, // 0006942A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xAC, 0x2B, // 0006AC2B - 0x00, 0x07, 0x7C, 0x01, // 00077C01 - 0x00, 0x07, 0x3D, 0xFF, // 00073DFF - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x00, // 00071E00 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2C, 0x90, // 00072C90 - 0x00, 0x06, 0xBC, 0x14, // 0006BC14 - 0x00, 0x06, 0x94, 0x1C, // 0006941C - 0x00, 0x06, 0x9C, 0x26, // 00069C26 - 0x00, 0x06, 0x9C, 0x2E, // 00069C2E - 0x00, 0x06, 0xAC, 0x1D, // 0006AC1D - 0x00, 0x06, 0xAC, 0x27, // 0006AC27 - 0x00, 0x06, 0xAC, 0x2F, // 0006AC2F - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x04, // 00070C04 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x10, // 00071410 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x4B, // 0006884B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x94, 0x06, // 00069406 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x62, // 00071E62 - 0x00, 0x06, 0x10, 0x78, // 00061078 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1F, 0x18, // 00071F18 - 0x00, 0x06, 0x98, 0x22, // 00069822 - 0x00, 0x08, 0x92, 0x41, // 00089241 - 0x00, 0x02, 0x9E, 0xF0, // 00029EF0 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2C, 0x80, // 00072C80 - 0x00, 0x07, 0x74, 0x00, // 00077400 - 0x00, 0x07, 0x34, 0x04, // 00073404 - 0x00, 0x0A, 0xED, 0xC0, // 000AEDC0 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x1B, 0xC6, // 00081BC6 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2C, 0x40, // 00072C40 - 0x00, 0x07, 0x74, 0x02, // 00077402 - 0x00, 0x07, 0x34, 0x00, // 00073400 - 0x00, 0x0A, 0xED, 0xC0, // 000AEDC0 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x1B, 0xC6, // 00081BC6 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2C, 0x04, // 00072C04 - 0x00, 0x07, 0x74, 0x00, // 00077400 - 0x00, 0x07, 0x34, 0x20, // 00073420 - 0x00, 0x04, 0x17, 0x00, // 00041700 - 0x00, 0x0A, 0xED, 0xC0, // 000AEDC0 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x1B, 0xC6, // 00081BC6 - 0x00, 0x0A, 0xD2, 0x41, // 000AD241 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x27, 0x18, // 00072718 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x98, 0x3B, // 0006983B - 0x00, 0x06, 0x9C, 0x75, // 00069C75 - 0x00, 0x06, 0xA0, 0x53, // 0006A053 - 0x00, 0x06, 0x28, 0x77, // 00062877 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x40, // 00071640 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x90, // 00072490 - 0x00, 0x0B, 0x49, 0x7D, // 000B497D - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x6C, // 0007066C - 0x00, 0x06, 0x90, 0x1E, // 0006901E - 0x00, 0x06, 0xA0, 0x1F, // 0006A01F - 0x00, 0x06, 0x88, 0x14, // 00068814 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x04, 0x17, 0x08, // 00041708 - 0x00, 0x04, 0x1F, 0x08, // 00041F08 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x08, 0xAD, 0x40, // 0008AD40 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0B, 0x49, 0x40, // 000B4940 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x07, 0x88, 0x0D, // 0007880D - 0x00, 0x07, 0x90, 0x0D, // 0007900D - 0x00, 0x07, 0x98, 0x0D, // 0007980D - 0x00, 0x07, 0xA0, 0x0D, // 0007A00D - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x50, // 00071650 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x26, 0x90, // 00072690 - 0x00, 0x0B, 0x49, 0x7D, // 000B497D - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x70, // 00070670 - 0x00, 0x06, 0x94, 0x20, // 00069420 - 0x00, 0x06, 0xA4, 0x21, // 0006A421 - 0x00, 0x06, 0x8C, 0x15, // 00068C15 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0B, 0x52, 0x75, // 000B5275 - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x04, 0x0F, 0x08, // 00040F08 - 0x00, 0x07, 0x8C, 0x0E, // 00078C0E - 0x00, 0x07, 0x8C, 0x0E, // 00078C0E - 0x00, 0x07, 0x8C, 0x0E, // 00078C0E - 0x00, 0x07, 0x8C, 0x0E, // 00078C0E - 0x00, 0x06, 0x94, 0x15, // 00069415 - 0x00, 0x02, 0x1C, 0x0E, // 00021C0E - 0x00, 0x07, 0x4C, 0x06, // 00074C06 - 0x00, 0x07, 0x0C, 0xD3, // 00070CD3 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x0F, // 0006880F - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x32, // 00070E32 - 0x00, 0x07, 0x64, 0x01, // 00076401 - 0x00, 0x07, 0x26, 0x70, // 00072670 - 0x00, 0x07, 0x6C, 0x00, // 00076C00 - 0x00, 0x07, 0x2E, 0x90, // 00072E90 - 0x00, 0x06, 0x8C, 0x22, // 00068C22 - 0x00, 0x04, 0x80, 0x4F, // 0004804F - 0x00, 0x06, 0x08, 0x78, // 00060878 - 0x00, 0x06, 0xA4, 0x24, // 0006A424 - 0x00, 0x06, 0xAC, 0x25, // 0006AC25 - 0x00, 0x06, 0x5C, 0x3C, // 00065C3C - 0x00, 0x06, 0x5C, 0x3B, // 00065C3B - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x19, 0x1D, // 0002191D - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x02, 0x3F, 0xCC, // 00023FCC - 0x00, 0x07, 0x6C, 0x06, // 00076C06 - 0x00, 0x07, 0x2C, 0xEB, // 00072CEB - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x0B, 0x52, 0x7F, // 000B527F - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0A, 0xC7, 0x82, // 000AC782 - 0x00, 0x02, 0x9E, 0x20, // 00029E20 - 0x00, 0x0A, 0xC7, 0x81, // 000AC781 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x1B, 0x7F, // 00021B7F - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x54, 0x04, // 00075404 - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x06, 0x30, 0x2C, // 0006302C - 0x00, 0x08, 0x92, 0x41, // 00089241 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x19, 0x0C, // 0002190C - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0A, 0xF6, 0x41, // 000AF641 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x18, 0xFA, // 000218FA - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x30, 0x2C, // 0006302C - 0x00, 0x08, 0x92, 0x41, // 00089241 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x19, 0x0C, // 0002190C - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0A, 0xF6, 0x41, // 000AF641 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x19, 0x03, // 00021903 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x38, 0x52, // 00063852 - 0x00, 0x06, 0x30, 0x2C, // 0006302C - 0x00, 0x09, 0xBF, 0x7A, // 0009BF7A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0xFF, 0x41, // 000AFF41 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0B, 0x36, 0x41, // 000B3641 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xB0, 0x2C, // 0006B02C - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x18, 0xE4, // 000218E4 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x40, 0x7D, // 000B407D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x84, 0x15, // 00068415 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0xB8, 0x16, // 0004B816 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x06, 0x27, // 000C0627 - 0x00, 0x04, 0x35, 0x18, // 00043518 - 0x00, 0x04, 0xB8, 0x1E, // 0004B81E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0E, 0x06, 0x27, // 000E0627 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0xB8, 0x16, // 0004B816 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x0E, 0x27, // 000C0E27 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0xB8, 0x0E, // 0004B80E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0E, 0x0E, 0x27, // 000E0E27 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0xB8, 0x16, // 0004B816 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x16, 0x27, // 000C1627 - 0x00, 0x04, 0x35, 0x18, // 00043518 - 0x00, 0x04, 0xB8, 0x1E, // 0004B81E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0E, 0x16, 0x27, // 000E1627 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0xB8, 0x16, // 0004B816 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x1E, 0x27, // 000C1E27 - 0x00, 0x04, 0x35, 0x08, // 00043508 - 0x00, 0x04, 0xB8, 0x0E, // 0004B80E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0E, 0x1E, 0x27, // 000E1E27 - 0x00, 0x07, 0x64, 0x01, // 00076401 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x27, 0x12, // 00072712 - 0x00, 0x07, 0x80, 0x0D, // 0007800D - 0x00, 0x07, 0x88, 0x0D, // 0007880D - 0x00, 0x07, 0x90, 0x0D, // 0007900D - 0x00, 0x07, 0x98, 0x0D, // 0007980D - 0x00, 0x06, 0xA0, 0x22, // 0006A022 - 0x00, 0x07, 0x80, 0x0F, // 0007800F - 0x00, 0x07, 0x88, 0x0F, // 0007880F - 0x00, 0x07, 0x90, 0x0F, // 0007900F - 0x00, 0x07, 0x98, 0x07, // 00079807 - 0x00, 0x06, 0x2C, 0x79, // 00062C79 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x09, 0x0D, // 000C090D - 0x00, 0x0C, 0x11, 0x0D, // 000C110D - 0x00, 0x0C, 0x19, 0x0D, // 000C190D - 0x00, 0x0C, 0x21, 0x0D, // 000C210D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x8C, 0x66, // 00068C66 - 0x00, 0x06, 0x94, 0x67, // 00069467 - 0x00, 0x06, 0x9C, 0x68, // 00069C68 - 0x00, 0x06, 0xA4, 0x69, // 0006A469 - 0x00, 0x06, 0x00, 0x7A, // 0006007A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0x40, // 00088040 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x19, 0xF8, // 000219F8 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x00, 0x24, // 00060024 - 0x00, 0x06, 0x08, 0x78, // 00060878 - 0x00, 0x06, 0x18, 0x76, // 00061876 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x08, 0x89, 0x41, // 00088941 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x06, 0x00, 0x2C, // 0006002C - 0x00, 0x06, 0x08, 0x1C, // 0006081C - 0x00, 0x08, 0x80, 0xC1, // 000880C1 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x08, 0x9B, 0x41, // 00089B41 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x09, 0x80, 0x7F, // 0009807F - 0x00, 0x06, 0x14, 0x7B, // 0006147B - 0x00, 0x06, 0x1C, 0x7A, // 00061C7A - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9F, 0x28, // 00029F28 - 0x00, 0x08, 0x98, 0xC3, // 000898C3 - 0x00, 0x02, 0x87, 0x10, // 00028710 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x02, 0x81, 0x08, // 00028108 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x94, 0x7B, // 0006947B - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x12, // 00071412 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x00, // 00071E00 - 0x00, 0x08, 0xA0, 0xC2, // 0008A0C2 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x19, 0xF8, // 000219F8 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x24, 0x2A, // 0006242A - 0x00, 0x08, 0xA3, 0xC4, // 0008A3C4 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x19, 0xF8, // 000219F8 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x01, // 00071E01 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x09, // 00070409 - 0x00, 0x06, 0x08, 0x69, // 00060869 - 0x00, 0x06, 0x9C, 0x22, // 00069C22 - 0x00, 0x06, 0x10, 0x6A, // 0006106A - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x19, 0xA4, // 000219A4 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0x92, 0x41, // 00089241 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x19, 0xA4, // 000219A4 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x07, 0x55, 0x5C, // 0007555C - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x07, 0x5D, 0x04, // 00075D04 - 0x00, 0x07, 0x1C, 0x00, // 00071C00 - 0x00, 0x07, 0x65, 0x58, // 00076558 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x6D, 0x14, // 00076D14 - 0x00, 0x07, 0x2C, 0x00, // 00072C00 - 0x00, 0x07, 0x94, 0x0F, // 0007940F - 0x00, 0x07, 0x9C, 0x0F, // 00079C0F - 0x00, 0x07, 0xA4, 0x0F, // 0007A40F - 0x00, 0x07, 0xAC, 0x0F, // 0007AC0F - 0x00, 0x06, 0x38, 0x3A, // 0006383A - 0x00, 0x0B, 0x76, 0x7D, // 000B767D - 0x00, 0x06, 0x10, 0x6C, // 0006106C - 0x00, 0x0A, 0xFF, 0x5F, // 000AFF5F - 0x00, 0x06, 0x84, 0x05, // 00068405 - 0x00, 0x02, 0x9F, 0x18, // 00029F18 - 0x00, 0x09, 0x3F, 0x54, // 00093F54 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xB4, 0x15, // 0006B415 - 0x00, 0x07, 0x77, 0xFC, // 000777FC - 0x00, 0x07, 0x34, 0x00, // 00073400 - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x01, 0x4E, 0x80, // 00014E80 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0x80, 0x87, // 00098087 - 0x00, 0x09, 0x88, 0x87, // 00098887 - 0x00, 0x0C, 0x20, 0x12, // 000C2012 - 0x00, 0x0E, 0x21, 0x12, // 000E2112 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x28, 0x12, // 000C2812 - 0x00, 0x0E, 0x29, 0x12, // 000E2912 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0x84, 0x48, // 00098448 - 0x00, 0x09, 0x8D, 0x48, // 00098D48 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x09, 0xA4, 0x48, // 0009A448 - 0x00, 0x08, 0x04, 0x40, // 00080440 - 0x00, 0x09, 0xAD, 0x48, // 0009AD48 - 0x00, 0x08, 0x0D, 0x40, // 00080D40 - 0x00, 0x0A, 0xE4, 0xC6, // 000AE4C6 - 0x00, 0x0A, 0xC0, 0xC6, // 000AC0C6 - 0x00, 0x0A, 0xED, 0xC6, // 000AEDC6 - 0x00, 0x0A, 0xC9, 0xC6, // 000AC9C6 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0xE4, 0x0F, // 0007E40F - 0x00, 0x07, 0xC4, 0x0F, // 0007C40F - 0x00, 0x07, 0xEC, 0x0F, // 0007EC0F - 0x00, 0x07, 0xCC, 0x0F, // 0007CC0F - 0x00, 0x06, 0x00, 0x69, // 00060069 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x07, 0x0E, 0x65, // 00070E65 - 0x00, 0x08, 0x00, 0x41, // 00080041 - 0x00, 0x06, 0x1C, 0x64, // 00061C64 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x39, // 00071439 - 0x00, 0x06, 0x88, 0x22, // 00068822 - 0x00, 0x04, 0x0F, 0x00, // 00040F00 - 0x00, 0x08, 0x90, 0xC2, // 000890C2 - 0x00, 0x02, 0x9E, 0x28, // 00029E28 - 0x00, 0x08, 0x9B, 0x40, // 00089B40 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x02, 0x1B, 0x7F, // 00021B7F - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x08, 0x09, 0x41, // 00080941 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x69, // 00068069 - 0x00, 0x07, 0x88, 0x07, // 00078807 - 0x00, 0x07, 0x4C, 0x01, // 00074C01 - 0x00, 0x0B, 0x76, 0x75, // 000B7675 - 0x00, 0x07, 0x0E, 0x01, // 00070E01 - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x04, 0x04, // 00070404 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x06, 0x80, 0x4B, // 0006804B - 0x00, 0x07, 0x44, 0x00, // 00074400 - 0x00, 0x07, 0x05, 0x3D, // 0007053D - 0x00, 0x06, 0xB4, 0x15, // 0006B415 - 0x00, 0x06, 0x8C, 0x2A, // 00068C2A - 0x00, 0x06, 0x94, 0x72, // 00069472 - 0x00, 0x06, 0x80, 0x4B, // 0006804B - 0x00, 0x06, 0x00, 0x24, // 00060024 - 0x00, 0x06, 0x08, 0x78, // 00060878 - 0x00, 0x06, 0x18, 0x76, // 00061876 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x08, 0x89, 0x41, // 00088941 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x06, 0x00, 0x2C, // 0006002C - 0x00, 0x06, 0x08, 0x20, // 00060820 - 0x00, 0x08, 0x80, 0xC1, // 000880C1 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x06, 0x0C, 0x26, // 00060C26 - 0x00, 0x06, 0x14, 0x1C, // 0006141C - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x00, // 00071E00 - 0x00, 0x08, 0x89, 0xC2, // 000889C2 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x09, 0xC3, // 000809C3 - 0x00, 0x06, 0x24, 0x24, // 00062424 - 0x00, 0x09, 0x22, 0xC4, // 000922C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x24, 0xC3, // 000824C3 - 0x00, 0x09, 0x29, 0xC4, // 000929C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x0C, 0x40, // 00080C40 - 0x00, 0x06, 0x24, 0x2E, // 0006242E - 0x00, 0x09, 0x22, 0xC4, // 000922C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x24, 0xC3, // 000824C3 - 0x00, 0x09, 0x29, 0xC4, // 000929C4 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x0C, 0x40, // 00080C40 - 0x00, 0x07, 0x54, 0x00, // 00075400 - 0x00, 0x07, 0x14, 0x20, // 00071420 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0xC2, // 000880C2 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x1A, 0x86, // 00021A86 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0x89, 0xC2, // 000889C2 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x1A, 0x86, // 00021A86 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x28, 0x3A, // 0006283A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0xED, 0x5F, // 000AED5F - 0x00, 0x02, 0x9F, 0x18, // 00029F18 - 0x00, 0x09, 0x2D, 0x54, // 00092D54 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x04, 0xB8, 0x0D, // 0004B80D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xBF, 0x7C, // 0009BF7C - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x01, 0x0D, 0x10, // 00010D10 - 0x00, 0x06, 0x20, 0x76, // 00062076 - 0x00, 0x09, 0x86, 0x8D, // 0009868D - 0x00, 0x09, 0x8E, 0x8D, // 00098E8D - 0x00, 0x08, 0xA4, 0x40, // 0008A440 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x08, 0x40, // 00080840 - 0x00, 0x0C, 0x31, 0x08, // 000C3108 - 0x00, 0x0E, 0x31, 0x09, // 000E3109 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0C, 0x01, 0x08, // 000C0108 - 0x00, 0x0E, 0x01, 0x09, // 000E0109 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0xF6, 0x7C, // 000AF67C - 0x00, 0x09, 0x9F, 0x7F, // 00099F7F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x36, 0x42, // 00083642 - 0x00, 0x0A, 0xC0, 0x7C, // 000AC07C - 0x00, 0x09, 0xBF, 0x7F, // 0009BF7F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x00, 0x42, // 00080042 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0xF4, 0x0C, // 0007F40C - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0xC4, 0x0C, // 0007C40C - 0x00, 0x02, 0x16, 0x52, // 00021652 - 0x00, 0x07, 0x4C, 0x06, // 00074C06 - 0x00, 0x07, 0x0E, 0x56, // 00070E56 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x0F, // 0006880F - 0x00, 0x06, 0x00, 0x7B, // 0006007B - 0x00, 0x06, 0x10, 0x74, // 00061074 - 0x00, 0x08, 0x00, 0x41, // 00080041 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1C, 0x30, // 00071C30 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9E, 0x18, // 00029E18 - 0x00, 0x08, 0x88, 0xC3, // 000888C3 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x02, 0x15, 0xDB, // 000215DB - 0x00, 0x07, 0x4C, 0x06, // 00074C06 - 0x00, 0x07, 0x0E, 0x66, // 00070E66 - 0x00, 0x06, 0x80, 0x7B, // 0006807B - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x88, 0x0E, // 0006880E - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x06, 0x08, 0x24, // 00060824 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x06, 0x08, 0x2C, // 0006082C - 0x00, 0x06, 0x34, 0x26, // 00063426 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x86, 0xC1, // 000886C1 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1F, 0x00, // 00071F00 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x08, 0xA8, 0xC3, // 0008A8C3 - 0x00, 0x02, 0x87, 0x08, // 00028708 - 0x00, 0x08, 0x80, 0xC2, // 000880C2 - 0x00, 0x06, 0x20, 0x74, // 00062074 - 0x00, 0x08, 0x28, 0xC3, // 000828C3 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x06, 0x18, 0x79, // 00061879 - 0x00, 0x06, 0x14, 0x6E, // 0006146E - 0x00, 0x08, 0xA4, 0x41, // 0008A441 - 0x00, 0x02, 0x9E, 0x20, // 00029E20 - 0x00, 0x08, 0xBB, 0x42, // 0008BB42 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F - 0x00, 0x08, 0x10, 0x40, // 00081040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x98, 0x79, // 00069879 - 0x00, 0x06, 0x94, 0x6E, // 0006946E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x06, 0x08, 0x24, // 00060824 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x06, 0x08, 0x2C, // 0006082C - 0x00, 0x06, 0x00, 0x1C, // 0006001C - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x06, 0x18, 0x71, // 00061871 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x24, 0x6B, // 0006246B - 0x00, 0x08, 0xA9, 0xC0, // 0008A9C0 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x2D, 0xC2, // 00082DC2 - 0x00, 0x08, 0xB4, 0x41, // 0008B441 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x1A, 0xA5, // 00021AA5 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0xB5, 0x42, // 0008B542 - 0x00, 0x02, 0x86, 0x10, // 00028610 - 0x00, 0x02, 0x1A, 0xA5, // 00021AA5 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x34, 0x26, // 00063426 - 0x00, 0x0A, 0xD1, 0x41, // 000AD141 - 0x00, 0x0A, 0xF6, 0x7E, // 000AF67E - 0x00, 0x08, 0x12, 0xC6, // 000812C6 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x0A, 0xC2, 0x7E, // 000AC27E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA4, 0x6B, // 0006A46B - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x25, // 00072425 - 0x00, 0x08, 0x93, 0xC5, // 000893C5 - 0x00, 0x06, 0xA8, 0x71, // 0006A871 - 0x00, 0x08, 0x9C, 0xC2, // 00089CC2 - 0x00, 0x02, 0x88, 0x10, // 00028810 - 0x00, 0x02, 0x1B, 0x86, // 00021B86 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x06, 0x18, 0x52, // 00061852 - 0x00, 0x07, 0x54, 0x08, // 00075408 - 0x00, 0x07, 0x14, 0x00, // 00071400 - 0x00, 0x07, 0x7C, 0x06, // 00077C06 - 0x00, 0x07, 0x3E, 0xFD, // 00073EFD - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x20, // 00029F20 - 0x00, 0x0A, 0xC3, 0xC2, // 000AC3C2 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x1B, 0xA7, // 00021BA7 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0xB8, 0x0F, // 0006B80F - 0x00, 0x06, 0x34, 0x26, // 00063426 - 0x00, 0x06, 0x3C, 0x1C, // 00063C1C - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x06, 0x18, 0x70, // 00061870 - 0x00, 0x08, 0x86, 0xC7, // 000886C7 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x00, 0xC2, // 000800C2 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x25, // 00072425 - 0x00, 0x06, 0x28, 0x79, // 00062879 - 0x00, 0x08, 0x93, 0xC0, // 000893C0 - 0x00, 0x06, 0x80, 0x70, // 00068070 - 0x00, 0x08, 0x94, 0xC2, // 000894C2 - 0x00, 0x02, 0x88, 0x38, // 00028838 - 0x00, 0x08, 0xBD, 0x41, // 0008BD41 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x09, 0xAD, 0x41, // 0009AD41 - 0x00, 0x07, 0x7C, 0x06, // 00077C06 - 0x00, 0x07, 0x3E, 0xFD, // 00073EFD - 0x00, 0x02, 0x1B, 0xB0, // 00021BB0 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0xA8, 0x79, // 0006A879 - 0x00, 0x06, 0xB8, 0x0F, // 0006B80F - 0x00, 0x06, 0x14, 0x26, // 00061426 - 0x00, 0x06, 0x20, 0x7D, // 0006207D - 0x00, 0x06, 0x28, 0x7C, // 0006287C - 0x00, 0x08, 0x32, 0x60, // 00083260 - 0x00, 0x02, 0x86, 0x18, // 00028618 - 0x00, 0x08, 0x2D, 0xC4, // 00082DC4 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x02, 0x81, 0x08, // 00028108 - 0x00, 0x0B, 0x64, 0x7F, // 000B647F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA8, 0x7C, // 0006A87C - 0x00, 0x06, 0xA0, 0x7D, // 0006A07D - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3C, 0x01, // 00073C01 - 0x00, 0x06, 0x00, 0x7C, // 0006007C - 0x00, 0x06, 0x30, 0x79, // 00063079 - 0x00, 0x08, 0xBF, 0xC0, // 0008BFC0 - 0x00, 0x02, 0x88, 0xC0, // 000288C0 - 0x00, 0x08, 0xB6, 0x41, // 0008B641 - 0x00, 0x02, 0x9E, 0xB0, // 00029EB0 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x08, 0xBA, 0xC1, // 0008BAC1 - 0x00, 0x06, 0x34, 0x6E, // 0006346E - 0x00, 0x08, 0xBF, 0xC6, // 0008BFC6 - 0x00, 0x07, 0x5C, 0x00, // 00075C00 - 0x00, 0x07, 0x1F, 0x00, // 00071F00 - 0x00, 0x07, 0x54, 0x01, // 00075401 - 0x00, 0x07, 0x16, 0x00, // 00071600 - 0x00, 0x08, 0xAF, 0xC3, // 0008AFC3 - 0x00, 0x02, 0x87, 0x08, // 00028708 - 0x00, 0x08, 0xBF, 0xC2, // 0008BFC2 - 0x00, 0x08, 0x2F, 0xC3, // 00082FC3 - 0x00, 0x02, 0x86, 0x08, // 00028608 - 0x00, 0x08, 0x3F, 0xC2, // 00083FC2 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x1C, 0x15, // 00021C15 - 0x00, 0x07, 0x4C, 0x06, // 00074C06 - 0x00, 0x07, 0x0E, 0xFD, // 00070EFD - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x7C, // 0006807C - 0x00, 0x06, 0x88, 0x0F, // 0006880F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x04, 0x64, // 00060464 - 0x00, 0x06, 0x0C, 0x72, // 00060C72 - 0x00, 0x06, 0x10, 0x74, // 00061074 - 0x00, 0x08, 0x80, 0x40, // 00088040 - 0x00, 0x02, 0x9F, 0x40, // 00029F40 - 0x00, 0x08, 0x89, 0x40, // 00088940 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x1B, 0x7F, // 00021B7F - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x08, 0x92, 0x40, // 00089240 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x1B, 0x7F, // 00021B7F - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x01, // 00070C01 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x04, 0x07, 0x00, // 00040700 - 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x81, 0x10, // 00028110 - 0x00, 0x02, 0x1B, 0x68, // 00021B68 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x80, 0x07, // 00078007 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x61, // 00070661 - 0x00, 0x07, 0x4C, 0x0C, // 00074C0C - 0x00, 0x07, 0x0C, 0x00, // 00070C00 - 0x00, 0x06, 0x14, 0x64, // 00061464 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0A, 0xC7, 0x81, // 000AC781 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0B, 0x52, 0x7F, // 000B527F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x94, 0x64, // 00069464 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x69, // 00070669 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x02, // 00070C02 - 0x00, 0x06, 0x10, 0x7A, // 0006107A - 0x00, 0x06, 0x20, 0x1C, // 0006201C - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0A, 0xC3, 0x81, // 000AC381 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x0B, 0x52, 0x7F, // 000B527F - 0x00, 0x02, 0x81, 0x48, // 00028148 - 0x00, 0x08, 0x9A, 0x41, // 00089A41 - 0x00, 0x02, 0x9E, 0x38, // 00029E38 - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x06, 0x08, 0x24, // 00060824 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x06, 0x08, 0x2C, // 0006082C - 0x00, 0x0B, 0x52, 0x40, // 000B5240 - 0x00, 0x0A, 0xE1, 0x7E, // 000AE17E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x90, 0x7A, // 0006907A - 0x00, 0x06, 0xA0, 0x1C, // 0006A01C - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x69, // 00070669 - 0x00, 0x07, 0x4C, 0x00, // 00074C00 - 0x00, 0x07, 0x0C, 0x01, // 00070C01 - 0x00, 0x07, 0x44, 0x01, // 00074401 - 0x00, 0x07, 0x06, 0x6C, // 0007066C - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0A, 0xCF, 0x81, // 000ACF81 - 0x00, 0x06, 0x18, 0x77, // 00061877 - 0x00, 0x06, 0x80, 0x22, // 00068022 - 0x00, 0x0B, 0x09, 0xC3, // 000B09C3 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x1B, 0x68, // 00021B68 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x24, 0x6B, // 0006246B - 0x00, 0x0B, 0x1B, 0x41, // 000B1B41 - 0x00, 0x06, 0x14, 0x65, // 00061465 - 0x00, 0x06, 0x04, 0x6A, // 0006046A - 0x00, 0x08, 0x28, 0x41, // 00082841 - 0x00, 0x02, 0x9F, 0x08, // 00029F08 - 0x00, 0x08, 0x82, 0xC0, // 000882C0 - 0x00, 0x08, 0xA4, 0x40, // 0008A440 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x1B, 0x66, // 00021B66 - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0B, 0x40, 0x41, // 000B4041 - 0x00, 0x0B, 0x64, 0x40, // 000B6440 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x0B, 0x76, 0x40, // 000B7640 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x08, 0x9B, 0x40, // 00089B40 - 0x00, 0x02, 0x9E, 0x28, // 00029E28 - 0x00, 0x04, 0x27, 0x08, // 00042708 - 0x00, 0x04, 0x2F, 0x08, // 00042F08 - 0x00, 0x04, 0x37, 0x08, // 00043708 - 0x00, 0x04, 0x3F, 0x08, // 00043F08 - 0x00, 0x07, 0xA0, 0x0D, // 0007A00D - 0x00, 0x07, 0xA8, 0x0D, // 0007A80D - 0x00, 0x07, 0xB0, 0x0D, // 0007B00D - 0x00, 0x07, 0xB8, 0x0D, // 0007B80D - 0x00, 0x06, 0x98, 0x77, // 00069877 - 0x00, 0x06, 0x84, 0x6A, // 0006846A - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x00, 0x6D, // 0006006D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xC0, 0x6D, // 0006C06D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x3F, 0xCC, // 00023FCC - 0x00, 0x07, 0x6C, 0x06, // 00076C06 - 0x00, 0x07, 0x2F, 0x78, // 00072F78 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x19, 0x5B, // 0002195B - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0xC1, 0x80, // 0000C180 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x00, 0x1C, // 0006001C - 0x00, 0x07, 0x6C, 0x01, // 00076C01 - 0x00, 0x07, 0x2E, 0x00, // 00072E00 - 0x00, 0x07, 0x7C, 0x01, // 00077C01 - 0x00, 0x07, 0x3E, 0x68, // 00073E68 - 0x00, 0x0A, 0xF1, 0x7E, // 000AF17E - 0x00, 0x09, 0x00, 0xC6, // 000900C6 - 0x00, 0x02, 0x88, 0x08, // 00028808 - 0x00, 0x08, 0x00, 0xC5, // 000800C5 - 0x00, 0x06, 0x2C, 0x64, // 00062C64 - 0x00, 0x0A, 0x00, 0x7F, // 000A007F - 0x00, 0x06, 0x20, 0x7A, // 0006207A - 0x00, 0x06, 0xB8, 0x22, // 0006B822 - 0x00, 0x04, 0x3F, 0x00, // 00043F00 - 0x00, 0x08, 0xA4, 0x40, // 0008A440 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x08, 0x3F, 0xC0, // 00083FC0 - 0x00, 0x08, 0xAD, 0x40, // 0008AD40 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x1B, 0x7F, // 00021B7F - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x06, 0x2C, 0x7F, // 00062C7F - 0x00, 0x08, 0xA4, 0x40, // 0008A440 - 0x00, 0x02, 0x9E, 0x08, // 00029E08 - 0x00, 0x0B, 0x6D, 0x6F, // 000B6D6F - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x02, 0x1A, 0xAD, // 00021AAD - 0x00, 0x06, 0xB0, 0x1C, // 0006B01C - 0x00, 0x0A, 0xFF, 0x7E, // 000AFF7E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x84, 0x72, // 00068472 - 0x00, 0x06, 0xAC, 0x7F, // 0006AC7F - 0x00, 0x07, 0xB8, 0x07, // 0007B807 - 0x00, 0x06, 0x10, 0x2C, // 0006102C - 0x00, 0x0B, 0x64, 0x6D, // 000B646D - 0x00, 0x0A, 0xD2, 0x7E, // 000AD27E - 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x81, 0x20, // 00028120 - 0x00, 0x06, 0x90, 0x1C, // 0006901C - 0x00, 0x06, 0x90, 0x20, // 00069020 - 0x00, 0x06, 0x9C, 0x7B, // 00069C7B - 0x00, 0x0B, 0x64, 0x6E, // 000B646E - 0x00, 0x06, 0x34, 0x6D, // 0006346D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0xA4, 0x7F, // 0006A47F - 0x00, 0x06, 0xB4, 0x0F, // 0006B40F - 0x00, 0x06, 0xB4, 0x6C, // 0006B46C - 0x00, 0x0B, 0x76, 0x7F, // 000B767F - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 - 0x00, 0x08, 0x3F, 0x40, // 00083F40 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x06, 0xB4, 0x6B, // 0006B46B - 0x00, 0x04, 0xB0, 0x0D, // 0004B00D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x09, 0xB6, 0x7C, // 0009B67C - 0x00, 0x01, 0x05, 0x10, // 00010510 - 0x00, 0x09, 0xA6, 0x7F, // 0009A67F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x00, 0x42, // 00080042 - 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 - 0x00, 0x09, 0xB6, 0x7F, // 0009B67F - 0x00, 0x02, 0x82, 0x08, // 00028208 - 0x00, 0x08, 0x3F, 0x42, // 00083F42 - 0x00, 0x07, 0x84, 0x0C, // 0007840C - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x09, 0xA6, 0x7F, // 0009A67F - 0x00, 0x07, 0xBC, 0x0C, // 0007BC0C - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x24, 0x30, // 00072430 - 0x00, 0x08, 0x2D, 0x41, // 00082D41 - 0x00, 0x08, 0xA4, 0xC5, // 0008A4C5 - 0x00, 0x02, 0x9F, 0x10, // 00029F10 - 0x00, 0x02, 0x1B, 0xBE, // 00021BBE - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3F, 0x18, // 00073F18 - 0x00, 0x06, 0x00, 0x78, // 00060078 - 0x00, 0x06, 0x10, 0x24, // 00061024 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x02, 0x9F, 0x18, // 00029F18 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3C, 0x00, // 00073C00 - 0x00, 0x06, 0x10, 0x2C, // 0006102C - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0A, 0xD2, 0x7E, // 000AD27E - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F - 0x00, 0x06, 0x04, 0x64, // 00060464 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x00, 0xDE, 0x87, // 0000DE87 - 0x00, 0x06, 0x90, 0x1C, // 0006901C - 0x00, 0x06, 0x90, 0x20, // 00069020 - 0x00, 0x06, 0x9C, 0x62, // 00069C62 - 0x00, 0x06, 0x9C, 0x6E, // 00069C6E - 0x00, 0x06, 0x9C, 0x63, // 00069C63 - 0x00, 0x06, 0xAC, 0x7D, // 0006AC7D - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x04, 0x73, // 00060473 - 0x00, 0x07, 0x5C, 0x01, // 00075C01 - 0x00, 0x07, 0x1E, 0x00, // 00071E00 - 0x00, 0x08, 0x80, 0x41, // 00088041 - 0x00, 0x02, 0x9E, 0x10, // 00029E10 - 0x00, 0x02, 0x1B, 0x7F, // 00021B7F - 0x00, 0x02, 0x81, 0x28, // 00028128 - 0x00, 0x0B, 0x40, 0x7F, // 000B407F - 0x00, 0x08, 0x12, 0x42, // 00081242 - 0x00, 0x09, 0x1B, 0xC2, // 00091BC2 - 0x00, 0x02, 0x87, 0x08, // 00028708 - 0x00, 0x08, 0x92, 0xC3, // 000892C3 - 0x00, 0x06, 0x84, 0x73, // 00068473 - 0x00, 0x07, 0x64, 0x00, // 00076400 - 0x00, 0x07, 0x27, 0x00, // 00072700 - 0x00, 0x07, 0x7C, 0x00, // 00077C00 - 0x00, 0x07, 0x3C, 0x00, // 00073C00 - 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 - 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F - 0x00, 0x06, 0xA4, 0x05, // 0006A405 - 0x00, 0x01, 0x41, 0x80, // 00014180 - 0x00, 0x06, 0xB8, 0x22, // 0006B822 - 0x00, 0x07, 0x98, 0x0F, // 0007980F - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x07, 0x98, 0x0F, // 0007980F - 0x00, 0x00, 0xC1, 0x87, // 0000C187 - 0x00, 0x06, 0x90, 0x1C, // 0006901C - 0x00, 0x06, 0x9C, 0x62, // 00069C62 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x9C, 0x63, // 00069C63 - 0x00, 0x06, 0x9C, 0x6E, // 00069C6E - 0x00, 0x06, 0xAC, 0x7D, // 0006AC7D - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x0B, 0x40, 0x40, // 000B4040 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x84, 0x62, // 00068462 - 0x00, 0x06, 0x84, 0x63, // 00068463 - 0x00, 0x06, 0x04, 0x62, // 00060462 - 0x00, 0x06, 0x1C, 0x63, // 00061C63 - 0x00, 0x0A, 0x0F, 0x41, // 000A0F41 - 0x00, 0x08, 0x97, 0xC0, // 000897C0 - 0x00, 0x08, 0x1B, 0xC2, // 00081BC2 - 0x00, 0x0A, 0x12, 0x47, // 000A1247 - 0x00, 0x07, 0x65, 0x00, // 00076500 - 0x00, 0x07, 0x24, 0x00, // 00072400 - 0x00, 0x07, 0x6D, 0x00, // 00076D00 - 0x00, 0x07, 0x2C, 0x00, // 00072C00 - 0x00, 0x07, 0x75, 0x00, // 00077500 - 0x00, 0x07, 0x34, 0x00, // 00073400 - 0x00, 0x0C, 0x12, 0x25, // 000C1225 - 0x00, 0x0E, 0x11, 0x24, // 000E1124 - 0x00, 0x0E, 0x13, 0x26, // 000E1326 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x04, 0x6C, // 0006046C - 0x00, 0x00, 0xC1, 0x07, // 0000C107 - 0x00, 0x09, 0x12, 0xC0, // 000912C0 - 0x00, 0x06, 0xBC, 0x62, // 0006BC62 - 0x00, 0x06, 0x9C, 0x63, // 00069C63 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x06, 0x94, 0x6C, // 0006946C - 0x00, 0x06, 0x94, 0x0F, // 0006940F - 0x00, 0x03, 0x33, 0x33, // 00033333 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 - 0x00, 0x00, 0x00, 0x00, // 00000000 + 0xf0, 0x00, 0x04, 0x35, 0x08, 0x00, + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0F, 0x00, // 00070F00 + 0x00, 0x0B, 0x52, 0x7F, // 000B527F + 0x00, 0x0B, 0x5B, 0x7E, // 000B5B7E + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x0A, 0x09, 0x78, // 000A0978 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x08, 0xA1, 0x41, // 0008A141 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0B, 0x5B, 0x7E, // 000B5B7E + 0x00, 0x07, 0x64, 0x01, // 00076401 + 0x00, 0x07, 0x26, 0x69, // 00072669 + 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F + 0x00, 0x0B, 0x75, 0x7E, // 000B757E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA0, 0x22, // 0006A022 + 0x00, 0x0A, 0xF7, 0x86, // 000AF786 + 0x00, 0x0A, 0xEF, 0x85, // 000AEF85 + 0x00, 0x0A, 0x36, 0x7F, // 000A367F + 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F + 0x00, 0x0B, 0x64, 0x70, // 000B6470 + 0x00, 0x06, 0x98, 0x79, // 00069879 + 0x00, 0x06, 0x90, 0x78, // 00069078 + 0x00, 0x06, 0xA8, 0x77, // 0006A877 + 0x00, 0x06, 0xB0, 0x7A, // 0006B07A + 0x00, 0x06, 0xBC, 0x64, // 0006BC64 + 0x00, 0x06, 0xB8, 0x71, // 0006B871 + 0x00, 0x06, 0xB8, 0x70, // 0006B870 + 0x00, 0x06, 0xB8, 0x69, // 0006B869 + 0x00, 0x06, 0xB8, 0x7B, // 0006B87B + 0x00, 0x06, 0xB8, 0x7C, // 0006B87C + 0x00, 0x06, 0x9C, 0x6B, // 00069C6B + 0x00, 0x06, 0xBC, 0x6E, // 0006BC6E + 0x00, 0x06, 0xBC, 0x72, // 0006BC72 + 0x00, 0x06, 0xB8, 0x74, // 0006B874 + 0x00, 0x06, 0xB8, 0x7D, // 0006B87D + 0x00, 0x06, 0xBC, 0x73, // 0006BC73 + 0x00, 0x06, 0x9C, 0x7D, // 00069C7D + 0x00, 0x06, 0xBC, 0x7C, // 0006BC7C + 0x00, 0x06, 0xBC, 0x7B, // 0006BC7B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x3C, 0x65, // 00063C65 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xBF, 0x41, // 0009BF41 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xBC, 0x7A, // 0006BC7A + 0x00, 0x07, 0x7C, 0x01, // 00077C01 + 0x00, 0x07, 0x3D, 0xFF, // 00073DFF + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1C, 0x90, // 00071C90 + 0x00, 0x07, 0x74, 0x01, // 00077401 + 0x00, 0x07, 0x34, 0xA0, // 000734A0 + 0x00, 0x06, 0x08, 0x76, // 00060876 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x21, 0x41, // 00082141 + 0x00, 0x06, 0xB8, 0x16, // 0006B816 + 0x00, 0x06, 0x90, 0x24, // 00069024 + 0x00, 0x06, 0x90, 0x2C, // 0006902C + 0x00, 0x06, 0x90, 0x1C, // 0006901C + 0x00, 0x06, 0x90, 0x20, // 00069020 + 0x00, 0x06, 0x98, 0x25, // 00069825 + 0x00, 0x06, 0x98, 0x2D, // 0006982D + 0x00, 0x06, 0xB0, 0x1D, // 0006B01D + 0x00, 0x06, 0xA0, 0x10, // 0006A010 + 0x00, 0x06, 0x98, 0x21, // 00069821 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3C, 0x24, // 00073C24 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x07, 0x6C, 0x01, // 00076C01 + 0x00, 0x07, 0x2C, 0x98, // 00072C98 + 0x00, 0x06, 0xBC, 0x16, // 0006BC16 + 0x00, 0x06, 0x94, 0x2A, // 0006942A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xAC, 0x2B, // 0006AC2B + 0x00, 0x07, 0x7C, 0x01, // 00077C01 + 0x00, 0x07, 0x3D, 0xFF, // 00073DFF + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x00, // 00071E00 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2C, 0x90, // 00072C90 + 0x00, 0x06, 0xBC, 0x14, // 0006BC14 + 0x00, 0x06, 0x94, 0x1C, // 0006941C + 0x00, 0x06, 0x9C, 0x26, // 00069C26 + 0x00, 0x06, 0x9C, 0x2E, // 00069C2E + 0x00, 0x06, 0xAC, 0x1D, // 0006AC1D + 0x00, 0x06, 0xAC, 0x27, // 0006AC27 + 0x00, 0x06, 0xAC, 0x2F, // 0006AC2F + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x04, // 00070C04 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x10, // 00071410 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x4B, // 0006884B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x94, 0x06, // 00069406 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x62, // 00071E62 + 0x00, 0x06, 0x10, 0x78, // 00061078 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1F, 0x18, // 00071F18 + 0x00, 0x06, 0x98, 0x22, // 00069822 + 0x00, 0x08, 0x92, 0x41, // 00089241 + 0x00, 0x02, 0x9E, 0xF0, // 00029EF0 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2C, 0x80, // 00072C80 + 0x00, 0x07, 0x74, 0x00, // 00077400 + 0x00, 0x07, 0x34, 0x04, // 00073404 + 0x00, 0x0A, 0xED, 0xC0, // 000AEDC0 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x1B, 0xC6, // 00081BC6 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2C, 0x40, // 00072C40 + 0x00, 0x07, 0x74, 0x02, // 00077402 + 0x00, 0x07, 0x34, 0x00, // 00073400 + 0x00, 0x0A, 0xED, 0xC0, // 000AEDC0 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x1B, 0xC6, // 00081BC6 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2C, 0x04, // 00072C04 + 0x00, 0x07, 0x74, 0x00, // 00077400 + 0x00, 0x07, 0x34, 0x20, // 00073420 + 0x00, 0x04, 0x17, 0x00, // 00041700 + 0x00, 0x0A, 0xED, 0xC0, // 000AEDC0 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x1B, 0xC6, // 00081BC6 + 0x00, 0x0A, 0xD2, 0x41, // 000AD241 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x27, 0x18, // 00072718 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x98, 0x3B, // 0006983B + 0x00, 0x06, 0x9C, 0x75, // 00069C75 + 0x00, 0x06, 0xA0, 0x53, // 0006A053 + 0x00, 0x06, 0x28, 0x77, // 00062877 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x40, // 00071640 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x90, // 00072490 + 0x00, 0x0B, 0x49, 0x7D, // 000B497D + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x6C, // 0007066C + 0x00, 0x06, 0x90, 0x1E, // 0006901E + 0x00, 0x06, 0xA0, 0x1F, // 0006A01F + 0x00, 0x06, 0x88, 0x14, // 00068814 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x04, 0x17, 0x08, // 00041708 + 0x00, 0x04, 0x1F, 0x08, // 00041F08 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x08, 0xAD, 0x40, // 0008AD40 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0B, 0x49, 0x40, // 000B4940 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x07, 0x88, 0x0D, // 0007880D + 0x00, 0x07, 0x90, 0x0D, // 0007900D + 0x00, 0x07, 0x98, 0x0D, // 0007980D + 0x00, 0x07, 0xA0, 0x0D, // 0007A00D + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x50, // 00071650 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x26, 0x90, // 00072690 + 0x00, 0x0B, 0x49, 0x7D, // 000B497D + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x70, // 00070670 + 0x00, 0x06, 0x94, 0x20, // 00069420 + 0x00, 0x06, 0xA4, 0x21, // 0006A421 + 0x00, 0x06, 0x8C, 0x15, // 00068C15 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0B, 0x52, 0x75, // 000B5275 + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x04, 0x0F, 0x08, // 00040F08 + 0x00, 0x07, 0x8C, 0x0E, // 00078C0E + 0x00, 0x07, 0x8C, 0x0E, // 00078C0E + 0x00, 0x07, 0x8C, 0x0E, // 00078C0E + 0x00, 0x07, 0x8C, 0x0E, // 00078C0E + 0x00, 0x06, 0x94, 0x15, // 00069415 + 0x00, 0x02, 0x1C, 0x0E, // 00021C0E + 0x00, 0x07, 0x4C, 0x06, // 00074C06 + 0x00, 0x07, 0x0C, 0xD3, // 00070CD3 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x0F, // 0006880F + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x32, // 00070E32 + 0x00, 0x07, 0x64, 0x01, // 00076401 + 0x00, 0x07, 0x26, 0x70, // 00072670 + 0x00, 0x07, 0x6C, 0x00, // 00076C00 + 0x00, 0x07, 0x2E, 0x90, // 00072E90 + 0x00, 0x06, 0x8C, 0x22, // 00068C22 + 0x00, 0x04, 0x80, 0x4F, // 0004804F + 0x00, 0x06, 0x08, 0x78, // 00060878 + 0x00, 0x06, 0xA4, 0x24, // 0006A424 + 0x00, 0x06, 0xAC, 0x25, // 0006AC25 + 0x00, 0x06, 0x5C, 0x3C, // 00065C3C + 0x00, 0x06, 0x5C, 0x3B, // 00065C3B + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x19, 0x1D, // 0002191D + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x02, 0x3F, 0xCC, // 00023FCC + 0x00, 0x07, 0x6C, 0x06, // 00076C06 + 0x00, 0x07, 0x2C, 0xEB, // 00072CEB + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x0B, 0x52, 0x7F, // 000B527F + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0A, 0xC7, 0x82, // 000AC782 + 0x00, 0x02, 0x9E, 0x20, // 00029E20 + 0x00, 0x0A, 0xC7, 0x81, // 000AC781 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x1B, 0x7F, // 00021B7F + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x54, 0x04, // 00075404 + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x06, 0x30, 0x2C, // 0006302C + 0x00, 0x08, 0x92, 0x41, // 00089241 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x19, 0x0C, // 0002190C + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0A, 0xF6, 0x41, // 000AF641 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x18, 0xFA, // 000218FA + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x30, 0x2C, // 0006302C + 0x00, 0x08, 0x92, 0x41, // 00089241 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x19, 0x0C, // 0002190C + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0A, 0xF6, 0x41, // 000AF641 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x19, 0x03, // 00021903 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x38, 0x52, // 00063852 + 0x00, 0x06, 0x30, 0x2C, // 0006302C + 0x00, 0x09, 0xBF, 0x7A, // 0009BF7A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0xFF, 0x41, // 000AFF41 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0B, 0x36, 0x41, // 000B3641 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xB0, 0x2C, // 0006B02C + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x18, 0xE4, // 000218E4 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x40, 0x7D, // 000B407D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x84, 0x15, // 00068415 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0xB8, 0x16, // 0004B816 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x06, 0x27, // 000C0627 + 0x00, 0x04, 0x35, 0x18, // 00043518 + 0x00, 0x04, 0xB8, 0x1E, // 0004B81E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0E, 0x06, 0x27, // 000E0627 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0xB8, 0x16, // 0004B816 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x0E, 0x27, // 000C0E27 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0xB8, 0x0E, // 0004B80E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0E, 0x0E, 0x27, // 000E0E27 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0xB8, 0x16, // 0004B816 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x16, 0x27, // 000C1627 + 0x00, 0x04, 0x35, 0x18, // 00043518 + 0x00, 0x04, 0xB8, 0x1E, // 0004B81E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0E, 0x16, 0x27, // 000E1627 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0xB8, 0x16, // 0004B816 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x1E, 0x27, // 000C1E27 + 0x00, 0x04, 0x35, 0x08, // 00043508 + 0x00, 0x04, 0xB8, 0x0E, // 0004B80E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0E, 0x1E, 0x27, // 000E1E27 + 0x00, 0x07, 0x64, 0x01, // 00076401 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x27, 0x12, // 00072712 + 0x00, 0x07, 0x80, 0x0D, // 0007800D + 0x00, 0x07, 0x88, 0x0D, // 0007880D + 0x00, 0x07, 0x90, 0x0D, // 0007900D + 0x00, 0x07, 0x98, 0x0D, // 0007980D + 0x00, 0x06, 0xA0, 0x22, // 0006A022 + 0x00, 0x07, 0x80, 0x0F, // 0007800F + 0x00, 0x07, 0x88, 0x0F, // 0007880F + 0x00, 0x07, 0x90, 0x0F, // 0007900F + 0x00, 0x07, 0x98, 0x07, // 00079807 + 0x00, 0x06, 0x2C, 0x79, // 00062C79 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x09, 0x0D, // 000C090D + 0x00, 0x0C, 0x11, 0x0D, // 000C110D + 0x00, 0x0C, 0x19, 0x0D, // 000C190D + 0x00, 0x0C, 0x21, 0x0D, // 000C210D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x8C, 0x66, // 00068C66 + 0x00, 0x06, 0x94, 0x67, // 00069467 + 0x00, 0x06, 0x9C, 0x68, // 00069C68 + 0x00, 0x06, 0xA4, 0x69, // 0006A469 + 0x00, 0x06, 0x00, 0x7A, // 0006007A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0x40, // 00088040 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x19, 0xF8, // 000219F8 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x00, 0x24, // 00060024 + 0x00, 0x06, 0x08, 0x78, // 00060878 + 0x00, 0x06, 0x18, 0x76, // 00061876 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x08, 0x89, 0x41, // 00088941 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x06, 0x00, 0x2C, // 0006002C + 0x00, 0x06, 0x08, 0x1C, // 0006081C + 0x00, 0x08, 0x80, 0xC1, // 000880C1 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x08, 0x9B, 0x41, // 00089B41 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x09, 0x80, 0x7F, // 0009807F + 0x00, 0x06, 0x14, 0x7B, // 0006147B + 0x00, 0x06, 0x1C, 0x7A, // 00061C7A + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9F, 0x28, // 00029F28 + 0x00, 0x08, 0x98, 0xC3, // 000898C3 + 0x00, 0x02, 0x87, 0x10, // 00028710 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x02, 0x81, 0x08, // 00028108 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x94, 0x7B, // 0006947B + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x12, // 00071412 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x00, // 00071E00 + 0x00, 0x08, 0xA0, 0xC2, // 0008A0C2 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x19, 0xF8, // 000219F8 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x24, 0x2A, // 0006242A + 0x00, 0x08, 0xA3, 0xC4, // 0008A3C4 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x19, 0xF8, // 000219F8 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x01, // 00071E01 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x09, // 00070409 + 0x00, 0x06, 0x08, 0x69, // 00060869 + 0x00, 0x06, 0x9C, 0x22, // 00069C22 + 0x00, 0x06, 0x10, 0x6A, // 0006106A + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x19, 0xA4, // 000219A4 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0x92, 0x41, // 00089241 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x19, 0xA4, // 000219A4 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x07, 0x55, 0x5C, // 0007555C + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x07, 0x5D, 0x04, // 00075D04 + 0x00, 0x07, 0x1C, 0x00, // 00071C00 + 0x00, 0x07, 0x65, 0x58, // 00076558 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x6D, 0x14, // 00076D14 + 0x00, 0x07, 0x2C, 0x00, // 00072C00 + 0x00, 0x07, 0x94, 0x0F, // 0007940F + 0x00, 0x07, 0x9C, 0x0F, // 00079C0F + 0x00, 0x07, 0xA4, 0x0F, // 0007A40F + 0x00, 0x07, 0xAC, 0x0F, // 0007AC0F + 0x00, 0x06, 0x38, 0x3A, // 0006383A + 0x00, 0x0B, 0x76, 0x7D, // 000B767D + 0x00, 0x06, 0x10, 0x6C, // 0006106C + 0x00, 0x0A, 0xFF, 0x5F, // 000AFF5F + 0x00, 0x06, 0x84, 0x05, // 00068405 + 0x00, 0x02, 0x9F, 0x18, // 00029F18 + 0x00, 0x09, 0x3F, 0x54, // 00093F54 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xB4, 0x15, // 0006B415 + 0x00, 0x07, 0x77, 0xFC, // 000777FC + 0x00, 0x07, 0x34, 0x00, // 00073400 + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x01, 0x4E, 0x80, // 00014E80 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0x80, 0x87, // 00098087 + 0x00, 0x09, 0x88, 0x87, // 00098887 + 0x00, 0x0C, 0x20, 0x12, // 000C2012 + 0x00, 0x0E, 0x21, 0x12, // 000E2112 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x28, 0x12, // 000C2812 + 0x00, 0x0E, 0x29, 0x12, // 000E2912 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0x84, 0x48, // 00098448 + 0x00, 0x09, 0x8D, 0x48, // 00098D48 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x09, 0xA4, 0x48, // 0009A448 + 0x00, 0x08, 0x04, 0x40, // 00080440 + 0x00, 0x09, 0xAD, 0x48, // 0009AD48 + 0x00, 0x08, 0x0D, 0x40, // 00080D40 + 0x00, 0x0A, 0xE4, 0xC6, // 000AE4C6 + 0x00, 0x0A, 0xC0, 0xC6, // 000AC0C6 + 0x00, 0x0A, 0xED, 0xC6, // 000AEDC6 + 0x00, 0x0A, 0xC9, 0xC6, // 000AC9C6 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0xE4, 0x0F, // 0007E40F + 0x00, 0x07, 0xC4, 0x0F, // 0007C40F + 0x00, 0x07, 0xEC, 0x0F, // 0007EC0F + 0x00, 0x07, 0xCC, 0x0F, // 0007CC0F + 0x00, 0x06, 0x00, 0x69, // 00060069 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x07, 0x0E, 0x65, // 00070E65 + 0x00, 0x08, 0x00, 0x41, // 00080041 + 0x00, 0x06, 0x1C, 0x64, // 00061C64 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x39, // 00071439 + 0x00, 0x06, 0x88, 0x22, // 00068822 + 0x00, 0x04, 0x0F, 0x00, // 00040F00 + 0x00, 0x08, 0x90, 0xC2, // 000890C2 + 0x00, 0x02, 0x9E, 0x28, // 00029E28 + 0x00, 0x08, 0x9B, 0x40, // 00089B40 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x02, 0x1B, 0x7F, // 00021B7F + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x08, 0x09, 0x41, // 00080941 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x69, // 00068069 + 0x00, 0x07, 0x88, 0x07, // 00078807 + 0x00, 0x07, 0x4C, 0x01, // 00074C01 + 0x00, 0x0B, 0x76, 0x75, // 000B7675 + 0x00, 0x07, 0x0E, 0x01, // 00070E01 + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x04, 0x04, // 00070404 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x06, 0x80, 0x4B, // 0006804B + 0x00, 0x07, 0x44, 0x00, // 00074400 + 0x00, 0x07, 0x05, 0x3D, // 0007053D + 0x00, 0x06, 0xB4, 0x15, // 0006B415 + 0x00, 0x06, 0x8C, 0x2A, // 00068C2A + 0x00, 0x06, 0x94, 0x72, // 00069472 + 0x00, 0x06, 0x80, 0x4B, // 0006804B + 0x00, 0x06, 0x00, 0x24, // 00060024 + 0x00, 0x06, 0x08, 0x78, // 00060878 + 0x00, 0x06, 0x18, 0x76, // 00061876 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x08, 0x89, 0x41, // 00088941 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x06, 0x00, 0x2C, // 0006002C + 0x00, 0x06, 0x08, 0x20, // 00060820 + 0x00, 0x08, 0x80, 0xC1, // 000880C1 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x06, 0x0C, 0x26, // 00060C26 + 0x00, 0x06, 0x14, 0x1C, // 0006141C + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x00, // 00071E00 + 0x00, 0x08, 0x89, 0xC2, // 000889C2 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x09, 0xC3, // 000809C3 + 0x00, 0x06, 0x24, 0x24, // 00062424 + 0x00, 0x09, 0x22, 0xC4, // 000922C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x24, 0xC3, // 000824C3 + 0x00, 0x09, 0x29, 0xC4, // 000929C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x0C, 0x40, // 00080C40 + 0x00, 0x06, 0x24, 0x2E, // 0006242E + 0x00, 0x09, 0x22, 0xC4, // 000922C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x24, 0xC3, // 000824C3 + 0x00, 0x09, 0x29, 0xC4, // 000929C4 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x0C, 0x40, // 00080C40 + 0x00, 0x07, 0x54, 0x00, // 00075400 + 0x00, 0x07, 0x14, 0x20, // 00071420 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0xC2, // 000880C2 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x1A, 0x86, // 00021A86 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0x89, 0xC2, // 000889C2 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x1A, 0x86, // 00021A86 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x28, 0x3A, // 0006283A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0xED, 0x5F, // 000AED5F + 0x00, 0x02, 0x9F, 0x18, // 00029F18 + 0x00, 0x09, 0x2D, 0x54, // 00092D54 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x04, 0xB8, 0x0D, // 0004B80D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xBF, 0x7C, // 0009BF7C + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x01, 0x0D, 0x10, // 00010D10 + 0x00, 0x06, 0x20, 0x76, // 00062076 + 0x00, 0x09, 0x86, 0x8D, // 0009868D + 0x00, 0x09, 0x8E, 0x8D, // 00098E8D + 0x00, 0x08, 0xA4, 0x40, // 0008A440 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x08, 0x40, // 00080840 + 0x00, 0x0C, 0x31, 0x08, // 000C3108 + 0x00, 0x0E, 0x31, 0x09, // 000E3109 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0C, 0x01, 0x08, // 000C0108 + 0x00, 0x0E, 0x01, 0x09, // 000E0109 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0xF6, 0x7C, // 000AF67C + 0x00, 0x09, 0x9F, 0x7F, // 00099F7F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x36, 0x42, // 00083642 + 0x00, 0x0A, 0xC0, 0x7C, // 000AC07C + 0x00, 0x09, 0xBF, 0x7F, // 0009BF7F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x00, 0x42, // 00080042 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0xF4, 0x0C, // 0007F40C + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0xC4, 0x0C, // 0007C40C + 0x00, 0x02, 0x16, 0x52, // 00021652 + 0x00, 0x07, 0x4C, 0x06, // 00074C06 + 0x00, 0x07, 0x0E, 0x56, // 00070E56 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x0F, // 0006880F + 0x00, 0x06, 0x00, 0x7B, // 0006007B + 0x00, 0x06, 0x10, 0x74, // 00061074 + 0x00, 0x08, 0x00, 0x41, // 00080041 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1C, 0x30, // 00071C30 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9E, 0x18, // 00029E18 + 0x00, 0x08, 0x88, 0xC3, // 000888C3 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x02, 0x15, 0xDB, // 000215DB + 0x00, 0x07, 0x4C, 0x06, // 00074C06 + 0x00, 0x07, 0x0E, 0x66, // 00070E66 + 0x00, 0x06, 0x80, 0x7B, // 0006807B + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x88, 0x0E, // 0006880E + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x06, 0x08, 0x24, // 00060824 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x06, 0x08, 0x2C, // 0006082C + 0x00, 0x06, 0x34, 0x26, // 00063426 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x86, 0xC1, // 000886C1 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1F, 0x00, // 00071F00 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x08, 0xA8, 0xC3, // 0008A8C3 + 0x00, 0x02, 0x87, 0x08, // 00028708 + 0x00, 0x08, 0x80, 0xC2, // 000880C2 + 0x00, 0x06, 0x20, 0x74, // 00062074 + 0x00, 0x08, 0x28, 0xC3, // 000828C3 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x06, 0x18, 0x79, // 00061879 + 0x00, 0x06, 0x14, 0x6E, // 0006146E + 0x00, 0x08, 0xA4, 0x41, // 0008A441 + 0x00, 0x02, 0x9E, 0x20, // 00029E20 + 0x00, 0x08, 0xBB, 0x42, // 0008BB42 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F + 0x00, 0x08, 0x10, 0x40, // 00081040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x98, 0x79, // 00069879 + 0x00, 0x06, 0x94, 0x6E, // 0006946E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x06, 0x08, 0x24, // 00060824 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x06, 0x08, 0x2C, // 0006082C + 0x00, 0x06, 0x00, 0x1C, // 0006001C + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x06, 0x18, 0x71, // 00061871 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x24, 0x6B, // 0006246B + 0x00, 0x08, 0xA9, 0xC0, // 0008A9C0 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x2D, 0xC2, // 00082DC2 + 0x00, 0x08, 0xB4, 0x41, // 0008B441 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x1A, 0xA5, // 00021AA5 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0xB5, 0x42, // 0008B542 + 0x00, 0x02, 0x86, 0x10, // 00028610 + 0x00, 0x02, 0x1A, 0xA5, // 00021AA5 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x34, 0x26, // 00063426 + 0x00, 0x0A, 0xD1, 0x41, // 000AD141 + 0x00, 0x0A, 0xF6, 0x7E, // 000AF67E + 0x00, 0x08, 0x12, 0xC6, // 000812C6 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x0A, 0xC2, 0x7E, // 000AC27E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA4, 0x6B, // 0006A46B + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x25, // 00072425 + 0x00, 0x08, 0x93, 0xC5, // 000893C5 + 0x00, 0x06, 0xA8, 0x71, // 0006A871 + 0x00, 0x08, 0x9C, 0xC2, // 00089CC2 + 0x00, 0x02, 0x88, 0x10, // 00028810 + 0x00, 0x02, 0x1B, 0x86, // 00021B86 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x06, 0x18, 0x52, // 00061852 + 0x00, 0x07, 0x54, 0x08, // 00075408 + 0x00, 0x07, 0x14, 0x00, // 00071400 + 0x00, 0x07, 0x7C, 0x06, // 00077C06 + 0x00, 0x07, 0x3E, 0xFD, // 00073EFD + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x20, // 00029F20 + 0x00, 0x0A, 0xC3, 0xC2, // 000AC3C2 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x1B, 0xA7, // 00021BA7 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0xB8, 0x0F, // 0006B80F + 0x00, 0x06, 0x34, 0x26, // 00063426 + 0x00, 0x06, 0x3C, 0x1C, // 00063C1C + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x06, 0x18, 0x70, // 00061870 + 0x00, 0x08, 0x86, 0xC7, // 000886C7 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x00, 0xC2, // 000800C2 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x25, // 00072425 + 0x00, 0x06, 0x28, 0x79, // 00062879 + 0x00, 0x08, 0x93, 0xC0, // 000893C0 + 0x00, 0x06, 0x80, 0x70, // 00068070 + 0x00, 0x08, 0x94, 0xC2, // 000894C2 + 0x00, 0x02, 0x88, 0x38, // 00028838 + 0x00, 0x08, 0xBD, 0x41, // 0008BD41 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x09, 0xAD, 0x41, // 0009AD41 + 0x00, 0x07, 0x7C, 0x06, // 00077C06 + 0x00, 0x07, 0x3E, 0xFD, // 00073EFD + 0x00, 0x02, 0x1B, 0xB0, // 00021BB0 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0xA8, 0x79, // 0006A879 + 0x00, 0x06, 0xB8, 0x0F, // 0006B80F + 0x00, 0x06, 0x14, 0x26, // 00061426 + 0x00, 0x06, 0x20, 0x7D, // 0006207D + 0x00, 0x06, 0x28, 0x7C, // 0006287C + 0x00, 0x08, 0x32, 0x60, // 00083260 + 0x00, 0x02, 0x86, 0x18, // 00028618 + 0x00, 0x08, 0x2D, 0xC4, // 00082DC4 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x02, 0x81, 0x08, // 00028108 + 0x00, 0x0B, 0x64, 0x7F, // 000B647F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA8, 0x7C, // 0006A87C + 0x00, 0x06, 0xA0, 0x7D, // 0006A07D + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3C, 0x01, // 00073C01 + 0x00, 0x06, 0x00, 0x7C, // 0006007C + 0x00, 0x06, 0x30, 0x79, // 00063079 + 0x00, 0x08, 0xBF, 0xC0, // 0008BFC0 + 0x00, 0x02, 0x88, 0xC0, // 000288C0 + 0x00, 0x08, 0xB6, 0x41, // 0008B641 + 0x00, 0x02, 0x9E, 0xB0, // 00029EB0 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x08, 0xBA, 0xC1, // 0008BAC1 + 0x00, 0x06, 0x34, 0x6E, // 0006346E + 0x00, 0x08, 0xBF, 0xC6, // 0008BFC6 + 0x00, 0x07, 0x5C, 0x00, // 00075C00 + 0x00, 0x07, 0x1F, 0x00, // 00071F00 + 0x00, 0x07, 0x54, 0x01, // 00075401 + 0x00, 0x07, 0x16, 0x00, // 00071600 + 0x00, 0x08, 0xAF, 0xC3, // 0008AFC3 + 0x00, 0x02, 0x87, 0x08, // 00028708 + 0x00, 0x08, 0xBF, 0xC2, // 0008BFC2 + 0x00, 0x08, 0x2F, 0xC3, // 00082FC3 + 0x00, 0x02, 0x86, 0x08, // 00028608 + 0x00, 0x08, 0x3F, 0xC2, // 00083FC2 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x1C, 0x15, // 00021C15 + 0x00, 0x07, 0x4C, 0x06, // 00074C06 + 0x00, 0x07, 0x0E, 0xFD, // 00070EFD + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x7C, // 0006807C + 0x00, 0x06, 0x88, 0x0F, // 0006880F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x04, 0x64, // 00060464 + 0x00, 0x06, 0x0C, 0x72, // 00060C72 + 0x00, 0x06, 0x10, 0x74, // 00061074 + 0x00, 0x08, 0x80, 0x40, // 00088040 + 0x00, 0x02, 0x9F, 0x40, // 00029F40 + 0x00, 0x08, 0x89, 0x40, // 00088940 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x1B, 0x7F, // 00021B7F + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x08, 0x92, 0x40, // 00089240 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x1B, 0x7F, // 00021B7F + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x01, // 00070C01 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x04, 0x07, 0x00, // 00040700 + 0x00, 0x0A, 0xC9, 0xC0, // 000AC9C0 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x81, 0x10, // 00028110 + 0x00, 0x02, 0x1B, 0x68, // 00021B68 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x80, 0x07, // 00078007 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x61, // 00070661 + 0x00, 0x07, 0x4C, 0x0C, // 00074C0C + 0x00, 0x07, 0x0C, 0x00, // 00070C00 + 0x00, 0x06, 0x14, 0x64, // 00061464 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0A, 0xC7, 0x81, // 000AC781 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0B, 0x52, 0x7F, // 000B527F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x94, 0x64, // 00069464 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x69, // 00070669 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x02, // 00070C02 + 0x00, 0x06, 0x10, 0x7A, // 0006107A + 0x00, 0x06, 0x20, 0x1C, // 0006201C + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0A, 0xC3, 0x81, // 000AC381 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x0B, 0x52, 0x7F, // 000B527F + 0x00, 0x02, 0x81, 0x48, // 00028148 + 0x00, 0x08, 0x9A, 0x41, // 00089A41 + 0x00, 0x02, 0x9E, 0x38, // 00029E38 + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x06, 0x08, 0x24, // 00060824 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x06, 0x08, 0x2C, // 0006082C + 0x00, 0x0B, 0x52, 0x40, // 000B5240 + 0x00, 0x0A, 0xE1, 0x7E, // 000AE17E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x90, 0x7A, // 0006907A + 0x00, 0x06, 0xA0, 0x1C, // 0006A01C + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x69, // 00070669 + 0x00, 0x07, 0x4C, 0x00, // 00074C00 + 0x00, 0x07, 0x0C, 0x01, // 00070C01 + 0x00, 0x07, 0x44, 0x01, // 00074401 + 0x00, 0x07, 0x06, 0x6C, // 0007066C + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0A, 0xCF, 0x81, // 000ACF81 + 0x00, 0x06, 0x18, 0x77, // 00061877 + 0x00, 0x06, 0x80, 0x22, // 00068022 + 0x00, 0x0B, 0x09, 0xC3, // 000B09C3 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x1B, 0x68, // 00021B68 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x24, 0x6B, // 0006246B + 0x00, 0x0B, 0x1B, 0x41, // 000B1B41 + 0x00, 0x06, 0x14, 0x65, // 00061465 + 0x00, 0x06, 0x04, 0x6A, // 0006046A + 0x00, 0x08, 0x28, 0x41, // 00082841 + 0x00, 0x02, 0x9F, 0x08, // 00029F08 + 0x00, 0x08, 0x82, 0xC0, // 000882C0 + 0x00, 0x08, 0xA4, 0x40, // 0008A440 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x1B, 0x66, // 00021B66 + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0B, 0x40, 0x41, // 000B4041 + 0x00, 0x0B, 0x64, 0x40, // 000B6440 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x0B, 0x76, 0x40, // 000B7640 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x08, 0x9B, 0x40, // 00089B40 + 0x00, 0x02, 0x9E, 0x28, // 00029E28 + 0x00, 0x04, 0x27, 0x08, // 00042708 + 0x00, 0x04, 0x2F, 0x08, // 00042F08 + 0x00, 0x04, 0x37, 0x08, // 00043708 + 0x00, 0x04, 0x3F, 0x08, // 00043F08 + 0x00, 0x07, 0xA0, 0x0D, // 0007A00D + 0x00, 0x07, 0xA8, 0x0D, // 0007A80D + 0x00, 0x07, 0xB0, 0x0D, // 0007B00D + 0x00, 0x07, 0xB8, 0x0D, // 0007B80D + 0x00, 0x06, 0x98, 0x77, // 00069877 + 0x00, 0x06, 0x84, 0x6A, // 0006846A + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x00, 0x6D, // 0006006D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xC0, 0x6D, // 0006C06D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x3F, 0xCC, // 00023FCC + 0x00, 0x07, 0x6C, 0x06, // 00076C06 + 0x00, 0x07, 0x2F, 0x78, // 00072F78 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x19, 0x5B, // 0002195B + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0xC1, 0x80, // 0000C180 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x00, 0x1C, // 0006001C + 0x00, 0x07, 0x6C, 0x01, // 00076C01 + 0x00, 0x07, 0x2E, 0x00, // 00072E00 + 0x00, 0x07, 0x7C, 0x01, // 00077C01 + 0x00, 0x07, 0x3E, 0x68, // 00073E68 + 0x00, 0x0A, 0xF1, 0x7E, // 000AF17E + 0x00, 0x09, 0x00, 0xC6, // 000900C6 + 0x00, 0x02, 0x88, 0x08, // 00028808 + 0x00, 0x08, 0x00, 0xC5, // 000800C5 + 0x00, 0x06, 0x2C, 0x64, // 00062C64 + 0x00, 0x0A, 0x00, 0x7F, // 000A007F + 0x00, 0x06, 0x20, 0x7A, // 0006207A + 0x00, 0x06, 0xB8, 0x22, // 0006B822 + 0x00, 0x04, 0x3F, 0x00, // 00043F00 + 0x00, 0x08, 0xA4, 0x40, // 0008A440 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x08, 0x3F, 0xC0, // 00083FC0 + 0x00, 0x08, 0xAD, 0x40, // 0008AD40 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x1B, 0x7F, // 00021B7F + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x06, 0x2C, 0x7F, // 00062C7F + 0x00, 0x08, 0xA4, 0x40, // 0008A440 + 0x00, 0x02, 0x9E, 0x08, // 00029E08 + 0x00, 0x0B, 0x6D, 0x6F, // 000B6D6F + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x02, 0x1A, 0xAD, // 00021AAD + 0x00, 0x06, 0xB0, 0x1C, // 0006B01C + 0x00, 0x0A, 0xFF, 0x7E, // 000AFF7E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x84, 0x72, // 00068472 + 0x00, 0x06, 0xAC, 0x7F, // 0006AC7F + 0x00, 0x07, 0xB8, 0x07, // 0007B807 + 0x00, 0x06, 0x10, 0x2C, // 0006102C + 0x00, 0x0B, 0x64, 0x6D, // 000B646D + 0x00, 0x0A, 0xD2, 0x7E, // 000AD27E + 0x00, 0x0B, 0x5B, 0x7F, // 000B5B7F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x81, 0x20, // 00028120 + 0x00, 0x06, 0x90, 0x1C, // 0006901C + 0x00, 0x06, 0x90, 0x20, // 00069020 + 0x00, 0x06, 0x9C, 0x7B, // 00069C7B + 0x00, 0x0B, 0x64, 0x6E, // 000B646E + 0x00, 0x06, 0x34, 0x6D, // 0006346D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0xA4, 0x7F, // 0006A47F + 0x00, 0x06, 0xB4, 0x0F, // 0006B40F + 0x00, 0x06, 0xB4, 0x6C, // 0006B46C + 0x00, 0x0B, 0x76, 0x7F, // 000B767F + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x0B, 0x6D, 0x40, // 000B6D40 + 0x00, 0x08, 0x3F, 0x40, // 00083F40 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x06, 0xB4, 0x6B, // 0006B46B + 0x00, 0x04, 0xB0, 0x0D, // 0004B00D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x09, 0xB6, 0x7C, // 0009B67C + 0x00, 0x01, 0x05, 0x10, // 00010510 + 0x00, 0x09, 0xA6, 0x7F, // 0009A67F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x00, 0x42, // 00080042 + 0x00, 0x0B, 0x7F, 0x40, // 000B7F40 + 0x00, 0x09, 0xB6, 0x7F, // 0009B67F + 0x00, 0x02, 0x82, 0x08, // 00028208 + 0x00, 0x08, 0x3F, 0x42, // 00083F42 + 0x00, 0x07, 0x84, 0x0C, // 0007840C + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x09, 0xA6, 0x7F, // 0009A67F + 0x00, 0x07, 0xBC, 0x0C, // 0007BC0C + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x24, 0x30, // 00072430 + 0x00, 0x08, 0x2D, 0x41, // 00082D41 + 0x00, 0x08, 0xA4, 0xC5, // 0008A4C5 + 0x00, 0x02, 0x9F, 0x10, // 00029F10 + 0x00, 0x02, 0x1B, 0xBE, // 00021BBE + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3F, 0x18, // 00073F18 + 0x00, 0x06, 0x00, 0x78, // 00060078 + 0x00, 0x06, 0x10, 0x24, // 00061024 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x02, 0x9F, 0x18, // 00029F18 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3C, 0x00, // 00073C00 + 0x00, 0x06, 0x10, 0x2C, // 0006102C + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0A, 0xD2, 0x7E, // 000AD27E + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F + 0x00, 0x06, 0x04, 0x64, // 00060464 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x00, 0xDE, 0x87, // 0000DE87 + 0x00, 0x06, 0x90, 0x1C, // 0006901C + 0x00, 0x06, 0x90, 0x20, // 00069020 + 0x00, 0x06, 0x9C, 0x62, // 00069C62 + 0x00, 0x06, 0x9C, 0x6E, // 00069C6E + 0x00, 0x06, 0x9C, 0x63, // 00069C63 + 0x00, 0x06, 0xAC, 0x7D, // 0006AC7D + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x04, 0x73, // 00060473 + 0x00, 0x07, 0x5C, 0x01, // 00075C01 + 0x00, 0x07, 0x1E, 0x00, // 00071E00 + 0x00, 0x08, 0x80, 0x41, // 00088041 + 0x00, 0x02, 0x9E, 0x10, // 00029E10 + 0x00, 0x02, 0x1B, 0x7F, // 00021B7F + 0x00, 0x02, 0x81, 0x28, // 00028128 + 0x00, 0x0B, 0x40, 0x7F, // 000B407F + 0x00, 0x08, 0x12, 0x42, // 00081242 + 0x00, 0x09, 0x1B, 0xC2, // 00091BC2 + 0x00, 0x02, 0x87, 0x08, // 00028708 + 0x00, 0x08, 0x92, 0xC3, // 000892C3 + 0x00, 0x06, 0x84, 0x73, // 00068473 + 0x00, 0x07, 0x64, 0x00, // 00076400 + 0x00, 0x07, 0x27, 0x00, // 00072700 + 0x00, 0x07, 0x7C, 0x00, // 00077C00 + 0x00, 0x07, 0x3C, 0x00, // 00073C00 + 0x00, 0x0B, 0x5B, 0x40, // 000B5B40 + 0x00, 0x0B, 0x6D, 0x7F, // 000B6D7F + 0x00, 0x06, 0xA4, 0x05, // 0006A405 + 0x00, 0x01, 0x41, 0x80, // 00014180 + 0x00, 0x06, 0xB8, 0x22, // 0006B822 + 0x00, 0x07, 0x98, 0x0F, // 0007980F + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x07, 0x98, 0x0F, // 0007980F + 0x00, 0x00, 0xC1, 0x87, // 0000C187 + 0x00, 0x06, 0x90, 0x1C, // 0006901C + 0x00, 0x06, 0x9C, 0x62, // 00069C62 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x9C, 0x63, // 00069C63 + 0x00, 0x06, 0x9C, 0x6E, // 00069C6E + 0x00, 0x06, 0xAC, 0x7D, // 0006AC7D + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x0B, 0x40, 0x40, // 000B4040 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x84, 0x62, // 00068462 + 0x00, 0x06, 0x84, 0x63, // 00068463 + 0x00, 0x06, 0x04, 0x62, // 00060462 + 0x00, 0x06, 0x1C, 0x63, // 00061C63 + 0x00, 0x0A, 0x0F, 0x41, // 000A0F41 + 0x00, 0x08, 0x97, 0xC0, // 000897C0 + 0x00, 0x08, 0x1B, 0xC2, // 00081BC2 + 0x00, 0x0A, 0x12, 0x47, // 000A1247 + 0x00, 0x07, 0x65, 0x00, // 00076500 + 0x00, 0x07, 0x24, 0x00, // 00072400 + 0x00, 0x07, 0x6D, 0x00, // 00076D00 + 0x00, 0x07, 0x2C, 0x00, // 00072C00 + 0x00, 0x07, 0x75, 0x00, // 00077500 + 0x00, 0x07, 0x34, 0x00, // 00073400 + 0x00, 0x0C, 0x12, 0x25, // 000C1225 + 0x00, 0x0E, 0x11, 0x24, // 000E1124 + 0x00, 0x0E, 0x13, 0x26, // 000E1326 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x04, 0x6C, // 0006046C + 0x00, 0x00, 0xC1, 0x07, // 0000C107 + 0x00, 0x09, 0x12, 0xC0, // 000912C0 + 0x00, 0x06, 0xBC, 0x62, // 0006BC62 + 0x00, 0x06, 0x9C, 0x63, // 00069C63 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x06, 0x94, 0x6C, // 0006946C + 0x00, 0x06, 0x94, 0x0F, // 0006940F + 0x00, 0x03, 0x33, 0x33, // 00033333 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 + 0x00, 0x00, 0x00, 0x00, // 00000000 }; struct i2c_block { @@ -3251,39 +3251,39 @@ void i2c_random_write(int addr, int cmd, const unsigned char* data, int size) void mas_freeze(void) { - static const unsigned char freeze[] = { 0x00, 0x00 }; + static const unsigned char freeze[] = { 0x00, 0x00 }; - /* Freeze DSP */ - i2c_random_write(MAS_ADR, MAS_DATA_WRITE, freeze, sizeof(freeze)); - /* mas_run(0); in core implementation */ + /* Freeze DSP */ + i2c_random_write(MAS_ADR, MAS_DATA_WRITE, freeze, sizeof(freeze)); + /* mas_run(0); in core implementation */ /* stop all internal transfers */ - rb->mas_writereg(0x3b, 0x00318); /* stopdma 1 */ - rb->mas_writereg(0x43, 0x00300); /* stopdma 2 */ - rb->mas_writereg(0x4b, 0); /* stopdma 3 */ - rb->mas_writereg(0x53, 0x00318); /* stopdma 4 */ - rb->mas_writereg(0x6b, 0); /* stopdma 5 */ - rb->mas_writereg(0xbb, 0x00318); /* stopdma 6 */ - rb->mas_writereg(0xc3, 0x00300); /* stopdma 7 */ - rb->mas_writereg(0x06, 0); /* stopdma 8 */ + rb->mas_writereg(0x3b, 0x00318); /* stopdma 1 */ + rb->mas_writereg(0x43, 0x00300); /* stopdma 2 */ + rb->mas_writereg(0x4b, 0); /* stopdma 3 */ + rb->mas_writereg(0x53, 0x00318); /* stopdma 4 */ + rb->mas_writereg(0x6b, 0); /* stopdma 5 */ + rb->mas_writereg(0xbb, 0x00318); /* stopdma 6 */ + rb->mas_writereg(0xc3, 0x00300); /* stopdma 7 */ + rb->mas_writereg(0x06, 0); /* stopdma 8 */ } void mas_download_pcm(void) { static const unsigned char runi2s[] = { 0x10, 0x00 }; - unsigned i; + unsigned i; - mas_freeze(); + mas_freeze(); - /* Download program to MAS memory */ - for ( i = 0; i < (sizeof(maspcm)/sizeof(struct i2c_block)); i++ ) - i2c_random_write(MAS_ADR, MAS_DATA_WRITE, maspcm[i].data, maspcm[i].len); + /* Download program to MAS memory */ + for ( i = 0; i < (sizeof(maspcm)/sizeof(struct i2c_block)); i++ ) + i2c_random_write(MAS_ADR, MAS_DATA_WRITE, maspcm[i].data, maspcm[i].len); rb->mas_writereg(0x6b, 0xc0000); /* Reconfigure data to program memory */ /* Start execution at D0:1000 */ - i2c_random_write(MAS_ADR, MAS_DATA_WRITE, runi2s, sizeof(runi2s)); - /* mas_run(0x1000); in core implementation */ + i2c_random_write(MAS_ADR, MAS_DATA_WRITE, runi2s, sizeof(runi2s)); + /* mas_run(0x1000); in core implementation */ } void mas_restore(void) @@ -3292,12 +3292,12 @@ void mas_restore(void) static const unsigned char initdsp[] = { 0x8c, 0x00 }; unsigned long val; - i2c_random_write(MAS_ADR, MAS_CONTROL, resetdsp, sizeof(resetdsp)); - /* mas_direct_config_write(MAS_CONTROL, 0x8d00); in core implementation */ - rb->sleep(1); - i2c_random_write(MAS_ADR, MAS_CONTROL, initdsp, sizeof(initdsp)); - /* mas_direct_config_write(MAS_CONTROL, 0x8c00); in core implementation */ - + i2c_random_write(MAS_ADR, MAS_CONTROL, resetdsp, sizeof(resetdsp)); + /* mas_direct_config_write(MAS_CONTROL, 0x8d00); in core implementation */ + rb->sleep(1); + i2c_random_write(MAS_ADR, MAS_CONTROL, initdsp, sizeof(initdsp)); + /* mas_direct_config_write(MAS_CONTROL, 0x8c00); in core implementation */ + /* Stop the current application */ val = 0; rb->mas_writemem(MAS_BANK_D0, MAS_D0_APP_SELECT, &val, 1); @@ -3485,14 +3485,14 @@ static bool update_wav_header(char *filename, int sample_rate, static int record_file(char *filename) { - bool recording, saving; - char buf[32]; + bool recording, saving; + char buf[32]; int fd, low_water, i; int bytes_written; int button; - unsigned long mas; + unsigned long mas; - static const unsigned sampr[9][2] = { + static const unsigned sampr[9][2] = { {0, 8000}, {1, 11025}, {2, 12000}, {4, 16000}, {5, 22050}, {6, 24000}, {8, 32000}, {9, 44100}, {10, 48000} @@ -3575,13 +3575,13 @@ static int record_file(char *filename) hijack_interrupts(true); rec_tick_enable(true); - recording = true; - saving = false; - low_water = 5 /* seconds */ - * PCM_DEPTH_BYTES - * sampr[reccfg.samplerate][1] /* samples per second */ - * (reccfg.channels + 1); - + recording = true; + saving = false; + low_water = 5 /* seconds */ + * PCM_DEPTH_BYTES + * sampr[reccfg.samplerate][1] /* samples per second */ + * (reccfg.channels + 1); + while (recording || saving) { int to_save, write_now, result; @@ -3754,10 +3754,10 @@ static int recording_menu(void) /* plugin entry point */ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { - ssize_t buf_size; - int align; - int rc; - DIR *dir; + ssize_t buf_size; + int align; + int rc; + DIR *dir; (void)parameter; rb = api; diff --git a/apps/plugins/wavview.c b/apps/plugins/wavview.c index fbf2e43..56301c3 100644 --- a/apps/plugins/wavview.c +++ b/apps/plugins/wavview.c @@ -140,9 +140,9 @@ static int readwavpeaks(char *filename) total_bytes_read += sizeof (header); little_endian_to_native(&header, WAV_HEADER_FORMAT); - if (rb->strncmp(header.chunkid, "RIFF", 4) || - rb->strncmp(header.formatchunkid, "fmt ", 4) || - rb->strncmp(header.datachunkid, "data", 4) || + if (rb->strncmp(header.chunkid, "RIFF", 4) || + rb->strncmp(header.formatchunkid, "fmt ", 4) || + rb->strncmp(header.datachunkid, "data", 4) || (header.bitspersample != 16) || header.audioformat != 1) { diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c index 34c2c6c..82af857 100644 --- a/apps/recorder/recording.c +++ b/apps/recorder/recording.c @@ -1900,7 +1900,7 @@ bool recording_screen(bool no_source) ata_set_led_enabled(true); #endif - settings_save(); + settings_save(); return (rec_status & RCSTAT_BEEN_IN_USB_MODE) != 0; } /* recording_screen */ diff --git a/apps/settings.h b/apps/settings.h index d4498cf..501912b 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -745,7 +745,7 @@ struct user_settings int list_accel_wait; /* ms between increases */ #endif #ifdef HAVE_USBSTACK - int usb_stack_mode; /* device or host */ + int usb_stack_mode; /* device or host */ unsigned char usb_stack_device_driver[32]; /* usb device driver to load */ #endif }; diff --git a/apps/tagcache.c b/apps/tagcache.c index 4ddf1d2..801ed56 100644 --- a/apps/tagcache.c +++ b/apps/tagcache.c @@ -2841,7 +2841,7 @@ void run_command_queue(bool force) } mutex_lock(&command_queue_mutex); - + if ( (masterfd = open_master_fd(&myhdr, true)) < 0) return; @@ -4203,7 +4203,7 @@ void tagcache_init(void) create_thread(tagcache_thread, tagcache_stack, sizeof(tagcache_stack), 0, tagcache_thread_name IF_PRIO(, PRIORITY_BACKGROUND) - IF_COP(, CPU)); + IF_COP(, CPU)); #else tc_stat.initialized = true; allocate_tempbuf(); diff --git a/firmware/common/dir_uncached.c b/firmware/common/dir_uncached.c index e6b59c3..dfb2244 100644 --- a/firmware/common/dir_uncached.c +++ b/firmware/common/dir_uncached.c @@ -210,7 +210,7 @@ struct dirent_uncached* readdir_uncached(DIR_UNCACHED* dir) return NULL; if ( !entry.name[0] ) - return NULL; + return NULL; strncpy(theent->d_name, entry.name, sizeof( theent->d_name ) ); theent->attribute = entry.attr; diff --git a/firmware/common/disk.c b/firmware/common/disk.c index 563bb05..f7c7b14 100644 --- a/firmware/common/disk.c +++ b/firmware/common/disk.c @@ -41,8 +41,8 @@ 12-15: nr of sectors in partition */ -#define BYTES2INT32(array,pos) \ - ((long)array[pos] | ((long)array[pos+1] << 8 ) | \ +#define BYTES2INT32(array,pos) \ + ((long)array[pos] | ((long)array[pos+1] << 8 ) | \ ((long)array[pos+2] << 16 ) | ((long)array[pos+3] << 24 )) static struct partinfo part[8]; /* space for 4 partitions on 2 drives */ diff --git a/firmware/common/memchr.c b/firmware/common/memchr.c index a7ff222..8bcf642 100644 --- a/firmware/common/memchr.c +++ b/firmware/common/memchr.c @@ -1,28 +1,28 @@ /* FUNCTION - <>---search for character in memory + <>---search for character in memory INDEX - memchr + memchr ANSI_SYNOPSIS - #include - void * memchr(const void *<[s1]>, int <[c]>, size_t <[n]>); + #include + void * memchr(const void *<[s1]>, int <[c]>, size_t <[n]>); TRAD_SYNOPSIS - #include - void * memchr(<[s1]>, <[c]>, <[n]>); - void *<[string]>; - int *<[c]>; - size_t *<[n]>; + #include + void * memchr(<[s1]>, <[c]>, <[n]>); + void *<[string]>; + int *<[c]>; + size_t *<[n]>; DESCRIPTION - This function scans the first <[n]> bytes of the memory pointed - to by <[s1]> for the character <[c]> (converted to a char). + This function scans the first <[n]> bytes of the memory pointed + to by <[s1]> for the character <[c]> (converted to a char). RETURNS - Returns a pointer to the matching byte, or a null pointer if - <[c]> does not occur in <[s1]>. + Returns a pointer to the matching byte, or a null pointer if + <[c]> does not occur in <[s1]>. PORTABILITY <> is ANSI C. @@ -30,7 +30,7 @@ PORTABILITY <> requires no supporting OS subroutines. QUICKREF - memchr ansi pure + memchr ansi pure */ #include @@ -59,8 +59,8 @@ QUICKREF void * _DEFUN (memchr, (s1, i, n), - _CONST void *s1 _AND - int i _AND size_t n) + _CONST void *s1 _AND + int i _AND size_t n) { _CONST unsigned char *s = (_CONST unsigned char *)s1; #if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) @@ -69,9 +69,9 @@ _DEFUN (memchr, (s1, i, n), while (n-- > 0) { if (*s == c) - { + { return (void *)s; - } + } s++; } @@ -89,15 +89,15 @@ _DEFUN (memchr, (s1, i, n), aligned_addr = (unsigned long*)s; while ((!DETECTCHAR (*aligned_addr, mask)) && (n>LBLOCKSIZE)) - { + { aligned_addr++; - n -= LBLOCKSIZE; - } + n -= LBLOCKSIZE; + } /* The block of bytes currently pointed to by aligned_addr may contain the target character or there may be less than - LBLOCKSIZE bytes left to search. We check the last few - bytes using the bytewise search. */ + LBLOCKSIZE bytes left to search. We check the last few + bytes using the bytewise search. */ s = (unsigned char*)aligned_addr; } @@ -105,9 +105,9 @@ _DEFUN (memchr, (s1, i, n), while (n-- > 0) { if (*s == c) - { + { return (void *)s; - } + } s++; } diff --git a/firmware/common/memcmp.c b/firmware/common/memcmp.c index 4a871fa..a4ad682 100644 --- a/firmware/common/memcmp.c +++ b/firmware/common/memcmp.c @@ -1,31 +1,31 @@ /* FUNCTION - <>---compare two memory areas + <>---compare two memory areas INDEX - memcmp + memcmp ANSI_SYNOPSIS - #include - int memcmp(const void *<[s1]>, const void *<[s2]>, size_t <[n]>); + #include + int memcmp(const void *<[s1]>, const void *<[s2]>, size_t <[n]>); TRAD_SYNOPSIS - #include - int memcmp(<[s1]>, <[s2]>, <[n]>) - void *<[s1]>; - void *<[s2]>; - size_t <[n]>; + #include + int memcmp(<[s1]>, <[s2]>, <[n]>) + void *<[s1]>; + void *<[s2]>; + size_t <[n]>; DESCRIPTION - This function compares not more than <[n]> characters of the - object pointed to by <[s1]> with the object pointed to by <[s2]>. + This function compares not more than <[n]> characters of the + object pointed to by <[s1]> with the object pointed to by <[s2]>. RETURNS - The function returns an integer greater than, equal to or - less than zero according to whether the object pointed to by - <[s1]> is greater than, equal to or less than the object - pointed to by <[s2]>. + The function returns an integer greater than, equal to or + less than zero according to whether the object pointed to by + <[s1]> is greater than, equal to or less than the object + pointed to by <[s2]>. PORTABILITY <> is ANSI C. @@ -33,7 +33,7 @@ PORTABILITY <> requires no supporting OS subroutines. QUICKREF - memcmp ansi pure + memcmp ansi pure */ #include @@ -51,9 +51,9 @@ QUICKREF int _DEFUN (memcmp, (m1, m2, n), - _CONST _PTR m1 _AND - _CONST _PTR m2 _AND - size_t n) + _CONST _PTR m1 _AND + _CONST _PTR m2 _AND + size_t n) { #if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) unsigned char *s1 = (unsigned char *) m1; @@ -62,9 +62,9 @@ _DEFUN (memcmp, (m1, m2, n), while (n--) { if (*s1 != *s2) - { - return *s1 - *s2; - } + { + return *s1 - *s2; + } s1++; s2++; } @@ -87,7 +87,7 @@ _DEFUN (memcmp, (m1, m2, n), while (n >= LBLOCKSIZE) { if (*a1 != *a2) - break; + break; a1++; a2++; n -= LBLOCKSIZE; @@ -102,7 +102,7 @@ _DEFUN (memcmp, (m1, m2, n), while (n--) { if (*s1 != *s2) - return *s1 - *s2; + return *s1 - *s2; s1++; s2++; } diff --git a/firmware/common/memcpy.c b/firmware/common/memcpy.c index e9b8e82..e71bf6a 100644 --- a/firmware/common/memcpy.c +++ b/firmware/common/memcpy.c @@ -30,7 +30,7 @@ PORTABILITY QUICKREF memcpy ansi pure - */ + */ #include "config.h" #include <_ansi.h> @@ -52,15 +52,15 @@ QUICKREF _PTR _DEFUN (memcpy, (dst0, src0, len0), - _PTR dst0 _AND - _CONST _PTR src0 _AND - size_t len0) ICODE_ATTR; + _PTR dst0 _AND + _CONST _PTR src0 _AND + size_t len0) ICODE_ATTR; _PTR _DEFUN (memcpy, (dst0, src0, len0), - _PTR dst0 _AND - _CONST _PTR src0 _AND - size_t len0) + _PTR dst0 _AND + _CONST _PTR src0 _AND + size_t len0) { #if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) char *dst = (char *) dst0; diff --git a/firmware/common/memmove.c b/firmware/common/memmove.c index 761e9eb..670c090 100644 --- a/firmware/common/memmove.c +++ b/firmware/common/memmove.c @@ -1,30 +1,30 @@ /* FUNCTION - <>---move possibly overlapping memory + <>---move possibly overlapping memory INDEX - memmove + memmove ANSI_SYNOPSIS - #include - void *memmove(void *<[dst]>, const void *<[src]>, size_t <[length]>); + #include + void *memmove(void *<[dst]>, const void *<[src]>, size_t <[length]>); TRAD_SYNOPSIS - #include - void *memmove(<[dst]>, <[src]>, <[length]>) - void *<[dst]>; - void *<[src]>; - size_t <[length]>; + #include + void *memmove(<[dst]>, <[src]>, <[length]>) + void *<[dst]>; + void *<[src]>; + size_t <[length]>; DESCRIPTION - This function moves <[length]> characters from the block of - memory starting at <<*<[src]>>> to the memory starting at - <<*<[dst]>>>. <> reproduces the characters correctly - at <<*<[dst]>>> even if the two areas overlap. + This function moves <[length]> characters from the block of + memory starting at <<*<[src]>>> to the memory starting at + <<*<[dst]>>>. <> reproduces the characters correctly + at <<*<[dst]>>> even if the two areas overlap. RETURNS - The function returns <[dst]> as passed. + The function returns <[dst]> as passed. PORTABILITY <> is ANSI C. @@ -32,7 +32,7 @@ PORTABILITY <> requires no supporting OS subroutines. QUICKREF - memmove ansi pure + memmove ansi pure */ #include "config.h" @@ -55,15 +55,15 @@ QUICKREF _PTR _DEFUN (memmove, (dst_void, src_void, length), - _PTR dst_void _AND - _CONST _PTR src_void _AND - size_t length) ICODE_ATTR; + _PTR dst_void _AND + _CONST _PTR src_void _AND + size_t length) ICODE_ATTR; _PTR _DEFUN (memmove, (dst_void, src_void, length), - _PTR dst_void _AND - _CONST _PTR src_void _AND - size_t length) + _PTR dst_void _AND + _CONST _PTR src_void _AND + size_t length) { #if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) char *dst = dst_void; @@ -75,16 +75,16 @@ _DEFUN (memmove, (dst_void, src_void, length), src += length; dst += length; while (length--) - { - *--dst = *--src; - } + { + *--dst = *--src; + } } else { while (length--) - { - *dst++ = *src++; - } + { + *dst++ = *src++; + } } return dst_void; @@ -101,9 +101,9 @@ _DEFUN (memmove, (dst_void, src_void, length), src += len; dst += len; while (len--) - { - *--dst = *--src; - } + { + *--dst = *--src; + } } else { diff --git a/firmware/common/memset.c b/firmware/common/memset.c index c370191..38365f5 100644 --- a/firmware/common/memset.c +++ b/firmware/common/memset.c @@ -1,28 +1,28 @@ /* FUNCTION - <>---set an area of memory + <>---set an area of memory INDEX - memset + memset ANSI_SYNOPSIS - #include - void *memset(const void *<[dst]>, int <[c]>, size_t <[length]>); + #include + void *memset(const void *<[dst]>, int <[c]>, size_t <[length]>); TRAD_SYNOPSIS - #include - void *memset(<[dst]>, <[c]>, <[length]>) - void *<[dst]>; - int <[c]>; - size_t <[length]>; + #include + void *memset(<[dst]>, <[c]>, <[length]>) + void *<[dst]>; + int <[c]>; + size_t <[length]>; DESCRIPTION - This function converts the argument <[c]> into an unsigned - char and fills the first <[length]> characters of the array - pointed to by <[dst]> to the value. + This function converts the argument <[c]> into an unsigned + char and fills the first <[length]> characters of the array + pointed to by <[dst]> to the value. RETURNS - <> returns the value of <[m]>. + <> returns the value of <[m]>. PORTABILITY <> is ANSI C. @@ -30,7 +30,7 @@ PORTABILITY <> requires no supporting OS subroutines. QUICKREF - memset ansi pure + memset ansi pure */ #include @@ -41,9 +41,9 @@ QUICKREF _PTR _DEFUN (memset, (m, c, n), - _PTR m _AND - int c _AND - size_t n) + _PTR m _AND + int c _AND + size_t n) { #if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) char *s = (char *) m; @@ -78,7 +78,7 @@ _DEFUN (memset, (m, c, n), { buffer = 0; for (i = 0; i < LBLOCKSIZE; i++) - buffer = (buffer << 8) | c; + buffer = (buffer << 8) | c; } while (n >= LBLOCKSIZE*4) diff --git a/firmware/common/memset16.c b/firmware/common/memset16.c index 5f0fc3f..9f82f30 100644 --- a/firmware/common/memset16.c +++ b/firmware/common/memset16.c @@ -48,7 +48,7 @@ void memset16(void *dst, int val, size_t len) { buffer = 0; for (i = 0; i < LBLOCKSIZE; i++) - buffer = (buffer << 16) | val; + buffer = (buffer << 16) | val; } while (len >= LBLOCKSIZE*4) diff --git a/firmware/common/qsort.c b/firmware/common/qsort.c index b2071d4..cf3c433 100644 --- a/firmware/common/qsort.c +++ b/firmware/common/qsort.c @@ -3,20 +3,20 @@ FUNCTION <>---sort an array INDEX - qsort + qsort ANSI_SYNOPSIS - #include - void qsort(void *<[base]>, size_t <[nmemb]>, size_t <[size]>, - int (*<[compar]>)(const void *, const void *) ); + #include + void qsort(void *<[base]>, size_t <[nmemb]>, size_t <[size]>, + int (*<[compar]>)(const void *, const void *) ); TRAD_SYNOPSIS - #include - qsort(<[base]>, <[nmemb]>, <[size]>, <[compar]> ) - char *<[base]>; - size_t <[nmemb]>; - size_t <[size]>; - int (*<[compar]>)(); + #include + qsort(<[base]>, <[nmemb]>, <[size]>, <[compar]> ) + char *<[base]>; + size_t <[nmemb]>; + size_t <[size]>; + int (*<[compar]>)(); DESCRIPTION <> sorts an array (beginning at <[base]>) of <[nmemb]> objects. @@ -43,7 +43,7 @@ PORTABILITY /*- * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. + * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -55,8 +55,8 @@ PORTABILITY * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. + * This product includes software developed by the University of + * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. @@ -81,142 +81,142 @@ PORTABILITY #define inline #endif -static inline char *med3 _PARAMS((char *, char *, char *, int (*cmp)(const _PTR,const _PTR))); -static inline void swapfunc _PARAMS((char *, char *, int, int)); +static inline char *med3 _PARAMS((char *, char *, char *, int (*cmp)(const _PTR,const _PTR))); +static inline void swapfunc _PARAMS((char *, char *, int, int)); -#define min(a, b) (a) < (b) ? a : b +#define min(a, b) (a) < (b) ? a : b /* * Qsort routine from Bentley & McIlroy's "Engineering a Sort Function". */ -#define swapcode(TYPE, parmi, parmj, n) { \ - long i = (n) / sizeof (TYPE); \ - register TYPE *pi = (TYPE *) (parmi); \ - register TYPE *pj = (TYPE *) (parmj); \ - do { \ - register TYPE t = *pi; \ - *pi++ = *pj; \ - *pj++ = t; \ - } while (--i > 0); \ +#define swapcode(TYPE, parmi, parmj, n) { \ + long i = (n) / sizeof (TYPE); \ + register TYPE *pi = (TYPE *) (parmi); \ + register TYPE *pj = (TYPE *) (parmj); \ + do { \ + register TYPE t = *pi; \ + *pi++ = *pj; \ + *pj++ = t; \ + } while (--i > 0); \ } #define SWAPINIT(a, es) swaptype = ((char *)a - (char *)0) % sizeof(long) || \ - es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1; + es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1; static inline void _DEFUN(swapfunc, (a, b, n, swaptype), - char *a _AND - char *b _AND - int n _AND - int swaptype) + char *a _AND + char *b _AND + int n _AND + int swaptype) { - if(swaptype <= 1) - swapcode(long, a, b, n) - else - swapcode(char, a, b, n) + if(swaptype <= 1) + swapcode(long, a, b, n) + else + swapcode(char, a, b, n) } -#define swap(a, b) \ - if (swaptype == 0) { \ - long t = *(long *)(a); \ - *(long *)(a) = *(long *)(b); \ - *(long *)(b) = t; \ - } else \ - swapfunc(a, b, es, swaptype) +#define swap(a, b) \ + if (swaptype == 0) { \ + long t = *(long *)(a); \ + *(long *)(a) = *(long *)(b); \ + *(long *)(b) = t; \ + } else \ + swapfunc(a, b, es, swaptype) -#define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n, swaptype) +#define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n, swaptype) static inline char * _DEFUN(med3, (a, b, c, cmp), - char *a _AND - char *b _AND - char *c _AND - int (*cmp)(const _PTR,const _PTR)) + char *a _AND + char *b _AND + char *c _AND + int (*cmp)(const _PTR,const _PTR)) { - return cmp(a, b) < 0 ? - (cmp(b, c) < 0 ? b : (cmp(a, c) < 0 ? c : a )) + return cmp(a, b) < 0 ? + (cmp(b, c) < 0 ? b : (cmp(a, c) < 0 ? c : a )) :(cmp(b, c) > 0 ? b : (cmp(a, c) < 0 ? a : c )); } void _DEFUN(qsort, (a, n, es, cmp), - void *a _AND - size_t n _AND - size_t es _AND - int (*cmp)(const _PTR,const _PTR)) + void *a _AND + size_t n _AND + size_t es _AND + int (*cmp)(const _PTR,const _PTR)) { - char *pa, *pb, *pc, *pd, *pl, *pm, *pn; - int d, r, swaptype, swap_cnt; - -loop: SWAPINIT(a, es); - swap_cnt = 0; - if (n < 7) { - for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es) - for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0; - pl -= es) - swap(pl, pl - es); - return; - } - pm = (char *) a + (n / 2) * es; - if (n > 7) { - pl = a; - pn = (char *) a + (n - 1) * es; - if (n > 40) { - d = (n / 8) * es; - pl = med3(pl, pl + d, pl + 2 * d, cmp); - pm = med3(pm - d, pm, pm + d, cmp); - pn = med3(pn - 2 * d, pn - d, pn, cmp); - } - pm = med3(pl, pm, pn, cmp); - } - swap(a, pm); - pa = pb = (char *) a + es; - - pc = pd = (char *) a + (n - 1) * es; - for (;;) { - while (pb <= pc && (r = cmp(pb, a)) <= 0) { - if (r == 0) { - swap_cnt = 1; - swap(pa, pb); - pa += es; - } - pb += es; - } - while (pb <= pc && (r = cmp(pc, a)) >= 0) { - if (r == 0) { - swap_cnt = 1; - swap(pc, pd); - pd -= es; - } - pc -= es; - } - if (pb > pc) - break; - swap(pb, pc); - swap_cnt = 1; - pb += es; - pc -= es; - } - if (swap_cnt == 0) { /* Switch to insertion sort */ - for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es) - for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0; - pl -= es) - swap(pl, pl - es); - return; - } - - pn = (char *) a + n * es; - r = min(pa - (char *)a, pb - pa); - vecswap(a, pb - r, r); - r = min((unsigned int)(pd - pc), pn - pd - es); - vecswap(pb, pn - r, r); - if ((unsigned int)(r = pb - pa) > es) - qsort(a, r / es, es, cmp); - if ((unsigned int)(r = pd - pc) > es) { - /* Iterate rather than recurse to save stack space */ - a = pn - r; - n = r / es; - goto loop; - } -/* qsort(pn - r, r / es, es, cmp);*/ + char *pa, *pb, *pc, *pd, *pl, *pm, *pn; + int d, r, swaptype, swap_cnt; + +loop: SWAPINIT(a, es); + swap_cnt = 0; + if (n < 7) { + for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es) + for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0; + pl -= es) + swap(pl, pl - es); + return; + } + pm = (char *) a + (n / 2) * es; + if (n > 7) { + pl = a; + pn = (char *) a + (n - 1) * es; + if (n > 40) { + d = (n / 8) * es; + pl = med3(pl, pl + d, pl + 2 * d, cmp); + pm = med3(pm - d, pm, pm + d, cmp); + pn = med3(pn - 2 * d, pn - d, pn, cmp); + } + pm = med3(pl, pm, pn, cmp); + } + swap(a, pm); + pa = pb = (char *) a + es; + + pc = pd = (char *) a + (n - 1) * es; + for (;;) { + while (pb <= pc && (r = cmp(pb, a)) <= 0) { + if (r == 0) { + swap_cnt = 1; + swap(pa, pb); + pa += es; + } + pb += es; + } + while (pb <= pc && (r = cmp(pc, a)) >= 0) { + if (r == 0) { + swap_cnt = 1; + swap(pc, pd); + pd -= es; + } + pc -= es; + } + if (pb > pc) + break; + swap(pb, pc); + swap_cnt = 1; + pb += es; + pc -= es; + } + if (swap_cnt == 0) { /* Switch to insertion sort */ + for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es) + for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0; + pl -= es) + swap(pl, pl - es); + return; + } + + pn = (char *) a + n * es; + r = min(pa - (char *)a, pb - pa); + vecswap(a, pb - r, r); + r = min((unsigned int)(pd - pc), pn - pd - es); + vecswap(pb, pn - r, r); + if ((unsigned int)(r = pb - pa) > es) + qsort(a, r / es, es, cmp); + if ((unsigned int)(r = pd - pc) > es) { + /* Iterate rather than recurse to save stack space */ + a = pn - r; + n = r / es; + goto loop; + } +/* qsort(pn - r, r / es, es, cmp);*/ } diff --git a/firmware/common/strchr.c b/firmware/common/strchr.c index de4585f..f71137a 100644 --- a/firmware/common/strchr.c +++ b/firmware/common/strchr.c @@ -1,28 +1,28 @@ /* FUNCTION - <>---search for character in string + <>---search for character in string INDEX - strchr + strchr ANSI_SYNOPSIS - #include - char * strchr(const char *<[string]>, int <[c]>); + #include + char * strchr(const char *<[string]>, int <[c]>); TRAD_SYNOPSIS - #include - char * strchr(<[string]>, <[c]>); - char *<[string]>; - int *<[c]>; + #include + char * strchr(<[string]>, <[c]>); + char *<[string]>; + int *<[c]>; DESCRIPTION - This function finds the first occurence of <[c]> (converted to - a char) in the string pointed to by <[string]> (including the - terminating null character). + This function finds the first occurence of <[c]> (converted to + a char) in the string pointed to by <[string]> (including the + terminating null character). RETURNS - Returns a pointer to the located character, or a null pointer - if <[c]> does not occur in <[string]>. + Returns a pointer to the located character, or a null pointer + if <[c]> does not occur in <[string]>. PORTABILITY <> is ANSI C. @@ -30,7 +30,7 @@ PORTABILITY <> requires no supporting OS subroutines. QUICKREF - strchr ansi pure + strchr ansi pure */ #include @@ -59,8 +59,8 @@ QUICKREF char * _DEFUN (strchr, (s1, i), - _CONST char *s1 _AND - int i) + _CONST char *s1 _AND + int i) { _CONST unsigned char *s = (_CONST unsigned char *)s1; #if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) diff --git a/firmware/common/strcmp.c b/firmware/common/strcmp.c index 81d6527..87ca93c 100644 --- a/firmware/common/strcmp.c +++ b/firmware/common/strcmp.c @@ -1,30 +1,30 @@ /* FUNCTION - <>---character string compare - + <>---character string compare + INDEX - strcmp + strcmp ANSI_SYNOPSIS - #include - int strcmp(const char *<[a]>, const char *<[b]>); + #include + int strcmp(const char *<[a]>, const char *<[b]>); TRAD_SYNOPSIS - #include - int strcmp(<[a]>, <[b]>) - char *<[a]>; - char *<[b]>; + #include + int strcmp(<[a]>, <[b]>) + char *<[a]>; + char *<[b]>; DESCRIPTION - <> compares the string at <[a]> to - the string at <[b]>. + <> compares the string at <[a]> to + the string at <[b]>. RETURNS - If <<*<[a]>>> sorts lexicographically after <<*<[b]>>>, - <> returns a number greater than zero. If the two - strings match, <> returns zero. If <<*<[a]>>> - sorts lexicographically before <<*<[b]>>>, <> returns a - number less than zero. + If <<*<[a]>>> sorts lexicographically after <<*<[b]>>>, + <> returns a number greater than zero. If the two + strings match, <> returns zero. If <<*<[a]>>> + sorts lexicographically before <<*<[b]>>>, <> returns a + number less than zero. PORTABILITY <> is ANSI C. @@ -32,7 +32,7 @@ PORTABILITY <> requires no supporting OS subroutines. QUICKREF - strcmp ansi pure + strcmp ansi pure */ #include @@ -59,8 +59,8 @@ QUICKREF int _DEFUN (strcmp, (s1, s2), - _CONST char *s1 _AND - _CONST char *s2) + _CONST char *s1 _AND + _CONST char *s2) { #if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) while (*s1 != '\0' && *s1 == *s2) @@ -83,9 +83,9 @@ _DEFUN (strcmp, (s1, s2), while (*a1 == *a2) { /* To get here, *a1 == *a2, thus if we find a null in *a1, - then the strings must be equal, so return zero. */ + then the strings must be equal, so return zero. */ if (DETECTNULL (*a1)) - return 0; + return 0; a1++; a2++; diff --git a/firmware/common/strcpy.c b/firmware/common/strcpy.c index 0580d88..bfee438 100644 --- a/firmware/common/strcpy.c +++ b/firmware/common/strcpy.c @@ -1,27 +1,27 @@ /* FUNCTION - <>---copy string + <>---copy string INDEX - strcpy + strcpy ANSI_SYNOPSIS - #include - char *strcpy(char *<[dst]>, const char *<[src]>); + #include + char *strcpy(char *<[dst]>, const char *<[src]>); TRAD_SYNOPSIS - #include - char *strcpy(<[dst]>, <[src]>) - char *<[dst]>; - char *<[src]>; + #include + char *strcpy(<[dst]>, <[src]>) + char *<[dst]>; + char *<[src]>; DESCRIPTION - <> copies the string pointed to by <[src]> - (including the terminating null character) to the array - pointed to by <[dst]>. + <> copies the string pointed to by <[src]> + (including the terminating null character) to the array + pointed to by <[dst]>. RETURNS - This function returns the initial value of <[dst]>. + This function returns the initial value of <[dst]>. PORTABILITY <> is ANSI C. @@ -29,7 +29,7 @@ PORTABILITY <> requires no supporting OS subroutines. QUICKREF - strcpy ansi pure + strcpy ansi pure */ #include @@ -59,8 +59,8 @@ QUICKREF char* _DEFUN (strcpy, (dst0, src0), - char *dst0 _AND - _CONST char *src0) + char *dst0 _AND + _CONST char *src0) { #if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) char *s = dst0; diff --git a/firmware/common/strlen.c b/firmware/common/strlen.c index 2e2c62e..21300b4 100644 --- a/firmware/common/strlen.c +++ b/firmware/common/strlen.c @@ -1,26 +1,26 @@ /* FUNCTION - <>---character string length - + <>---character string length + INDEX - strlen + strlen ANSI_SYNOPSIS - #include - size_t strlen(const char *<[str]>); + #include + size_t strlen(const char *<[str]>); TRAD_SYNOPSIS - #include - size_t strlen(<[str]>) - char *<[src]>; + #include + size_t strlen(<[str]>) + char *<[src]>; DESCRIPTION - The <> function works out the length of the string - starting at <<*<[str]>>> by counting chararacters until it - reaches a <> character. + The <> function works out the length of the string + starting at <<*<[str]>>> by counting chararacters until it + reaches a <> character. RETURNS - <> returns the character count. + <> returns the character count. PORTABILITY <> is ANSI C. @@ -28,7 +28,7 @@ PORTABILITY <> requires no supporting OS subroutines. QUICKREF - strlen ansi pure + strlen ansi pure */ #include "config.h" @@ -56,11 +56,11 @@ QUICKREF size_t _DEFUN (strlen, (str), - _CONST char *str) ICODE_ATTR; + _CONST char *str) ICODE_ATTR; size_t _DEFUN (strlen, (str), - _CONST char *str) + _CONST char *str) { #if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) _CONST char *start = str; diff --git a/firmware/common/strncmp.c b/firmware/common/strncmp.c index 9801b7d..8b0c970 100644 --- a/firmware/common/strncmp.c +++ b/firmware/common/strncmp.c @@ -1,31 +1,31 @@ /* FUNCTION - <>---character string compare - + <>---character string compare + INDEX - strncmp + strncmp ANSI_SYNOPSIS - #include - int strncmp(const char *<[a]>, const char * <[b]>, size_t <[length]>); + #include + int strncmp(const char *<[a]>, const char * <[b]>, size_t <[length]>); TRAD_SYNOPSIS - #include - int strncmp(<[a]>, <[b]>, <[length]>) - char *<[a]>; - char *<[b]>; - size_t <[length]> + #include + int strncmp(<[a]>, <[b]>, <[length]>) + char *<[a]>; + char *<[b]>; + size_t <[length]> DESCRIPTION - <> compares up to <[length]> characters - from the string at <[a]> to the string at <[b]>. + <> compares up to <[length]> characters + from the string at <[a]> to the string at <[b]>. RETURNS - If <<*<[a]>>> sorts lexicographically after <<*<[b]>>>, - <> returns a number greater than zero. If the two - strings are equivalent, <> returns zero. If <<*<[a]>>> - sorts lexicographically before <<*<[b]>>>, <> returns a - number less than zero. + If <<*<[a]>>> sorts lexicographically after <<*<[b]>>>, + <> returns a number greater than zero. If the two + strings are equivalent, <> returns zero. If <<*<[a]>>> + sorts lexicographically before <<*<[b]>>>, <> returns a + number less than zero. PORTABILITY <> is ANSI C. @@ -33,7 +33,7 @@ PORTABILITY <> requires no supporting OS subroutines. QUICKREF - strncmp ansi pure + strncmp ansi pure */ #include @@ -60,9 +60,9 @@ QUICKREF int _DEFUN (strncmp, (s1, s2, n), - _CONST char *s1 _AND - _CONST char *s2 _AND - size_t n) + _CONST char *s1 _AND + _CONST char *s2 _AND + size_t n) { #if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) if (n == 0) @@ -71,7 +71,7 @@ _DEFUN (strncmp, (s1, s2, n), while (n-- != 0 && *s1 == *s2) { if (n == 0 || *s1 == '\0') - break; + break; s1++; s2++; } @@ -95,9 +95,9 @@ _DEFUN (strncmp, (s1, s2, n), n -= sizeof (long); /* If we've run out of bytes or hit a null, return zero - since we already know *a1 == *a2. */ + since we already know *a1 == *a2. */ if (n == 0 || DETECTNULL (*a1)) - return 0; + return 0; a1++; a2++; @@ -111,9 +111,9 @@ _DEFUN (strncmp, (s1, s2, n), while (n-- > 0 && *s1 == *s2) { /* If we've run out of bytes or hit a null, return zero - since we already know *s1 == *s2. */ + since we already know *s1 == *s2. */ if (n == 0 || *s1 == '\0') - return 0; + return 0; s1++; s2++; } diff --git a/firmware/common/strncpy.c b/firmware/common/strncpy.c index 7c1973b..fbd6b9a 100644 --- a/firmware/common/strncpy.c +++ b/firmware/common/strncpy.c @@ -1,32 +1,32 @@ /* FUNCTION - <>---counted copy string + <>---counted copy string INDEX - strncpy + strncpy ANSI_SYNOPSIS - #include - char *strncpy(char *<[dst]>, const char *<[src]>, size_t <[length]>); + #include + char *strncpy(char *<[dst]>, const char *<[src]>, size_t <[length]>); TRAD_SYNOPSIS - #include - char *strncpy(<[dst]>, <[src]>, <[length]>) - char *<[dst]>; - char *<[src]>; - size_t <[length]>; + #include + char *strncpy(<[dst]>, <[src]>, <[length]>) + char *<[dst]>; + char *<[src]>; + size_t <[length]>; DESCRIPTION - <> copies not more than <[length]> characters from the - the string pointed to by <[src]> (including the terminating - null character) to the array pointed to by <[dst]>. If the - string pointed to by <[src]> is shorter than <[length]> - characters, null characters are appended to the destination - array until a total of <[length]> characters have been - written. + <> copies not more than <[length]> characters from the + the string pointed to by <[src]> (including the terminating + null character) to the array pointed to by <[dst]>. If the + string pointed to by <[src]> is shorter than <[length]> + characters, null characters are appended to the destination + array until a total of <[length]> characters have been + written. RETURNS - This function returns the initial value of <[dst]>. + This function returns the initial value of <[dst]>. PORTABILITY <> is ANSI C. @@ -34,7 +34,7 @@ PORTABILITY <> requires no supporting OS subroutines. QUICKREF - strncpy ansi pure + strncpy ansi pure */ #include @@ -66,9 +66,9 @@ QUICKREF char * _DEFUN (strncpy, (dst0, src0), - char *dst0 _AND - _CONST char *src0 _AND - size_t count) + char *dst0 _AND + _CONST char *src0 _AND + size_t count) { #if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) char *dscan; @@ -80,7 +80,7 @@ _DEFUN (strncpy, (dst0, src0), { --count; if ((*dscan++ = *sscan++) == '\0') - break; + break; } while (count-- > 0) *dscan++ = '\0'; @@ -99,12 +99,12 @@ _DEFUN (strncpy, (dst0, src0), aligned_src = (long*)src; /* SRC and DEST are both "long int" aligned, try to do "long int" - sized copies. */ + sized copies. */ while (count >= sizeof (long int) && !DETECTNULL(*aligned_src)) - { - count -= sizeof (long int); - *aligned_dst++ = *aligned_src++; - } + { + count -= sizeof (long int); + *aligned_dst++ = *aligned_src++; + } dst = (char*)aligned_dst; src = (char*)aligned_src; @@ -114,7 +114,7 @@ _DEFUN (strncpy, (dst0, src0), { --count; if ((*dst++ = *src++) == '\0') - break; + break; } while (count-- > 0) diff --git a/firmware/common/strrchr.c b/firmware/common/strrchr.c index 4f903af..d4497b4 100644 --- a/firmware/common/strrchr.c +++ b/firmware/common/strrchr.c @@ -1,28 +1,28 @@ /* FUNCTION - <>---reverse search for character in string + <>---reverse search for character in string INDEX - strrchr + strrchr ANSI_SYNOPSIS - #include - char * strrchr(const char *<[string]>, int <[c]>); + #include + char * strrchr(const char *<[string]>, int <[c]>); TRAD_SYNOPSIS - #include - char * strrchr(<[string]>, <[c]>); - char *<[string]>; - int *<[c]>; + #include + char * strrchr(<[string]>, <[c]>); + char *<[string]>; + int *<[c]>; DESCRIPTION - This function finds the last occurence of <[c]> (converted to - a char) in the string pointed to by <[string]> (including the - terminating null character). + This function finds the last occurence of <[c]> (converted to + a char) in the string pointed to by <[string]> (including the + terminating null character). RETURNS - Returns a pointer to the located character, or a null pointer - if <[c]> does not occur in <[string]>. + Returns a pointer to the located character, or a null pointer + if <[c]> does not occur in <[string]>. PORTABILITY <> is ANSI C. @@ -30,30 +30,30 @@ PORTABILITY <> requires no supporting OS subroutines. QUICKREF - strrchr ansi pure + strrchr ansi pure */ #include char * _DEFUN (strrchr, (s, i), - _CONST char *s _AND - int i) + _CONST char *s _AND + int i) { _CONST char *last = NULL; if (i) { while ((s=strchr(s, i))) - { - last = s; - s++; - } + { + last = s; + s++; + } } else { last = strchr(s, i); } - + return (char *) last; } diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c index 67aab8a..ed1c7fd 100644 --- a/firmware/drivers/ata.c +++ b/firmware/drivers/ata.c @@ -1208,7 +1208,7 @@ int ata_init(void) create_thread(ata_thread, ata_stack, sizeof(ata_stack), 0, ata_thread_name IF_PRIO(, PRIORITY_SYSTEM) - IF_COP(, CPU)); + IF_COP(, CPU)); initialized = true; } diff --git a/firmware/drivers/ata_mmc.c b/firmware/drivers/ata_mmc.c index 604d1dd..2564cca 100644 --- a/firmware/drivers/ata_mmc.c +++ b/firmware/drivers/ata_mmc.c @@ -1155,7 +1155,7 @@ int ata_init(void) create_thread(mmc_thread, mmc_stack, sizeof(mmc_stack), 0, mmc_thread_name IF_PRIO(, PRIORITY_SYSTEM) - IF_COP(, CPU)); + IF_COP(, CPU)); tick_add_task(mmc_tick); initialized = true; } diff --git a/firmware/drivers/dac.h b/firmware/drivers/dac.h index dc953c1..94036a9 100644 --- a/firmware/drivers/dac.h +++ b/firmware/drivers/dac.h @@ -24,12 +24,12 @@ #ifdef HAVE_DAC3550A /* - DAC I2C defs + DAC I2C defs */ #define DAC_ADR 0x9a -#define DAC_DEV_WRITE (DAC_ADR | 0x00) +#define DAC_DEV_WRITE (DAC_ADR | 0x00) -#define DAC_REG_WRITE 0xc0 +#define DAC_REG_WRITE 0xc0 /* registers..*/ #define DAC_SR_REG 1 diff --git a/firmware/drivers/lcd-charset-player.c b/firmware/drivers/lcd-charset-player.c index 6b68d47..3b1f62c 100644 --- a/firmware/drivers/lcd-charset-player.c +++ b/firmware/drivers/lcd-charset-player.c @@ -723,7 +723,7 @@ const struct xchar_info xchar_info_oldlcd[] = { { 0xa7, 0, 0, 0x63 }, /* § (paragraph sign) */ - { 0xab, XF_LEFTDBLANGLEQUOT, 1, 0x40 }, /* « (left double-angle quotation mark) */ + { 0xab, XF_LEFTDBLANGLEQUOT, 1, 0x40 }, /* « (left double-angle quotation mark) */ { 0xad, 0, 0, 0x31 }, /* ­ (soft hyphen) */ diff --git a/firmware/drivers/rtc/rtc_m41st84w.c b/firmware/drivers/rtc/rtc_m41st84w.c index 4e86169..258a144 100644 --- a/firmware/drivers/rtc/rtc_m41st84w.c +++ b/firmware/drivers/rtc/rtc_m41st84w.c @@ -24,8 +24,8 @@ #include #define RTC_ADR 0xd0 -#define RTC_DEV_WRITE (RTC_ADR | 0x00) -#define RTC_DEV_READ (RTC_ADR | 0x01) +#define RTC_DEV_WRITE (RTC_ADR | 0x00) +#define RTC_DEV_READ (RTC_ADR | 0x01) void rtc_init(void) { @@ -159,8 +159,8 @@ bool rtc_enable_alarm(bool enable) { data &= 0x5f; /* turn bit d7=AFE and d5=ABE off */ rtc_write(0x0a, data); - sleep(HZ / 10); - rtc_check_alarm_flag(); + sleep(HZ / 10); + rtc_check_alarm_flag(); data |= 0xa0; /* turn bit d7=AFE and d5=ABE on */ rtc_write(0x0a, data); } diff --git a/firmware/drivers/serial.c b/firmware/drivers/serial.c index 6ed539b..836c105 100644 --- a/firmware/drivers/serial.c +++ b/firmware/drivers/serial.c @@ -212,7 +212,7 @@ void dprintf(const char * str, ... ) { char dprintfbuff[256]; unsigned char * ptr; - + va_list ap; va_start(ap, str); diff --git a/firmware/drivers/usb/arcotg_dcd.c b/firmware/drivers/usb/arcotg_dcd.c index c45a790..5df740e 100644 --- a/firmware/drivers/usb/arcotg_dcd.c +++ b/firmware/drivers/usb/arcotg_dcd.c @@ -583,7 +583,7 @@ int usb_arcotg_dcd_enable(struct usb_ep* ep, break; case USB_ENDPOINT_XFER_CONTROL: - if (strstr(ep->name, "-iso") || strstr(ep->name, "-int")) { + if (strstr(ep->name, "-iso") || strstr(ep->name, "-int")) { goto en_done; } mult = 0; diff --git a/firmware/export/config-ipodnano.h b/firmware/export/config-ipodnano.h index fcba445..7165d42 100644 --- a/firmware/export/config-ipodnano.h +++ b/firmware/export/config-ipodnano.h @@ -82,7 +82,7 @@ #define BATTERY_CAPACITY_DEFAULT 300 /* default battery capacity */ #define BATTERY_CAPACITY_MIN 200 /* min. capacity selectable */ #define BATTERY_CAPACITY_MAX 600 /* max. capacity selectable */ -#define BATTERY_CAPACITY_INC 20 /* capacity increment */ +#define BATTERY_CAPACITY_INC 20 /* capacity increment */ #define BATTERY_TYPES_COUNT 1 /* only one type */ /* Hardware controlled charging? FIXME */ diff --git a/firmware/export/debug.h b/firmware/export/debug.h index 17c4bdf..01b9fe8 100644 --- a/firmware/export/debug.h +++ b/firmware/export/debug.h @@ -30,7 +30,7 @@ extern void ldebugf(const char* file, int line, const char *fmt, ...) /* */ #if defined(SIMULATOR) && !defined(__PCTOOL__) -#define DEBUGF debugf +#define DEBUGF debugf #define LDEBUGF(...) ldebugf(__FILE__, __LINE__, __VA_ARGS__) #else #if defined(DEBUG) @@ -39,7 +39,7 @@ extern void ldebugf(const char* file, int line, const char *fmt, ...) void breakpoint(void); #endif -#define DEBUGF debugf +#define DEBUGF debugf #define LDEBUGF debugf #else #define DEBUGF(...) diff --git a/firmware/export/dm320.h b/firmware/export/dm320.h index 7a64056..7c706ea 100644 --- a/firmware/export/dm320.h +++ b/firmware/export/dm320.h @@ -263,35 +263,35 @@ #define IO_OSD_OSDWIN1YP 0x06BE #define IO_OSD_OSDWIN1XL 0x06C0 #define IO_OSD_OSDWIN1YL 0x06C2 -#define IO_OSD_CURXP 0x06C4 -#define IO_OSD_CURYP 0x06C6 -#define IO_OSD_CURXL 0x06C8 -#define IO_OSD_CURYL 0x06CA - -#define IO_OSD_W0BMP01 0x06D0 -#define IO_OSD_W0BMP23 0x06D2 -#define IO_OSD_W0BMP45 0x06D4 -#define IO_OSD_W0BMP67 0x06D6 -#define IO_OSD_W0BMP89 0x06D8 -#define IO_OSD_W0BMPAB 0x06DA -#define IO_OSD_W0BMPCD 0x06DC -#define IO_OSD_W0BMPEF 0x06DE - -#define IO_OSD_W1BMP01 0x06E0 -#define IO_OSD_W1BMP23 0x06E2 -#define IO_OSD_W1BMP45 0x06E4 -#define IO_OSD_W1BMP67 0x06E6 -#define IO_OSD_W1BMP89 0x06E8 -#define IO_OSD_W1BMPAB 0x06EA -#define IO_OSD_W1BMPCD 0x06EC -#define IO_OSD_W1BMPEF 0x06EE - -#define IO_OSD_MISCCTL 0x06F4 -#define IO_OSD_CLUTRAMYCB 0x06F6 -#define IO_OSD_CLUTRAMCR 0x06F8 - -#define IO_OSD_PPWIN0ADH 0x06FC -#define IO_OSD_PPWIN0ADL 0x06FE +#define IO_OSD_CURXP 0x06C4 +#define IO_OSD_CURYP 0x06C6 +#define IO_OSD_CURXL 0x06C8 +#define IO_OSD_CURYL 0x06CA + +#define IO_OSD_W0BMP01 0x06D0 +#define IO_OSD_W0BMP23 0x06D2 +#define IO_OSD_W0BMP45 0x06D4 +#define IO_OSD_W0BMP67 0x06D6 +#define IO_OSD_W0BMP89 0x06D8 +#define IO_OSD_W0BMPAB 0x06DA +#define IO_OSD_W0BMPCD 0x06DC +#define IO_OSD_W0BMPEF 0x06DE + +#define IO_OSD_W1BMP01 0x06E0 +#define IO_OSD_W1BMP23 0x06E2 +#define IO_OSD_W1BMP45 0x06E4 +#define IO_OSD_W1BMP67 0x06E6 +#define IO_OSD_W1BMP89 0x06E8 +#define IO_OSD_W1BMPAB 0x06EA +#define IO_OSD_W1BMPCD 0x06EC +#define IO_OSD_W1BMPEF 0x06EE + +#define IO_OSD_MISCCTL 0x06F4 +#define IO_OSD_CLUTRAMYCB 0x06F6 +#define IO_OSD_CLUTRAMCR 0x06F8 + +#define IO_OSD_PPWIN0ADH 0x06FC +#define IO_OSD_PPWIN0ADL 0x06FE /* CCD Controller */ diff --git a/firmware/export/i2c-coldfire.h b/firmware/export/i2c-coldfire.h index 544a316..9db9386 100644 --- a/firmware/export/i2c-coldfire.h +++ b/firmware/export/i2c-coldfire.h @@ -42,31 +42,31 @@ void i2c_adjust_prescale(int multiplier); #define MAX_LOOP 0x100 /* TODO: select a better value */ /* PLLCR control */ -#define QSPISEL (1 << 11) /* Selects QSPI or I2C interface */ +#define QSPISEL (1 << 11) /* Selects QSPI or I2C interface */ /* Offsets to I2C registers from base address */ -#define O_MADR 0x00 /* Slave Address */ -#define O_MFDR 0x04 /* Frequency divider */ -#define O_MBCR 0x08 /* Control register */ -#define O_MBSR 0x0c /* Status register */ -#define O_MBDR 0x10 /* Data register */ +#define O_MADR 0x00 /* Slave Address */ +#define O_MFDR 0x04 /* Frequency divider */ +#define O_MBCR 0x08 /* Control register */ +#define O_MBSR 0x0c /* Status register */ +#define O_MBDR 0x10 /* Data register */ /* MBSR - Status register */ -#define ICF (1 << 7) /* Transfer Complete */ -#define IAAS (1 << 6) /* Addressed As Alave */ -#define IBB (1 << 5) /* Bus Busy */ -#define IAL (1 << 4) /* Arbitration Lost */ -#define SRW (1 << 2) /* Slave R/W */ -#define IFF (1 << 1) /* I2C Interrupt */ -#define RXAK (1 << 0) /* No Ack bit */ +#define ICF (1 << 7) /* Transfer Complete */ +#define IAAS (1 << 6) /* Addressed As Alave */ +#define IBB (1 << 5) /* Bus Busy */ +#define IAL (1 << 4) /* Arbitration Lost */ +#define SRW (1 << 2) /* Slave R/W */ +#define IFF (1 << 1) /* I2C Interrupt */ +#define RXAK (1 << 0) /* No Ack bit */ /* MBCR - Control register */ -#define IEN (1 << 7) /* I2C Enable */ -#define IIEN (1 << 6) /* Interrupt Enable */ -#define MSTA (1 << 5) /* Master/Slave select */ -#define MTX (1 << 4) /* Transmit/Receive */ -#define TXAK (1 << 3) /* Transfer ACK */ -#define RSTA (1 << 2) /* Restart.. */ +#define IEN (1 << 7) /* I2C Enable */ +#define IIEN (1 << 6) /* Interrupt Enable */ +#define MSTA (1 << 5) /* Master/Slave select */ +#define MTX (1 << 4) /* Transmit/Receive */ +#define TXAK (1 << 3) /* Transfer ACK */ +#define RSTA (1 << 2) /* Restart.. */ #endif diff --git a/firmware/export/imx31l.h b/firmware/export/imx31l.h index 1fa5e6b..1cf9c18 100755 --- a/firmware/export/imx31l.h +++ b/firmware/export/imx31l.h @@ -25,7 +25,7 @@ #define LCDSADDR1 (*(volatile int *)0x80100000) /* STN/TFT: frame buffer start address 1 */ #define FRAME1 ((short *)0x80100000) //Foreground FB #define FRAME2 ((short *)0x84100000) //Background FB - Set to Graphic Window, hence the reason why text is only visible - //when background memory is written. + //when background memory is written. #define LCD_BUFFER_SIZE ((320*240*2)) #define TTB_SIZE (0x4000) #define TTB_BASE (0x80000000 + (32*1024*1024*2)-TTB_SIZE); /*64 megs*/ @@ -217,7 +217,7 @@ #define FIPNDL (*(volatile long*)(AVIC_BASE_ADDR+0x064)) /* The vectors go all the way up to 63. 4 bytes for each */ -#define VECTOR_BASE_ADDR AVIC_BASE_ADDR+0x100 +#define VECTOR_BASE_ADDR AVIC_BASE_ADDR+0x100 #define VECTOR0 (*(volatile long*)VECTOR_BASE_ADDR) #define NIDIS (1 << 22) diff --git a/firmware/export/mas.h b/firmware/export/mas.h index d25a153..da4ac64 100644 --- a/firmware/export/mas.h +++ b/firmware/export/mas.h @@ -25,43 +25,43 @@ #define MAX_PEAK 0x8000 /* - MAS I2C defs + MAS I2C defs */ #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) #define MAS_ADR 0x3c -#define MAS_DEV_WRITE (MAS_ADR | 0x00) -#define MAS_DEV_READ (MAS_ADR | 0x01) +#define MAS_DEV_WRITE (MAS_ADR | 0x00) +#define MAS_DEV_READ (MAS_ADR | 0x01) #else #define MAS_ADR 0x3a -#define MAS_DEV_WRITE (MAS_ADR | 0x00) -#define MAS_DEV_READ (MAS_ADR | 0x01) +#define MAS_DEV_WRITE (MAS_ADR | 0x00) +#define MAS_DEV_READ (MAS_ADR | 0x01) #endif /* registers..*/ #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) -#define MAS_DATA_WRITE 0x68 +#define MAS_DATA_WRITE 0x68 #define MAS_DATA_READ 0x69 -#define MAS_CODEC_WRITE 0x6c +#define MAS_CODEC_WRITE 0x6c #define MAS_CODEC_READ 0x6d -#define MAS_CONTROL 0x6a -#define MAS_DCCF 0x76 -#define MAS_DCFR 0x77 +#define MAS_CONTROL 0x6a +#define MAS_DCCF 0x76 +#define MAS_DCFR 0x77 #else -#define MAS_DATA_WRITE 0x68 +#define MAS_DATA_WRITE 0x68 #define MAS_DATA_READ 0x69 -#define MAS_CONTROL 0x6a +#define MAS_CONTROL 0x6a #endif /* - * MAS register + * MAS register */ -#define MAS_REG_DCCF 0x8e -#define MAS_REG_MUTE 0xaa -#define MAS_REG_PIODATA 0xc8 -#define MAS_REG_StartUpConfig 0xe6 -#define MAS_REG_KPRESCALE 0xe7 -#define MAS_REG_KBASS 0x6b -#define MAS_REG_KTREBLE 0x6f +#define MAS_REG_DCCF 0x8e +#define MAS_REG_MUTE 0xaa +#define MAS_REG_PIODATA 0xc8 +#define MAS_REG_StartUpConfig 0xe6 +#define MAS_REG_KPRESCALE 0xe7 +#define MAS_REG_KBASS 0x6b +#define MAS_REG_KTREBLE 0x6f #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) #define MAS_REG_KMDB_SWITCH 0x21 #define MAS_REG_KMDB_STR 0x22 diff --git a/firmware/export/thread.h b/firmware/export/thread.h index 94c228b..6d5a613 100644 --- a/firmware/export/thread.h +++ b/firmware/export/thread.h @@ -465,7 +465,7 @@ struct thread_entry* create_thread(void (*function)(void), void* stack, int stack_size, unsigned flags, const char *name IF_PRIO(, int priority) - IF_COP(, unsigned int core)); + IF_COP(, unsigned int core)); #ifdef HAVE_SCHEDULER_BOOSTCTRL void trigger_cpu_boost(void); diff --git a/firmware/export/uda1380.h b/firmware/export/uda1380.h index b4b83d1..73ee67c 100644 --- a/firmware/export/uda1380.h +++ b/firmware/export/uda1380.h @@ -75,7 +75,7 @@ extern void audiohw_set_monitor(int enable); /* REG_I2S: I2S settings */ -#define REG_I2S 0x01 +#define REG_I2S 0x01 #define I2S_IFMT_IIS (0 << 8) #define I2S_IFMT_LSB16 (1 << 8) #define I2S_IFMT_LSB18 (2 << 8) diff --git a/firmware/export/usb_ch9.h b/firmware/export/usb_ch9.h index b8fe181..8585a39 100644 --- a/firmware/export/usb_ch9.h +++ b/firmware/export/usb_ch9.h @@ -136,9 +136,9 @@ struct usb_ctrlrequest { #define USB_DT_STRING 0x03 #define USB_DT_INTERFACE 0x04 #define USB_DT_ENDPOINT 0x05 -#define USB_DT_DEVICE_QUALIFIER 0x06 -#define USB_DT_OTHER_SPEED_CONFIG 0x07 -#define USB_DT_INTERFACE_POWER 0x08 +#define USB_DT_DEVICE_QUALIFIER 0x06 +#define USB_DT_OTHER_SPEED_CONFIG 0x07 +#define USB_DT_INTERFACE_POWER 0x08 /* these are from a minor usb 2.0 revision (ECN) */ #define USB_DT_OTG 0x09 #define USB_DT_DEBUG 0x0a @@ -281,14 +281,14 @@ struct usb_endpoint_descriptor { uint16_t wMaxPacketSize; uint8_t bInterval; - /* NOTE: these two are _only_ in audio endpoints. */ - /* use USB_DT_ENDPOINT*_SIZE in bLength, not sizeof. */ + /* NOTE: these two are _only_ in audio endpoints. */ + /* use USB_DT_ENDPOINT*_SIZE in bLength, not sizeof. */ //uint8_t bRefresh; //uint8_t bSynchAddress; } __attribute__ ((packed)); #define USB_DT_ENDPOINT_SIZE 7 -#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */ +#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */ /*-------------------------------------------------------------------------*/ @@ -313,7 +313,7 @@ struct usb_otg_descriptor { uint8_t bLength; uint8_t bDescriptorType; - uint8_t bmAttributes; /* support for HNP, SRP, etc */ + uint8_t bmAttributes; /* support for HNP, SRP, etc */ } __attribute__ ((packed)); /* from usb_otg_descriptor.bmAttributes */ @@ -327,7 +327,7 @@ struct usb_debug_descriptor { uint8_t bLength; uint8_t bDescriptorType; - /* bulk endpoints with 8 byte maxpacket */ + /* bulk endpoints with 8 byte maxpacket */ uint8_t bDebugInEndpoint; uint8_t bDebugOutEndpoint; }; @@ -344,33 +344,33 @@ struct usb_debug_descriptor { #define USB_ENDPOINT_XFER_INT 3 enum usb_device_speed { - USB_SPEED_UNKNOWN = 0, /* enumerating */ - USB_SPEED_LOW, USB_SPEED_FULL, /* usb 1.1 */ - USB_SPEED_HIGH, /* usb 2.0 */ - USB_SPEED_VARIABLE, /* wireless (usb 2.5) */ + USB_SPEED_UNKNOWN = 0, /* enumerating */ + USB_SPEED_LOW, USB_SPEED_FULL, /* usb 1.1 */ + USB_SPEED_HIGH, /* usb 2.0 */ + USB_SPEED_VARIABLE, /* wireless (usb 2.5) */ }; enum usb_device_state { - /* NOTATTACHED isn't in the USB spec, and this state acts - * the same as ATTACHED ... but it's clearer this way. - */ - USB_STATE_NOTATTACHED = 0, - - /* chapter 9 and authentication (wireless) device states */ - USB_STATE_ATTACHED, - USB_STATE_POWERED, /* wired */ - USB_STATE_UNAUTHENTICATED, /* auth */ - USB_STATE_RECONNECTING, /* auth */ - USB_STATE_DEFAULT, /* limited function */ - USB_STATE_ADDRESS, - USB_STATE_CONFIGURED, /* most functions */ - - USB_STATE_SUSPENDED - - /* NOTE: there are actually four different SUSPENDED - * states, returning to POWERED, DEFAULT, ADDRESS, or - * CONFIGURED respectively when SOF tokens flow again. - */ + /* NOTATTACHED isn't in the USB spec, and this state acts + * the same as ATTACHED ... but it's clearer this way. + */ + USB_STATE_NOTATTACHED = 0, + + /* chapter 9 and authentication (wireless) device states */ + USB_STATE_ATTACHED, + USB_STATE_POWERED, /* wired */ + USB_STATE_UNAUTHENTICATED, /* auth */ + USB_STATE_RECONNECTING, /* auth */ + USB_STATE_DEFAULT, /* limited function */ + USB_STATE_ADDRESS, + USB_STATE_CONFIGURED, /* most functions */ + + USB_STATE_SUSPENDED + + /* NOTE: there are actually four different SUSPENDED + * states, returning to POWERED, DEFAULT, ADDRESS, or + * CONFIGURED respectively when SOF tokens flow again. + */ }; /* All standard descriptors have these 2 fields at the beginning */ @@ -401,7 +401,7 @@ struct usb_string { * strings for a given language. */ struct usb_gadget_strings { - uint16_t language; /* 0x0409 for en-us */ + uint16_t language; /* 0x0409 for en-us */ struct usb_string* strings; }; diff --git a/firmware/include/_ansi.h b/firmware/include/_ansi.h index 0002816..24a2983 100644 --- a/firmware/include/_ansi.h +++ b/firmware/include/_ansi.h @@ -9,8 +9,8 @@ "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header files aren't affected). */ -#ifndef _ANSIDECL_H_ -#define _ANSIDECL_H_ +#ifndef _ANSIDECL_H_ +#define _ANSIDECL_H_ /* First try to figure out whether we really are in an ANSI C environment. */ /* FIXME: This probably needs some work. Perhaps sys/config.h can be @@ -21,46 +21,46 @@ #endif #ifdef _HAVE_STDC -#define _PTR void * -#define _AND , -#define _NOARGS void -#define _CONST const -#define _VOLATILE volatile -#define _SIGNED signed -#define _DOTS , ... +#define _PTR void * +#define _AND , +#define _NOARGS void +#define _CONST const +#define _VOLATILE volatile +#define _SIGNED signed +#define _DOTS , ... #define _VOID void #ifdef __CYGWIN__ -#define _EXFUN(name, proto) __cdecl name proto -#define _EXPARM(name, proto) (* __cdecl name) proto +#define _EXFUN(name, proto) __cdecl name proto +#define _EXPARM(name, proto) (* __cdecl name) proto #else -#define _EXFUN(name, proto) name proto -#define _EXPARM(name, proto) (* name) proto +#define _EXFUN(name, proto) name proto +#define _EXPARM(name, proto) (* name) proto #endif -#define _DEFUN(name, arglist, args) name(args) -#define _DEFUN_VOID(name) name(_NOARGS) +#define _DEFUN(name, arglist, args) name(args) +#define _DEFUN_VOID(name) name(_NOARGS) #define _CAST_VOID (void) #ifndef _LONG_DOUBLE #define _LONG_DOUBLE long double #endif #ifndef _PARAMS -#define _PARAMS(paramlist) paramlist +#define _PARAMS(paramlist) paramlist #endif -#else -#define _PTR char * -#define _AND ; -#define _NOARGS -#define _CONST -#define _VOLATILE -#define _SIGNED -#define _DOTS +#else +#define _PTR char * +#define _AND ; +#define _NOARGS +#define _CONST +#define _VOLATILE +#define _SIGNED +#define _DOTS #define _VOID void -#define _EXFUN(name, proto) name() -#define _DEFUN(name, arglist, args) name arglist args; -#define _DEFUN_VOID(name) name() +#define _EXFUN(name, proto) name() +#define _DEFUN(name, arglist, args) name arglist args; +#define _DEFUN_VOID(name) name() #define _CAST_VOID #define _LONG_DOUBLE double #ifndef _PARAMS -#define _PARAMS(paramlist) () +#define _PARAMS(paramlist) () #endif #endif diff --git a/firmware/include/assert.h b/firmware/include/assert.h index ba22a97..1a7600f 100644 --- a/firmware/include/assert.h +++ b/firmware/include/assert.h @@ -1,11 +1,11 @@ /* - assert.h + assert.h */ #undef assert #ifdef NDEBUG /* required by ANSI standard */ -#define assert(p) ((void)0) +#define assert(p) ((void)0) #else #ifdef __STDC__ diff --git a/firmware/include/ctype.h b/firmware/include/ctype.h index aba91a8..875b38e 100644 --- a/firmware/include/ctype.h +++ b/firmware/include/ctype.h @@ -27,14 +27,14 @@ int _EXFUN(_tolower, (int __c)); int _EXFUN(_toupper, (int __c)); #endif -#define _U 01 -#define _L 02 -#define _N 04 -#define _S 010 -#define _P 020 -#define _C 040 -#define _X 0100 -#define _B 0200 +#define _U 01 +#define _L 02 +#define _N 04 +#define _S 010 +#define _P 020 +#define _C 040 +#define _X 0100 +#define _B 0200 #ifdef PLUGIN #define _ctype_ (rb->_ctype_) @@ -43,30 +43,30 @@ extern const unsigned char _ctype_[257]; #endif #ifndef __cplusplus -#define isalpha(c) ((_ctype_+1)[(unsigned char)(c)]&(_U|_L)) -#define isupper(c) ((_ctype_+1)[(unsigned char)(c)]&_U) -#define islower(c) ((_ctype_+1)[(unsigned char)(c)]&_L) -#define isdigit(c) ((_ctype_+1)[(unsigned char)(c)]&_N) -#define isxdigit(c) ((_ctype_+1)[(unsigned char)(c)]&(_X|_N)) -#define isspace(c) ((_ctype_+1)[(unsigned char)(c)]&_S) -#define ispunct(c) ((_ctype_+1)[(unsigned char)(c)]&_P) -#define isalnum(c) ((_ctype_+1)[(unsigned char)(c)]&(_U|_L|_N)) -#define isprint(c) ((_ctype_+1)[(unsigned char)(c)]&(_P|_U|_L|_N|_B)) -#define isgraph(c) ((_ctype_+1)[(unsigned char)(c)]&(_P|_U|_L|_N)) -#define iscntrl(c) ((_ctype_+1)[(unsigned char)(c)]&_C) +#define isalpha(c) ((_ctype_+1)[(unsigned char)(c)]&(_U|_L)) +#define isupper(c) ((_ctype_+1)[(unsigned char)(c)]&_U) +#define islower(c) ((_ctype_+1)[(unsigned char)(c)]&_L) +#define isdigit(c) ((_ctype_+1)[(unsigned char)(c)]&_N) +#define isxdigit(c) ((_ctype_+1)[(unsigned char)(c)]&(_X|_N)) +#define isspace(c) ((_ctype_+1)[(unsigned char)(c)]&_S) +#define ispunct(c) ((_ctype_+1)[(unsigned char)(c)]&_P) +#define isalnum(c) ((_ctype_+1)[(unsigned char)(c)]&(_U|_L|_N)) +#define isprint(c) ((_ctype_+1)[(unsigned char)(c)]&(_P|_U|_L|_N|_B)) +#define isgraph(c) ((_ctype_+1)[(unsigned char)(c)]&(_P|_U|_L|_N)) +#define iscntrl(c) ((_ctype_+1)[(unsigned char)(c)]&_C) /* Non-gcc versions will get the library versions, and will be slightly slower */ #ifdef __GNUC__ # define toupper(c) \ - __extension__ ({ int __x = (unsigned char) (c); islower(__x) ? (__x - 'a' + 'A') : __x;}) + __extension__ ({ int __x = (unsigned char) (c); islower(__x) ? (__x - 'a' + 'A') : __x;}) # define tolower(c) \ - __extension__ ({ int __x = (unsigned char) (c); isupper(__x) ? (__x - 'A' + 'a') : __x;}) + __extension__ ({ int __x = (unsigned char) (c); isupper(__x) ? (__x - 'A' + 'a') : __x;}) #endif #endif /* !__cplusplus */ #ifndef __STRICT_ANSI__ -#define isascii(c) ((unsigned char)(c)<=0177) -#define toascii(c) ((c)&0177) +#define isascii(c) ((unsigned char)(c)<=0177) +#define toascii(c) ((c)&0177) #endif #ifdef __cplusplus diff --git a/firmware/include/errno.h b/firmware/include/errno.h index 1843b56..c8e4fd0 100644 --- a/firmware/include/errno.h +++ b/firmware/include/errno.h @@ -12,130 +12,130 @@ extern int errno; -#define EPERM 1 /* Not super-user */ -#define ENOENT 2 /* No such file or directory */ -#define ESRCH 3 /* No such process */ -#define EINTR 4 /* Interrupted system call */ -#define EIO 5 /* I/O error */ -#define ENXIO 6 /* No such device or address */ -#define E2BIG 7 /* Arg list too long */ -#define ENOEXEC 8 /* Exec format error */ -#define EBADF 9 /* Bad file number */ -#define ECHILD 10 /* No children */ -#define EAGAIN 11 /* No more processes */ -#define ENOMEM 12 /* Not enough core */ -#define EACCES 13 /* Permission denied */ -#define EFAULT 14 /* Bad address */ -#define ENOTBLK 15 /* Block device required */ -#define EBUSY 16 /* Mount device busy */ -#define EEXIST 17 /* File exists */ -#define EXDEV 18 /* Cross-device link */ -#define ENODEV 19 /* No such device */ -#define ENOTDIR 20 /* Not a directory */ -#define EISDIR 21 /* Is a directory */ -#define EINVAL 22 /* Invalid argument */ -#define ENFILE 23 /* Too many open files in system */ -#define EMFILE 24 /* Too many open files */ -#define ENOTTY 25 /* Not a typewriter */ -#define ETXTBSY 26 /* Text file busy */ -#define EFBIG 27 /* File too large */ -#define ENOSPC 28 /* No space left on device */ -#define ESPIPE 29 /* Illegal seek */ -#define EROFS 30 /* Read only file system */ -#define EMLINK 31 /* Too many links */ -#define EPIPE 32 /* Broken pipe */ -#define EDOM 33 /* Math arg out of domain of func */ -#define ERANGE 34 /* Math result not representable */ -#define ENOMSG 35 /* No message of desired type */ -#define EIDRM 36 /* Identifier removed */ -#define ECHRNG 37 /* Channel number out of range */ -#define EL2NSYNC 38 /* Level 2 not synchronized */ -#define EL3HLT 39 /* Level 3 halted */ -#define EL3RST 40 /* Level 3 reset */ -#define ELNRNG 41 /* Link number out of range */ -#define EUNATCH 42 /* Protocol driver not attached */ -#define ENOCSI 43 /* No CSI structure available */ -#define EL2HLT 44 /* Level 2 halted */ -#define EDEADLK 45 /* Deadlock condition */ -#define ENOLCK 46 /* No record locks available */ -#define EBADE 50 /* Invalid exchange */ -#define EBADR 51 /* Invalid request descriptor */ -#define EXFULL 52 /* Exchange full */ -#define ENOANO 53 /* No anode */ -#define EBADRQC 54 /* Invalid request code */ -#define EBADSLT 55 /* Invalid slot */ -#define EDEADLOCK 56 /* File locking deadlock error */ -#define EBFONT 57 /* Bad font file fmt */ -#define ENOSTR 60 /* Device not a stream */ -#define ENODATA 61 /* No data (for no delay io) */ -#define ETIME 62 /* Timer expired */ -#define ENOSR 63 /* Out of streams resources */ -#define ENONET 64 /* Machine is not on the network */ -#define ENOPKG 65 /* Package not installed */ -#define EREMOTE 66 /* The object is remote */ -#define ENOLINK 67 /* The link has been severed */ -#define EADV 68 /* Advertise error */ -#define ESRMNT 69 /* Srmount error */ -#define ECOMM 70 /* Communication error on send */ -#define EPROTO 71 /* Protocol error */ -#define EMULTIHOP 74 /* Multihop attempted */ -#define ELBIN 75 /* Inode is remote (not really error) */ -#define EDOTDOT 76 /* Cross mount point (not really error) */ -#define EBADMSG 77 /* Trying to read unreadable message */ -#define ENOTUNIQ 80 /* Given log. name not unique */ -#define EBADFD 81 /* f.d. invalid for this operation */ -#define EREMCHG 82 /* Remote address changed */ -#define ELIBACC 83 /* Can't access a needed shared lib */ -#define ELIBBAD 84 /* Accessing a corrupted shared lib */ -#define ELIBSCN 85 /* .lib section in a.out corrupted */ -#define ELIBMAX 86 /* Attempting to link in too many libs */ -#define ELIBEXEC 87 /* Attempting to exec a shared library */ -#define ENOSYS 88 /* Function not implemented */ +#define EPERM 1 /* Not super-user */ +#define ENOENT 2 /* No such file or directory */ +#define ESRCH 3 /* No such process */ +#define EINTR 4 /* Interrupted system call */ +#define EIO 5 /* I/O error */ +#define ENXIO 6 /* No such device or address */ +#define E2BIG 7 /* Arg list too long */ +#define ENOEXEC 8 /* Exec format error */ +#define EBADF 9 /* Bad file number */ +#define ECHILD 10 /* No children */ +#define EAGAIN 11 /* No more processes */ +#define ENOMEM 12 /* Not enough core */ +#define EACCES 13 /* Permission denied */ +#define EFAULT 14 /* Bad address */ +#define ENOTBLK 15 /* Block device required */ +#define EBUSY 16 /* Mount device busy */ +#define EEXIST 17 /* File exists */ +#define EXDEV 18 /* Cross-device link */ +#define ENODEV 19 /* No such device */ +#define ENOTDIR 20 /* Not a directory */ +#define EISDIR 21 /* Is a directory */ +#define EINVAL 22 /* Invalid argument */ +#define ENFILE 23 /* Too many open files in system */ +#define EMFILE 24 /* Too many open files */ +#define ENOTTY 25 /* Not a typewriter */ +#define ETXTBSY 26 /* Text file busy */ +#define EFBIG 27 /* File too large */ +#define ENOSPC 28 /* No space left on device */ +#define ESPIPE 29 /* Illegal seek */ +#define EROFS 30 /* Read only file system */ +#define EMLINK 31 /* Too many links */ +#define EPIPE 32 /* Broken pipe */ +#define EDOM 33 /* Math arg out of domain of func */ +#define ERANGE 34 /* Math result not representable */ +#define ENOMSG 35 /* No message of desired type */ +#define EIDRM 36 /* Identifier removed */ +#define ECHRNG 37 /* Channel number out of range */ +#define EL2NSYNC 38 /* Level 2 not synchronized */ +#define EL3HLT 39 /* Level 3 halted */ +#define EL3RST 40 /* Level 3 reset */ +#define ELNRNG 41 /* Link number out of range */ +#define EUNATCH 42 /* Protocol driver not attached */ +#define ENOCSI 43 /* No CSI structure available */ +#define EL2HLT 44 /* Level 2 halted */ +#define EDEADLK 45 /* Deadlock condition */ +#define ENOLCK 46 /* No record locks available */ +#define EBADE 50 /* Invalid exchange */ +#define EBADR 51 /* Invalid request descriptor */ +#define EXFULL 52 /* Exchange full */ +#define ENOANO 53 /* No anode */ +#define EBADRQC 54 /* Invalid request code */ +#define EBADSLT 55 /* Invalid slot */ +#define EDEADLOCK 56 /* File locking deadlock error */ +#define EBFONT 57 /* Bad font file fmt */ +#define ENOSTR 60 /* Device not a stream */ +#define ENODATA 61 /* No data (for no delay io) */ +#define ETIME 62 /* Timer expired */ +#define ENOSR 63 /* Out of streams resources */ +#define ENONET 64 /* Machine is not on the network */ +#define ENOPKG 65 /* Package not installed */ +#define EREMOTE 66 /* The object is remote */ +#define ENOLINK 67 /* The link has been severed */ +#define EADV 68 /* Advertise error */ +#define ESRMNT 69 /* Srmount error */ +#define ECOMM 70 /* Communication error on send */ +#define EPROTO 71 /* Protocol error */ +#define EMULTIHOP 74 /* Multihop attempted */ +#define ELBIN 75 /* Inode is remote (not really error) */ +#define EDOTDOT 76 /* Cross mount point (not really error) */ +#define EBADMSG 77 /* Trying to read unreadable message */ +#define ENOTUNIQ 80 /* Given log. name not unique */ +#define EBADFD 81 /* f.d. invalid for this operation */ +#define EREMCHG 82 /* Remote address changed */ +#define ELIBACC 83 /* Can't access a needed shared lib */ +#define ELIBBAD 84 /* Accessing a corrupted shared lib */ +#define ELIBSCN 85 /* .lib section in a.out corrupted */ +#define ELIBMAX 86 /* Attempting to link in too many libs */ +#define ELIBEXEC 87 /* Attempting to exec a shared library */ +#define ENOSYS 88 /* Function not implemented */ #define ENMFILE 89 /* No more files */ -#define ENOTEMPTY 90 /* Directory not empty */ -#define ENAMETOOLONG 91 /* File or path name too long */ -#define ELOOP 92 /* Too many symbolic links */ -#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ +#define ENOTEMPTY 90 /* Directory not empty */ +#define ENAMETOOLONG 91 /* File or path name too long */ +#define ELOOP 92 /* Too many symbolic links */ +#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ #define EPFNOSUPPORT 96 /* Protocol family not supported */ #define ECONNRESET 104 /* Connection reset by peer */ -#define ENOBUFS 105 /* No buffer space available */ +#define ENOBUFS 105 /* No buffer space available */ #define EAFNOSUPPORT 106 /* Address family not supported by protocol family */ -#define EPROTOTYPE 107 /* Protocol wrong type for socket */ -#define ENOTSOCK 108 /* Socket operation on non-socket */ -#define ENOPROTOOPT 109 /* Protocol not available */ -#define ESHUTDOWN 110 /* Can't send after socket shutdown */ -#define ECONNREFUSED 111 /* Connection refused */ -#define EADDRINUSE 112 /* Address already in use */ -#define ECONNABORTED 113 /* Connection aborted */ -#define ENETUNREACH 114 /* Network is unreachable */ -#define ENETDOWN 115 /* Network interface is not configured */ -#define ETIMEDOUT 116 /* Connection timed out */ -#define EHOSTDOWN 117 /* Host is down */ -#define EHOSTUNREACH 118 /* Host is unreachable */ -#define EINPROGRESS 119 /* Connection already in progress */ -#define EALREADY 120 /* Socket already connected */ -#define EDESTADDRREQ 121 /* Destination address required */ -#define EMSGSIZE 122 /* Message too long */ -#define EPROTONOSUPPORT 123 /* Unknown protocol */ -#define ESOCKTNOSUPPORT 124 /* Socket type not supported */ -#define EADDRNOTAVAIL 125 /* Address not available */ +#define EPROTOTYPE 107 /* Protocol wrong type for socket */ +#define ENOTSOCK 108 /* Socket operation on non-socket */ +#define ENOPROTOOPT 109 /* Protocol not available */ +#define ESHUTDOWN 110 /* Can't send after socket shutdown */ +#define ECONNREFUSED 111 /* Connection refused */ +#define EADDRINUSE 112 /* Address already in use */ +#define ECONNABORTED 113 /* Connection aborted */ +#define ENETUNREACH 114 /* Network is unreachable */ +#define ENETDOWN 115 /* Network interface is not configured */ +#define ETIMEDOUT 116 /* Connection timed out */ +#define EHOSTDOWN 117 /* Host is down */ +#define EHOSTUNREACH 118 /* Host is unreachable */ +#define EINPROGRESS 119 /* Connection already in progress */ +#define EALREADY 120 /* Socket already connected */ +#define EDESTADDRREQ 121 /* Destination address required */ +#define EMSGSIZE 122 /* Message too long */ +#define EPROTONOSUPPORT 123 /* Unknown protocol */ +#define ESOCKTNOSUPPORT 124 /* Socket type not supported */ +#define EADDRNOTAVAIL 125 /* Address not available */ #define ENETRESET 126 -#define EISCONN 127 /* Socket is already connected */ -#define ENOTCONN 128 /* Socket is not connected */ +#define EISCONN 127 /* Socket is already connected */ +#define ENOTCONN 128 /* Socket is not connected */ #define ETOOMANYREFS 129 #define EPROCLIM 130 #define EUSERS 131 #define EDQUOT 132 #define ESTALE 133 -#define ENOTSUP 134 /* Not supported */ +#define ENOTSUP 134 /* Not supported */ #define ENOMEDIUM 135 /* No medium (in tape drive) */ #define ENOSHARE 136 /* No such host or network path */ #define ECASECLASH 137 /* Filename exists with different case */ /* From cygwin32. */ -#define EWOULDBLOCK EAGAIN /* Operation would block */ +#define EWOULDBLOCK EAGAIN /* Operation would block */ -#define __ELASTERROR 2000 /* Users can add values starting here */ +#define __ELASTERROR 2000 /* Users can add values starting here */ #endif /* _SYS_ERRNO_H */ #endif /* !SIMULATOR */ diff --git a/firmware/include/math.h b/firmware/include/math.h index d4b6715..170c584 100644 --- a/firmware/include/math.h +++ b/firmware/include/math.h @@ -23,25 +23,25 @@ extern "C" { /* Useful constants. */ -#define M_E 2.7182818284590452354 -#define M_LOG2E 1.4426950408889634074 -#define M_LOG10E 0.43429448190325182765 -#define M_LN2 0.69314718055994530942 -#define M_LN10 2.30258509299404568402 -#define M_PI 3.14159265358979323846 +#define M_E 2.7182818284590452354 +#define M_LOG2E 1.4426950408889634074 +#define M_LOG10E 0.43429448190325182765 +#define M_LN2 0.69314718055994530942 +#define M_LN10 2.30258509299404568402 +#define M_PI 3.14159265358979323846 #define M_TWOPI (M_PI * 2.0) -#define M_PI_2 1.57079632679489661923 -#define M_PI_4 0.78539816339744830962 -#define M_3PI_4 2.3561944901923448370E0 +#define M_PI_2 1.57079632679489661923 +#define M_PI_4 0.78539816339744830962 +#define M_3PI_4 2.3561944901923448370E0 #define M_SQRTPI 1.77245385090551602792981 -#define M_1_PI 0.31830988618379067154 -#define M_2_PI 0.63661977236758134308 -#define M_2_SQRTPI 1.12837916709551257390 -#define M_SQRT2 1.41421356237309504880 -#define M_SQRT1_2 0.70710678118654752440 +#define M_1_PI 0.31830988618379067154 +#define M_2_PI 0.63661977236758134308 +#define M_2_SQRTPI 1.12837916709551257390 +#define M_SQRT2 1.41421356237309504880 +#define M_SQRT1_2 0.70710678118654752440 #define M_LN2LO 1.9082149292705877000E-10 #define M_LN2HI 6.9314718036912381649E-1 -#define M_SQRT3 1.73205080756887719000 +#define M_SQRT3 1.73205080756887719000 #define M_IVLN10 0.43429448190325182765 /* 1 / log(10) */ #define M_LOG2_E 0.693147180559945309417 #define M_INVLN2 1.4426950408889633870E0 /* 1 / log(2) */ diff --git a/firmware/include/stdio.h b/firmware/include/stdio.h index 968bd59..c36dff4 100644 --- a/firmware/include/stdio.h +++ b/firmware/include/stdio.h @@ -1,5 +1,5 @@ #ifndef _STDIO_H_ -#define _STDIO_H_ +#define _STDIO_H_ #include <_ansi.h> @@ -10,22 +10,22 @@ #include #ifndef NULL -#define NULL 0 +#define NULL 0 #endif -#define EOF (-1) +#define EOF (-1) #ifndef SEEK_SET -#define SEEK_SET 0 /* set file offset to offset */ +#define SEEK_SET 0 /* set file offset to offset */ #endif #ifndef SEEK_CUR -#define SEEK_CUR 1 /* set file offset to current plus offset */ +#define SEEK_CUR 1 /* set file offset to current plus offset */ #endif #ifndef SEEK_END -#define SEEK_END 2 /* set file offset to EOF plus offset */ +#define SEEK_END 2 /* set file offset to EOF plus offset */ #endif -#define TMP_MAX 26 +#define TMP_MAX 26 #ifdef __GNUC__ #define __VALIST __gnuc_va_list diff --git a/firmware/include/stdlib.h b/firmware/include/stdlib.h index 1f4fb88..fdcf5ee 100644 --- a/firmware/include/stdlib.h +++ b/firmware/include/stdlib.h @@ -23,7 +23,7 @@ extern "C" { #define EXIT_FAILURE 1 #define EXIT_SUCCESS 0 -_VOID _EXFUN(qsort,(_PTR __base, size_t __nmemb, size_t __size, int(*_compar)(const _PTR, const _PTR))); +_VOID _EXFUN(qsort,(_PTR __base, size_t __nmemb, size_t __size, int(*_compar)(const _PTR, const _PTR))); void *malloc(size_t); void *calloc (size_t nmemb, size_t size); diff --git a/firmware/include/string.h b/firmware/include/string.h index 32b86cd..9b9d719 100644 --- a/firmware/include/string.h +++ b/firmware/include/string.h @@ -5,7 +5,7 @@ */ #ifndef _STRING_H_ -#define _STRING_H_ +#define _STRING_H_ #ifdef __cplusplus extern "C" { @@ -20,43 +20,43 @@ extern "C" { #define NULL ((void*)0) #endif -_PTR _EXFUN(memchr,(const _PTR, int, size_t)); -int _EXFUN(memcmp,(const _PTR, const _PTR, size_t)); -_PTR _EXFUN(memcpy,(_PTR, const _PTR, size_t)); -_PTR _EXFUN(memmove,(_PTR, const _PTR, size_t)); -_PTR _EXFUN(memset,(_PTR, int, size_t)); -char *_EXFUN(strcat,(char *, const char *)); -char *_EXFUN(strchr,(const char *, int)); -int _EXFUN(strcmp,(const char *, const char *)); -int _EXFUN(strcoll,(const char *, const char *)); -char *_EXFUN(strcpy,(char *, const char *)); -size_t _EXFUN(strcspn,(const char *, const char *)); -char *_EXFUN(strerror,(int)); -size_t _EXFUN(strlen,(const char *)); -char *_EXFUN(strncat,(char *, const char *, size_t)); -int _EXFUN(strncmp,(const char *, const char *, size_t)); -char *_EXFUN(strncpy,(char *, const char *, size_t)); -char *_EXFUN(strpbrk,(const char *, const char *)); -char *_EXFUN(strrchr,(const char *, int)); -size_t _EXFUN(strspn,(const char *, const char *)); -char *_EXFUN(strstr,(const char *, const char *)); -char *_EXFUN(strcasestr,(const char *, const char *)); +_PTR _EXFUN(memchr,(const _PTR, int, size_t)); +int _EXFUN(memcmp,(const _PTR, const _PTR, size_t)); +_PTR _EXFUN(memcpy,(_PTR, const _PTR, size_t)); +_PTR _EXFUN(memmove,(_PTR, const _PTR, size_t)); +_PTR _EXFUN(memset,(_PTR, int, size_t)); +char *_EXFUN(strcat,(char *, const char *)); +char *_EXFUN(strchr,(const char *, int)); +int _EXFUN(strcmp,(const char *, const char *)); +int _EXFUN(strcoll,(const char *, const char *)); +char *_EXFUN(strcpy,(char *, const char *)); +size_t _EXFUN(strcspn,(const char *, const char *)); +char *_EXFUN(strerror,(int)); +size_t _EXFUN(strlen,(const char *)); +char *_EXFUN(strncat,(char *, const char *, size_t)); +int _EXFUN(strncmp,(const char *, const char *, size_t)); +char *_EXFUN(strncpy,(char *, const char *, size_t)); +char *_EXFUN(strpbrk,(const char *, const char *)); +char *_EXFUN(strrchr,(const char *, int)); +size_t _EXFUN(strspn,(const char *, const char *)); +char *_EXFUN(strstr,(const char *, const char *)); +char *_EXFUN(strcasestr,(const char *, const char *)); #ifndef _REENT_ONLY -char *_EXFUN(strtok,(char *, const char *)); +char *_EXFUN(strtok,(char *, const char *)); #endif -size_t _EXFUN(strxfrm,(char *, const char *, size_t)); +size_t _EXFUN(strxfrm,(char *, const char *, size_t)); #ifndef __STRICT_ANSI__ -char *_EXFUN(strtok_r,(char *, const char *, char **)); +char *_EXFUN(strtok_r,(char *, const char *, char **)); -_PTR _EXFUN(memccpy,(_PTR, const _PTR, int, size_t)); -int _EXFUN(strcasecmp,(const char *, const char *)); -int _EXFUN(strncasecmp,(const char *, const char *, size_t)); +_PTR _EXFUN(memccpy,(_PTR, const _PTR, int, size_t)); +int _EXFUN(strcasecmp,(const char *, const char *)); +int _EXFUN(strncasecmp,(const char *, const char *, size_t)); #ifdef __CYGWIN__ -#ifndef DEFS_H /* Kludge to work around problem compiling in gdb */ +#ifndef DEFS_H /* Kludge to work around problem compiling in gdb */ const char *_EXFUN(strsignal, (int __signo)); #endif int _EXFUN(strtosigno, (const char *__name)); diff --git a/firmware/include/time.h b/firmware/include/time.h index 23f72fd..d0152f4 100644 --- a/firmware/include/time.h +++ b/firmware/include/time.h @@ -9,15 +9,15 @@ struct tm { - int tm_sec; - int tm_min; - int tm_hour; - int tm_mday; - int tm_mon; - int tm_year; - int tm_wday; - int tm_yday; - int tm_isdst; + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; }; #if !defined(_TIME_T_DEFINED) && !defined(_TIME_T_DECLARED) diff --git a/firmware/mp3data.c b/firmware/mp3data.c index f62afda..f32a09b 100644 --- a/firmware/mp3data.c +++ b/firmware/mp3data.c @@ -86,8 +86,8 @@ static const unsigned short freq_table[3][3] = unsigned long bytes2int(unsigned long b0, unsigned long b1, - unsigned long b2, - unsigned long b3) + unsigned long b2, + unsigned long b3) { return (((long)(b0 & 0xFF) << (3*8)) | ((long)(b1 & 0xFF) << (2*8)) | diff --git a/firmware/mpeg.c b/firmware/mpeg.c index 693e2df..fedcf24 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c @@ -2882,7 +2882,7 @@ void audio_init(void) create_thread(mpeg_thread, mpeg_stack, sizeof(mpeg_stack), 0, mpeg_thread_name IF_PRIO(, PRIORITY_SYSTEM) - IF_COP(, CPU)); + IF_COP(, CPU)); memset(trackdata, sizeof(trackdata), 0); diff --git a/firmware/pcm_record.c b/firmware/pcm_record.c index c2d2719..c22e1db 100644 --- a/firmware/pcm_record.c +++ b/firmware/pcm_record.c @@ -366,7 +366,7 @@ void pcm_rec_init(void) pcmrec_thread_p = create_thread(pcmrec_thread, pcmrec_stack, sizeof(pcmrec_stack), 0, pcmrec_thread_name IF_PRIO(, PRIORITY_RECORDING) - IF_COP(, CPU)); + IF_COP(, CPU)); } /* pcm_rec_init */ /** audio_* group **/ diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index 4d5cf54..c400dd5 100644 --- a/firmware/powermgmt.c +++ b/firmware/powermgmt.c @@ -1134,7 +1134,7 @@ void powermgmt_init(void) memset(power_history, 0x00, sizeof(power_history)); create_thread(power_thread, power_stack, sizeof(power_stack), 0, power_thread_name IF_PRIO(, PRIORITY_SYSTEM) - IF_COP(, CPU)); + IF_COP(, CPU)); } #endif /* SIMULATOR */ diff --git a/firmware/target/arm/imx31/gigabeat-s/avic-imx31.c b/firmware/target/arm/imx31/gigabeat-s/avic-imx31.c index 8236a38..d78c944 100644 --- a/firmware/target/arm/imx31/gigabeat-s/avic-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/avic-imx31.c @@ -24,200 +24,200 @@ void avic_init(void) { - /*following the steps in the AVIC setup in imx31 man*/ - - /*Initialize interrupt structures*/ - int i,avicstart; - /*get start of avic_init section for address calculation*/ - __asm__ ("ldr %0,=_avicstart\n\t" - :"=r"(avicstart):); + /*following the steps in the AVIC setup in imx31 man*/ + + /*Initialize interrupt structures*/ + int i,avicstart; + /*get start of avic_init section for address calculation*/ + __asm__ ("ldr %0,=_avicstart\n\t" + :"=r"(avicstart):); - for(i=0; i < 64;i++) - { - imx31_int[i].name = (char *)&imx31_int_names[i]; - imx31_int[i].int_type=IRQ; - /*integer i MUST be multiplied by 8 b/c gnu as - generates 2 instructions for each vector instruction - in vector_init(). Hence the value of 8 byte intervals - between each vector start address*/ - imx31_int[i].addr=(avicstart+(i*8)); - imx31_int[i].priority=0; - imx31_int[i].pInt_Handler=Unhandled_Int; - } - - /*enable all Interrupts*/ - avic_enable_int(ALL,IRQ,0); - - /*Setup all interrupt type IRQ*/ - avic_set_int_type(ALL,IRQ); - - /*Set NM bit to enable VIC*/ - INTCNTL |= (1 << 18); + for(i=0; i < 64;i++) + { + imx31_int[i].name = (char *)&imx31_int_names[i]; + imx31_int[i].int_type=IRQ; + /*integer i MUST be multiplied by 8 b/c gnu as + generates 2 instructions for each vector instruction + in vector_init(). Hence the value of 8 byte intervals + between each vector start address*/ + imx31_int[i].addr=(avicstart+(i*8)); + imx31_int[i].priority=0; + imx31_int[i].pInt_Handler=Unhandled_Int; + } + + /*enable all Interrupts*/ + avic_enable_int(ALL,IRQ,0); + + /*Setup all interrupt type IRQ*/ + avic_set_int_type(ALL,IRQ); + + /*Set NM bit to enable VIC*/ + INTCNTL |= (1 << 18); - /*Setup Registers Vector0-Vector63 for interrupt handler functions*/ - for(i=0; i < 64;i++) - writel(imx31_int[i].addr,(VECTOR_BASE_ADDR+(i*8))); - - /*disable FIQ for now until the interrupt handlers are more mature...*/ - disable_fiq(); - /*enable_fiq();*/ - - /*enable IRQ in imx31 INTCNTL reg*/ - INTCNTL &= ~(NIDIS); - /*disable FIQ in imx31 INTCNTL reg*/ - INTCNTL |= FIDIS; + /*Setup Registers Vector0-Vector63 for interrupt handler functions*/ + for(i=0; i < 64;i++) + writel(imx31_int[i].addr,(VECTOR_BASE_ADDR+(i*8))); + + /*disable FIQ for now until the interrupt handlers are more mature...*/ + disable_fiq(); + /*enable_fiq();*/ + + /*enable IRQ in imx31 INTCNTL reg*/ + INTCNTL &= ~(NIDIS); + /*disable FIQ in imx31 INTCNTL reg*/ + INTCNTL |= FIDIS; - /*enable IRQ in ARM11 core, enable VE bit in CP15 Control reg to enable VIC*/ - __asm__ ("mrs r0,cpsr\t\n" - "bic r0,r0,#0x80\t\n" - "msr cpsr,r0\t\n" - "mrc p15,0,r0,c1,c0,0\n\t" - "orr r0,r0,#0x1000000\n\t" - "mcr p15,0,r0,c1,c0,0\n\t"::: - "r0"); + /*enable IRQ in ARM11 core, enable VE bit in CP15 Control reg to enable VIC*/ + __asm__ ("mrs r0,cpsr\t\n" + "bic r0,r0,#0x80\t\n" + "msr cpsr,r0\t\n" + "mrc p15,0,r0,c1,c0,0\n\t" + "orr r0,r0,#0x1000000\n\t" + "mcr p15,0,r0,c1,c0,0\n\t"::: + "r0"); } void avic_enable_int(enum IMX31_INT_LIST ints, enum INT_TYPE intstype, - void (*pInt_Handler) (void)) -{ - int i; + void (*pInt_Handler) (void)) +{ + int i; - if(ints == ALL) - { - avic_set_int_type(ALL,intstype); - for(i=0;i<64;i++) - INTENNUM= (long)i; - if(!(*pInt_Handler)) - pInt_Handler=Unhandled_Int; - return; - } + if(ints == ALL) + { + avic_set_int_type(ALL,intstype); + for(i=0;i<64;i++) + INTENNUM= (long)i; + if(!(*pInt_Handler)) + pInt_Handler=Unhandled_Int; + return; + } - imx31_int[ints].int_type=intstype; - imx31_int[ints].pInt_Handler=pInt_Handler; - avic_set_int_type(ints,intstype); - INTENNUM=(long)ints; + imx31_int[ints].int_type=intstype; + imx31_int[ints].pInt_Handler=pInt_Handler; + avic_set_int_type(ints,intstype); + INTENNUM=(long)ints; } void avic_disable_int(enum IMX31_INT_LIST ints) { - int i; + int i; - if(ints == ALL) - { - for(i=0;i<64;i++) - INTDISNUM=(long)i; - imx31_int[ints].pInt_Handler=Unhandled_Int; - return; - } - - INTDISNUM=(long)ints; + if(ints == ALL) + { + for(i=0;i<64;i++) + INTDISNUM=(long)i; + imx31_int[ints].pInt_Handler=Unhandled_Int; + return; + } + + INTDISNUM=(long)ints; } void avic_set_int_type(enum IMX31_INT_LIST ints, enum INT_TYPE intstype) { - int i; - if(ints == ALL) - { - imx31_int[ints].int_type=intstype; - for(i=0;i<64;i++) - { - if(intstype > CCM_DVFS) - INTTYPEH=(long)(intstype-32); - else INTTYPEL=(long)intstype; - } - return; - } - - imx31_int[ints].int_type=intstype; - if(intstype > CCM_DVFS) - INTTYPEH=(long)(intstype-32); - else INTTYPEL=(long)intstype; + int i; + if(ints == ALL) + { + imx31_int[ints].int_type=intstype; + for(i=0;i<64;i++) + { + if(intstype > CCM_DVFS) + INTTYPEH=(long)(intstype-32); + else INTTYPEL=(long)intstype; + } + return; + } + + imx31_int[ints].int_type=intstype; + if(intstype > CCM_DVFS) + INTTYPEH=(long)(intstype-32); + else INTTYPEL=(long)intstype; } void Unhandled_Int(void) { - enum IMX31_INT_LIST ints = 0; - DEBUGF("Unhandled Interrupt:\n"); - DEBUGF("Name : %s\n",imx31_int[ints].name); - DEBUGF("Interrupt Type : "); - if(imx31_int[ints].int_type==IRQ) - DEBUGF("IRQ\n"); - else DEBUGF("FIQ\n"); - DEBUGF("Handler Address : 0x%x\n",imx31_int[ints].addr); - DEBUGF("Priority : %d",imx31_int[ints].priority); + enum IMX31_INT_LIST ints = 0; + DEBUGF("Unhandled Interrupt:\n"); + DEBUGF("Name : %s\n",imx31_int[ints].name); + DEBUGF("Interrupt Type : "); + if(imx31_int[ints].int_type==IRQ) + DEBUGF("IRQ\n"); + else DEBUGF("FIQ\n"); + DEBUGF("Handler Address : 0x%x\n",imx31_int[ints].addr); + DEBUGF("Priority : %d",imx31_int[ints].priority); } void vector_init(void) { - - /*64 branch instructions, one for every vector in avic - A better idea would to calculate the shellcode for each of these - instructions...*/ - - - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED0].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED1].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED2].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[I2C3].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[I2C2].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[MPEG4_ENCODER].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RTIC].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[FIR].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[MMC_SDHC2].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[MMC_SDHC1].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[I2C1].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SSI2].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SSI1].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[CSPI2].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[CSPI1].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[ATA].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[MBX].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[CSPI3].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[UART3].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[IIM].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SIM1].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SIM2].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RNGA].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EVTMON].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[KPP].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RTC].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[PWN].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EPIT2].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EPIT1].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[GPT].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[PWR_FAIL].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[CCM_DVFS].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[UART2].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[NANDFC].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SDMA].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[USB_HOST1].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[USB_HOST2].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[USB_OTG].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED3].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[MSHC1].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[MSHC2].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[IPU_ERR].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[IPU].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED4].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED5].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[UART1].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[UART4].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[UART5].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[ETC_IRQ].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SCC_SCM].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SCC_SMN].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[GPIO2].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[GPIO1].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[CCM_CLK].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[PCMCIA].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[WDOG].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[GPIO3].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED6].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EXT_PWMG].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EXT_TEMP].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EXT_SENS1].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EXT_SENS2].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EXT_WDOG].pInt_Handler)); - __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EXT_TV].pInt_Handler)); + + /*64 branch instructions, one for every vector in avic + A better idea would to calculate the shellcode for each of these + instructions...*/ + + + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED0].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED1].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED2].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[I2C3].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[I2C2].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[MPEG4_ENCODER].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RTIC].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[FIR].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[MMC_SDHC2].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[MMC_SDHC1].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[I2C1].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SSI2].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SSI1].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[CSPI2].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[CSPI1].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[ATA].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[MBX].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[CSPI3].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[UART3].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[IIM].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SIM1].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SIM2].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RNGA].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EVTMON].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[KPP].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RTC].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[PWN].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EPIT2].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EPIT1].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[GPT].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[PWR_FAIL].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[CCM_DVFS].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[UART2].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[NANDFC].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SDMA].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[USB_HOST1].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[USB_HOST2].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[USB_OTG].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED3].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[MSHC1].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[MSHC2].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[IPU_ERR].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[IPU].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED4].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED5].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[UART1].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[UART4].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[UART5].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[ETC_IRQ].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SCC_SCM].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[SCC_SMN].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[GPIO2].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[GPIO1].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[CCM_CLK].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[PCMCIA].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[WDOG].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[GPIO3].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[RESERVED6].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EXT_PWMG].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EXT_TEMP].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EXT_SENS1].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EXT_SENS2].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EXT_WDOG].pInt_Handler)); + __asm__("ldr pc, %0\n\t"::"g"(imx31_int[EXT_TV].pInt_Handler)); } diff --git a/firmware/target/arm/imx31/gigabeat-s/avic-imx31.h b/firmware/target/arm/imx31/gigabeat-s/avic-imx31.h index 53a37b3..14d6677 100644 --- a/firmware/target/arm/imx31/gigabeat-s/avic-imx31.h +++ b/firmware/target/arm/imx31/gigabeat-s/avic-imx31.h @@ -23,7 +23,7 @@ enum INT_TYPE {IRQ=0,FIQ}; struct int_names { - char name[16]; + char name[16]; }; static const struct int_names imx31_int_names[64] = @@ -108,16 +108,16 @@ enum IMX31_INT_LIST { EXT_WDOG,EXT_TV,ALL }; static struct avic_int { - char * name; - enum INT_TYPE int_type; - unsigned int addr; - unsigned int priority; - void (*pInt_Handler) (void); + char * name; + enum INT_TYPE int_type; + unsigned int addr; + unsigned int priority; + void (*pInt_Handler) (void); } imx31_int[64]; void avic_init(void); void avic_enable_int(enum IMX31_INT_LIST ints, enum INT_TYPE intstype, - void (*pInt_Handler) (void)); + void (*pInt_Handler) (void)); void avic_disable_int(enum IMX31_INT_LIST ints) ; void avic_set_int_type(enum IMX31_INT_LIST ints, enum INT_TYPE intstype); void Unhandled_Int(void); diff --git a/firmware/target/arm/imx31/gigabeat-s/kernel-imx31.c b/firmware/target/arm/imx31/gigabeat-s/kernel-imx31.c index 9df90a2..d87731d 100644 --- a/firmware/target/arm/imx31/gigabeat-s/kernel-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/kernel-imx31.c @@ -7,7 +7,7 @@ extern void (*tick_funcs[MAX_NUM_TICK_TASKS])(void); void timer4(void) { - int i; + int i; /* Run through the list of tick tasks */ for(i = 0; i < MAX_NUM_TICK_TASKS; i++) { diff --git a/firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c b/firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c index c9cce6d..85d9844 100644 --- a/firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c @@ -57,7 +57,7 @@ void lcd_init_device(void) but we don't want what's shown on the LCD to change until we do an lcd_update(), so copy the data from the old framebuffer to the new one */ unsigned short *buf = (unsigned short*)FRAME1; - + memcpy(FRAME1, (short *)((LCDSADDR1)<<1), 320*240*2); /* The Rockbox bootloader is transitioning from RGB555I to RGB565 mode diff --git a/firmware/target/arm/imx31/gigabeat-s/mmu-imx31.c b/firmware/target/arm/imx31/gigabeat-s/mmu-imx31.c index ee86ccc..ecb8684 100644 --- a/firmware/target/arm/imx31/gigabeat-s/mmu-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/mmu-imx31.c @@ -43,10 +43,10 @@ void set_ttb() { void set_page_tables() { map_section(0, 0, 0x1000, CACHE_NONE); /* map every memory region to itself */ - /*This pa *might* change*/ + /*This pa *might* change*/ map_section(0x80000000, 0, 64, CACHE_ALL); /* map RAM to 0 and enable caching for it */ map_section((int)FRAME1, (int)FRAME1, 1, BUFFERED); /* enable buffered writing for the framebuffer */ - map_section((int)FRAME2, (int)FRAME2, 1, BUFFERED); + map_section((int)FRAME2, (int)FRAME2, 1, BUFFERED); } void map_section(unsigned int pa, unsigned int va, int mb, int cache_flags) { diff --git a/firmware/target/arm/imx31/gigabeat-s/system-imx31.c b/firmware/target/arm/imx31/gigabeat-s/system-imx31.c index 544ae3a..2259f59 100644 --- a/firmware/target/arm/imx31/gigabeat-s/system-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/system-imx31.c @@ -38,48 +38,48 @@ void system_init(void) inline void dumpregs(void) { - asm volatile ("mov %0,r0\n\t" - "mov %1,r1\n\t" - "mov %2,r2\n\t" - "mov %3,r3": - "=r"(regs.r0),"=r"(regs.r1), - "=r"(regs.r2),"=r"(regs.r3):); + asm volatile ("mov %0,r0\n\t" + "mov %1,r1\n\t" + "mov %2,r2\n\t" + "mov %3,r3": + "=r"(regs.r0),"=r"(regs.r1), + "=r"(regs.r2),"=r"(regs.r3):); asm volatile ("mov %0,r4\n\t" - "mov %1,r5\n\t" - "mov %2,r6\n\t" - "mov %3,r7": - "=r"(regs.r4),"=r"(regs.r5), - "=r"(regs.r6),"=r"(regs.r7):); + "mov %1,r5\n\t" + "mov %2,r6\n\t" + "mov %3,r7": + "=r"(regs.r4),"=r"(regs.r5), + "=r"(regs.r6),"=r"(regs.r7):); asm volatile ("mov %0,r8\n\t" - "mov %1,r9\n\t" - "mov %2,r10\n\t" - "mov %3,r12": - "=r"(regs.r8),"=r"(regs.r9), - "=r"(regs.r10),"=r"(regs.r11):); + "mov %1,r9\n\t" + "mov %2,r10\n\t" + "mov %3,r12": + "=r"(regs.r8),"=r"(regs.r9), + "=r"(regs.r10),"=r"(regs.r11):); - asm volatile ("mov %0,r12\n\t" - "mov %1,sp\n\t" - "mov %2,lr\n\t" - "mov %3,pc\n" - "sub %3,%3,#8": - "=r"(regs.r12),"=r"(regs.sp), - "=r"(regs.lr),"=r"(regs.pc):); + asm volatile ("mov %0,r12\n\t" + "mov %1,sp\n\t" + "mov %2,lr\n\t" + "mov %3,pc\n" + "sub %3,%3,#8": + "=r"(regs.r12),"=r"(regs.sp), + "=r"(regs.lr),"=r"(regs.pc):); #ifdef HAVE_SERIAL dprintf("Register Dump :\n"); - dprintf("R0=0x%x\tR1=0x%x\tR2=0x%x\tR3=0x%x\n",regs.r0,regs.r1,regs.r2,regs.r3); + dprintf("R0=0x%x\tR1=0x%x\tR2=0x%x\tR3=0x%x\n",regs.r0,regs.r1,regs.r2,regs.r3); dprintf("R4=0x%x\tR5=0x%x\tR6=0x%x\tR7=0x%x\n",regs.r4,regs.r5,regs.r6,regs.r7); - dprintf("R8=0x%x\tR9=0x%x\tR10=0x%x\tR11=0x%x\n",regs.r8,regs.r9,regs.r10,regs.r11); - dprintf("R12=0x%x\tSP=0x%x\tLR=0x%x\tPC=0x%x\n",regs.r12,regs.sp,regs.lr,regs.pc); - //dprintf("CPSR=0x%x\t\n",regs.cpsr); + dprintf("R8=0x%x\tR9=0x%x\tR10=0x%x\tR11=0x%x\n",regs.r8,regs.r9,regs.r10,regs.r11); + dprintf("R12=0x%x\tSP=0x%x\tLR=0x%x\tPC=0x%x\n",regs.r12,regs.sp,regs.lr,regs.pc); + //dprintf("CPSR=0x%x\t\n",regs.cpsr); #endif - DEBUGF("Register Dump :\n"); - DEBUGF("R0=0x%x\tR1=0x%x\tR2=0x%x\tR3=0x%x\n",regs.r0,regs.r1,regs.r2,regs.r3); + DEBUGF("Register Dump :\n"); + DEBUGF("R0=0x%x\tR1=0x%x\tR2=0x%x\tR3=0x%x\n",regs.r0,regs.r1,regs.r2,regs.r3); DEBUGF("R4=0x%x\tR5=0x%x\tR6=0x%x\tR7=0x%x\n",regs.r4,regs.r5,regs.r6,regs.r7); - DEBUGF("R8=0x%x\tR9=0x%x\tR10=0x%x\tR11=0x%x\n",regs.r8,regs.r9,regs.r10,regs.r11); - DEBUGF("R12=0x%x\tSP=0x%x\tLR=0x%x\tPC=0x%x\n",regs.r12,regs.sp,regs.lr,regs.pc); - //DEBUGF("CPSR=0x%x\t\n",regs.cpsr); + DEBUGF("R8=0x%x\tR9=0x%x\tR10=0x%x\tR11=0x%x\n",regs.r8,regs.r9,regs.r10,regs.r11); + DEBUGF("R12=0x%x\tSP=0x%x\tLR=0x%x\tPC=0x%x\n",regs.r12,regs.sp,regs.lr,regs.pc); + //DEBUGF("CPSR=0x%x\t\n",regs.cpsr); } diff --git a/firmware/target/arm/imx31/gigabeat-s/system-target.h b/firmware/target/arm/imx31/gigabeat-s/system-target.h index b1803d0..9ca91f7 100644 --- a/firmware/target/arm/imx31/gigabeat-s/system-target.h +++ b/firmware/target/arm/imx31/gigabeat-s/system-target.h @@ -37,23 +37,23 @@ static inline void invalidate_icache(void) } struct ARM_REGS { - int r0; - int r1; - int r2; - int r3; - int r4; - int r5; - int r6; - int r7; - int r8; - int r9; - int r10; - int r11; - int r12; - int sp; - int lr; - int pc; - int cpsr; + int r0; + int r1; + int r2; + int r3; + int r4; + int r5; + int r6; + int r7; + int r8; + int r9; + int r10; + int r11; + int r12; + int sp; + int lr; + int pc; + int cpsr; } regs; inline void dumpregs(void); diff --git a/firmware/target/arm/iriver/h10/lcd-h10_20gb.c b/firmware/target/arm/iriver/h10/lcd-h10_20gb.c index 2c527fa..0da3af6 100644 --- a/firmware/target/arm/iriver/h10/lcd-h10_20gb.c +++ b/firmware/target/arm/iriver/h10/lcd-h10_20gb.c @@ -128,7 +128,7 @@ void lcd_set_contrast(int val) lcd_contrast = val << 8; if (!power_on) - return; + return; /* VCOMG=1, VDV4-0=xxxxx, VCM4-0=11000 */ lcd_write_reg(R_POWER_CONTROL5, 0x2018 | lcd_contrast); diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/ata-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/ata-meg-fx.c index 1f5c5c8..e383565 100644 --- a/firmware/target/arm/s3c2440/gigabeat-fx/ata-meg-fx.c +++ b/firmware/target/arm/s3c2440/gigabeat-fx/ata-meg-fx.c @@ -111,8 +111,8 @@ void copy_read_sectors(unsigned char* buf, int wordcount) DISRCC0 = 0x1; /* Dest mapped to physical address, on AHB bus, increment */ DIDST0 = (int) buf; - if(DIDST0 < 0x30000000) - DIDST0 += 0x30000000; + if(DIDST0 < 0x30000000) + DIDST0 += 0x30000000; DIDSTC0 = 0; /* DACK/DREQ Sync to AHB, Whole service, No reload, 16-bit transfers */ diff --git a/firmware/target/arm/tms320dm320/mrobe-500/ata-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/ata-mr500.c index 47a8c61..293d6c7 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/ata-mr500.c +++ b/firmware/target/arm/tms320dm320/mrobe-500/ata-mr500.c @@ -108,8 +108,8 @@ void copy_read_sectors(unsigned char* buf, int wordcount) DISRCC0 = 0x1; /* Dest mapped to physical address, on AHB bus, increment */ DIDST0 = (int) buf; - if(DIDST0 < 0x30000000) - DIDST0 += 0x30000000; + if(DIDST0 < 0x30000000) + DIDST0 += 0x30000000; DIDSTC0 = 0; /* DACK/DREQ Sync to AHB, Whole service, No reload, 16-bit transfers */ diff --git a/firmware/test/i2c/gendata.c b/firmware/test/i2c/gendata.c index 03bb002..dc5989e 100644 --- a/firmware/test/i2c/gendata.c +++ b/firmware/test/i2c/gendata.c @@ -10,22 +10,22 @@ int main(int argc, char *argv[]) if(f) { - if(fread(buf, 1, 128000, f) < 128000) - { - fprintf(stderr, "FAN!\n"); - exit(1); - } + if(fread(buf, 1, 128000, f) < 128000) + { + fprintf(stderr, "FAN!\n"); + exit(1); + } - printf("int mp3datalen = 128000;\n"); - printf("unsigned char mp3data[128000] =\n{"); - for(i = 0;i < 128000;i++) - { - if(i % 8 == 0) - { - printf("\n"); - } - printf("0x%02x, ", buf[i]); - } - printf("};\n"); + printf("int mp3datalen = 128000;\n"); + printf("unsigned char mp3data[128000] =\n{"); + for(i = 0;i < 128000;i++) + { + if(i % 8 == 0) + { + printf("\n"); + } + printf("0x%02x, ", buf[i]); + } + printf("};\n"); } } diff --git a/firmware/usb.c b/firmware/usb.c index f4b92f0..28b85a3 100644 --- a/firmware/usb.c +++ b/firmware/usb.c @@ -309,7 +309,7 @@ void usb_init(void) create_thread(usb_thread, usb_stack, sizeof(usb_stack), 0, usb_thread_name IF_PRIO(, PRIORITY_SYSTEM) - IF_COP(, CPU)); + IF_COP(, CPU)); tick_add_task(usb_tick); #endif diff --git a/flash/bootloader/bootloader.h b/flash/bootloader/bootloader.h index fc6bcb1..4826042 100644 --- a/flash/bootloader/bootloader.h +++ b/flash/bootloader/bootloader.h @@ -18,13 +18,13 @@ typedef int(*tpMain)(void); // type for start vector to main() // structure of an image in the flash typedef struct { - UINT32* pDestination; // address to copy it to - UINT32 size; // how many bytes of payload (to the next header) - tpFunc pExecute; // entry point - UINT32 flags; // uncompressed or compressed - // end of header, now comes the payload - UINT32 image[]; // the binary image starts here - // after the payload, the next header may follow, all 0xFF if none + UINT32* pDestination; // address to copy it to + UINT32 size; // how many bytes of payload (to the next header) + tpFunc pExecute; // entry point + UINT32 flags; // uncompressed or compressed + // end of header, now comes the payload + UINT32 image[]; // the binary image starts here + // after the payload, the next header may follow, all 0xFF if none } tImage; // flags valid for image header diff --git a/flash/extract/extract.c b/flash/extract/extract.c index 2a8a7b3..c4e6fa7 100644 --- a/flash/extract/extract.c +++ b/flash/extract/extract.c @@ -28,118 +28,118 @@ #define UINT32 unsigned long #define IMAGE_HEADER 0x6000 // a 32 byte header in front of the software image -#define IMAGE_START 0x6020 // software image position in Flash +#define IMAGE_START 0x6020 // software image position in Flash // place a 32 bit value into memory, big endian void Write32(UINT8* pByte, UINT32 value) { - pByte[0] = (UINT8)(value >> 24); - pByte[1] = (UINT8)(value >> 16); - pByte[2] = (UINT8)(value >> 8); - pByte[3] = (UINT8)(value); + pByte[0] = (UINT8)(value >> 24); + pByte[1] = (UINT8)(value >> 16); + pByte[2] = (UINT8)(value >> 8); + pByte[3] = (UINT8)(value); } // read a 32 bit value from memory, big endian UINT32 Read32(UINT8* pByte) { - UINT32 value = 0; + UINT32 value = 0; - value |= (UINT32)pByte[0] << 24; - value |= (UINT32)pByte[1] << 16; - value |= (UINT32)pByte[2] << 8; - value |= (UINT32)pByte[3]; + value |= (UINT32)pByte[0] << 24; + value |= (UINT32)pByte[1] << 16; + value |= (UINT32)pByte[2] << 8; + value |= (UINT32)pByte[3]; - return value; + return value; } // entry point int main(int argc, char* argv[]) { - FILE* pInFile; - FILE* pOutFile; - UINT8 aHeader[6]; - UINT8 aImage[256*1024]; - UINT32 i; - UINT32 uiSize, uiStart; - UINT16 usChecksum = 0; - - if (argc < 2) - { - printf("Extract the software image out of an original Archos Flash ROM dump.\n"); - printf("Result is a scrambled file, use the descramble tool to get the binary,\n"); - printf(" always without the -fm option, even if processing an FM software.\n\n"); - printf("Usage: extract \n"); - printf("Example: extract internal_rom_2000000-203FFFF.bin archos.ajz\n"); - exit(0); - } - - pInFile = fopen(argv[1], "rb"); - if (pInFile == NULL) - { - printf("Error opening input file %s\n", argv[1]); - exit(1); - } - - if (fread(aImage, 1, sizeof(aImage), pInFile) != sizeof(aImage)) - { - printf("Error reading input file %s, must be 256kB in size.\n", argv[1]); - fclose(pInFile); - exit(2); - } - fclose(pInFile); - - // find out about the type - uiStart = Read32(aImage + 8); - uiSize = Read32(aImage + 12); // booted ROM image - if (uiStart == 0x02000100 && uiSize > 20000) - { // Player has no loader, starts directly with the image - uiStart = 0x0100; - } - else - { // Recorder / FM / V2 Recorder - uiStart = IMAGE_START; - uiSize = Read32(aImage + IMAGE_HEADER + 4); // size record of header - } - - // sanity check - if (uiSize > sizeof(aImage) - uiStart || uiSize < 40000) - { - printf("Error: Impossible image size &d bytes.\n", uiSize); - exit(3); - } - - // generate checksum - for (i=0; i> 1) | ((byte << 7) & 0x80)); /* poor man's ROR */ - usChecksum += byte; - } - - // make header - Write32(aHeader + 2, usChecksum); // checksum in 5th and 6th byte - Write32(aHeader, uiSize); // size in first 4 bytes - - pOutFile = fopen(argv[2], "wb"); - if (pOutFile == NULL) - { - printf("Error opening output file %s\n", argv[2]); - exit(4); - } - - if (fwrite(aHeader, 1, sizeof(aHeader), pOutFile) != sizeof(aHeader) - || fwrite(aImage + uiStart, 1, uiSize, pOutFile) != uiSize) - { - printf("Write error\n"); - fclose(pOutFile); - exit(5); - } - - fclose(pOutFile); - - return 0; + FILE* pInFile; + FILE* pOutFile; + UINT8 aHeader[6]; + UINT8 aImage[256*1024]; + UINT32 i; + UINT32 uiSize, uiStart; + UINT16 usChecksum = 0; + + if (argc < 2) + { + printf("Extract the software image out of an original Archos Flash ROM dump.\n"); + printf("Result is a scrambled file, use the descramble tool to get the binary,\n"); + printf(" always without the -fm option, even if processing an FM software.\n\n"); + printf("Usage: extract \n"); + printf("Example: extract internal_rom_2000000-203FFFF.bin archos.ajz\n"); + exit(0); + } + + pInFile = fopen(argv[1], "rb"); + if (pInFile == NULL) + { + printf("Error opening input file %s\n", argv[1]); + exit(1); + } + + if (fread(aImage, 1, sizeof(aImage), pInFile) != sizeof(aImage)) + { + printf("Error reading input file %s, must be 256kB in size.\n", argv[1]); + fclose(pInFile); + exit(2); + } + fclose(pInFile); + + // find out about the type + uiStart = Read32(aImage + 8); + uiSize = Read32(aImage + 12); // booted ROM image + if (uiStart == 0x02000100 && uiSize > 20000) + { // Player has no loader, starts directly with the image + uiStart = 0x0100; + } + else + { // Recorder / FM / V2 Recorder + uiStart = IMAGE_START; + uiSize = Read32(aImage + IMAGE_HEADER + 4); // size record of header + } + + // sanity check + if (uiSize > sizeof(aImage) - uiStart || uiSize < 40000) + { + printf("Error: Impossible image size &d bytes.\n", uiSize); + exit(3); + } + + // generate checksum + for (i=0; i> 1) | ((byte << 7) & 0x80)); /* poor man's ROR */ + usChecksum += byte; + } + + // make header + Write32(aHeader + 2, usChecksum); // checksum in 5th and 6th byte + Write32(aHeader, uiSize); // size in first 4 bytes + + pOutFile = fopen(argv[2], "wb"); + if (pOutFile == NULL) + { + printf("Error opening output file %s\n", argv[2]); + exit(4); + } + + if (fwrite(aHeader, 1, sizeof(aHeader), pOutFile) != sizeof(aHeader) + || fwrite(aImage + uiStart, 1, uiSize, pOutFile) != uiSize) + { + printf("Write error\n"); + fclose(pOutFile); + exit(5); + } + + fclose(pOutFile); + + return 0; } \ No newline at end of file diff --git a/flash/make_firmware/make_firmware.c b/flash/make_firmware/make_firmware.c index 05cb332..1dd7902 100644 --- a/flash/make_firmware/make_firmware.c +++ b/flash/make_firmware/make_firmware.c @@ -46,312 +46,312 @@ // place a 32 bit value into memory, big endian void Write32(UINT8* pByte, UINT32 value) { - pByte[0] = (UINT8)(value >> 24); - pByte[1] = (UINT8)(value >> 16); - pByte[2] = (UINT8)(value >> 8); - pByte[3] = (UINT8)(value); + pByte[0] = (UINT8)(value >> 24); + pByte[1] = (UINT8)(value >> 16); + pByte[2] = (UINT8)(value >> 8); + pByte[3] = (UINT8)(value); } // read a 32 bit value from memory, big endian UINT32 Read32(UINT8* pByte) { - UINT32 value = 0; + UINT32 value = 0; - value |= (UINT32)pByte[0] << 24; - value |= (UINT32)pByte[1] << 16; - value |= (UINT32)pByte[2] << 8; - value |= (UINT32)pByte[3]; + value |= (UINT32)pByte[0] << 24; + value |= (UINT32)pByte[1] << 16; + value |= (UINT32)pByte[2] << 8; + value |= (UINT32)pByte[3]; - return value; + return value; } UINT32 CalcCRC32 (const UINT8* buf, UINT32 len) { - static const UINT32 crc_table[256] = - { // CRC32 lookup table for polynomial 0x04C11DB7 - 0x00000000, 0x04C11DB7, 0x09823B6E, 0x0D4326D9, 0x130476DC, 0x17C56B6B, - 0x1A864DB2, 0x1E475005, 0x2608EDB8, 0x22C9F00F, 0x2F8AD6D6, 0x2B4BCB61, - 0x350C9B64, 0x31CD86D3, 0x3C8EA00A, 0x384FBDBD, 0x4C11DB70, 0x48D0C6C7, - 0x4593E01E, 0x4152FDA9, 0x5F15ADAC, 0x5BD4B01B, 0x569796C2, 0x52568B75, - 0x6A1936C8, 0x6ED82B7F, 0x639B0DA6, 0x675A1011, 0x791D4014, 0x7DDC5DA3, - 0x709F7B7A, 0x745E66CD, 0x9823B6E0, 0x9CE2AB57, 0x91A18D8E, 0x95609039, - 0x8B27C03C, 0x8FE6DD8B, 0x82A5FB52, 0x8664E6E5, 0xBE2B5B58, 0xBAEA46EF, - 0xB7A96036, 0xB3687D81, 0xAD2F2D84, 0xA9EE3033, 0xA4AD16EA, 0xA06C0B5D, - 0xD4326D90, 0xD0F37027, 0xDDB056FE, 0xD9714B49, 0xC7361B4C, 0xC3F706FB, - 0xCEB42022, 0xCA753D95, 0xF23A8028, 0xF6FB9D9F, 0xFBB8BB46, 0xFF79A6F1, - 0xE13EF6F4, 0xE5FFEB43, 0xE8BCCD9A, 0xEC7DD02D, 0x34867077, 0x30476DC0, - 0x3D044B19, 0x39C556AE, 0x278206AB, 0x23431B1C, 0x2E003DC5, 0x2AC12072, - 0x128E9DCF, 0x164F8078, 0x1B0CA6A1, 0x1FCDBB16, 0x018AEB13, 0x054BF6A4, - 0x0808D07D, 0x0CC9CDCA, 0x7897AB07, 0x7C56B6B0, 0x71159069, 0x75D48DDE, - 0x6B93DDDB, 0x6F52C06C, 0x6211E6B5, 0x66D0FB02, 0x5E9F46BF, 0x5A5E5B08, - 0x571D7DD1, 0x53DC6066, 0x4D9B3063, 0x495A2DD4, 0x44190B0D, 0x40D816BA, - 0xACA5C697, 0xA864DB20, 0xA527FDF9, 0xA1E6E04E, 0xBFA1B04B, 0xBB60ADFC, - 0xB6238B25, 0xB2E29692, 0x8AAD2B2F, 0x8E6C3698, 0x832F1041, 0x87EE0DF6, - 0x99A95DF3, 0x9D684044, 0x902B669D, 0x94EA7B2A, 0xE0B41DE7, 0xE4750050, - 0xE9362689, 0xEDF73B3E, 0xF3B06B3B, 0xF771768C, 0xFA325055, 0xFEF34DE2, - 0xC6BCF05F, 0xC27DEDE8, 0xCF3ECB31, 0xCBFFD686, 0xD5B88683, 0xD1799B34, - 0xDC3ABDED, 0xD8FBA05A, 0x690CE0EE, 0x6DCDFD59, 0x608EDB80, 0x644FC637, - 0x7A089632, 0x7EC98B85, 0x738AAD5C, 0x774BB0EB, 0x4F040D56, 0x4BC510E1, - 0x46863638, 0x42472B8F, 0x5C007B8A, 0x58C1663D, 0x558240E4, 0x51435D53, - 0x251D3B9E, 0x21DC2629, 0x2C9F00F0, 0x285E1D47, 0x36194D42, 0x32D850F5, - 0x3F9B762C, 0x3B5A6B9B, 0x0315D626, 0x07D4CB91, 0x0A97ED48, 0x0E56F0FF, - 0x1011A0FA, 0x14D0BD4D, 0x19939B94, 0x1D528623, 0xF12F560E, 0xF5EE4BB9, - 0xF8AD6D60, 0xFC6C70D7, 0xE22B20D2, 0xE6EA3D65, 0xEBA91BBC, 0xEF68060B, - 0xD727BBB6, 0xD3E6A601, 0xDEA580D8, 0xDA649D6F, 0xC423CD6A, 0xC0E2D0DD, - 0xCDA1F604, 0xC960EBB3, 0xBD3E8D7E, 0xB9FF90C9, 0xB4BCB610, 0xB07DABA7, - 0xAE3AFBA2, 0xAAFBE615, 0xA7B8C0CC, 0xA379DD7B, 0x9B3660C6, 0x9FF77D71, - 0x92B45BA8, 0x9675461F, 0x8832161A, 0x8CF30BAD, 0x81B02D74, 0x857130C3, - 0x5D8A9099, 0x594B8D2E, 0x5408ABF7, 0x50C9B640, 0x4E8EE645, 0x4A4FFBF2, - 0x470CDD2B, 0x43CDC09C, 0x7B827D21, 0x7F436096, 0x7200464F, 0x76C15BF8, - 0x68860BFD, 0x6C47164A, 0x61043093, 0x65C52D24, 0x119B4BE9, 0x155A565E, - 0x18197087, 0x1CD86D30, 0x029F3D35, 0x065E2082, 0x0B1D065B, 0x0FDC1BEC, - 0x3793A651, 0x3352BBE6, 0x3E119D3F, 0x3AD08088, 0x2497D08D, 0x2056CD3A, - 0x2D15EBE3, 0x29D4F654, 0xC5A92679, 0xC1683BCE, 0xCC2B1D17, 0xC8EA00A0, - 0xD6AD50A5, 0xD26C4D12, 0xDF2F6BCB, 0xDBEE767C, 0xE3A1CBC1, 0xE760D676, - 0xEA23F0AF, 0xEEE2ED18, 0xF0A5BD1D, 0xF464A0AA, 0xF9278673, 0xFDE69BC4, - 0x89B8FD09, 0x8D79E0BE, 0x803AC667, 0x84FBDBD0, 0x9ABC8BD5, 0x9E7D9662, - 0x933EB0BB, 0x97FFAD0C, 0xAFB010B1, 0xAB710D06, 0xA6322BDF, 0xA2F33668, - 0xBCB4666D, 0xB8757BDA, 0xB5365D03, 0xB1F740B4 - }; - UINT32 i; - UINT32 crc = 0xffffffff; - - for (i = 0; i < len; i++) - crc = (crc << 8) ^ crc_table[((crc >> 24) ^ *buf++) & 0xFF]; - - return crc; + static const UINT32 crc_table[256] = + { // CRC32 lookup table for polynomial 0x04C11DB7 + 0x00000000, 0x04C11DB7, 0x09823B6E, 0x0D4326D9, 0x130476DC, 0x17C56B6B, + 0x1A864DB2, 0x1E475005, 0x2608EDB8, 0x22C9F00F, 0x2F8AD6D6, 0x2B4BCB61, + 0x350C9B64, 0x31CD86D3, 0x3C8EA00A, 0x384FBDBD, 0x4C11DB70, 0x48D0C6C7, + 0x4593E01E, 0x4152FDA9, 0x5F15ADAC, 0x5BD4B01B, 0x569796C2, 0x52568B75, + 0x6A1936C8, 0x6ED82B7F, 0x639B0DA6, 0x675A1011, 0x791D4014, 0x7DDC5DA3, + 0x709F7B7A, 0x745E66CD, 0x9823B6E0, 0x9CE2AB57, 0x91A18D8E, 0x95609039, + 0x8B27C03C, 0x8FE6DD8B, 0x82A5FB52, 0x8664E6E5, 0xBE2B5B58, 0xBAEA46EF, + 0xB7A96036, 0xB3687D81, 0xAD2F2D84, 0xA9EE3033, 0xA4AD16EA, 0xA06C0B5D, + 0xD4326D90, 0xD0F37027, 0xDDB056FE, 0xD9714B49, 0xC7361B4C, 0xC3F706FB, + 0xCEB42022, 0xCA753D95, 0xF23A8028, 0xF6FB9D9F, 0xFBB8BB46, 0xFF79A6F1, + 0xE13EF6F4, 0xE5FFEB43, 0xE8BCCD9A, 0xEC7DD02D, 0x34867077, 0x30476DC0, + 0x3D044B19, 0x39C556AE, 0x278206AB, 0x23431B1C, 0x2E003DC5, 0x2AC12072, + 0x128E9DCF, 0x164F8078, 0x1B0CA6A1, 0x1FCDBB16, 0x018AEB13, 0x054BF6A4, + 0x0808D07D, 0x0CC9CDCA, 0x7897AB07, 0x7C56B6B0, 0x71159069, 0x75D48DDE, + 0x6B93DDDB, 0x6F52C06C, 0x6211E6B5, 0x66D0FB02, 0x5E9F46BF, 0x5A5E5B08, + 0x571D7DD1, 0x53DC6066, 0x4D9B3063, 0x495A2DD4, 0x44190B0D, 0x40D816BA, + 0xACA5C697, 0xA864DB20, 0xA527FDF9, 0xA1E6E04E, 0xBFA1B04B, 0xBB60ADFC, + 0xB6238B25, 0xB2E29692, 0x8AAD2B2F, 0x8E6C3698, 0x832F1041, 0x87EE0DF6, + 0x99A95DF3, 0x9D684044, 0x902B669D, 0x94EA7B2A, 0xE0B41DE7, 0xE4750050, + 0xE9362689, 0xEDF73B3E, 0xF3B06B3B, 0xF771768C, 0xFA325055, 0xFEF34DE2, + 0xC6BCF05F, 0xC27DEDE8, 0xCF3ECB31, 0xCBFFD686, 0xD5B88683, 0xD1799B34, + 0xDC3ABDED, 0xD8FBA05A, 0x690CE0EE, 0x6DCDFD59, 0x608EDB80, 0x644FC637, + 0x7A089632, 0x7EC98B85, 0x738AAD5C, 0x774BB0EB, 0x4F040D56, 0x4BC510E1, + 0x46863638, 0x42472B8F, 0x5C007B8A, 0x58C1663D, 0x558240E4, 0x51435D53, + 0x251D3B9E, 0x21DC2629, 0x2C9F00F0, 0x285E1D47, 0x36194D42, 0x32D850F5, + 0x3F9B762C, 0x3B5A6B9B, 0x0315D626, 0x07D4CB91, 0x0A97ED48, 0x0E56F0FF, + 0x1011A0FA, 0x14D0BD4D, 0x19939B94, 0x1D528623, 0xF12F560E, 0xF5EE4BB9, + 0xF8AD6D60, 0xFC6C70D7, 0xE22B20D2, 0xE6EA3D65, 0xEBA91BBC, 0xEF68060B, + 0xD727BBB6, 0xD3E6A601, 0xDEA580D8, 0xDA649D6F, 0xC423CD6A, 0xC0E2D0DD, + 0xCDA1F604, 0xC960EBB3, 0xBD3E8D7E, 0xB9FF90C9, 0xB4BCB610, 0xB07DABA7, + 0xAE3AFBA2, 0xAAFBE615, 0xA7B8C0CC, 0xA379DD7B, 0x9B3660C6, 0x9FF77D71, + 0x92B45BA8, 0x9675461F, 0x8832161A, 0x8CF30BAD, 0x81B02D74, 0x857130C3, + 0x5D8A9099, 0x594B8D2E, 0x5408ABF7, 0x50C9B640, 0x4E8EE645, 0x4A4FFBF2, + 0x470CDD2B, 0x43CDC09C, 0x7B827D21, 0x7F436096, 0x7200464F, 0x76C15BF8, + 0x68860BFD, 0x6C47164A, 0x61043093, 0x65C52D24, 0x119B4BE9, 0x155A565E, + 0x18197087, 0x1CD86D30, 0x029F3D35, 0x065E2082, 0x0B1D065B, 0x0FDC1BEC, + 0x3793A651, 0x3352BBE6, 0x3E119D3F, 0x3AD08088, 0x2497D08D, 0x2056CD3A, + 0x2D15EBE3, 0x29D4F654, 0xC5A92679, 0xC1683BCE, 0xCC2B1D17, 0xC8EA00A0, + 0xD6AD50A5, 0xD26C4D12, 0xDF2F6BCB, 0xDBEE767C, 0xE3A1CBC1, 0xE760D676, + 0xEA23F0AF, 0xEEE2ED18, 0xF0A5BD1D, 0xF464A0AA, 0xF9278673, 0xFDE69BC4, + 0x89B8FD09, 0x8D79E0BE, 0x803AC667, 0x84FBDBD0, 0x9ABC8BD5, 0x9E7D9662, + 0x933EB0BB, 0x97FFAD0C, 0xAFB010B1, 0xAB710D06, 0xA6322BDF, 0xA2F33668, + 0xBCB4666D, 0xB8757BDA, 0xB5365D03, 0xB1F740B4 + }; + UINT32 i; + UINT32 crc = 0xffffffff; + + for (i = 0; i < len; i++) + crc = (crc << 8) ^ crc_table[((crc >> 24) ^ *buf++) & 0xFF]; + + return crc; } UINT32 PlaceImage(char* filename, UINT32 pos, UINT8* pFirmware, UINT32 limit) { - UINT32 size, read; - FILE* pFile; - UINT32 align; - UINT32 flags; - UINT32 load_addr = ROCKBOX_DEST, exec_addr = ROCKBOX_EXEC; // defaults - - // magic file header for compressed files - static const UINT8 magic[8] = { 0x00,0xe9,0x55,0x43,0x4c,0xff,0x01,0x1a }; - UINT8 ucl_header[26]; - - pFile = fopen(filename, "rb"); // open the current image - if (pFile == NULL) - { - printf("Image file %s not found!\n", filename); - exit(5); - } - - fseek(pFile, 0, SEEK_END); - size = ftell(pFile); - fseek(pFile, 0, SEEK_SET); - - // determine if compressed - flags = 0x00000000; // default: flags for uncompressed - fread(ucl_header, 1, sizeof(ucl_header), pFile); - if (memcmp(magic, ucl_header, sizeof(magic)) == 0) - { - if (ucl_header[12] != 0x2E // check algorithm - && ucl_header[12] != 0x2B) // or uncompressed - { - printf("UCL compressed files must use algorithm 2e, not %d\n", ucl_header[12]); - printf("Generate with: uclpack --best --2e rockbox.bin %s\n", filename); - exit(6); - } - - size = Read32(ucl_header + 22); // compressed size - if (Read32(ucl_header + 18) > size) // compare with uncompressed size - { // normal case - flags = 0x00000001; // flags for UCL compressed - } - - if (ucl_header[12] == 0x2B) // uncompressed means "ROMbox", for direct flash execution - { - UINT8 start_addr[4]; - UINT8 reset_vec[4]; - fread(start_addr, 1, sizeof(start_addr), pFile); // read the link address from image - fread(reset_vec, 1, sizeof(reset_vec), pFile); // read the reset vector from image - fseek(pFile, 0-sizeof(start_addr)-sizeof(reset_vec), SEEK_CUR); // wind back + UINT32 size, read; + FILE* pFile; + UINT32 align; + UINT32 flags; + UINT32 load_addr = ROCKBOX_DEST, exec_addr = ROCKBOX_EXEC; // defaults + + // magic file header for compressed files + static const UINT8 magic[8] = { 0x00,0xe9,0x55,0x43,0x4c,0xff,0x01,0x1a }; + UINT8 ucl_header[26]; + + pFile = fopen(filename, "rb"); // open the current image + if (pFile == NULL) + { + printf("Image file %s not found!\n", filename); + exit(5); + } + + fseek(pFile, 0, SEEK_END); + size = ftell(pFile); + fseek(pFile, 0, SEEK_SET); + + // determine if compressed + flags = 0x00000000; // default: flags for uncompressed + fread(ucl_header, 1, sizeof(ucl_header), pFile); + if (memcmp(magic, ucl_header, sizeof(magic)) == 0) + { + if (ucl_header[12] != 0x2E // check algorithm + && ucl_header[12] != 0x2B) // or uncompressed + { + printf("UCL compressed files must use algorithm 2e, not %d\n", ucl_header[12]); + printf("Generate with: uclpack --best --2e rockbox.bin %s\n", filename); + exit(6); + } + + size = Read32(ucl_header + 22); // compressed size + if (Read32(ucl_header + 18) > size) // compare with uncompressed size + { // normal case + flags = 0x00000001; // flags for UCL compressed + } + + if (ucl_header[12] == 0x2B) // uncompressed means "ROMbox", for direct flash execution + { + UINT8 start_addr[4]; + UINT8 reset_vec[4]; + fread(start_addr, 1, sizeof(start_addr), pFile); // read the link address from image + fread(reset_vec, 1, sizeof(reset_vec), pFile); // read the reset vector from image + fseek(pFile, 0-sizeof(start_addr)-sizeof(reset_vec), SEEK_CUR); // wind back load_addr = Read32(start_addr); - if (load_addr != FLASH_START + pos + 16) // behind 16 byte header + if (load_addr != FLASH_START + pos + 16) // behind 16 byte header { - printf("Error: Rombox .ucl file is linked to 0x%08X instead of 0x%08X\n", load_addr, FLASH_START + pos + 16); - exit(11); + printf("Error: Rombox .ucl file is linked to 0x%08X instead of 0x%08X\n", load_addr, FLASH_START + pos + 16); + exit(11); } - exec_addr = Read32(reset_vec); - } - } - else - { - fseek(pFile, 0, SEEK_SET); // go back - } - - if (pos + 16 + size > limit) // enough space for all that? - { - printf("Exceeding maximum image size %d\n", limit); - exit(7); - } - - // write header - align = (pos + 16 + size + SECTORSIZE-1) & ~(SECTORSIZE-1); // round up to next flash sector - Write32(pFirmware + pos, load_addr); // load address - Write32(pFirmware + pos + 4, align - (pos + 16)); // image size - Write32(pFirmware + pos + 8, exec_addr); // execution address - Write32(pFirmware + pos + 12, flags); // compressed or not - pos += 16; - - // load image - read = fread(pFirmware + pos, 1, size, pFile); - if (read != size) - { - printf("Read error, expecting %d bytes, got only %d\n", size, read); - exit(8); - } - fclose (pFile); - - pos += size; - - return pos; + exec_addr = Read32(reset_vec); + } + } + else + { + fseek(pFile, 0, SEEK_SET); // go back + } + + if (pos + 16 + size > limit) // enough space for all that? + { + printf("Exceeding maximum image size %d\n", limit); + exit(7); + } + + // write header + align = (pos + 16 + size + SECTORSIZE-1) & ~(SECTORSIZE-1); // round up to next flash sector + Write32(pFirmware + pos, load_addr); // load address + Write32(pFirmware + pos + 4, align - (pos + 16)); // image size + Write32(pFirmware + pos + 8, exec_addr); // execution address + Write32(pFirmware + pos + 12, flags); // compressed or not + pos += 16; + + // load image + read = fread(pFirmware + pos, 1, size, pFile); + if (read != size) + { + printf("Read error, expecting %d bytes, got only %d\n", size, read); + exit(8); + } + fclose (pFile); + + pos += size; + + return pos; } int main(int argc, char* argv[]) { - static UINT8 aFirmware[512*1024]; // maximum with exchanged chip - FILE* pFile; - UINT32 size; // size of loaded item - UINT32 pos; // current position in firmware - UINT32 crc32; // checksum of "payload" - BOOL hasBootRom; // flag if regular boot ROM or directly starts from flash - UINT32 template_F8, template_FC; // my platform ID, mask and version - - int i; - - if (argc <= 4) - { - printf("Usage:\n"); - printf("make_firmware {image2.ucl}\n"); - printf(" is the original firmware from your box\n"); - printf(" is the scrambled bootloader\n"); - printf(" is the first image, compressed (recommended) or uncompressed\n"); - printf(" is the second image, compressed (recommended) or uncompressed\n"); - printf("More images may follow, but keep the flash size in mind!\n"); - printf("Compression must be UCL, algorithm 2e.\n"); - printf("Generated with: uclpack --best --2e rockbox.bin imageN.ucl\n"); - exit(0); - } - - memset(aFirmware, 0xFF, sizeof(aFirmware)); - - /******* process template *******/ - - pFile = fopen(argv[2], "rb"); // open the template - if (pFile == NULL) - { - printf("Template file %s not found!\n", argv[2]); - exit(1); - } - size = fread(aFirmware, 1, 256, pFile); // need only the header - fclose(pFile); - if (size < 256) // need at least the firmware header - { - printf("Template file %s too small, need at least the header!\n", argv[2]); - exit(2); - } - - if (strncmp(aFirmware, "ARCH", 4) == 0) - { - hasBootRom = TRUE; - pos = 256; // place bootloader after this "boot block" - } - else if (Read32(aFirmware) == 0x0200) - { - hasBootRom = FALSE; - pos = 0; // directly start with the bootloader - template_F8 = Read32(aFirmware + 0xF8); // my platform ID and future info - template_FC = Read32(aFirmware + 0xFC); // use mask+version from template - } - else - { - printf("Template file %s invalid!\n", argv[2]); - exit(3); - } - - /******* process bootloader *******/ - - pFile = fopen(argv[3], "rb"); // open the bootloader - if (pFile == NULL) - { - printf("Bootloader file %s not found!\n", argv[3]); - exit(4); - } - if (hasBootRom && fseek(pFile, 6, SEEK_SET)) // skip the ajz header - { - printf("Bootloader file %s too short!\n", argv[3]); - exit(5); - } - - // place bootloader after header - size = fread(aFirmware + pos, 1, sizeof(aFirmware) - pos, pFile); - fclose(pFile); - - if (hasBootRom) - { - Write32(aFirmware + 4, BOOTLOAD_DEST); // boot code destination address - - for (i=0x08; i<=0x28; i+=8) - { - Write32(aFirmware + i, BOOTLOAD_SCR); // boot code source address - Write32(aFirmware + i + 4, size); // boot code size - } - } - else - { - Write32(aFirmware + 0xF8, template_F8); // values from template - Write32(aFirmware + 0xFC, template_FC); // mask and version - } - - size = (size + 3) & ~3; // make shure it's 32 bit aligned - pos += size; // prepare position for first image - - /******* process images *******/ - for (i = 4; i < argc; i++) - { - pos = PlaceImage(argv[i], pos, aFirmware, sizeof(aFirmware)); - - if (i < argc-1) - { // not the last: round up to next flash sector - pos = (pos + SECTORSIZE-1) & ~(SECTORSIZE-1); - } - } - - - /******* append CRC32 checksum *******/ - crc32 = CalcCRC32(aFirmware, pos); - Write32(aFirmware + pos, crc32); - pos += sizeof(crc32); // 4 bytes - - - /******* save result to output file *******/ - - pFile = fopen(argv[1], "wb"); // open the output file - if (pFile == NULL) - { - printf("Output file %s cannot be created!\n", argv[1]); - exit(9); - } - size = fwrite(aFirmware, 1, pos, pFile); - fclose(pFile); - - if (size != pos) - { - printf("Error writing %d bytes to output file %s!\n", pos, argv[1]); - exit(10); - } - - printf("Firmware file generated with %d bytes.\n", pos); - - return 0; + static UINT8 aFirmware[512*1024]; // maximum with exchanged chip + FILE* pFile; + UINT32 size; // size of loaded item + UINT32 pos; // current position in firmware + UINT32 crc32; // checksum of "payload" + BOOL hasBootRom; // flag if regular boot ROM or directly starts from flash + UINT32 template_F8, template_FC; // my platform ID, mask and version + + int i; + + if (argc <= 4) + { + printf("Usage:\n"); + printf("make_firmware {image2.ucl}\n"); + printf(" is the original firmware from your box\n"); + printf(" is the scrambled bootloader\n"); + printf(" is the first image, compressed (recommended) or uncompressed\n"); + printf(" is the second image, compressed (recommended) or uncompressed\n"); + printf("More images may follow, but keep the flash size in mind!\n"); + printf("Compression must be UCL, algorithm 2e.\n"); + printf("Generated with: uclpack --best --2e rockbox.bin imageN.ucl\n"); + exit(0); + } + + memset(aFirmware, 0xFF, sizeof(aFirmware)); + + /******* process template *******/ + + pFile = fopen(argv[2], "rb"); // open the template + if (pFile == NULL) + { + printf("Template file %s not found!\n", argv[2]); + exit(1); + } + size = fread(aFirmware, 1, 256, pFile); // need only the header + fclose(pFile); + if (size < 256) // need at least the firmware header + { + printf("Template file %s too small, need at least the header!\n", argv[2]); + exit(2); + } + + if (strncmp(aFirmware, "ARCH", 4) == 0) + { + hasBootRom = TRUE; + pos = 256; // place bootloader after this "boot block" + } + else if (Read32(aFirmware) == 0x0200) + { + hasBootRom = FALSE; + pos = 0; // directly start with the bootloader + template_F8 = Read32(aFirmware + 0xF8); // my platform ID and future info + template_FC = Read32(aFirmware + 0xFC); // use mask+version from template + } + else + { + printf("Template file %s invalid!\n", argv[2]); + exit(3); + } + + /******* process bootloader *******/ + + pFile = fopen(argv[3], "rb"); // open the bootloader + if (pFile == NULL) + { + printf("Bootloader file %s not found!\n", argv[3]); + exit(4); + } + if (hasBootRom && fseek(pFile, 6, SEEK_SET)) // skip the ajz header + { + printf("Bootloader file %s too short!\n", argv[3]); + exit(5); + } + + // place bootloader after header + size = fread(aFirmware + pos, 1, sizeof(aFirmware) - pos, pFile); + fclose(pFile); + + if (hasBootRom) + { + Write32(aFirmware + 4, BOOTLOAD_DEST); // boot code destination address + + for (i=0x08; i<=0x28; i+=8) + { + Write32(aFirmware + i, BOOTLOAD_SCR); // boot code source address + Write32(aFirmware + i + 4, size); // boot code size + } + } + else + { + Write32(aFirmware + 0xF8, template_F8); // values from template + Write32(aFirmware + 0xFC, template_FC); // mask and version + } + + size = (size + 3) & ~3; // make shure it's 32 bit aligned + pos += size; // prepare position for first image + + /******* process images *******/ + for (i = 4; i < argc; i++) + { + pos = PlaceImage(argv[i], pos, aFirmware, sizeof(aFirmware)); + + if (i < argc-1) + { // not the last: round up to next flash sector + pos = (pos + SECTORSIZE-1) & ~(SECTORSIZE-1); + } + } + + + /******* append CRC32 checksum *******/ + crc32 = CalcCRC32(aFirmware, pos); + Write32(aFirmware + pos, crc32); + pos += sizeof(crc32); // 4 bytes + + + /******* save result to output file *******/ + + pFile = fopen(argv[1], "wb"); // open the output file + if (pFile == NULL) + { + printf("Output file %s cannot be created!\n", argv[1]); + exit(9); + } + size = fwrite(aFirmware, 1, pos, pFile); + fclose(pFile); + + if (size != pos) + { + printf("Error writing %d bytes to output file %s!\n", pos, argv[1]); + exit(10); + } + + printf("Firmware file generated with %d bytes.\n", pos); + + return 0; } diff --git a/flash/minimon/minimon.c b/flash/minimon/minimon.c index e7981f2..67ae571 100644 --- a/flash/minimon/minimon.c +++ b/flash/minimon/minimon.c @@ -23,134 +23,134 @@ tpMain start_vector[] __attribute__ ((section (".startvector"))) = {main}; UINT8 uart_read(void) { - UINT8 byte; - while (!(SSR1 & SCI_RDRF)); // wait for char to be available - byte = RDR1; - SSR1 &= ~SCI_RDRF; - return byte; + UINT8 byte; + while (!(SSR1 & SCI_RDRF)); // wait for char to be available + byte = RDR1; + SSR1 &= ~SCI_RDRF; + return byte; } void uart_write(UINT8 byte) { - while (!(SSR1 & SCI_TDRE)); // wait for transmit buffer empty - TDR1 = byte; - SSR1 &= ~SCI_TDRE; + while (!(SSR1 & SCI_TDRE)); // wait for transmit buffer empty + TDR1 = byte; + SSR1 &= ~SCI_TDRE; } int main(void) { - UINT8 cmd; - UINT32 addr; - UINT32 size; - UINT32 content; - volatile UINT8* paddr = 0; - volatile UINT8* pflash; // flash base address - - while (1) - { - cmd = uart_read(); - switch (cmd) - { - case BAUDRATE: - content = uart_read(); - uart_write(cmd); // acknowledge by returning the command value - while (!(SSR1 & SCI_TEND)); // wait for empty shift register, before changing baudrate - BRR1 = content; - break; - - case ADDRESS: - addr = (uart_read() << 24) | (uart_read() << 16) | (uart_read() << 8) | uart_read(); - paddr = (UINT8*)addr; - pflash = (UINT8*)(addr & 0xFFF80000); // round down to 512k align - uart_write(cmd); // acknowledge by returning the command value - break; - - case BYTE_READ: - content = *paddr++; - uart_write(content); // the content is the ack - break; - - case BYTE_WRITE: - content = uart_read(); - *paddr++ = content; - uart_write(cmd); // acknowledge by returning the command value - break; - - case BYTE_READ16: - size = 16; - while (size--) - { - content = *paddr++; - uart_write(content); // the content is the ack - } - break; - - case BYTE_WRITE16: - size = 16; - while (size--) - { - content = uart_read(); - *paddr++ = content; - } - uart_write(cmd); // acknowledge by returning the command value - break; - - case BYTE_FLASH: - content = uart_read(); - pflash[0x5555] = 0xAA; // set flash to command mode - pflash[0x2AAA] = 0x55; - pflash[0x5555] = 0xA0; // byte program command - *paddr++ = content; - uart_write(cmd); // acknowledge by returning the command value - break; - - case BYTE_FLASH16: - size = 16; - while (size--) - { - content = uart_read(); - pflash[0x5555] = 0xAA; // set flash to command mode - pflash[0x2AAA] = 0x55; - pflash[0x5555] = 0xA0; // byte program command - *paddr++ = content; - } - uart_write(cmd); // acknowledge by returning the command value - break; - - case HALFWORD_READ: - content = *(UINT16*)paddr; - paddr += 2; - uart_write(content >> 8); // highbyte - uart_write(content & 0xFF); // lowbyte - break; - - case HALFWORD_WRITE: - content = uart_read() << 8 | uart_read(); - *(UINT16*)paddr = content; - paddr += 2; - uart_write(cmd); // acknowledge by returning the command value - break; - - case EXECUTE: - { - tpFunc pFunc = (tpFunc)paddr; - pFunc(); - uart_write(cmd); // acknowledge by returning the command value - } - break; - - - default: - { - volatile UINT16* pPortB = (UINT16*)0x05FFFFC2; - *pPortB |= 1 << 6; // bit 6 is red LED on - uart_write(~cmd); // error acknowledge - } - - } // case - } - - return 0; + UINT8 cmd; + UINT32 addr; + UINT32 size; + UINT32 content; + volatile UINT8* paddr = 0; + volatile UINT8* pflash; // flash base address + + while (1) + { + cmd = uart_read(); + switch (cmd) + { + case BAUDRATE: + content = uart_read(); + uart_write(cmd); // acknowledge by returning the command value + while (!(SSR1 & SCI_TEND)); // wait for empty shift register, before changing baudrate + BRR1 = content; + break; + + case ADDRESS: + addr = (uart_read() << 24) | (uart_read() << 16) | (uart_read() << 8) | uart_read(); + paddr = (UINT8*)addr; + pflash = (UINT8*)(addr & 0xFFF80000); // round down to 512k align + uart_write(cmd); // acknowledge by returning the command value + break; + + case BYTE_READ: + content = *paddr++; + uart_write(content); // the content is the ack + break; + + case BYTE_WRITE: + content = uart_read(); + *paddr++ = content; + uart_write(cmd); // acknowledge by returning the command value + break; + + case BYTE_READ16: + size = 16; + while (size--) + { + content = *paddr++; + uart_write(content); // the content is the ack + } + break; + + case BYTE_WRITE16: + size = 16; + while (size--) + { + content = uart_read(); + *paddr++ = content; + } + uart_write(cmd); // acknowledge by returning the command value + break; + + case BYTE_FLASH: + content = uart_read(); + pflash[0x5555] = 0xAA; // set flash to command mode + pflash[0x2AAA] = 0x55; + pflash[0x5555] = 0xA0; // byte program command + *paddr++ = content; + uart_write(cmd); // acknowledge by returning the command value + break; + + case BYTE_FLASH16: + size = 16; + while (size--) + { + content = uart_read(); + pflash[0x5555] = 0xAA; // set flash to command mode + pflash[0x2AAA] = 0x55; + pflash[0x5555] = 0xA0; // byte program command + *paddr++ = content; + } + uart_write(cmd); // acknowledge by returning the command value + break; + + case HALFWORD_READ: + content = *(UINT16*)paddr; + paddr += 2; + uart_write(content >> 8); // highbyte + uart_write(content & 0xFF); // lowbyte + break; + + case HALFWORD_WRITE: + content = uart_read() << 8 | uart_read(); + *(UINT16*)paddr = content; + paddr += 2; + uart_write(cmd); // acknowledge by returning the command value + break; + + case EXECUTE: + { + tpFunc pFunc = (tpFunc)paddr; + pFunc(); + uart_write(cmd); // acknowledge by returning the command value + } + break; + + + default: + { + volatile UINT16* pPortB = (UINT16*)0x05FFFFC2; + *pPortB |= 1 << 6; // bit 6 is red LED on + uart_write(~cmd); // error acknowledge + } + + } // case + } + + return 0; } diff --git a/flash/uart_boot/client.c b/flash/uart_boot/client.c index 71749a2..bfd54db 100644 --- a/flash/uart_boot/client.c +++ b/flash/uart_boot/client.c @@ -10,304 +10,304 @@ // do the baudrate configuration for the Player int ConfigFirstlevelPlayer (tUartHandle serial_handle) { - UINT32 result_nbr; - - if(!UartConfig(serial_handle, 4800, eMARKPARITY, eTWOSTOPBITS, 8)) - { - UINT32 dwErr = GET_LAST_ERR(); - printf("Error %lu setting up COM params for baudrate byte\n", dwErr); - exit(1); - } - - // this will read as 0x19 when viewed with 2300 baud like the player does - result_nbr = UartWrite(serial_handle, (UINT8*)"\x86\xC0", 2); - if (result_nbr != 2) - { - UINT32 dwErr = GET_LAST_ERR(); - printf("Error %lu setting up COM params for baudrate byte\n", dwErr); - } - - SLEEP(100); // wait for the chars to be sent, is there a better way? - - // the read 0x19 means 14423 baud with 12 MHz - if(!UartConfig(serial_handle, 14400, eNOPARITY, eONESTOPBIT, 8)) - { - printf("Error setting up COM params for 1st level loader\n"); - exit(1); - } - - return 0; + UINT32 result_nbr; + + if(!UartConfig(serial_handle, 4800, eMARKPARITY, eTWOSTOPBITS, 8)) + { + UINT32 dwErr = GET_LAST_ERR(); + printf("Error %lu setting up COM params for baudrate byte\n", dwErr); + exit(1); + } + + // this will read as 0x19 when viewed with 2300 baud like the player does + result_nbr = UartWrite(serial_handle, (UINT8*)"\x86\xC0", 2); + if (result_nbr != 2) + { + UINT32 dwErr = GET_LAST_ERR(); + printf("Error %lu setting up COM params for baudrate byte\n", dwErr); + } + + SLEEP(100); // wait for the chars to be sent, is there a better way? + + // the read 0x19 means 14423 baud with 12 MHz + if(!UartConfig(serial_handle, 14400, eNOPARITY, eONESTOPBIT, 8)) + { + printf("Error setting up COM params for 1st level loader\n"); + exit(1); + } + + return 0; } // do the baudrate configuration for the Recoder/FM int ConfigFirstlevelRecorder (tUartHandle serial_handle) { - UINT32 result_nbr; - - if(!UartConfig(serial_handle, 4800, eNOPARITY, eTWOSTOPBITS, 8)) - { - UINT32 dwErr = GET_LAST_ERR(); - printf("Error %lu setting up COM params for baudrate byte\n", dwErr); - exit(1); - } - - // this will read as 0x08 when viewed with 2120 baud like the recorder does - result_nbr = UartWrite(serial_handle, (UINT8*)"\x00\x00", 2); - if(result_nbr != 2) - { - printf("Error transmitting baudrate byte\n"); - exit(1); - } - - SLEEP(100); // wait for the chars to be sent, is there a better way? - - // the read 0x08 means 38400 baud with 11.0592 MHz - if(!UartConfig(serial_handle, 38400, eNOPARITY, eONESTOPBIT, 8)) - { - UINT32 dwErr = GET_LAST_ERR(); - printf("Error %lu setting up COM params for 1st level loader\n", dwErr); - exit(1); - } - - return 0; + UINT32 result_nbr; + + if(!UartConfig(serial_handle, 4800, eNOPARITY, eTWOSTOPBITS, 8)) + { + UINT32 dwErr = GET_LAST_ERR(); + printf("Error %lu setting up COM params for baudrate byte\n", dwErr); + exit(1); + } + + // this will read as 0x08 when viewed with 2120 baud like the recorder does + result_nbr = UartWrite(serial_handle, (UINT8*)"\x00\x00", 2); + if(result_nbr != 2) + { + printf("Error transmitting baudrate byte\n"); + exit(1); + } + + SLEEP(100); // wait for the chars to be sent, is there a better way? + + // the read 0x08 means 38400 baud with 11.0592 MHz + if(!UartConfig(serial_handle, 38400, eNOPARITY, eONESTOPBIT, 8)) + { + UINT32 dwErr = GET_LAST_ERR(); + printf("Error %lu setting up COM params for 1st level loader\n", dwErr); + exit(1); + } + + return 0; } // transfer a byte for the monitor download, with or without acknowledge int DownloadByte(tUartHandle serial_handle, unsigned char byte, bool bAck) { - unsigned char received; - - while (1) - { - UartWrite(serial_handle, &byte, 1); - if (bAck) - { - UartRead(serial_handle, &received, 1); - if (received == byte) - { - UartWrite(serial_handle, (UINT8*)"\x01", 1); // ack success - break; // exit the loop - } - else - { - printf("Error transmitting monitor byte 0x%02X, got 0x%0X\n", byte, received); - UartWrite(serial_handle, (UINT8*)"\x00", 1); // ack fail, try again - } - } - else - break; // no loop - } - return 1; + unsigned char received; + + while (1) + { + UartWrite(serial_handle, &byte, 1); + if (bAck) + { + UartRead(serial_handle, &received, 1); + if (received == byte) + { + UartWrite(serial_handle, (UINT8*)"\x01", 1); // ack success + break; // exit the loop + } + else + { + printf("Error transmitting monitor byte 0x%02X, got 0x%0X\n", byte, received); + UartWrite(serial_handle, (UINT8*)"\x00", 1); // ack fail, try again + } + } + else + break; // no loop + } + return 1; } // download our little monitor, the box must have been just freshly switched on for this to work int DownloadMonitor(tUartHandle serial_handle, bool bRecorder, char* szFilename) { - FILE* pFile; - size_t filesize; - UINT8 byte; - unsigned i; - - // hard-coded parameters - bool bAck = true; // configure if acknowledged download (without useful for remote pin boot) - UINT32 TargetLoad = 0x0FFFF000; // target load address - - pFile = fopen(szFilename, "rb"); - if (pFile == NULL) - { - printf("\nMonitor file %s not found, exiting\n", szFilename); - exit(1); - } - - // determine file size - fseek(pFile, 0, SEEK_END); - filesize = ftell(pFile); - fseek(pFile, 0, SEEK_SET); - - // This is _really_ tricky! The box expects a BRR value in a nonstandard baudrate, - // which a PC can't generate. I'm using a higher one with some wild settings - // to generate a pulse series that: - // 1) looks like a stable byte when sampled with the nonstandard baudrate - // 2) gives a BRR value to the box which results in a baudrate the PC can also use - if (bRecorder) - { - ConfigFirstlevelRecorder(serial_handle); - } - else - { - ConfigFirstlevelPlayer(serial_handle); - } - - UartWrite(serial_handle, bAck ? (UINT8*)"\x01" : (UINT8*)"\x00", 1); // ACK mode - - // transmit the size, little endian - DownloadByte(serial_handle, (UINT8)( filesize & 0xFF), bAck); - DownloadByte(serial_handle, (UINT8)((filesize>>8) & 0xFF), bAck); - DownloadByte(serial_handle, (UINT8)((filesize>>16) & 0xFF), bAck); - DownloadByte(serial_handle, (UINT8)((filesize>>24) & 0xFF), bAck); - - // transmit the load address, little endian - DownloadByte(serial_handle, (UINT8)( TargetLoad & 0xFF), bAck); - DownloadByte(serial_handle, (UINT8)((TargetLoad>>8) & 0xFF), bAck); - DownloadByte(serial_handle, (UINT8)((TargetLoad>>16) & 0xFF), bAck); - DownloadByte(serial_handle, (UINT8)((TargetLoad>>24) & 0xFF), bAck); - - // transmit the command byte - DownloadByte(serial_handle, 0xFF, bAck); // 0xFF means execute the transferred image - - // transmit the image - for (i=0; i>8) & 0xFF), bAck); + DownloadByte(serial_handle, (UINT8)((filesize>>16) & 0xFF), bAck); + DownloadByte(serial_handle, (UINT8)((filesize>>24) & 0xFF), bAck); + + // transmit the load address, little endian + DownloadByte(serial_handle, (UINT8)( TargetLoad & 0xFF), bAck); + DownloadByte(serial_handle, (UINT8)((TargetLoad>>8) & 0xFF), bAck); + DownloadByte(serial_handle, (UINT8)((TargetLoad>>16) & 0xFF), bAck); + DownloadByte(serial_handle, (UINT8)((TargetLoad>>24) & 0xFF), bAck); + + // transmit the command byte + DownloadByte(serial_handle, 0xFF, bAck); // 0xFF means execute the transferred image + + // transmit the image + for (i=0; i" at the end - WaitForString(serial_handle, "ROOT>"); - - // send upload command "UP" - SendWithEcho(serial_handle, "UP\r"); - - pFile = fopen(szFilename, "rb"); - if (pFile == NULL) - { - printf("\nMonitor file %s not found, exiting\n", szFilename); - exit(1); - } - - // determine file size - fseek(pFile, 0, SEEK_END); - filesize = ftell(pFile); - fseek(pFile, 0, SEEK_SET); - - // calculate checksum - for (i=0; i>8) & 0xFF); - UartWrite(serial_handle, &byte, 1); - byte = (UINT8)((filesize>>16) & 0xFF); - UartWrite(serial_handle, &byte, 1); - byte = (UINT8)((filesize>>24) & 0xFF); - UartWrite(serial_handle, &byte, 1); - - // checksum as 16 bit little endian - byte = (UINT8)( checksum & 0xFF); - UartWrite(serial_handle, &byte, 1); - byte = (UINT8)((checksum>>8) & 0xFF); - UartWrite(serial_handle, &byte, 1); - - UartWrite(serial_handle, (unsigned char*)"\x00", 1); // kind (3 means flash) - UartWrite(serial_handle, (unsigned char*)"\x00", 1); // ignored byte - - // wait for monitor to accept data - WaitForString(serial_handle, "#OKCTRL#"); - - // transmit the image - for (i=0; i" at the end - WaitForString(serial_handle, "ROOT>"); - - // send start program command "SPRO" - SendWithEcho(serial_handle, "SPRO\r"); - - SLEEP(100); // wait a little while for startup - - return 0; + FILE* pFile; + size_t filesize; + UINT8 byte; + UINT16 checksum = 0; + unsigned i; + + // the onboard monitor uses 115200 baud + if(!UartConfig(serial_handle, 115200, eNOPARITY, eONESTOPBIT, 8)) + { + UINT32 dwErr = GET_LAST_ERR(); + printf("Error %lu setting up COM params for baudrate %d\n", dwErr, 115200); + exit(1); + } + + // wait for receiving "#SERIAL#" + WaitForString(serial_handle, "#SERIAL#"); + + // send magic "SRL" command to get interactive mode + SendWithEcho(serial_handle, "SRL\r"); + + // wait for menu completion: "ROOT>" at the end + WaitForString(serial_handle, "ROOT>"); + + // send upload command "UP" + SendWithEcho(serial_handle, "UP\r"); + + pFile = fopen(szFilename, "rb"); + if (pFile == NULL) + { + printf("\nMonitor file %s not found, exiting\n", szFilename); + exit(1); + } + + // determine file size + fseek(pFile, 0, SEEK_END); + filesize = ftell(pFile); + fseek(pFile, 0, SEEK_SET); + + // calculate checksum + for (i=0; i>8) & 0xFF); + UartWrite(serial_handle, &byte, 1); + byte = (UINT8)((filesize>>16) & 0xFF); + UartWrite(serial_handle, &byte, 1); + byte = (UINT8)((filesize>>24) & 0xFF); + UartWrite(serial_handle, &byte, 1); + + // checksum as 16 bit little endian + byte = (UINT8)( checksum & 0xFF); + UartWrite(serial_handle, &byte, 1); + byte = (UINT8)((checksum>>8) & 0xFF); + UartWrite(serial_handle, &byte, 1); + + UartWrite(serial_handle, (unsigned char*)"\x00", 1); // kind (3 means flash) + UartWrite(serial_handle, (unsigned char*)"\x00", 1); // ignored byte + + // wait for monitor to accept data + WaitForString(serial_handle, "#OKCTRL#"); + + // transmit the image + for (i=0; i" at the end + WaitForString(serial_handle, "ROOT>"); + + // send start program command "SPRO" + SendWithEcho(serial_handle, "SPRO\r"); + + SLEEP(100); // wait a little while for startup + + return 0; } @@ -316,422 +316,422 @@ int DownloadArchosMonitor(tUartHandle serial_handle, char* szFilename) // read a byte using the target monitor UINT8 ReadByte(tUartHandle serial_handle, UINT32 addr) { - UINT8 send; - UINT8 received; - - // send the address command - send = ADDRESS; - UartWrite(serial_handle, &send, 1); - - // transmit the address, big endian - send = (UINT8)((addr>>24) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>16) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>8) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)(addr & 0xFF); - UartWrite(serial_handle, &send, 1); - - UartRead(serial_handle, &received, 1); // response - if (received != ADDRESS) - { - printf("Protocol error!\n"); - return 1; - } - - // send the read command - send = BYTE_READ; - UartWrite(serial_handle, &send, 1); - - UartRead(serial_handle, &received, 1); // response - - return received; + UINT8 send; + UINT8 received; + + // send the address command + send = ADDRESS; + UartWrite(serial_handle, &send, 1); + + // transmit the address, big endian + send = (UINT8)((addr>>24) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>16) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>8) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)(addr & 0xFF); + UartWrite(serial_handle, &send, 1); + + UartRead(serial_handle, &received, 1); // response + if (received != ADDRESS) + { + printf("Protocol error!\n"); + return 1; + } + + // send the read command + send = BYTE_READ; + UartWrite(serial_handle, &send, 1); + + UartRead(serial_handle, &received, 1); // response + + return received; } // write a byte using the target monitor int WriteByte(tUartHandle serial_handle, UINT32 addr, UINT8 byte) { - UINT8 send; - UINT8 received; - - // send the address command - send = ADDRESS; - UartWrite(serial_handle, &send, 1); - - // transmit the address, big endian - send = (UINT8)((addr>>24) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>16) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>8) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)(addr & 0xFF); - UartWrite(serial_handle, &send, 1); - - UartRead(serial_handle, &received, 1); // response - if (received != ADDRESS) - { - printf("Protocol error, receiced 0x%02X!\n", received); - return 1; - } - - // send the write command - send = BYTE_WRITE; - UartWrite(serial_handle, &send, 1); - - // transmit the data - UartWrite(serial_handle, &byte, 1); - - UartRead(serial_handle, &received, 1); // response - - if (received != BYTE_WRITE) - { - printf("Protocol error!\n"); - return 1; - } - - return 0; + UINT8 send; + UINT8 received; + + // send the address command + send = ADDRESS; + UartWrite(serial_handle, &send, 1); + + // transmit the address, big endian + send = (UINT8)((addr>>24) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>16) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>8) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)(addr & 0xFF); + UartWrite(serial_handle, &send, 1); + + UartRead(serial_handle, &received, 1); // response + if (received != ADDRESS) + { + printf("Protocol error, receiced 0x%02X!\n", received); + return 1; + } + + // send the write command + send = BYTE_WRITE; + UartWrite(serial_handle, &send, 1); + + // transmit the data + UartWrite(serial_handle, &byte, 1); + + UartRead(serial_handle, &received, 1); // response + + if (received != BYTE_WRITE) + { + printf("Protocol error!\n"); + return 1; + } + + return 0; } // read many bytes using the target monitor int ReadByteMultiple(tUartHandle serial_handle, UINT32 addr, UINT32 size, UINT8* pBuffer) { - UINT8 send, received; - - // send the address command - send = ADDRESS; - UartWrite(serial_handle, &send, 1); - - // transmit the address, big endian - send = (UINT8)((addr>>24) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>16) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>8) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)(addr & 0xFF); - UartWrite(serial_handle, &send, 1); - - UartRead(serial_handle, &received, 1); // response - if (received != ADDRESS) - { - printf("Protocol error!\n"); - return 1; - } - - while (size) - { - if (size >= 16) - { // we can use a "burst" command - send = BYTE_READ16; - UartWrite(serial_handle, &send, 1); // send the read command - UartRead(serial_handle, pBuffer, 16); // data response - pBuffer += 16; - size -= 16; - } - else - { // use single byte command - send = BYTE_READ; - UartWrite(serial_handle, &send, 1); // send the read command - UartRead(serial_handle, pBuffer++, 1); // data response - size--; - } - } - - return 0; + UINT8 send, received; + + // send the address command + send = ADDRESS; + UartWrite(serial_handle, &send, 1); + + // transmit the address, big endian + send = (UINT8)((addr>>24) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>16) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>8) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)(addr & 0xFF); + UartWrite(serial_handle, &send, 1); + + UartRead(serial_handle, &received, 1); // response + if (received != ADDRESS) + { + printf("Protocol error!\n"); + return 1; + } + + while (size) + { + if (size >= 16) + { // we can use a "burst" command + send = BYTE_READ16; + UartWrite(serial_handle, &send, 1); // send the read command + UartRead(serial_handle, pBuffer, 16); // data response + pBuffer += 16; + size -= 16; + } + else + { // use single byte command + send = BYTE_READ; + UartWrite(serial_handle, &send, 1); // send the read command + UartRead(serial_handle, pBuffer++, 1); // data response + size--; + } + } + + return 0; } // write many bytes using the target monitor int WriteByteMultiple(tUartHandle serial_handle, UINT32 addr, UINT32 size, UINT8* pBuffer) { - UINT8 send, received; - - // send the address command - send = ADDRESS; - UartWrite(serial_handle, &send, 1); - - // transmit the address, big endian - send = (UINT8)((addr>>24) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>16) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>8) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)(addr & 0xFF); - UartWrite(serial_handle, &send, 1); - - UartRead(serial_handle, &received, 1); // response - if (received != ADDRESS) - { - printf("Protocol error!\n"); - return 1; - } - - while (size) - { - if (size >= 16) - { // we can use a "burst" command - send = BYTE_WRITE16; - UartWrite(serial_handle, &send, 1); // send the write command - UartWrite(serial_handle, pBuffer, 16); // transmit the data - UartRead(serial_handle, &received, 1); // response - if (received != BYTE_WRITE16) - { - printf("Protocol error!\n"); - return 1; - } - pBuffer += 16; - size -= 16; - } - else - { // use single byte command - send = BYTE_WRITE; - UartWrite(serial_handle, &send, 1); // send the write command - UartWrite(serial_handle, pBuffer++, 1); // transmit the data - UartRead(serial_handle, &received, 1); // response - if (received != BYTE_WRITE) - { - printf("Protocol error!\n"); - return 1; - } - size--; - } - } - - return 0; + UINT8 send, received; + + // send the address command + send = ADDRESS; + UartWrite(serial_handle, &send, 1); + + // transmit the address, big endian + send = (UINT8)((addr>>24) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>16) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>8) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)(addr & 0xFF); + UartWrite(serial_handle, &send, 1); + + UartRead(serial_handle, &received, 1); // response + if (received != ADDRESS) + { + printf("Protocol error!\n"); + return 1; + } + + while (size) + { + if (size >= 16) + { // we can use a "burst" command + send = BYTE_WRITE16; + UartWrite(serial_handle, &send, 1); // send the write command + UartWrite(serial_handle, pBuffer, 16); // transmit the data + UartRead(serial_handle, &received, 1); // response + if (received != BYTE_WRITE16) + { + printf("Protocol error!\n"); + return 1; + } + pBuffer += 16; + size -= 16; + } + else + { // use single byte command + send = BYTE_WRITE; + UartWrite(serial_handle, &send, 1); // send the write command + UartWrite(serial_handle, pBuffer++, 1); // transmit the data + UartRead(serial_handle, &received, 1); // response + if (received != BYTE_WRITE) + { + printf("Protocol error!\n"); + return 1; + } + size--; + } + } + + return 0; } // write many bytes using the target monitor int FlashByteMultiple(tUartHandle serial_handle, UINT32 addr, UINT32 size, UINT8* pBuffer) { - UINT8 send, received; - - // send the address command - send = ADDRESS; - UartWrite(serial_handle, &send, 1); - - // transmit the address, big endian - send = (UINT8)((addr>>24) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>16) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>8) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)(addr & 0xFF); - UartWrite(serial_handle, &send, 1); - - UartRead(serial_handle, &received, 1); // response - if (received != ADDRESS) - { - printf("Protocol error!\n"); - return 1; - } - - while (size) - { - if (size >= 16) - { // we can use a "burst" command - send = BYTE_FLASH16; - UartWrite(serial_handle, &send, 1); // send the write command - UartWrite(serial_handle, pBuffer, 16); // transmit the data - UartRead(serial_handle, &received, 1); // response - if (received != BYTE_FLASH16) - { - printf("Protocol error!\n"); - return 1; - } - pBuffer += 16; - size -= 16; - } - else - { // use single byte command - send = BYTE_FLASH; - UartWrite(serial_handle, &send, 1); // send the write command - UartWrite(serial_handle, pBuffer++, 1); // transmit the data - UartRead(serial_handle, &received, 1); // response - if (received != BYTE_FLASH) - { - printf("Protocol error!\n"); - return 1; - } - size--; - } - } - - return 0; + UINT8 send, received; + + // send the address command + send = ADDRESS; + UartWrite(serial_handle, &send, 1); + + // transmit the address, big endian + send = (UINT8)((addr>>24) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>16) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>8) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)(addr & 0xFF); + UartWrite(serial_handle, &send, 1); + + UartRead(serial_handle, &received, 1); // response + if (received != ADDRESS) + { + printf("Protocol error!\n"); + return 1; + } + + while (size) + { + if (size >= 16) + { // we can use a "burst" command + send = BYTE_FLASH16; + UartWrite(serial_handle, &send, 1); // send the write command + UartWrite(serial_handle, pBuffer, 16); // transmit the data + UartRead(serial_handle, &received, 1); // response + if (received != BYTE_FLASH16) + { + printf("Protocol error!\n"); + return 1; + } + pBuffer += 16; + size -= 16; + } + else + { // use single byte command + send = BYTE_FLASH; + UartWrite(serial_handle, &send, 1); // send the write command + UartWrite(serial_handle, pBuffer++, 1); // transmit the data + UartRead(serial_handle, &received, 1); // response + if (received != BYTE_FLASH) + { + printf("Protocol error!\n"); + return 1; + } + size--; + } + } + + return 0; } // read a 16bit halfword using the target monitor UINT16 ReadHalfword(tUartHandle serial_handle, UINT32 addr) { - UINT8 send; - UINT8 received; - UINT16 halfword; - - // send the address command - send = ADDRESS; - UartWrite(serial_handle, &send, 1); - - // transmit the address, big endian - send = (UINT8)((addr>>24) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>16) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>8) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)(addr & 0xFF); - UartWrite(serial_handle, &send, 1); - - UartRead(serial_handle, &received, 1); // response - if (received != ADDRESS) - { - printf("Protocol error!\n"); - return 1; - } - - // send the read command - send = HALFWORD_READ; - UartWrite(serial_handle, &send, 1); - - UartRead(serial_handle, &received, 1); // response - halfword = received << 8; // highbyte - UartRead(serial_handle, &received, 1); - halfword |= received; // lowbyte - - return halfword; + UINT8 send; + UINT8 received; + UINT16 halfword; + + // send the address command + send = ADDRESS; + UartWrite(serial_handle, &send, 1); + + // transmit the address, big endian + send = (UINT8)((addr>>24) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>16) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>8) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)(addr & 0xFF); + UartWrite(serial_handle, &send, 1); + + UartRead(serial_handle, &received, 1); // response + if (received != ADDRESS) + { + printf("Protocol error!\n"); + return 1; + } + + // send the read command + send = HALFWORD_READ; + UartWrite(serial_handle, &send, 1); + + UartRead(serial_handle, &received, 1); // response + halfword = received << 8; // highbyte + UartRead(serial_handle, &received, 1); + halfword |= received; // lowbyte + + return halfword; } // write a 16bit halfword using the target monitor int WriteHalfword(tUartHandle serial_handle, UINT32 addr, UINT16 halfword) { - UINT8 send; - UINT8 received; - - // send the address command - send = ADDRESS; - UartWrite(serial_handle, &send, 1); - - // transmit the address, big endian - send = (UINT8)((addr>>24) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>16) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>8) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)(addr & 0xFF); - UartWrite(serial_handle, &send, 1); - - UartRead(serial_handle, &received, 1); // response - if (received != ADDRESS) - { - printf("Protocol error!\n"); - return 1; - } - - // send the write command - send = HALFWORD_WRITE; - UartWrite(serial_handle, &send, 1); - - // transmit the data - send = halfword >> 8; // highbyte - UartWrite(serial_handle, &send, 1); - send = halfword & 0xFF; // lowbyte - UartWrite(serial_handle, &send, 1); - - UartRead(serial_handle, &received, 1); // response - - if (received != HALFWORD_WRITE) - { - printf("Protocol error!\n"); - return 1; - } - - return 0; + UINT8 send; + UINT8 received; + + // send the address command + send = ADDRESS; + UartWrite(serial_handle, &send, 1); + + // transmit the address, big endian + send = (UINT8)((addr>>24) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>16) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>8) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)(addr & 0xFF); + UartWrite(serial_handle, &send, 1); + + UartRead(serial_handle, &received, 1); // response + if (received != ADDRESS) + { + printf("Protocol error!\n"); + return 1; + } + + // send the write command + send = HALFWORD_WRITE; + UartWrite(serial_handle, &send, 1); + + // transmit the data + send = halfword >> 8; // highbyte + UartWrite(serial_handle, &send, 1); + send = halfword & 0xFF; // lowbyte + UartWrite(serial_handle, &send, 1); + + UartRead(serial_handle, &received, 1); // response + + if (received != HALFWORD_WRITE) + { + printf("Protocol error!\n"); + return 1; + } + + return 0; } // change baudrate using target monitor int SetTargetBaudrate(tUartHandle serial_handle, long lClock, long lBaudrate) { - UINT8 send; - UINT8 received; - UINT8 brr; - long lBRR; + UINT8 send; + UINT8 received; + UINT8 brr; + long lBRR; - lBRR = lClock / lBaudrate; - lBRR = ((lBRR + 16) / 32) - 1; // with rounding - brr = (UINT8)lBRR; + lBRR = lClock / lBaudrate; + lBRR = ((lBRR + 16) / 32) - 1; // with rounding + brr = (UINT8)lBRR; - // send the command - send = BAUDRATE; - UartWrite(serial_handle, &send, 1); - UartWrite(serial_handle, &brr, 1); // send the BRR value - UartRead(serial_handle, &received, 1); // response ack + // send the command + send = BAUDRATE; + UartWrite(serial_handle, &send, 1); + UartWrite(serial_handle, &brr, 1); // send the BRR value + UartRead(serial_handle, &received, 1); // response ack - if (received != BAUDRATE) - { // bad situation, now we're unclear about the baudrate of the target - printf("Protocol error!\n"); - return 1; - } + if (received != BAUDRATE) + { // bad situation, now we're unclear about the baudrate of the target + printf("Protocol error!\n"); + return 1; + } - SLEEP(100); // give it some time to settle + SLEEP(100); // give it some time to settle - // change our baudrate, too - UartConfig(serial_handle, lBaudrate, eNOPARITY, eONESTOPBIT, 8); + // change our baudrate, too + UartConfig(serial_handle, lBaudrate, eNOPARITY, eONESTOPBIT, 8); - return 0; + return 0; } // call a subroutine using the target monitor int Execute(tUartHandle serial_handle, UINT32 addr, bool bReturns) { - UINT8 send; - UINT8 received; - - // send the address command - send = ADDRESS; - UartWrite(serial_handle, &send, 1); - - // transmit the address, big endian - send = (UINT8)((addr>>24) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>16) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)((addr>>8) & 0xFF); - UartWrite(serial_handle, &send, 1); - send = (UINT8)(addr & 0xFF); - UartWrite(serial_handle, &send, 1); - - UartRead(serial_handle, &received, 1); // response - if (received != ADDRESS) - { - printf("Protocol error!\n"); - return 1; - } - - // send the execute command - send = EXECUTE; - UartWrite(serial_handle, &send, 1); - if (bReturns) - { // we expect the call to return control to minimon - UartRead(serial_handle, &received, 1); // response - - if (received != EXECUTE) - { - printf("Protocol error!\n"); - return 1; - } - } - - return 0; + UINT8 send; + UINT8 received; + + // send the address command + send = ADDRESS; + UartWrite(serial_handle, &send, 1); + + // transmit the address, big endian + send = (UINT8)((addr>>24) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>16) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)((addr>>8) & 0xFF); + UartWrite(serial_handle, &send, 1); + send = (UINT8)(addr & 0xFF); + UartWrite(serial_handle, &send, 1); + + UartRead(serial_handle, &received, 1); // response + if (received != ADDRESS) + { + printf("Protocol error!\n"); + return 1; + } + + // send the execute command + send = EXECUTE; + UartWrite(serial_handle, &send, 1); + if (bReturns) + { // we expect the call to return control to minimon + UartRead(serial_handle, &received, 1); // response + + if (received != EXECUTE) + { + printf("Protocol error!\n"); + return 1; + } + } + + return 0; } diff --git a/flash/uart_boot/flash.c b/flash/uart_boot/flash.c index 854de20..381297a 100644 --- a/flash/uart_boot/flash.c +++ b/flash/uart_boot/flash.c @@ -9,70 +9,70 @@ // read the manufacturer and device ID int ReadID(tUartHandle serial_handle, UINT32 base, UINT8* pManufacturerID, UINT8* pDeviceID) { - base &= 0xFFF80000; // round down to 512k align, to make shure + base &= 0xFFF80000; // round down to 512k align, to make shure - WriteByte(serial_handle, base + 0x5555, 0xAA); // enter command mode - WriteByte(serial_handle, base + 0x2AAA, 0x55); - WriteByte(serial_handle, base + 0x5555, 0x90); // ID command - SLEEP(20); // Atmel wants 20ms pause here + WriteByte(serial_handle, base + 0x5555, 0xAA); // enter command mode + WriteByte(serial_handle, base + 0x2AAA, 0x55); + WriteByte(serial_handle, base + 0x5555, 0x90); // ID command + SLEEP(20); // Atmel wants 20ms pause here - *pManufacturerID = ReadByte(serial_handle, base + 0); - *pDeviceID = ReadByte(serial_handle, base + 1); + *pManufacturerID = ReadByte(serial_handle, base + 0); + *pDeviceID = ReadByte(serial_handle, base + 1); - WriteByte(serial_handle, base + 0, 0xF0); // reset flash (back to normal read mode) - SLEEP(20); // Atmel wants 20ms pause here + WriteByte(serial_handle, base + 0, 0xF0); // reset flash (back to normal read mode) + SLEEP(20); // Atmel wants 20ms pause here - return 0; + return 0; } // erase the sector which contains the given address int EraseSector(tUartHandle serial_handle, UINT32 address) { - UINT32 base = address & 0xFFF80000; // round down to 512k align - - WriteByte(serial_handle, base + 0x5555, 0xAA); // enter command mode - WriteByte(serial_handle, base + 0x2AAA, 0x55); - WriteByte(serial_handle, base + 0x5555, 0x80); // eraze command - WriteByte(serial_handle, base + 0x5555, 0xAA); // enter command mode - WriteByte(serial_handle, base + 0x2AAA, 0x55); - WriteByte(serial_handle, address, 0x30); // eraze the sector - SLEEP(25); // sector eraze time: 25ms - - return 0; + UINT32 base = address & 0xFFF80000; // round down to 512k align + + WriteByte(serial_handle, base + 0x5555, 0xAA); // enter command mode + WriteByte(serial_handle, base + 0x2AAA, 0x55); + WriteByte(serial_handle, base + 0x5555, 0x80); // eraze command + WriteByte(serial_handle, base + 0x5555, 0xAA); // enter command mode + WriteByte(serial_handle, base + 0x2AAA, 0x55); + WriteByte(serial_handle, address, 0x30); // eraze the sector + SLEEP(25); // sector eraze time: 25ms + + return 0; } // erase the whole flash int EraseChip(tUartHandle serial_handle, UINT32 base) { - base &= 0xFFF80000; // round down to 512k align, to make shure - - WriteByte(serial_handle, base + 0x5555, 0xAA); // enter command mode - WriteByte(serial_handle, base + 0x2AAA, 0x55); - WriteByte(serial_handle, base + 0x5555, 0x80); // eraze command - WriteByte(serial_handle, base + 0x5555, 0xAA); // enter command mode - WriteByte(serial_handle, base + 0x2AAA, 0x55); - WriteByte(serial_handle, base + 0x5555, 0x10); // chip eraze command - SLEEP(100); // chip eraze time: 100ms - - return 0; + base &= 0xFFF80000; // round down to 512k align, to make shure + + WriteByte(serial_handle, base + 0x5555, 0xAA); // enter command mode + WriteByte(serial_handle, base + 0x2AAA, 0x55); + WriteByte(serial_handle, base + 0x5555, 0x80); // eraze command + WriteByte(serial_handle, base + 0x5555, 0xAA); // enter command mode + WriteByte(serial_handle, base + 0x2AAA, 0x55); + WriteByte(serial_handle, base + 0x5555, 0x10); // chip eraze command + SLEEP(100); // chip eraze time: 100ms + + return 0; } // program a bunch of bytes "by hand" int ProgramBytes(tUartHandle serial_handle, UINT32 address, UINT8* pData, UINT32 size) { - UINT32 base = address & 0xFFF80000; // round down to 512k align - - while (size--) - { - WriteByte(serial_handle, base + 0x5555, 0xAA); // enter command mode - WriteByte(serial_handle, base + 0x2AAA, 0x55); - WriteByte(serial_handle, base + 0x5555, 0xA0); // byte program command - WriteByte(serial_handle, address++, *pData++); - // UART protocol is slow enough such that I don't have to wait 20us here - } - return 0; + UINT32 base = address & 0xFFF80000; // round down to 512k align + + while (size--) + { + WriteByte(serial_handle, base + 0x5555, 0xAA); // enter command mode + WriteByte(serial_handle, base + 0x2AAA, 0x55); + WriteByte(serial_handle, base + 0x5555, 0xA0); // byte program command + WriteByte(serial_handle, address++, *pData++); + // UART protocol is slow enough such that I don't have to wait 20us here + } + return 0; } diff --git a/flash/uart_boot/uart.h b/flash/uart_boot/uart.h index a0c10d1..e844a58 100644 --- a/flash/uart_boot/uart.h +++ b/flash/uart_boot/uart.h @@ -11,42 +11,42 @@ typedef void* tUartHandle; typedef enum { - eNOPARITY, - eODDPARITY, - eEVENPARITY, - eMARKPARITY, - eSPACEPARITY, + eNOPARITY, + eODDPARITY, + eEVENPARITY, + eMARKPARITY, + eSPACEPARITY, } tParity; typedef enum { - eONESTOPBIT, - eONE5STOPBITS, - eTWOSTOPBITS, + eONESTOPBIT, + eONE5STOPBITS, + eTWOSTOPBITS, } tStopBits; // prototypes tUartHandle UartOpen( // returns NULL on error - char* szPortName); // COMx for windows + char* szPortName); // COMx for windows bool UartConfig( // returns true on success, false on error - tUartHandle handle, // the handle returned from UartOpen() - long lBaudRate, // must be one of the "standard" baudrates - tParity nParity, // what kind of parity - tStopBits nStopBits, // how many stop bits - int nByteSize); // size of the "payload", can be 5 to 8 + tUartHandle handle, // the handle returned from UartOpen() + long lBaudRate, // must be one of the "standard" baudrates + tParity nParity, // what kind of parity + tStopBits nStopBits, // how many stop bits + int nByteSize); // size of the "payload", can be 5 to 8 long UartWrite( // returns how much data was actually transmitted - tUartHandle handle, // the handle returned from UartOpen() - unsigned char* pData, // pointer to the data to be transmitted - long lSize); // how many bytes + tUartHandle handle, // the handle returned from UartOpen() + unsigned char* pData, // pointer to the data to be transmitted + long lSize); // how many bytes long UartRead( // returns how much data was actually received - tUartHandle handle, // the handle returned from UartOpen() - unsigned char* pBuffer, // pointer to the destination - long lSize); // how many bytes to read (pBuffer must have enough room) + tUartHandle handle, // the handle returned from UartOpen() + unsigned char* pBuffer, // pointer to the destination + long lSize); // how many bytes to read (pBuffer must have enough room) void UartClose(tUartHandle handle); diff --git a/flash/uart_boot/uart_boot.c b/flash/uart_boot/uart_boot.c index 40c3682..0536a1e 100644 --- a/flash/uart_boot/uart_boot.c +++ b/flash/uart_boot/uart_boot.c @@ -12,359 +12,359 @@ // command line configuration: what shall we do? struct { - char* szPort; // COM port to use - bool bRecorder; // it's a recorder - bool bArchos; // use the Archos monitor to load, instead of UART boot - bool bSpindown; // spindown the harddisk - bool bReadID; // read manufacturer+device ID - char* szFlashfile; // file to be programmed - char* szDumpfile; // file to dump into - char* szExecfile; // file with the executable - bool bTest; // debug action - bool bHold; // hold power (for FMs & V2s) - bool bBlink; // blink red LED - bool bNoDownload; + char* szPort; // COM port to use + bool bRecorder; // it's a recorder + bool bArchos; // use the Archos monitor to load, instead of UART boot + bool bSpindown; // spindown the harddisk + bool bReadID; // read manufacturer+device ID + char* szFlashfile; // file to be programmed + char* szDumpfile; // file to dump into + char* szExecfile; // file with the executable + bool bTest; // debug action + bool bHold; // hold power (for FMs & V2s) + bool bBlink; // blink red LED + bool bNoDownload; } gCmd; int ProcessCmdLine(int argc, char* argv[]) { - argc--; // exclude our name - argv++; - - memset(&gCmd, 0, sizeof(gCmd)); - - if (argc == 0) - { - printf("Usage: uart_boot [-option {filename}]\n"); - printf(" uses activated UART boot mod, box has to be fresh started\n"); - printf("The order of the options does not matter, one letter is sufficient.\n"); - printf("Possible options are (in the order of later processing):\n"); - printf("-port \n"); - printf("-recorder (this is a recorder/FM, default is player if not specified)\n"); - printf("-archos (use Archos bootloader, this one needs powerup while program waits)\n"); - printf("-nodownload (no MiniMon download, it's already active)\n"); - printf("-hold (hold the power, useful for FMs and V2s, so you can release ON)\n"); - printf("-spindown (spindown the harddisk, else it stays on by default)\n"); - printf("-id (read manufacturer and device ID of flash, no checks)\n"); - printf("-flash \n"); - printf("-dump \n"); - printf("-exec \n"); - printf("-test (some test action currently under development, don't use!)\n"); - printf("-blink (blink red LED forever, meant as diagnostics)\n"); - printf("\n"); - printf("Examples:\n"); - printf("uart_boot -r -p COM1 -s -f flashfile.bin -d dumpfile.bin\n"); - printf(" recorder on COM1, spindown HD, program and dump (for e.g. offline verify)\n"); - printf("uart_boot -r -p COM2 -e rockbox.bin\n"); - printf(" recorder on COM2, load Rockbox from file and start it\n"); - exit (0); - } - - - while (argc) - { - if (!strncmp("-port", *argv, 2)) - { - gCmd.szPort = *++argv; - if (--argc <= 0 || **argv == '-') - { - printf("No argument given for option %s, aborting.\n", argv[-1]); - exit (-2); - } - } - else if (!strncmp("-recorder", *argv, 2)) - { - gCmd.bRecorder = true; - } - else if (!strncmp("-archos", *argv, 2)) - { - gCmd.bArchos = true; - } - else if (!strncmp("-nodownload", *argv, 2)) - { - gCmd.bNoDownload = true; - } - else if (!strncmp("-spindown", *argv, 2)) - { - gCmd.bSpindown = true; - } - else if (!strncmp("-id", *argv, 2)) - { - gCmd.bReadID = true; - } - else if (!strncmp("-flash", *argv, 2)) - { - gCmd.szFlashfile = *++argv; - if (--argc <= 0 || **argv == '-') - { - printf("No argument given for option %s, aborting.\n", argv[-1]); - exit (-2); - } - } - else if (!strncmp("-dump", *argv, 2)) - { - gCmd.szDumpfile = *++argv; - if (--argc <= 0 || **argv == '-') - { - printf("No argument given for option %s, aborting.\n", argv[-1]); - exit (-3); - } - } - else if (!strncmp("-exec", *argv, 2)) - { - gCmd.szExecfile = *++argv; - if (--argc <= 0 || **argv == '-') - { - printf("No argument given for option %s, aborting.\n", argv[-1]); - exit (-4); - } - } - else if (!strncmp("-test", *argv, 2)) - { - gCmd.bTest = true; - } - else if (!strncmp("-hold", *argv, 2)) - { - gCmd.bHold = true; - } - else if (!strncmp("-blink", *argv, 2)) - { - gCmd.bBlink = true; - } - else - { - printf("Unknown option %s, aborting. Use 'uart_boot' without options for help.\n", *argv); - exit(-1); - } - - argv++; - argc--; - } - - return 0; + argc--; // exclude our name + argv++; + + memset(&gCmd, 0, sizeof(gCmd)); + + if (argc == 0) + { + printf("Usage: uart_boot [-option {filename}]\n"); + printf(" uses activated UART boot mod, box has to be fresh started\n"); + printf("The order of the options does not matter, one letter is sufficient.\n"); + printf("Possible options are (in the order of later processing):\n"); + printf("-port \n"); + printf("-recorder (this is a recorder/FM, default is player if not specified)\n"); + printf("-archos (use Archos bootloader, this one needs powerup while program waits)\n"); + printf("-nodownload (no MiniMon download, it's already active)\n"); + printf("-hold (hold the power, useful for FMs and V2s, so you can release ON)\n"); + printf("-spindown (spindown the harddisk, else it stays on by default)\n"); + printf("-id (read manufacturer and device ID of flash, no checks)\n"); + printf("-flash \n"); + printf("-dump \n"); + printf("-exec \n"); + printf("-test (some test action currently under development, don't use!)\n"); + printf("-blink (blink red LED forever, meant as diagnostics)\n"); + printf("\n"); + printf("Examples:\n"); + printf("uart_boot -r -p COM1 -s -f flashfile.bin -d dumpfile.bin\n"); + printf(" recorder on COM1, spindown HD, program and dump (for e.g. offline verify)\n"); + printf("uart_boot -r -p COM2 -e rockbox.bin\n"); + printf(" recorder on COM2, load Rockbox from file and start it\n"); + exit (0); + } + + + while (argc) + { + if (!strncmp("-port", *argv, 2)) + { + gCmd.szPort = *++argv; + if (--argc <= 0 || **argv == '-') + { + printf("No argument given for option %s, aborting.\n", argv[-1]); + exit (-2); + } + } + else if (!strncmp("-recorder", *argv, 2)) + { + gCmd.bRecorder = true; + } + else if (!strncmp("-archos", *argv, 2)) + { + gCmd.bArchos = true; + } + else if (!strncmp("-nodownload", *argv, 2)) + { + gCmd.bNoDownload = true; + } + else if (!strncmp("-spindown", *argv, 2)) + { + gCmd.bSpindown = true; + } + else if (!strncmp("-id", *argv, 2)) + { + gCmd.bReadID = true; + } + else if (!strncmp("-flash", *argv, 2)) + { + gCmd.szFlashfile = *++argv; + if (--argc <= 0 || **argv == '-') + { + printf("No argument given for option %s, aborting.\n", argv[-1]); + exit (-2); + } + } + else if (!strncmp("-dump", *argv, 2)) + { + gCmd.szDumpfile = *++argv; + if (--argc <= 0 || **argv == '-') + { + printf("No argument given for option %s, aborting.\n", argv[-1]); + exit (-3); + } + } + else if (!strncmp("-exec", *argv, 2)) + { + gCmd.szExecfile = *++argv; + if (--argc <= 0 || **argv == '-') + { + printf("No argument given for option %s, aborting.\n", argv[-1]); + exit (-4); + } + } + else if (!strncmp("-test", *argv, 2)) + { + gCmd.bTest = true; + } + else if (!strncmp("-hold", *argv, 2)) + { + gCmd.bHold = true; + } + else if (!strncmp("-blink", *argv, 2)) + { + gCmd.bBlink = true; + } + else + { + printf("Unknown option %s, aborting. Use 'uart_boot' without options for help.\n", *argv); + exit(-1); + } + + argv++; + argc--; + } + + return 0; } int main(int argc, char* argv[]) { - tUartHandle serial_handle; - UINT16 reg; - FILE* pFile; - size_t size; - static UINT8 abFirmware[256*1024]; // blocksize - memset(abFirmware, 0xFF, sizeof(abFirmware)); - - ProcessCmdLine(argc, argv); // what to do - - if (!gCmd.szPort) - { - printf("No serial port given, use 'uart_boot' without parameters for options.\n"); - exit(-1); - } - - serial_handle = UartOpen(gCmd.szPort); // opening serial port - if (serial_handle == NULL) - { - printf("Cannot open port %s\n", gCmd.szPort); - return -1; - } - - if (gCmd.bNoDownload) - { // just set our speed + tUartHandle serial_handle; + UINT16 reg; + FILE* pFile; + size_t size; + static UINT8 abFirmware[256*1024]; // blocksize + memset(abFirmware, 0xFF, sizeof(abFirmware)); + + ProcessCmdLine(argc, argv); // what to do + + if (!gCmd.szPort) + { + printf("No serial port given, use 'uart_boot' without parameters for options.\n"); + exit(-1); + } + + serial_handle = UartOpen(gCmd.szPort); // opening serial port + if (serial_handle == NULL) + { + printf("Cannot open port %s\n", gCmd.szPort); + return -1; + } + + if (gCmd.bNoDownload) + { // just set our speed int baudrate = gCmd.bRecorder ? 115200 : 14400; if (!gCmd.bRecorder && gCmd.bTest) { // experimental Player speedup to 38400 baud baudrate = 38400; } - if (!UartConfig(serial_handle, baudrate, eNOPARITY, eONESTOPBIT, 8)) - { - printf("Error setting up COM params\n"); - exit(1); - } - } - else - { // download the monitor program - if (gCmd.bArchos) - { - printf("Waiting for box startup to download monitor..."); - DownloadArchosMonitor(serial_handle, "minimon_archos.bin"); // load the monitor image - printf("\b\b\b done.\n"); - } - else - { - printf("Downloading monitor..."); - DownloadMonitor(serial_handle, gCmd.bRecorder, "minimon.bin"); // load the monitor image - // From now on, we can talk to the box. - printf("\b\b\b done.\n"); - - if (gCmd.bRecorder) - { // we can be faster - SetTargetBaudrate(serial_handle, 11059200, 115200); // set to 115200 - } + if (!UartConfig(serial_handle, baudrate, eNOPARITY, eONESTOPBIT, 8)) + { + printf("Error setting up COM params\n"); + exit(1); + } + } + else + { // download the monitor program + if (gCmd.bArchos) + { + printf("Waiting for box startup to download monitor..."); + DownloadArchosMonitor(serial_handle, "minimon_archos.bin"); // load the monitor image + printf("\b\b\b done.\n"); + } + else + { + printf("Downloading monitor..."); + DownloadMonitor(serial_handle, gCmd.bRecorder, "minimon.bin"); // load the monitor image + // From now on, we can talk to the box. + printf("\b\b\b done.\n"); + + if (gCmd.bRecorder) + { // we can be faster + SetTargetBaudrate(serial_handle, 11059200, 115200); // set to 115200 + } else if (gCmd.bTest) // experimental Player speedup to 38400 baud - { - SetTargetBaudrate(serial_handle, 12000000, 38400); // set to 38400 + { + SetTargetBaudrate(serial_handle, 12000000, 38400); // set to 38400 } - } - } + } + } - // do the action - if (gCmd.bHold) - { - // hold power for FM - reg = ReadHalfword(serial_handle, 0x05FFFFC2); // PBDR - reg |= 0x0020; // set PB5 to keep power - WriteHalfword(serial_handle, 0x05FFFFC2, reg); + // do the action + if (gCmd.bHold) + { + // hold power for FM + reg = ReadHalfword(serial_handle, 0x05FFFFC2); // PBDR + reg |= 0x0020; // set PB5 to keep power + WriteHalfword(serial_handle, 0x05FFFFC2, reg); - reg = ReadHalfword(serial_handle, 0x05FFFFC6); // PBIOR - reg |= 0x0020; // make PB5 an output - WriteHalfword(serial_handle, 0x05FFFFC6, reg); - printf("Power hold, you can release ON button now.\n"); - } + reg = ReadHalfword(serial_handle, 0x05FFFFC6); // PBIOR + reg |= 0x0020; // make PB5 an output + WriteHalfword(serial_handle, 0x05FFFFC6, reg); + printf("Power hold, you can release ON button now.\n"); + } - if (gCmd.bSpindown) - { - // power down the disk + if (gCmd.bSpindown) + { + // power down the disk if (gCmd.bRecorder) { // Recorder (V1+V2) and FM have disk power control on PA5 - reg = ReadHalfword(serial_handle, 0x05FFFFCA); // PACR2 - reg &= ~0x0400; // clear bit 10: GPIO - WriteHalfword(serial_handle, 0x05FFFFCA, reg); + reg = ReadHalfword(serial_handle, 0x05FFFFCA); // PACR2 + reg &= ~0x0400; // clear bit 10: GPIO + WriteHalfword(serial_handle, 0x05FFFFCA, reg); - reg = ReadHalfword(serial_handle, 0x05FFFFC4); // PAIOR - reg |= 0x0020; // set bit 5: output - WriteHalfword(serial_handle, 0x05FFFFC4, reg); + reg = ReadHalfword(serial_handle, 0x05FFFFC4); // PAIOR + reg |= 0x0020; // set bit 5: output + WriteHalfword(serial_handle, 0x05FFFFC4, reg); - reg = ReadHalfword(serial_handle, 0x05FFFFC0); // PADR - reg &= ~0x0020; // clear PA5 to power down - WriteHalfword(serial_handle, 0x05FFFFC0, reg); + reg = ReadHalfword(serial_handle, 0x05FFFFC0); // PADR + reg &= ~0x0020; // clear PA5 to power down + WriteHalfword(serial_handle, 0x05FFFFC0, reg); } else { // new Players have disk power control on PB4 - reg = ReadHalfword(serial_handle, 0x05FFFFC6); // PBIOR - reg |= 0x0010; // set bit 4: output - WriteHalfword(serial_handle, 0x05FFFFC6, reg); + reg = ReadHalfword(serial_handle, 0x05FFFFC6); // PBIOR + reg |= 0x0010; // set bit 4: output + WriteHalfword(serial_handle, 0x05FFFFC6, reg); - reg = ReadHalfword(serial_handle, 0x05FFFFC2); // PBDR - reg &= ~0x0010; // clear PB4 to power down - WriteHalfword(serial_handle, 0x05FFFFC2, reg); + reg = ReadHalfword(serial_handle, 0x05FFFFC2); // PBDR + reg &= ~0x0010; // clear PB4 to power down + WriteHalfword(serial_handle, 0x05FFFFC2, reg); + } + printf("Harddisk powered down.\n"); + } + + + if (gCmd.bReadID) + { + UINT8 bMan, bID; + ReadID(serial_handle, 0x02000000, &bMan, &bID); + printf("Manufacturer ID = 0x%02X, Device ID = 0x%02X\n", bMan, bID); + } + + + if (gCmd.szFlashfile) + { + // flash a firmware file + printf("Flashing file %s...", gCmd.szFlashfile); + pFile = fopen(gCmd.szFlashfile, "rb"); + if (pFile == NULL) + { + printf("\nFlash file %s not found, exiting.\n", gCmd.szFlashfile); + return -2; + } + size = fread(abFirmware, 1, sizeof(abFirmware), pFile); + fclose (pFile); + + EraseChip(serial_handle, 0x02000000); + FlashByteMultiple(serial_handle, 0x02000000, size, abFirmware); + printf("\b\b\b done.\n"); + } + + + if (gCmd.szDumpfile) + { + // dump the flash content + printf("Writing flash dump into file %s...", gCmd.szDumpfile); + ReadByteMultiple(serial_handle, 0x02000000, sizeof(abFirmware), abFirmware); + pFile = fopen(gCmd.szDumpfile, "wb"); + if (pFile == NULL) + { + printf("\nDump file %s cannot be opened, exiting.\n", gCmd.szDumpfile); + return -3; + } + fwrite(abFirmware, 1, sizeof(abFirmware), pFile); + fclose (pFile); + printf("\b\b\b done.\n"); + } + + + if (gCmd.szExecfile) + { + UINT32 size; + + printf("Downloading program..."); + + // init the DRAM controller like the flash boot does + reg = ReadHalfword(serial_handle, 0x05FFFFCA); // PACR2 + reg &= 0xFFFB; // PA1 config: /RAS + reg |= 0x0008; + WriteHalfword(serial_handle, 0x05FFFFCA, reg); // PACR2 + reg = 0xAFFF; // CS1, CS3 config: /CASH. /CASL + WriteHalfword(serial_handle, 0x05FFFFEE, reg); // CASCR + reg = ReadHalfword(serial_handle, 0x05FFFFA0); // BCR + reg |= 0x8000; // DRAM enable, default bus + WriteHalfword(serial_handle, 0x05FFFFA0, reg); // BCR + reg = ReadHalfword(serial_handle, 0x05FFFFA2); // WCR1 + reg &= 0xFDFD; // 1-cycle CAS + WriteHalfword(serial_handle, 0x05FFFFA2, reg); // WCR1 + reg = 0x0E00; // CAS 35%, multiplexed, 10 bit row addr. + WriteHalfword(serial_handle, 0x05FFFFA8, reg); // DCR + reg = 0x5AB0; // refresh, 4 cycle waitstate + WriteHalfword(serial_handle, 0x05FFFFAC, reg); // RCR + reg = 0x9605; // refresh constant + WriteHalfword(serial_handle, 0x05FFFFB2, reg); // RTCOR + reg = 0xA518; // phi/32 + WriteHalfword(serial_handle, 0x05FFFFAE, reg); // RTCSR + + + // download Rockbox/gdb + pFile = fopen(gCmd.szExecfile, "rb"); + if (pFile == NULL) + { + printf("\nExecutable file %s cannot be opened, exiting.\n", gCmd.szExecfile); + return -3; } - printf("Harddisk powered down.\n"); - } - - - if (gCmd.bReadID) - { - UINT8 bMan, bID; - ReadID(serial_handle, 0x02000000, &bMan, &bID); - printf("Manufacturer ID = 0x%02X, Device ID = 0x%02X\n", bMan, bID); - } - - - if (gCmd.szFlashfile) - { - // flash a firmware file - printf("Flashing file %s...", gCmd.szFlashfile); - pFile = fopen(gCmd.szFlashfile, "rb"); - if (pFile == NULL) - { - printf("\nFlash file %s not found, exiting.\n", gCmd.szFlashfile); - return -2; - } - size = fread(abFirmware, 1, sizeof(abFirmware), pFile); - fclose (pFile); - - EraseChip(serial_handle, 0x02000000); - FlashByteMultiple(serial_handle, 0x02000000, size, abFirmware); - printf("\b\b\b done.\n"); - } - - - if (gCmd.szDumpfile) - { - // dump the flash content - printf("Writing flash dump into file %s...", gCmd.szDumpfile); - ReadByteMultiple(serial_handle, 0x02000000, sizeof(abFirmware), abFirmware); - pFile = fopen(gCmd.szDumpfile, "wb"); - if (pFile == NULL) - { - printf("\nDump file %s cannot be opened, exiting.\n", gCmd.szDumpfile); - return -3; - } - fwrite(abFirmware, 1, sizeof(abFirmware), pFile); - fclose (pFile); - printf("\b\b\b done.\n"); - } - - - if (gCmd.szExecfile) - { - UINT32 size; - - printf("Downloading program..."); - - // init the DRAM controller like the flash boot does - reg = ReadHalfword(serial_handle, 0x05FFFFCA); // PACR2 - reg &= 0xFFFB; // PA1 config: /RAS - reg |= 0x0008; - WriteHalfword(serial_handle, 0x05FFFFCA, reg); // PACR2 - reg = 0xAFFF; // CS1, CS3 config: /CASH. /CASL - WriteHalfword(serial_handle, 0x05FFFFEE, reg); // CASCR - reg = ReadHalfword(serial_handle, 0x05FFFFA0); // BCR - reg |= 0x8000; // DRAM enable, default bus - WriteHalfword(serial_handle, 0x05FFFFA0, reg); // BCR - reg = ReadHalfword(serial_handle, 0x05FFFFA2); // WCR1 - reg &= 0xFDFD; // 1-cycle CAS - WriteHalfword(serial_handle, 0x05FFFFA2, reg); // WCR1 - reg = 0x0E00; // CAS 35%, multiplexed, 10 bit row addr. - WriteHalfword(serial_handle, 0x05FFFFA8, reg); // DCR - reg = 0x5AB0; // refresh, 4 cycle waitstate - WriteHalfword(serial_handle, 0x05FFFFAC, reg); // RCR - reg = 0x9605; // refresh constant - WriteHalfword(serial_handle, 0x05FFFFB2, reg); // RTCOR - reg = 0xA518; // phi/32 - WriteHalfword(serial_handle, 0x05FFFFAE, reg); // RTCSR - - - // download Rockbox/gdb - pFile = fopen(gCmd.szExecfile, "rb"); - if (pFile == NULL) - { - printf("\nExecutable file %s cannot be opened, exiting.\n", gCmd.szExecfile); - return -3; - } - - size = fread(abFirmware, 1, sizeof(abFirmware), pFile); - WriteByteMultiple(serial_handle, 0x09000000, size, abFirmware); - fclose (pFile); - printf("\b\b\b done.\n"); - - // start rockbox/gdb - printf("Starting program..."); - Execute(serial_handle, 0x09000200, false); - printf("\b\b\b done.\n"); - } - - - if (gCmd.bBlink) - { - // blinking LED - UINT8 byte; - printf("Flashing red LED forever... (stop with Ctrl-C)\n"); - byte = ReadByte(serial_handle, 0x05FFFFC3); - while (1) - { - byte ^= 0x40; - WriteByte(serial_handle, 0x05FFFFC3, byte); - Sleep(200); - } - } - - return 0; + + size = fread(abFirmware, 1, sizeof(abFirmware), pFile); + WriteByteMultiple(serial_handle, 0x09000000, size, abFirmware); + fclose (pFile); + printf("\b\b\b done.\n"); + + // start rockbox/gdb + printf("Starting program..."); + Execute(serial_handle, 0x09000200, false); + printf("\b\b\b done.\n"); + } + + + if (gCmd.bBlink) + { + // blinking LED + UINT8 byte; + printf("Flashing red LED forever... (stop with Ctrl-C)\n"); + byte = ReadByte(serial_handle, 0x05FFFFC3); + while (1) + { + byte ^= 0x40; + WriteByte(serial_handle, 0x05FFFFC3, byte); + Sleep(200); + } + } + + return 0; } diff --git a/flash/uart_boot/uart_win.c b/flash/uart_boot/uart_win.c index 6e82e95..96a876a 100644 --- a/flash/uart_boot/uart_win.c +++ b/flash/uart_boot/uart_win.c @@ -8,132 +8,132 @@ // COMx for windows, returns NULL on error tUartHandle UartOpen(char* szPortName) { - HANDLE serial_handle; - DCB dcb; - COMMTIMEOUTS cto = { 0, 0, 0, 0, 0 }; - - memset(&dcb,0,sizeof(dcb)); - - /* -------------------------------------------------------------------- */ - // set DCB to configure the serial port - dcb.DCBlength = sizeof(dcb); - - dcb.fOutxCtsFlow = 0; - dcb.fOutxDsrFlow = 0; - dcb.fDtrControl = DTR_CONTROL_ENABLE; // enable for power - dcb.fDsrSensitivity = 0; - dcb.fRtsControl = RTS_CONTROL_ENABLE; // enable for power - dcb.fOutX = 0; - dcb.fInX = 0; - - /* ----------------- misc parameters ----- */ - dcb.fErrorChar = 0; - dcb.fBinary = 1; - dcb.fNull = 0; - dcb.fAbortOnError = 0; - dcb.wReserved = 0; - dcb.XonLim = 2; - dcb.XoffLim = 4; - dcb.XonChar = 0x13; - dcb.XoffChar = 0x19; - dcb.EvtChar = 0; - - /* ----------------- defaults ----- */ - dcb.BaudRate = 4800; - dcb.Parity = NOPARITY; - dcb.fParity = 0; - dcb.StopBits = ONESTOPBIT; - dcb.ByteSize = 8; - - - /* -------------------------------------------------------------------- */ - // opening serial port - serial_handle = CreateFile(szPortName, GENERIC_READ | GENERIC_WRITE, - 0, NULL, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, NULL); - - if (serial_handle == INVALID_HANDLE_VALUE) - { - //printf("Cannot open port \n"); - return NULL; - } - - SetCommMask(serial_handle, 0); - SetCommTimeouts(serial_handle, &cto); - - if(!SetCommState(serial_handle, &dcb)) - { - //printf("Error setting up COM params\n"); - CloseHandle(serial_handle); - return NULL; - } - - return serial_handle; + HANDLE serial_handle; + DCB dcb; + COMMTIMEOUTS cto = { 0, 0, 0, 0, 0 }; + + memset(&dcb,0,sizeof(dcb)); + + /* -------------------------------------------------------------------- */ + // set DCB to configure the serial port + dcb.DCBlength = sizeof(dcb); + + dcb.fOutxCtsFlow = 0; + dcb.fOutxDsrFlow = 0; + dcb.fDtrControl = DTR_CONTROL_ENABLE; // enable for power + dcb.fDsrSensitivity = 0; + dcb.fRtsControl = RTS_CONTROL_ENABLE; // enable for power + dcb.fOutX = 0; + dcb.fInX = 0; + + /* ----------------- misc parameters ----- */ + dcb.fErrorChar = 0; + dcb.fBinary = 1; + dcb.fNull = 0; + dcb.fAbortOnError = 0; + dcb.wReserved = 0; + dcb.XonLim = 2; + dcb.XoffLim = 4; + dcb.XonChar = 0x13; + dcb.XoffChar = 0x19; + dcb.EvtChar = 0; + + /* ----------------- defaults ----- */ + dcb.BaudRate = 4800; + dcb.Parity = NOPARITY; + dcb.fParity = 0; + dcb.StopBits = ONESTOPBIT; + dcb.ByteSize = 8; + + + /* -------------------------------------------------------------------- */ + // opening serial port + serial_handle = CreateFile(szPortName, GENERIC_READ | GENERIC_WRITE, + 0, NULL, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, NULL); + + if (serial_handle == INVALID_HANDLE_VALUE) + { + //printf("Cannot open port \n"); + return NULL; + } + + SetCommMask(serial_handle, 0); + SetCommTimeouts(serial_handle, &cto); + + if(!SetCommState(serial_handle, &dcb)) + { + //printf("Error setting up COM params\n"); + CloseHandle(serial_handle); + return NULL; + } + + return serial_handle; } // returns true on success, false on error bool UartConfig(tUartHandle handle, long lBaudRate, tParity nParity, tStopBits nStopBits, int nByteSize) { - DCB dcb; - - if (!GetCommState (handle, &dcb)) - { - return false; - } - - dcb.BaudRate = lBaudRate; - dcb.Parity = nParity; - dcb.StopBits = nStopBits; - dcb.ByteSize = nByteSize; - - if(!SetCommState(handle, &dcb)) - { - //DWORD dwErr = GetLastError(); - //printf("Error %d setting up COM params for baudrate byte\n", dwErr); - return false; - } - - return true; + DCB dcb; + + if (!GetCommState (handle, &dcb)) + { + return false; + } + + dcb.BaudRate = lBaudRate; + dcb.Parity = nParity; + dcb.StopBits = nStopBits; + dcb.ByteSize = nByteSize; + + if(!SetCommState(handle, &dcb)) + { + //DWORD dwErr = GetLastError(); + //printf("Error %d setting up COM params for baudrate byte\n", dwErr); + return false; + } + + return true; } // returns how much data was actually transmitted long UartWrite(tUartHandle handle, unsigned char* pData, long lSize) { - BOOL success; - DWORD result_nbr; + BOOL success; + DWORD result_nbr; - success = WriteFile(handle, pData, lSize, &result_nbr, NULL); + success = WriteFile(handle, pData, lSize, &result_nbr, NULL); - if(!success) - { - return 0; - } + if(!success) + { + return 0; + } - return result_nbr; + return result_nbr; } // returns how much data was actually received long UartRead(tUartHandle handle, unsigned char* pBuffer, long lSize) { - BOOL success; - DWORD read_nbr; + BOOL success; + DWORD read_nbr; - success = ReadFile(handle, pBuffer, lSize, &read_nbr, NULL); - if(!success) - { - return 0; - } + success = ReadFile(handle, pBuffer, lSize, &read_nbr, NULL); + if(!success) + { + return 0; + } - return read_nbr; + return read_nbr; } void UartClose(tUartHandle handle) { - if (handle != NULL) - { - CloseHandle(handle); - } + if (handle != NULL) + { + CloseHandle(handle); + } - return; + return; } diff --git a/gdb/sh-stub.c b/gdb/sh-stub.c index 9a68d2f..0c038a5 100644 --- a/gdb/sh-stub.c +++ b/gdb/sh-stub.c @@ -34,7 +34,7 @@ /**************************************************************************** - THIS SOFTWARE IS NOT COPYRIGHTED + THIS SOFTWARE IS NOT COPYRIGHTED HP offers the following for use in the public domain. HP makes no warranty with regard to the software or it's performance and the @@ -52,117 +52,117 @@ A debug packet whose contents are is encapsulated for transmission in the form: - $ # CSUM1 CSUM2 + $ # CSUM1 CSUM2 - must be ASCII alphanumeric and cannot include characters - '$' or '#'. If starts with two characters followed by - ':', then the existing stubs interpret this as a sequence number. + must be ASCII alphanumeric and cannot include characters + '$' or '#'. If starts with two characters followed by + ':', then the existing stubs interpret this as a sequence number. - CSUM1 and CSUM2 are ascii hex representation of an 8-bit - checksum of , the most significant nibble is sent first. - the hex digits 0-9,a-f are used. + CSUM1 and CSUM2 are ascii hex representation of an 8-bit + checksum of , the most significant nibble is sent first. + the hex digits 0-9,a-f are used. Receiver responds with: - + - if CSUM is correct and ready for next packet - - - if CSUM is incorrect + + - if CSUM is correct and ready for next packet + - - if CSUM is incorrect is as follows: All values are encoded in ascii hex digits. - Request Packet - - read registers g - reply XX....X Each byte of register data - is described by two hex digits. - Registers are in the internal order - for GDB, and the bytes in a register - are in the same order the machine uses. - or ENN for an error. - - write regs GXX..XX Each byte of register data - is described by two hex digits. - reply OK for success - ENN for an error - - write reg Pn...=r... Write register n... with value r..., - which contains two hex digits for each - byte in the register (target byte - order). - reply OK for success - ENN for an error - (not supported by all stubs). - - read mem mAA..AA,LLLL AA..AA is address, LLLL is length. - reply XX..XX XX..XX is mem contents - Can be fewer bytes than requested - if able to read only part of the data. - or ENN NN is errno - - write mem MAA..AA,LLLL:XX..XX - AA..AA is address, - LLLL is number of bytes, - XX..XX is data - reply OK for success - ENN for an error (this includes the case - where only part of the data was - written). - - cont cAA..AA AA..AA is address to resume - If AA..AA is omitted, - resume at same address. - - step sAA..AA AA..AA is address to resume - If AA..AA is omitted, - resume at same address. - - last signal ? Reply the current reason for stopping. + Request Packet + + read registers g + reply XX....X Each byte of register data + is described by two hex digits. + Registers are in the internal order + for GDB, and the bytes in a register + are in the same order the machine uses. + or ENN for an error. + + write regs GXX..XX Each byte of register data + is described by two hex digits. + reply OK for success + ENN for an error + + write reg Pn...=r... Write register n... with value r..., + which contains two hex digits for each + byte in the register (target byte + order). + reply OK for success + ENN for an error + (not supported by all stubs). + + read mem mAA..AA,LLLL AA..AA is address, LLLL is length. + reply XX..XX XX..XX is mem contents + Can be fewer bytes than requested + if able to read only part of the data. + or ENN NN is errno + + write mem MAA..AA,LLLL:XX..XX + AA..AA is address, + LLLL is number of bytes, + XX..XX is data + reply OK for success + ENN for an error (this includes the case + where only part of the data was + written). + + cont cAA..AA AA..AA is address to resume + If AA..AA is omitted, + resume at same address. + + step sAA..AA AA..AA is address to resume + If AA..AA is omitted, + resume at same address. + + last signal ? Reply the current reason for stopping. This is the same reply as is generated - for step or cont : SAA where AA is the - signal number. - - There is no immediate reply to step or cont. - The reply comes when the machine stops. - It is SAA AA is the "signal number" - - or... TAAn...:r...;n:r...;n...:r...; - AA = signal number - n... = register number - r... = register contents - or... WAA The process exited, and AA is - the exit status. This is only - applicable for certains sorts of - targets. - kill request k - - toggle debug d toggle debug flag (see 386 & 68k stubs) - reset r reset -- see sparc stub. - reserved On other requests, the stub should - ignore the request and send an empty - response ($#). This way - we can extend the protocol and GDB - can tell whether the stub it is - talking to uses the old or the new. - search tAA:PP,MM Search backwards starting at address - AA for a match with pattern PP and - mask MM. PP and MM are 4 bytes. - Not supported by all stubs. - - general query qXXXX Request info about XXXX. - general set QXXXX=yyyy Set value of XXXX to yyyy. - query sect offs qOffsets Get section offsets. Reply is - Text=xxx;Data=yyy;Bss=zzz - console output Otext Send text to stdout. Only comes from - remote target. - - Responses can be run-length encoded to save space. A '*' means that - the next character is an ASCII encoding giving a repeat count which - stands for that many repititions of the character preceding the '*'. - The encoding is n+29, yielding a printable character where n >=3 - (which is where rle starts to win). Don't use an n > 126. - - So - "0* " means the same as "0000". */ + for step or cont : SAA where AA is the + signal number. + + There is no immediate reply to step or cont. + The reply comes when the machine stops. + It is SAA AA is the "signal number" + + or... TAAn...:r...;n:r...;n...:r...; + AA = signal number + n... = register number + r... = register contents + or... WAA The process exited, and AA is + the exit status. This is only + applicable for certains sorts of + targets. + kill request k + + toggle debug d toggle debug flag (see 386 & 68k stubs) + reset r reset -- see sparc stub. + reserved On other requests, the stub should + ignore the request and send an empty + response ($#). This way + we can extend the protocol and GDB + can tell whether the stub it is + talking to uses the old or the new. + search tAA:PP,MM Search backwards starting at address + AA for a match with pattern PP and + mask MM. PP and MM are 4 bytes. + Not supported by all stubs. + + general query qXXXX Request info about XXXX. + general set QXXXX=yyyy Set value of XXXX to yyyy. + query sect offs qOffsets Get section offsets. Reply is + Text=xxx;Data=yyy;Bss=zzz + console output Otext Send text to stdout. Only comes from + remote target. + + Responses can be run-length encoded to save space. A '*' means that + the next character is an ASCII encoding giving a repeat count which + stands for that many repititions of the character preceding the '*'. + The encoding is n+29, yielding a printable character where n >=3 + (which is where rle starts to win). Don't use an n > 126. + + So + "0* " means the same as "0000". */ #include "sh7034.h" #include @@ -212,7 +212,7 @@ int setjmp(jmp_buf __jmpb); /* * Number of bytes for registers */ -#define NUMREGBYTES 112 /* 92 */ +#define NUMREGBYTES 112 /* 92 */ /* * Forward declarations @@ -441,10 +441,10 @@ int ata_wait_for_rdy(void) int ata_spindown(int time) { - /* Port A setup */ - PAIOR |= 0x0280; /* output for ATA reset, IDE enable */ - PADR |= 0x0200; /* release ATA reset */ - PACR2 &= 0xBFFF; /* GPIO function for PA7 (IDE enable) */ + /* Port A setup */ + PAIOR |= 0x0280; /* output for ATA reset, IDE enable */ + PADR |= 0x0200; /* release ATA reset */ + PACR2 &= 0xBFFF; /* GPIO function for PA7 (IDE enable) */ /* activate ATA */ PADR &= ~0x80; @@ -494,7 +494,7 @@ char lowhex(int x) * Assembly macros */ -#define BREAKPOINT() asm("trapa #0x20"::); +#define BREAKPOINT() asm("trapa #0x20"::); /* @@ -619,11 +619,11 @@ unsigned char *getpacket (void) if (checksum != xmitcsum) { - serial_putc ('-'); /* failed checksum */ + serial_putc ('-'); /* failed checksum */ } else { - serial_putc ('+'); /* successful transfer */ + serial_putc ('+'); /* successful transfer */ /* if a sequence char is present, reply the sequence ID */ if (buffer[2] == ':') @@ -703,11 +703,11 @@ void handle_buserror (void) longjmp (remcomEnv, 1); } -#define SIGINT 2 /* interrupt */ -#define SIGILL 4 /* illegal instruction (not reset when caught) */ -#define SIGTRAP 5 /* trace trap (not reset when caught) */ -#define SIGEMT 7 /* EMT instruction */ -#define SIGBUS 10 /* bus error */ +#define SIGINT 2 /* interrupt */ +#define SIGILL 4 /* illegal instruction (not reset when caught) */ +#define SIGTRAP 5 /* trace trap (not reset when caught) */ +#define SIGEMT 7 /* EMT instruction */ +#define SIGBUS 10 /* bus error */ /* * this function takes the SH-1 exception number and attempts to @@ -720,19 +720,19 @@ static int computeSignal (int exceptionVector) { case INVALID_INSN_VEC: sigval = SIGILL; - break; + break; case INVALID_SLOT_VEC: sigval = SIGILL; - break; + break; case CPU_BUS_ERROR_VEC: sigval = SIGBUS; - break; + break; case DMA_BUS_ERROR_VEC: sigval = SIGBUS; - break; + break; case NMI_VEC: sigval = SIGINT; - break; + break; case TRAP_VEC: case USER_VEC: @@ -740,7 +740,7 @@ static int computeSignal (int exceptionVector) break; default: - sigval = SIGEMT; /* "software generated"*/ + sigval = SIGEMT; /* "software generated"*/ break; } return (sigval); @@ -1017,79 +1017,79 @@ typedef struct */ const vec_type vectable __attribute__ ((section (".vectors"))) = { - &start, /* 0: Power-on reset PC */ + &start, /* 0: Power-on reset PC */ stack, /* 1: Power-on reset SP */ - &start, /* 2: Manual reset PC */ + &start, /* 2: Manual reset PC */ stack, /* 3: Manual reset SP */ { - &catch_exception_4, /* 4: General invalid instruction */ - &catch_exception_5, /* 5: Reserved for system */ - &catch_exception_6, /* 6: Invalid slot instruction */ - &catch_exception_7, /* 7: Reserved for system */ - &catch_exception_8, /* 8: Reserved for system */ - &catch_exception_9, /* 9: CPU bus error */ - &catch_exception_10, /* 10: DMA bus error */ - &catch_exception_11, /* 11: NMI */ - &catch_exception_12, /* 12: User break */ - &catch_exception_13, /* 13: Reserved for system */ - &catch_exception_14, /* 14: Reserved for system */ - &catch_exception_15, /* 15: Reserved for system */ - &catch_exception_16, /* 16: Reserved for system */ - &catch_exception_17, /* 17: Reserved for system */ - &catch_exception_18, /* 18: Reserved for system */ - &catch_exception_19, /* 19: Reserved for system */ - &catch_exception_20, /* 20: Reserved for system */ - &catch_exception_21, /* 21: Reserved for system */ - &catch_exception_22, /* 22: Reserved for system */ - &catch_exception_23, /* 23: Reserved for system */ - &catch_exception_24, /* 24: Reserved for system */ - &catch_exception_25, /* 25: Reserved for system */ - &catch_exception_26, /* 26: Reserved for system */ - &catch_exception_27, /* 27: Reserved for system */ - &catch_exception_28, /* 28: Reserved for system */ - &catch_exception_29, /* 29: Reserved for system */ - &catch_exception_30, /* 30: Reserved for system */ - &catch_exception_31, /* 31: Reserved for system */ - &catch_exception_32, /* 32: Trap instr (user vectors) */ - &catch_exception_33, /* 33: Trap instr (user vectors) */ - &catch_exception_34, /* 34: Trap instr (user vectors) */ - &catch_exception_35, /* 35: Trap instr (user vectors) */ - &catch_exception_36, /* 36: Trap instr (user vectors) */ - &catch_exception_37, /* 37: Trap instr (user vectors) */ - &catch_exception_38, /* 38: Trap instr (user vectors) */ - &catch_exception_39, /* 39: Trap instr (user vectors) */ - &catch_exception_40, /* 40: Trap instr (user vectors) */ - &catch_exception_41, /* 41: Trap instr (user vectors) */ - &catch_exception_42, /* 42: Trap instr (user vectors) */ - &catch_exception_43, /* 43: Trap instr (user vectors) */ - &catch_exception_44, /* 44: Trap instr (user vectors) */ - &catch_exception_45, /* 45: Trap instr (user vectors) */ - &catch_exception_46, /* 46: Trap instr (user vectors) */ - &catch_exception_47, /* 47: Trap instr (user vectors) */ - &catch_exception_48, /* 48: Trap instr (user vectors) */ - &catch_exception_49, /* 49: Trap instr (user vectors) */ - &catch_exception_50, /* 50: Trap instr (user vectors) */ - &catch_exception_51, /* 51: Trap instr (user vectors) */ - &catch_exception_52, /* 52: Trap instr (user vectors) */ - &catch_exception_53, /* 53: Trap instr (user vectors) */ - &catch_exception_54, /* 54: Trap instr (user vectors) */ - &catch_exception_55, /* 55: Trap instr (user vectors) */ - &catch_exception_56, /* 56: Trap instr (user vectors) */ - &catch_exception_57, /* 57: Trap instr (user vectors) */ - &catch_exception_58, /* 58: Trap instr (user vectors) */ - &catch_exception_59, /* 59: Trap instr (user vectors) */ - &catch_exception_60, /* 60: Trap instr (user vectors) */ - &catch_exception_61, /* 61: Trap instr (user vectors) */ - &catch_exception_62, /* 62: Trap instr (user vectors) */ - &catch_exception_63, /* 63: Trap instr (user vectors) */ - &catch_exception_64, /* 64: IRQ0 */ - &catch_exception_65, /* 65: IRQ1 */ - &catch_exception_66, /* 66: IRQ2 */ - &catch_exception_67, /* 67: IRQ3 */ - &catch_exception_68, /* 68: IRQ4 */ - &catch_exception_69, /* 69: IRQ5 */ - &catch_exception_70, /* 70: IRQ6 */ - &catch_exception_71, /* 71: IRQ7 */ + &catch_exception_4, /* 4: General invalid instruction */ + &catch_exception_5, /* 5: Reserved for system */ + &catch_exception_6, /* 6: Invalid slot instruction */ + &catch_exception_7, /* 7: Reserved for system */ + &catch_exception_8, /* 8: Reserved for system */ + &catch_exception_9, /* 9: CPU bus error */ + &catch_exception_10, /* 10: DMA bus error */ + &catch_exception_11, /* 11: NMI */ + &catch_exception_12, /* 12: User break */ + &catch_exception_13, /* 13: Reserved for system */ + &catch_exception_14, /* 14: Reserved for system */ + &catch_exception_15, /* 15: Reserved for system */ + &catch_exception_16, /* 16: Reserved for system */ + &catch_exception_17, /* 17: Reserved for system */ + &catch_exception_18, /* 18: Reserved for system */ + &catch_exception_19, /* 19: Reserved for system */ + &catch_exception_20, /* 20: Reserved for system */ + &catch_exception_21, /* 21: Reserved for system */ + &catch_exception_22, /* 22: Reserved for system */ + &catch_exception_23, /* 23: Reserved for system */ + &catch_exception_24, /* 24: Reserved for system */ + &catch_exception_25, /* 25: Reserved for system */ + &catch_exception_26, /* 26: Reserved for system */ + &catch_exception_27, /* 27: Reserved for system */ + &catch_exception_28, /* 28: Reserved for system */ + &catch_exception_29, /* 29: Reserved for system */ + &catch_exception_30, /* 30: Reserved for system */ + &catch_exception_31, /* 31: Reserved for system */ + &catch_exception_32, /* 32: Trap instr (user vectors) */ + &catch_exception_33, /* 33: Trap instr (user vectors) */ + &catch_exception_34, /* 34: Trap instr (user vectors) */ + &catch_exception_35, /* 35: Trap instr (user vectors) */ + &catch_exception_36, /* 36: Trap instr (user vectors) */ + &catch_exception_37, /* 37: Trap instr (user vectors) */ + &catch_exception_38, /* 38: Trap instr (user vectors) */ + &catch_exception_39, /* 39: Trap instr (user vectors) */ + &catch_exception_40, /* 40: Trap instr (user vectors) */ + &catch_exception_41, /* 41: Trap instr (user vectors) */ + &catch_exception_42, /* 42: Trap instr (user vectors) */ + &catch_exception_43, /* 43: Trap instr (user vectors) */ + &catch_exception_44, /* 44: Trap instr (user vectors) */ + &catch_exception_45, /* 45: Trap instr (user vectors) */ + &catch_exception_46, /* 46: Trap instr (user vectors) */ + &catch_exception_47, /* 47: Trap instr (user vectors) */ + &catch_exception_48, /* 48: Trap instr (user vectors) */ + &catch_exception_49, /* 49: Trap instr (user vectors) */ + &catch_exception_50, /* 50: Trap instr (user vectors) */ + &catch_exception_51, /* 51: Trap instr (user vectors) */ + &catch_exception_52, /* 52: Trap instr (user vectors) */ + &catch_exception_53, /* 53: Trap instr (user vectors) */ + &catch_exception_54, /* 54: Trap instr (user vectors) */ + &catch_exception_55, /* 55: Trap instr (user vectors) */ + &catch_exception_56, /* 56: Trap instr (user vectors) */ + &catch_exception_57, /* 57: Trap instr (user vectors) */ + &catch_exception_58, /* 58: Trap instr (user vectors) */ + &catch_exception_59, /* 59: Trap instr (user vectors) */ + &catch_exception_60, /* 60: Trap instr (user vectors) */ + &catch_exception_61, /* 61: Trap instr (user vectors) */ + &catch_exception_62, /* 62: Trap instr (user vectors) */ + &catch_exception_63, /* 63: Trap instr (user vectors) */ + &catch_exception_64, /* 64: IRQ0 */ + &catch_exception_65, /* 65: IRQ1 */ + &catch_exception_66, /* 66: IRQ2 */ + &catch_exception_67, /* 67: IRQ3 */ + &catch_exception_68, /* 68: IRQ4 */ + &catch_exception_69, /* 69: IRQ5 */ + &catch_exception_70, /* 70: IRQ6 */ + &catch_exception_71, /* 71: IRQ7 */ &catch_exception_72, &catch_exception_73, &catch_exception_74, @@ -1185,123 +1185,123 @@ void sr(void) "L_sp: .long _stack"); asm("saveRegisters:\n"); - asm(" mov.l @(L_reg, pc), r0\n" - " mov.l @r15+, r1 ! pop R0\n" - " mov.l r2, @(0x08, r0) ! save R2\n" - " mov.l r1, @r0 ! save R0\n" - " mov.l @r15+, r1 ! pop R1\n" - " mov.l r3, @(0x0c, r0) ! save R3\n" - " mov.l r1, @(0x04, r0) ! save R1\n" - " mov.l r4, @(0x10, r0) ! save R4\n" - " mov.l r5, @(0x14, r0) ! save R5\n" - " mov.l r6, @(0x18, r0) ! save R6\n" - " mov.l r7, @(0x1c, r0) ! save R7\n" - " mov.l r8, @(0x20, r0) ! save R8\n" - " mov.l r9, @(0x24, r0) ! save R9\n" - " mov.l r10, @(0x28, r0) ! save R10\n" - " mov.l r11, @(0x2c, r0) ! save R11\n" - " mov.l r12, @(0x30, r0) ! save R12\n" - " mov.l r13, @(0x34, r0) ! save R13\n" - " mov.l r14, @(0x38, r0) ! save R14\n" - " mov.l @r15+, r4 ! save arg to handleException\n" - " add #8, r15 ! hide PC/SR values on stack\n" - " mov.l r15, @(0x3c, r0) ! save R15\n" - " add #-8, r15 ! save still needs old SP value\n" - " add #92, r0 ! readjust register pointer\n" - " mov r15, r2\n" - " add #4, r2\n" - " mov.l @r2, r2 ! R2 has SR\n" - " mov.l @r15, r1 ! R1 has PC\n" - " mov.l r2, @-r0 ! save SR\n" - " sts.l macl, @-r0 ! save MACL\n" - " sts.l mach, @-r0 ! save MACH\n" - " stc.l vbr, @-r0 ! save VBR\n" - " stc.l gbr, @-r0 ! save GBR\n" - " sts.l pr, @-r0 ! save PR\n" - " mov.l @(L_stubstack, pc), r2\n" - " mov.l @(L_hdl_except, pc), r3\n" - " mov.l @r2, r15\n" - " jsr @r3\n" - " mov.l r1, @-r0 ! save PC\n" - " mov.l @(L_stubstack, pc), r0\n" - " mov.l @(L_reg, pc), r1\n" - " bra restoreRegisters\n" - " mov.l r15, @r0 ! save __stub_stack\n" - - " .align 2\n" + asm(" mov.l @(L_reg, pc), r0\n" + " mov.l @r15+, r1 ! pop R0\n" + " mov.l r2, @(0x08, r0) ! save R2\n" + " mov.l r1, @r0 ! save R0\n" + " mov.l @r15+, r1 ! pop R1\n" + " mov.l r3, @(0x0c, r0) ! save R3\n" + " mov.l r1, @(0x04, r0) ! save R1\n" + " mov.l r4, @(0x10, r0) ! save R4\n" + " mov.l r5, @(0x14, r0) ! save R5\n" + " mov.l r6, @(0x18, r0) ! save R6\n" + " mov.l r7, @(0x1c, r0) ! save R7\n" + " mov.l r8, @(0x20, r0) ! save R8\n" + " mov.l r9, @(0x24, r0) ! save R9\n" + " mov.l r10, @(0x28, r0) ! save R10\n" + " mov.l r11, @(0x2c, r0) ! save R11\n" + " mov.l r12, @(0x30, r0) ! save R12\n" + " mov.l r13, @(0x34, r0) ! save R13\n" + " mov.l r14, @(0x38, r0) ! save R14\n" + " mov.l @r15+, r4 ! save arg to handleException\n" + " add #8, r15 ! hide PC/SR values on stack\n" + " mov.l r15, @(0x3c, r0) ! save R15\n" + " add #-8, r15 ! save still needs old SP value\n" + " add #92, r0 ! readjust register pointer\n" + " mov r15, r2\n" + " add #4, r2\n" + " mov.l @r2, r2 ! R2 has SR\n" + " mov.l @r15, r1 ! R1 has PC\n" + " mov.l r2, @-r0 ! save SR\n" + " sts.l macl, @-r0 ! save MACL\n" + " sts.l mach, @-r0 ! save MACH\n" + " stc.l vbr, @-r0 ! save VBR\n" + " stc.l gbr, @-r0 ! save GBR\n" + " sts.l pr, @-r0 ! save PR\n" + " mov.l @(L_stubstack, pc), r2\n" + " mov.l @(L_hdl_except, pc), r3\n" + " mov.l @r2, r15\n" + " jsr @r3\n" + " mov.l r1, @-r0 ! save PC\n" + " mov.l @(L_stubstack, pc), r0\n" + " mov.l @(L_reg, pc), r1\n" + " bra restoreRegisters\n" + " mov.l r15, @r0 ! save __stub_stack\n" + + " .align 2\n" "L_reg:\n" - " .long _registers\n" + " .long _registers\n" "L_stubstack:\n" - " .long _stub_sp\n" + " .long _stub_sp\n" "L_hdl_except:\n" - " .long _handle_exception"); + " .long _handle_exception"); } void rr(void) { - asm(" .align 2 \n" + asm(" .align 2 \n" " .global _resume\n" "_resume:\n" - " mov r4,r1\n" + " mov r4,r1\n" "restoreRegisters:\n" - " add #8, r1 ! skip to R2\n" - " mov.l @r1+, r2 ! restore R2\n" - " mov.l @r1+, r3 ! restore R3\n" - " mov.l @r1+, r4 ! restore R4\n" - " mov.l @r1+, r5 ! restore R5\n" - " mov.l @r1+, r6 ! restore R6\n" - " mov.l @r1+, r7 ! restore R7\n" - " mov.l @r1+, r8 ! restore R8\n" - " mov.l @r1+, r9 ! restore R9\n" - " mov.l @r1+, r10 ! restore R10\n" - " mov.l @r1+, r11 ! restore R11\n" - " mov.l @r1+, r12 ! restore R12\n" - " mov.l @r1+, r13 ! restore R13\n" - " mov.l @r1+, r14 ! restore R14\n" - " mov.l @r1+, r15 ! restore programs stack\n" - " mov.l @r1+, r0\n" - " add #-8, r15 ! uncover PC/SR on stack \n" - " mov.l r0, @r15 ! restore PC onto stack\n" - " lds.l @r1+, pr ! restore PR\n" - " ldc.l @r1+, gbr ! restore GBR\n" - " ldc.l @r1+, vbr ! restore VBR\n" - " lds.l @r1+, mach ! restore MACH\n" - " lds.l @r1+, macl ! restore MACL\n" - " mov.l @r1, r0 \n" - " add #-88, r1 ! readjust reg pointer to R1\n" - " mov.l r0, @(4, r15) ! restore SR onto stack+4\n" - " mov.l r2, @-r15\n" - " mov.l L_in_nmi, r0\n" - " mov #0, r2\n" - " mov.b r2, @r0\n" - " mov.l @r15+, r2\n" - " mov.l @r1+, r0 ! restore R0\n" - " rte\n" - " mov.l @r1, r1 ! restore R1"); + " add #8, r1 ! skip to R2\n" + " mov.l @r1+, r2 ! restore R2\n" + " mov.l @r1+, r3 ! restore R3\n" + " mov.l @r1+, r4 ! restore R4\n" + " mov.l @r1+, r5 ! restore R5\n" + " mov.l @r1+, r6 ! restore R6\n" + " mov.l @r1+, r7 ! restore R7\n" + " mov.l @r1+, r8 ! restore R8\n" + " mov.l @r1+, r9 ! restore R9\n" + " mov.l @r1+, r10 ! restore R10\n" + " mov.l @r1+, r11 ! restore R11\n" + " mov.l @r1+, r12 ! restore R12\n" + " mov.l @r1+, r13 ! restore R13\n" + " mov.l @r1+, r14 ! restore R14\n" + " mov.l @r1+, r15 ! restore programs stack\n" + " mov.l @r1+, r0\n" + " add #-8, r15 ! uncover PC/SR on stack \n" + " mov.l r0, @r15 ! restore PC onto stack\n" + " lds.l @r1+, pr ! restore PR\n" + " ldc.l @r1+, gbr ! restore GBR\n" + " ldc.l @r1+, vbr ! restore VBR\n" + " lds.l @r1+, mach ! restore MACH\n" + " lds.l @r1+, macl ! restore MACL\n" + " mov.l @r1, r0 \n" + " add #-88, r1 ! readjust reg pointer to R1\n" + " mov.l r0, @(4, r15) ! restore SR onto stack+4\n" + " mov.l r2, @-r15\n" + " mov.l L_in_nmi, r0\n" + " mov #0, r2\n" + " mov.b r2, @r0\n" + " mov.l @r15+, r2\n" + " mov.l @r1+, r0 ! restore R0\n" + " rte\n" + " mov.l @r1, r1 ! restore R1"); } static inline void code_for_catch_exception(unsigned int n) { - asm(" .globl _catch_exception_%O0" : : "X" (n) ); - asm(" _catch_exception_%O0:" :: "X" (n) ); + asm(" .globl _catch_exception_%O0" : : "X" (n) ); + asm(" _catch_exception_%O0:" :: "X" (n) ); - asm(" add #-4, r15 ! reserve spot on stack "); - asm(" mov.l r1, @-r15 ! push R1 "); + asm(" add #-4, r15 ! reserve spot on stack "); + asm(" mov.l r1, @-r15 ! push R1 "); if (n == NMI_VEC) { /* Special case for NMI - make sure that they don't nest */ - asm(" mov.l r0, @-r15 ! push R0"); - asm(" mov.l L_in_nmi, r0"); - asm(" tas.b @r0 ! Fend off against addtnl NMIs"); - asm(" bt noNMI"); - asm(" mov.l @r15+, r0"); - asm(" mov.l @r15+, r1"); - asm(" add #4, r15"); - asm(" rte"); - asm(" nop"); + asm(" mov.l r0, @-r15 ! push R0"); + asm(" mov.l L_in_nmi, r0"); + asm(" tas.b @r0 ! Fend off against addtnl NMIs"); + asm(" bt noNMI"); + asm(" mov.l @r15+, r0"); + asm(" mov.l @r15+, r1"); + asm(" add #4, r15"); + asm(" rte"); + asm(" nop"); asm(".align 2"); - asm("L_in_nmi: .long _in_nmi"); + asm("L_in_nmi: .long _in_nmi"); asm("noNMI:"); } else @@ -1314,28 +1314,28 @@ static inline void code_for_catch_exception(unsigned int n) Because the vector table may be in ROM we don't revector the interrupt like all the other stubs, we check in here */ - asm("mov.l L_dofault,r1"); - asm("mov.l @r1,r1"); - asm("tst r1,r1"); - asm("bf faultaway"); - asm("bsr _handle_buserror"); - asm(".align 2"); + asm("mov.l L_dofault,r1"); + asm("mov.l @r1,r1"); + asm("tst r1,r1"); + asm("bf faultaway"); + asm("bsr _handle_buserror"); + asm(".align 2"); asm("L_dofault: .long _dofault"); asm("faultaway:"); } - asm(" mov #15<<4, r1 "); - asm(" ldc r1, sr ! disable interrupts "); - asm(" mov.l r0, @-r15 ! push R0 "); + asm(" mov #15<<4, r1 "); + asm(" ldc r1, sr ! disable interrupts "); + asm(" mov.l r0, @-r15 ! push R0 "); } /* Prepare for saving context, we've already pushed r0 and r1, stick exception number into the frame */ - asm(" mov r15, r0 "); - asm(" add #8, r0 "); - asm(" mov %0,r1" :: "X" (n)); - asm(" extu.b r1,r1 "); - asm(" bra saveRegisters ! save register values "); - asm(" mov.l r1, @r0 ! save exception # "); + asm(" mov r15, r0 "); + asm(" add #8, r0 "); + asm(" mov %0,r1" :: "X" (n)); + asm(" extu.b r1,r1 "); + asm(" bra saveRegisters ! save register values "); + asm(" mov.l r1, @r0 ! save exception # "); } /* Here we call all defined exceptions, so the inline assembler gets @@ -1471,45 +1471,45 @@ void exceptions (void) /* * Port B Control Register (PBCR1) */ -#define PB15MD1 0x8000 -#define PB15MD0 0x4000 -#define PB14MD1 0x2000 -#define PB14MD0 0x1000 -#define PB13MD1 0x0800 -#define PB13MD0 0x0400 -#define PB12MD1 0x0200 -#define PB12MD0 0x0100 -#define PB11MD1 0x0080 -#define PB11MD0 0x0040 -#define PB10MD1 0x0020 -#define PB10MD0 0x0010 -#define PB9MD1 0x0008 -#define PB9MD0 0x0004 -#define PB8MD1 0x0002 -#define PB8MD0 0x0001 - -#define PB15MD PB15MD1|PB14MD0 -#define PB14MD PB14MD1|PB14MD0 -#define PB13MD PB13MD1|PB13MD0 -#define PB12MD PB12MD1|PB12MD0 -#define PB11MD PB11MD1|PB11MD0 -#define PB10MD PB10MD1|PB10MD0 -#define PB9MD PB9MD1|PB9MD0 -#define PB8MD PB8MD1|PB8MD0 - -#define PB_TXD1 PB11MD1 -#define PB_RXD1 PB10MD1 -#define PB_TXD0 PB9MD1 -#define PB_RXD0 PB8MD1 - -#define PB7MD PB7MD1|PB7MD0 -#define PB6MD PB6MD1|PB6MD0 -#define PB5MD PB5MD1|PB5MD0 -#define PB4MD PB4MD1|PB4MD0 -#define PB3MD PB3MD1|PB3MD0 -#define PB2MD PB2MD1|PB2MD0 -#define PB1MD PB1MD1|PB1MD0 -#define PB0MD PB0MD1|PB0MD0 +#define PB15MD1 0x8000 +#define PB15MD0 0x4000 +#define PB14MD1 0x2000 +#define PB14MD0 0x1000 +#define PB13MD1 0x0800 +#define PB13MD0 0x0400 +#define PB12MD1 0x0200 +#define PB12MD0 0x0100 +#define PB11MD1 0x0080 +#define PB11MD0 0x0040 +#define PB10MD1 0x0020 +#define PB10MD0 0x0010 +#define PB9MD1 0x0008 +#define PB9MD0 0x0004 +#define PB8MD1 0x0002 +#define PB8MD0 0x0001 + +#define PB15MD PB15MD1|PB14MD0 +#define PB14MD PB14MD1|PB14MD0 +#define PB13MD PB13MD1|PB13MD0 +#define PB12MD PB12MD1|PB12MD0 +#define PB11MD PB11MD1|PB11MD0 +#define PB10MD PB10MD1|PB10MD0 +#define PB9MD PB9MD1|PB9MD0 +#define PB8MD PB8MD1|PB8MD0 + +#define PB_TXD1 PB11MD1 +#define PB_RXD1 PB10MD1 +#define PB_TXD0 PB9MD1 +#define PB_RXD0 PB8MD1 + +#define PB7MD PB7MD1|PB7MD0 +#define PB6MD PB6MD1|PB6MD0 +#define PB5MD PB5MD1|PB5MD0 +#define PB4MD PB4MD1|PB4MD0 +#define PB3MD PB3MD1|PB3MD0 +#define PB2MD PB2MD1|PB2MD0 +#define PB1MD PB1MD1|PB1MD0 +#define PB0MD PB0MD1|PB0MD0 void handleError (char theSSR); diff --git a/rbutil/ipodpatcher/arc4.c b/rbutil/ipodpatcher/arc4.c index 75b1862..57f71db 100644 --- a/rbutil/ipodpatcher/arc4.c +++ b/rbutil/ipodpatcher/arc4.c @@ -74,9 +74,9 @@ int32_t matrixArc4(struct rc4_key_t *ctx, unsigned char *in, { unsigned char x, y, *state, xorIndex, tmp; int counter; /* NOTE BY DAVE CHAPMAN: This was a short in - the original code, which caused a segfault - when attempting to process data > 32767 - bytes. */ + the original code, which caused a segfault + when attempting to process data > 32767 + bytes. */ ctx->byteCount += len; if (ctx->byteCount > ARC4_MAX_BYTES) { diff --git a/rbutil/ipodpatcher/ipodio-posix.c b/rbutil/ipodpatcher/ipodio-posix.c index 55f0187..5e2d966 100644 --- a/rbutil/ipodpatcher/ipodio-posix.c +++ b/rbutil/ipodpatcher/ipodio-posix.c @@ -115,7 +115,7 @@ int ipod_open(struct ipod_t* ipod, int silent) if (!silent) { fprintf(stderr,"[ERR] ioctl() call to get sector size failed, defaulting to %d\n" ,ipod->sector_size); - } + } } get_geometry(ipod); diff --git a/rbutil/ipodpatcher/ipodio-win32.c b/rbutil/ipodpatcher/ipodio-win32.c index 2f75153..9e374b3 100644 --- a/rbutil/ipodpatcher/ipodio-win32.c +++ b/rbutil/ipodpatcher/ipodio-win32.c @@ -42,7 +42,7 @@ static int lock_volume(HANDLE hDisk) DWORD dummy; return DeviceIoControl(hDisk, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, - &dummy, NULL); + &dummy, NULL); } static int unlock_volume(HANDLE hDisk) @@ -50,7 +50,7 @@ static int unlock_volume(HANDLE hDisk) DWORD dummy; return DeviceIoControl(hDisk, FSCTL_UNLOCK_VOLUME, NULL, 0, NULL, 0, - &dummy, NULL); + &dummy, NULL); } void print_error(char* msg) diff --git a/rbutil/ipodpatcher/parttypes.h b/rbutil/ipodpatcher/parttypes.h index f8de303..c369bc3 100644 --- a/rbutil/ipodpatcher/parttypes.h +++ b/rbutil/ipodpatcher/parttypes.h @@ -6,104 +6,104 @@ struct parttype { }; struct parttype parttypes[] = { - {0x00, "Empty"}, - {0x01, "FAT12"}, - {0x02, "XENIX root"}, - {0x03, "XENIX usr"}, - {0x04, "FAT16 <32M"}, - {0x05, "Extended"}, /* DOS 3.3+ extended partition */ - {0x06, "FAT16"}, /* DOS 16-bit >=32M */ - {0x07, "HPFS/NTFS"}, /* OS/2 IFS, eg, HPFS or NTFS or QNX */ - {0x08, "AIX"}, /* AIX boot (AIX -- PS/2 port) or SplitDrive */ - {0x09, "AIX bootable"}, /* AIX data or Coherent */ - {0x0a, "OS/2 Boot Manager"},/* OS/2 Boot Manager */ - {0x0b, "W95 FAT32"}, - {0x0c, "W95 FAT32 (LBA)"},/* LBA really is `Extended Int 13h' */ - {0x0e, "W95 FAT16 (LBA)"}, - {0x0f, "W95 Ext'd (LBA)"}, - {0x10, "OPUS"}, - {0x11, "Hidden FAT12"}, - {0x12, "Compaq diagnostics"}, - {0x14, "Hidden FAT16 <32M"}, - {0x16, "Hidden FAT16"}, - {0x17, "Hidden HPFS/NTFS"}, - {0x18, "AST SmartSleep"}, - {0x1b, "Hidden W95 FAT32"}, - {0x1c, "Hidden W95 FAT32 (LBA)"}, - {0x1e, "Hidden W95 FAT16 (LBA)"}, - {0x24, "NEC DOS"}, - {0x39, "Plan 9"}, - {0x3c, "PartitionMagic recovery"}, - {0x40, "Venix 80286"}, - {0x41, "PPC PReP Boot"}, - {0x42, "SFS"}, - {0x4d, "QNX4.x"}, - {0x4e, "QNX4.x 2nd part"}, - {0x4f, "QNX4.x 3rd part"}, - {0x50, "OnTrack DM"}, - {0x51, "OnTrack DM6 Aux1"}, /* (or Novell) */ - {0x52, "CP/M"}, /* CP/M or Microport SysV/AT */ - {0x53, "OnTrack DM6 Aux3"}, - {0x54, "OnTrackDM6"}, - {0x55, "EZ-Drive"}, - {0x56, "Golden Bow"}, - {0x5c, "Priam Edisk"}, - {0x61, "SpeedStor"}, - {0x63, "GNU HURD or SysV"}, /* GNU HURD or Mach or Sys V/386 (such as ISC UNIX) */ - {0x64, "Novell Netware 286"}, - {0x65, "Novell Netware 386"}, - {0x70, "DiskSecure Multi-Boot"}, - {0x75, "PC/IX"}, - {0x80, "Old Minix"}, /* Minix 1.4a and earlier */ - {0x81, "Minix / old Linux"},/* Minix 1.4b and later */ - {0x82, "Linux swap / Solaris"}, - {0x83, "Linux"}, - {0x84, "OS/2 hidden C: drive"}, - {0x85, "Linux extended"}, - {0x86, "NTFS volume set"}, - {0x87, "NTFS volume set"}, - {0x88, "Linux plaintext"}, - {0x8e, "Linux LVM"}, - {0x93, "Amoeba"}, - {0x94, "Amoeba BBT"}, /* (bad block table) */ - {0x9f, "BSD/OS"}, /* BSDI */ - {0xa0, "IBM Thinkpad hibernation"}, - {0xa5, "FreeBSD"}, /* various BSD flavours */ - {0xa6, "OpenBSD"}, - {0xa7, "NeXTSTEP"}, - {0xa8, "Darwin UFS"}, - {0xa9, "NetBSD"}, - {0xab, "Darwin boot"}, - {0xb7, "BSDI fs"}, - {0xb8, "BSDI swap"}, - {0xbb, "Boot Wizard hidden"}, - {0xbe, "Solaris boot"}, - {0xbf, "Solaris"}, - {0xc1, "DRDOS/sec (FAT-12)"}, - {0xc4, "DRDOS/sec (FAT-16 < 32M)"}, - {0xc6, "DRDOS/sec (FAT-16)"}, - {0xc7, "Syrinx"}, - {0xda, "Non-FS data"}, - {0xdb, "CP/M / CTOS / ..."},/* CP/M or Concurrent CP/M or - Concurrent DOS or CTOS */ - {0xde, "Dell Utility"}, /* Dell PowerEdge Server utilities */ - {0xdf, "BootIt"}, /* BootIt EMBRM */ - {0xe1, "DOS access"}, /* DOS access or SpeedStor 12-bit FAT - extended partition */ - {0xe3, "DOS R/O"}, /* DOS R/O or SpeedStor */ - {0xe4, "SpeedStor"}, /* SpeedStor 16-bit FAT extended - partition < 1024 cyl. */ - {0xeb, "BeOS fs"}, - {0xee, "EFI GPT"}, /* Intel EFI GUID Partition Table */ - {0xef, "EFI (FAT-12/16/32)"},/* Intel EFI System Partition */ - {0xf0, "Linux/PA-RISC boot"},/* Linux/PA-RISC boot loader */ - {0xf1, "SpeedStor"}, - {0xf4, "SpeedStor"}, /* SpeedStor large partition */ - {0xf2, "DOS secondary"}, /* DOS 3.3+ secondary */ - {0xfd, "Linux raid autodetect"},/* New (2.2.x) raid partition with - autodetect using persistent - superblock */ - {0xfe, "LANstep"}, /* SpeedStor >1024 cyl. or LANstep */ - {0xff, "BBT"}, /* Xenix Bad Block Table */ - { 0, 0 } + {0x00, "Empty"}, + {0x01, "FAT12"}, + {0x02, "XENIX root"}, + {0x03, "XENIX usr"}, + {0x04, "FAT16 <32M"}, + {0x05, "Extended"}, /* DOS 3.3+ extended partition */ + {0x06, "FAT16"}, /* DOS 16-bit >=32M */ + {0x07, "HPFS/NTFS"}, /* OS/2 IFS, eg, HPFS or NTFS or QNX */ + {0x08, "AIX"}, /* AIX boot (AIX -- PS/2 port) or SplitDrive */ + {0x09, "AIX bootable"}, /* AIX data or Coherent */ + {0x0a, "OS/2 Boot Manager"},/* OS/2 Boot Manager */ + {0x0b, "W95 FAT32"}, + {0x0c, "W95 FAT32 (LBA)"},/* LBA really is `Extended Int 13h' */ + {0x0e, "W95 FAT16 (LBA)"}, + {0x0f, "W95 Ext'd (LBA)"}, + {0x10, "OPUS"}, + {0x11, "Hidden FAT12"}, + {0x12, "Compaq diagnostics"}, + {0x14, "Hidden FAT16 <32M"}, + {0x16, "Hidden FAT16"}, + {0x17, "Hidden HPFS/NTFS"}, + {0x18, "AST SmartSleep"}, + {0x1b, "Hidden W95 FAT32"}, + {0x1c, "Hidden W95 FAT32 (LBA)"}, + {0x1e, "Hidden W95 FAT16 (LBA)"}, + {0x24, "NEC DOS"}, + {0x39, "Plan 9"}, + {0x3c, "PartitionMagic recovery"}, + {0x40, "Venix 80286"}, + {0x41, "PPC PReP Boot"}, + {0x42, "SFS"}, + {0x4d, "QNX4.x"}, + {0x4e, "QNX4.x 2nd part"}, + {0x4f, "QNX4.x 3rd part"}, + {0x50, "OnTrack DM"}, + {0x51, "OnTrack DM6 Aux1"}, /* (or Novell) */ + {0x52, "CP/M"}, /* CP/M or Microport SysV/AT */ + {0x53, "OnTrack DM6 Aux3"}, + {0x54, "OnTrackDM6"}, + {0x55, "EZ-Drive"}, + {0x56, "Golden Bow"}, + {0x5c, "Priam Edisk"}, + {0x61, "SpeedStor"}, + {0x63, "GNU HURD or SysV"}, /* GNU HURD or Mach or Sys V/386 (such as ISC UNIX) */ + {0x64, "Novell Netware 286"}, + {0x65, "Novell Netware 386"}, + {0x70, "DiskSecure Multi-Boot"}, + {0x75, "PC/IX"}, + {0x80, "Old Minix"}, /* Minix 1.4a and earlier */ + {0x81, "Minix / old Linux"},/* Minix 1.4b and later */ + {0x82, "Linux swap / Solaris"}, + {0x83, "Linux"}, + {0x84, "OS/2 hidden C: drive"}, + {0x85, "Linux extended"}, + {0x86, "NTFS volume set"}, + {0x87, "NTFS volume set"}, + {0x88, "Linux plaintext"}, + {0x8e, "Linux LVM"}, + {0x93, "Amoeba"}, + {0x94, "Amoeba BBT"}, /* (bad block table) */ + {0x9f, "BSD/OS"}, /* BSDI */ + {0xa0, "IBM Thinkpad hibernation"}, + {0xa5, "FreeBSD"}, /* various BSD flavours */ + {0xa6, "OpenBSD"}, + {0xa7, "NeXTSTEP"}, + {0xa8, "Darwin UFS"}, + {0xa9, "NetBSD"}, + {0xab, "Darwin boot"}, + {0xb7, "BSDI fs"}, + {0xb8, "BSDI swap"}, + {0xbb, "Boot Wizard hidden"}, + {0xbe, "Solaris boot"}, + {0xbf, "Solaris"}, + {0xc1, "DRDOS/sec (FAT-12)"}, + {0xc4, "DRDOS/sec (FAT-16 < 32M)"}, + {0xc6, "DRDOS/sec (FAT-16)"}, + {0xc7, "Syrinx"}, + {0xda, "Non-FS data"}, + {0xdb, "CP/M / CTOS / ..."},/* CP/M or Concurrent CP/M or + Concurrent DOS or CTOS */ + {0xde, "Dell Utility"}, /* Dell PowerEdge Server utilities */ + {0xdf, "BootIt"}, /* BootIt EMBRM */ + {0xe1, "DOS access"}, /* DOS access or SpeedStor 12-bit FAT + extended partition */ + {0xe3, "DOS R/O"}, /* DOS R/O or SpeedStor */ + {0xe4, "SpeedStor"}, /* SpeedStor 16-bit FAT extended + partition < 1024 cyl. */ + {0xeb, "BeOS fs"}, + {0xee, "EFI GPT"}, /* Intel EFI GUID Partition Table */ + {0xef, "EFI (FAT-12/16/32)"},/* Intel EFI System Partition */ + {0xf0, "Linux/PA-RISC boot"},/* Linux/PA-RISC boot loader */ + {0xf1, "SpeedStor"}, + {0xf4, "SpeedStor"}, /* SpeedStor large partition */ + {0xf2, "DOS secondary"}, /* DOS 3.3+ secondary */ + {0xfd, "Linux raid autodetect"},/* New (2.2.x) raid partition with + autodetect using persistent + superblock */ + {0xfe, "LANstep"}, /* SpeedStor >1024 cyl. or LANstep */ + {0xff, "BBT"}, /* Xenix Bad Block Table */ + { 0, 0 } }; diff --git a/rbutil/rbutilqt/zip/unzip.h b/rbutil/rbutilqt/zip/unzip.h index a48fbe8..0766430 100644 --- a/rbutil/rbutilqt/zip/unzip.h +++ b/rbutil/rbutilqt/zip/unzip.h @@ -1,144 +1,144 @@ -/**************************************************************************** -** Filename: unzip.h -** Last updated [dd/mm/yyyy]: 28/01/2007 -** -** pkzip 2.0 decompression. -** -** Some of the code has been inspired by other open source projects, -** (mainly Info-Zip and Gilles Vollant's minizip). -** Compression and decompression actually uses the zlib library. -** -** Copyright (C) 2007 Angius Fabrizio. All rights reserved. -** -** This file is part of the OSDaB project (http://osdab.sourceforge.net/). -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See the file LICENSE.GPL that came with this software distribution or -** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information. -** -**********************************************************************/ - -#ifndef OSDAB_UNZIP__H -#define OSDAB_UNZIP__H - -#include -#include -#include - -#include - -class UnzipPrivate; -class QIODevice; -class QFile; -class QDir; -class QStringList; -class QString; - - -class UnZip -{ -public: - enum ErrorCode - { - Ok, - ZlibInit, - ZlibError, - OpenFailed, - PartiallyCorrupted, - Corrupted, - WrongPassword, - NoOpenArchive, - FileNotFound, - ReadFailed, - WriteFailed, - SeekFailed, - CreateDirFailed, - InvalidDevice, - InvalidArchive, - HeaderConsistencyError, - - Skip, SkipAll // internal use only - }; - - enum ExtractionOption - { - //! Extracts paths (default) - ExtractPaths = 0x0001, - //! Ignores paths and extracts all the files to the same directory - SkipPaths = 0x0002 - }; - Q_DECLARE_FLAGS(ExtractionOptions, ExtractionOption) - - enum CompressionMethod - { - NoCompression, Deflated, UnknownCompression - }; - - enum FileType - { - File, Directory - }; - - typedef struct ZipEntry - { - ZipEntry(); - - QString filename; - QString comment; - - quint32 compressedSize; - quint32 uncompressedSize; - quint32 crc32; - - QDateTime lastModified; - - CompressionMethod compression; - FileType type; - - bool encrypted; - }; - - UnZip(); - virtual ~UnZip(); - - bool isOpen() const; - - ErrorCode openArchive(const QString& filename); - ErrorCode openArchive(QIODevice* device); - void closeArchive(); - - QString archiveComment() const; - - QString formatError(UnZip::ErrorCode c) const; - - bool contains(const QString& file) const; - - QStringList fileList() const; - QList entryList() const; - - ErrorCode extractAll(const QString& dirname, ExtractionOptions options = ExtractPaths); - ErrorCode extractAll(const QDir& dir, ExtractionOptions options = ExtractPaths); - - ErrorCode extractFile(const QString& filename, const QString& dirname, ExtractionOptions options = ExtractPaths); - ErrorCode extractFile(const QString& filename, const QDir& dir, ExtractionOptions options = ExtractPaths); - ErrorCode extractFile(const QString& filename, QIODevice* device, ExtractionOptions options = ExtractPaths); - - ErrorCode extractFiles(const QStringList& filenames, const QString& dirname, ExtractionOptions options = ExtractPaths); - ErrorCode extractFiles(const QStringList& filenames, const QDir& dir, ExtractionOptions options = ExtractPaths); - - void setPassword(const QString& pwd); - -private: - UnzipPrivate* d; -}; - -Q_DECLARE_OPERATORS_FOR_FLAGS(UnZip::ExtractionOptions) - -#endif // OSDAB_UNZIP__H +/**************************************************************************** +** Filename: unzip.h +** Last updated [dd/mm/yyyy]: 28/01/2007 +** +** pkzip 2.0 decompression. +** +** Some of the code has been inspired by other open source projects, +** (mainly Info-Zip and Gilles Vollant's minizip). +** Compression and decompression actually uses the zlib library. +** +** Copyright (C) 2007 Angius Fabrizio. All rights reserved. +** +** This file is part of the OSDaB project (http://osdab.sourceforge.net/). +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See the file LICENSE.GPL that came with this software distribution or +** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information. +** +**********************************************************************/ + +#ifndef OSDAB_UNZIP__H +#define OSDAB_UNZIP__H + +#include +#include +#include + +#include + +class UnzipPrivate; +class QIODevice; +class QFile; +class QDir; +class QStringList; +class QString; + + +class UnZip +{ +public: + enum ErrorCode + { + Ok, + ZlibInit, + ZlibError, + OpenFailed, + PartiallyCorrupted, + Corrupted, + WrongPassword, + NoOpenArchive, + FileNotFound, + ReadFailed, + WriteFailed, + SeekFailed, + CreateDirFailed, + InvalidDevice, + InvalidArchive, + HeaderConsistencyError, + + Skip, SkipAll // internal use only + }; + + enum ExtractionOption + { + //! Extracts paths (default) + ExtractPaths = 0x0001, + //! Ignores paths and extracts all the files to the same directory + SkipPaths = 0x0002 + }; + Q_DECLARE_FLAGS(ExtractionOptions, ExtractionOption) + + enum CompressionMethod + { + NoCompression, Deflated, UnknownCompression + }; + + enum FileType + { + File, Directory + }; + + typedef struct ZipEntry + { + ZipEntry(); + + QString filename; + QString comment; + + quint32 compressedSize; + quint32 uncompressedSize; + quint32 crc32; + + QDateTime lastModified; + + CompressionMethod compression; + FileType type; + + bool encrypted; + }; + + UnZip(); + virtual ~UnZip(); + + bool isOpen() const; + + ErrorCode openArchive(const QString& filename); + ErrorCode openArchive(QIODevice* device); + void closeArchive(); + + QString archiveComment() const; + + QString formatError(UnZip::ErrorCode c) const; + + bool contains(const QString& file) const; + + QStringList fileList() const; + QList entryList() const; + + ErrorCode extractAll(const QString& dirname, ExtractionOptions options = ExtractPaths); + ErrorCode extractAll(const QDir& dir, ExtractionOptions options = ExtractPaths); + + ErrorCode extractFile(const QString& filename, const QString& dirname, ExtractionOptions options = ExtractPaths); + ErrorCode extractFile(const QString& filename, const QDir& dir, ExtractionOptions options = ExtractPaths); + ErrorCode extractFile(const QString& filename, QIODevice* device, ExtractionOptions options = ExtractPaths); + + ErrorCode extractFiles(const QStringList& filenames, const QString& dirname, ExtractionOptions options = ExtractPaths); + ErrorCode extractFiles(const QStringList& filenames, const QDir& dir, ExtractionOptions options = ExtractPaths); + + void setPassword(const QString& pwd); + +private: + UnzipPrivate* d; +}; + +Q_DECLARE_OPERATORS_FOR_FLAGS(UnZip::ExtractionOptions) + +#endif // OSDAB_UNZIP__H diff --git a/rbutil/rbutilqt/zip/unzip_p.h b/rbutil/rbutilqt/zip/unzip_p.h index c05ac67..11ec291 100644 --- a/rbutil/rbutilqt/zip/unzip_p.h +++ b/rbutil/rbutilqt/zip/unzip_p.h @@ -1,112 +1,112 @@ -/**************************************************************************** -** Filename: unzip_p.h -** Last updated [dd/mm/yyyy]: 28/01/2007 -** -** pkzip 2.0 decompression. -** -** Some of the code has been inspired by other open source projects, -** (mainly Info-Zip and Gilles Vollant's minizip). -** Compression and decompression actually uses the zlib library. -** -** Copyright (C) 2007 Angius Fabrizio. All rights reserved. -** -** This file is part of the OSDaB project (http://osdab.sourceforge.net/). -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See the file LICENSE.GPL that came with this software distribution or -** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information. -** -**********************************************************************/ - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Zip/UnZip API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#ifndef OSDAB_UNZIP_P__H -#define OSDAB_UNZIP_P__H - -#include "unzip.h" -#include "zipentry_p.h" - -#include - -// zLib authors suggest using larger buffers (128K or 256K) for (de)compression (especially for inflate()) -// we use a 256K buffer here - if you want to use this code on a pre-iceage mainframe please change it ;) -#define UNZIP_READ_BUFFER (256*1024) - -class UnzipPrivate -{ -public: - UnzipPrivate(); - - // Replace this with whatever else you use to store/retrieve the password. - QString password; - - bool skipAllEncrypted; - - QMap* headers; - - QIODevice* device; - - char buffer1[UNZIP_READ_BUFFER]; - char buffer2[UNZIP_READ_BUFFER]; - - unsigned char* uBuffer; - const quint32* crcTable; - - // Central Directory (CD) offset - quint32 cdOffset; - // End of Central Directory (EOCD) offset - quint32 eocdOffset; - - // Number of entries in the Central Directory (as to the EOCD record) - quint16 cdEntryCount; - - // The number of detected entries that have been skipped because of a non compatible format - quint16 unsupportedEntryCount; - - QString comment; - - UnZip::ErrorCode openArchive(QIODevice* device); - - UnZip::ErrorCode seekToCentralDirectory(); - UnZip::ErrorCode parseCentralDirectoryRecord(); - UnZip::ErrorCode parseLocalHeaderRecord(const QString& path, ZipEntryP& entry); - - void closeArchive(); - - UnZip::ErrorCode extractFile(const QString& path, ZipEntryP& entry, const QDir& dir, UnZip::ExtractionOptions options); - UnZip::ErrorCode extractFile(const QString& path, ZipEntryP& entry, QIODevice* device, UnZip::ExtractionOptions options); - - UnZip::ErrorCode testPassword(quint32* keys, const QString& file, const ZipEntryP& header); - bool testKeys(const ZipEntryP& header, quint32* keys); - - bool createDirectory(const QString& path); - - inline void decryptBytes(quint32* keys, char* buffer, qint64 read); - - inline quint32 getULong(const unsigned char* data, quint32 offset) const; - inline quint64 getULLong(const unsigned char* data, quint32 offset) const; - inline quint16 getUShort(const unsigned char* data, quint32 offset) const; - inline int decryptByte(quint32 key2) const; - inline void updateKeys(quint32* keys, int c) const; - inline void initKeys(const QString& pwd, quint32* keys) const; - - inline QDateTime convertDateTime(const unsigned char date[2], const unsigned char time[2]) const; -}; - -#endif // OSDAB_UNZIP_P__H +/**************************************************************************** +** Filename: unzip_p.h +** Last updated [dd/mm/yyyy]: 28/01/2007 +** +** pkzip 2.0 decompression. +** +** Some of the code has been inspired by other open source projects, +** (mainly Info-Zip and Gilles Vollant's minizip). +** Compression and decompression actually uses the zlib library. +** +** Copyright (C) 2007 Angius Fabrizio. All rights reserved. +** +** This file is part of the OSDaB project (http://osdab.sourceforge.net/). +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See the file LICENSE.GPL that came with this software distribution or +** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information. +** +**********************************************************************/ + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Zip/UnZip API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#ifndef OSDAB_UNZIP_P__H +#define OSDAB_UNZIP_P__H + +#include "unzip.h" +#include "zipentry_p.h" + +#include + +// zLib authors suggest using larger buffers (128K or 256K) for (de)compression (especially for inflate()) +// we use a 256K buffer here - if you want to use this code on a pre-iceage mainframe please change it ;) +#define UNZIP_READ_BUFFER (256*1024) + +class UnzipPrivate +{ +public: + UnzipPrivate(); + + // Replace this with whatever else you use to store/retrieve the password. + QString password; + + bool skipAllEncrypted; + + QMap* headers; + + QIODevice* device; + + char buffer1[UNZIP_READ_BUFFER]; + char buffer2[UNZIP_READ_BUFFER]; + + unsigned char* uBuffer; + const quint32* crcTable; + + // Central Directory (CD) offset + quint32 cdOffset; + // End of Central Directory (EOCD) offset + quint32 eocdOffset; + + // Number of entries in the Central Directory (as to the EOCD record) + quint16 cdEntryCount; + + // The number of detected entries that have been skipped because of a non compatible format + quint16 unsupportedEntryCount; + + QString comment; + + UnZip::ErrorCode openArchive(QIODevice* device); + + UnZip::ErrorCode seekToCentralDirectory(); + UnZip::ErrorCode parseCentralDirectoryRecord(); + UnZip::ErrorCode parseLocalHeaderRecord(const QString& path, ZipEntryP& entry); + + void closeArchive(); + + UnZip::ErrorCode extractFile(const QString& path, ZipEntryP& entry, const QDir& dir, UnZip::ExtractionOptions options); + UnZip::ErrorCode extractFile(const QString& path, ZipEntryP& entry, QIODevice* device, UnZip::ExtractionOptions options); + + UnZip::ErrorCode testPassword(quint32* keys, const QString& file, const ZipEntryP& header); + bool testKeys(const ZipEntryP& header, quint32* keys); + + bool createDirectory(const QString& path); + + inline void decryptBytes(quint32* keys, char* buffer, qint64 read); + + inline quint32 getULong(const unsigned char* data, quint32 offset) const; + inline quint64 getULLong(const unsigned char* data, quint32 offset) const; + inline quint16 getUShort(const unsigned char* data, quint32 offset) const; + inline int decryptByte(quint32 key2) const; + inline void updateKeys(quint32* keys, int c) const; + inline void initKeys(const QString& pwd, quint32* keys) const; + + inline QDateTime convertDateTime(const unsigned char date[2], const unsigned char time[2]) const; +}; + +#endif // OSDAB_UNZIP_P__H diff --git a/rbutil/rbutilqt/zip/zip.h b/rbutil/rbutilqt/zip/zip.h index 03c4d8a..3a3137c 100644 --- a/rbutil/rbutilqt/zip/zip.h +++ b/rbutil/rbutilqt/zip/zip.h @@ -1,113 +1,113 @@ -/**************************************************************************** -** Filename: zip.h -** Last updated [dd/mm/yyyy]: 01/02/2007 -** -** pkzip 2.0 file compression. -** -** Some of the code has been inspired by other open source projects, -** (mainly Info-Zip and Gilles Vollant's minizip). -** Compression and decompression actually uses the zlib library. -** -** Copyright (C) 2007 Angius Fabrizio. All rights reserved. -** -** This file is part of the OSDaB project (http://osdab.sourceforge.net/). -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See the file LICENSE.GPL that came with this software distribution or -** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information. -** -**********************************************************************/ - -#ifndef OSDAB_ZIP__H -#define OSDAB_ZIP__H - -#include -#include - -#include - -class ZipPrivate; - -class QIODevice; -class QFile; -class QDir; -class QStringList; -class QString; - - -class Zip -{ -public: - enum ErrorCode - { - Ok, - ZlibInit, - ZlibError, - FileExists, - OpenFailed, - NoOpenArchive, - FileNotFound, - ReadFailed, - WriteFailed, - SeekFailed - }; - - enum CompressionLevel - { - Store, - Deflate1 = 1, Deflate2, Deflate3, Deflate4, - Deflate5, Deflate6, Deflate7, Deflate8, Deflate9, - AutoCPU, AutoMIME, AutoFull - }; - - enum CompressionOption - { - //! Does not preserve absolute paths in the zip file when adding a file/directory (default) - RelativePaths = 0x0001, - //! Preserve absolute paths - AbsolutePaths = 0x0002, - //! Do not store paths. All the files are put in the (evtl. user defined) root of the zip file - IgnorePaths = 0x0004 - }; - Q_DECLARE_FLAGS(CompressionOptions, CompressionOption) - - Zip(); - virtual ~Zip(); - - bool isOpen() const; - - void setPassword(const QString& pwd); - void clearPassword(); - QString password() const; - - ErrorCode createArchive(const QString& file, bool overwrite = true); - ErrorCode createArchive(QIODevice* device); - - QString archiveComment() const; - void setArchiveComment(const QString& comment); - - ErrorCode addDirectoryContents(const QString& path, CompressionLevel level = AutoFull); - ErrorCode addDirectoryContents(const QString& path, const QString& root, CompressionLevel level = AutoFull); - - ErrorCode addDirectory(const QString& path, CompressionOptions options = RelativePaths, CompressionLevel level = AutoFull); - ErrorCode addDirectory(const QString& path, const QString& root, CompressionLevel level = AutoFull); - ErrorCode addDirectory(const QString& path, const QString& root, CompressionOptions options = RelativePaths, CompressionLevel level = AutoFull); - - ErrorCode closeArchive(); - - QString formatError(ErrorCode c) const; - -private: - ZipPrivate* d; -}; - -Q_DECLARE_OPERATORS_FOR_FLAGS(Zip::CompressionOptions) - -#endif // OSDAB_ZIP__H +/**************************************************************************** +** Filename: zip.h +** Last updated [dd/mm/yyyy]: 01/02/2007 +** +** pkzip 2.0 file compression. +** +** Some of the code has been inspired by other open source projects, +** (mainly Info-Zip and Gilles Vollant's minizip). +** Compression and decompression actually uses the zlib library. +** +** Copyright (C) 2007 Angius Fabrizio. All rights reserved. +** +** This file is part of the OSDaB project (http://osdab.sourceforge.net/). +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See the file LICENSE.GPL that came with this software distribution or +** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information. +** +**********************************************************************/ + +#ifndef OSDAB_ZIP__H +#define OSDAB_ZIP__H + +#include +#include + +#include + +class ZipPrivate; + +class QIODevice; +class QFile; +class QDir; +class QStringList; +class QString; + + +class Zip +{ +public: + enum ErrorCode + { + Ok, + ZlibInit, + ZlibError, + FileExists, + OpenFailed, + NoOpenArchive, + FileNotFound, + ReadFailed, + WriteFailed, + SeekFailed + }; + + enum CompressionLevel + { + Store, + Deflate1 = 1, Deflate2, Deflate3, Deflate4, + Deflate5, Deflate6, Deflate7, Deflate8, Deflate9, + AutoCPU, AutoMIME, AutoFull + }; + + enum CompressionOption + { + //! Does not preserve absolute paths in the zip file when adding a file/directory (default) + RelativePaths = 0x0001, + //! Preserve absolute paths + AbsolutePaths = 0x0002, + //! Do not store paths. All the files are put in the (evtl. user defined) root of the zip file + IgnorePaths = 0x0004 + }; + Q_DECLARE_FLAGS(CompressionOptions, CompressionOption) + + Zip(); + virtual ~Zip(); + + bool isOpen() const; + + void setPassword(const QString& pwd); + void clearPassword(); + QString password() const; + + ErrorCode createArchive(const QString& file, bool overwrite = true); + ErrorCode createArchive(QIODevice* device); + + QString archiveComment() const; + void setArchiveComment(const QString& comment); + + ErrorCode addDirectoryContents(const QString& path, CompressionLevel level = AutoFull); + ErrorCode addDirectoryContents(const QString& path, const QString& root, CompressionLevel level = AutoFull); + + ErrorCode addDirectory(const QString& path, CompressionOptions options = RelativePaths, CompressionLevel level = AutoFull); + ErrorCode addDirectory(const QString& path, const QString& root, CompressionLevel level = AutoFull); + ErrorCode addDirectory(const QString& path, const QString& root, CompressionOptions options = RelativePaths, CompressionLevel level = AutoFull); + + ErrorCode closeArchive(); + + QString formatError(ErrorCode c) const; + +private: + ZipPrivate* d; +}; + +Q_DECLARE_OPERATORS_FOR_FLAGS(Zip::CompressionOptions) + +#endif // OSDAB_ZIP__H diff --git a/rbutil/rbutilqt/zip/zip_p.h b/rbutil/rbutilqt/zip/zip_p.h index b3c45ac..d882f72 100644 --- a/rbutil/rbutilqt/zip/zip_p.h +++ b/rbutil/rbutilqt/zip/zip_p.h @@ -1,93 +1,93 @@ -/**************************************************************************** -** Filename: zip_p.h -** Last updated [dd/mm/yyyy]: 28/01/2007 -** -** pkzip 2.0 file compression. -** -** Some of the code has been inspired by other open source projects, -** (mainly Info-Zip and Gilles Vollant's minizip). -** Compression and decompression actually uses the zlib library. -** -** Copyright (C) 2007 Angius Fabrizio. All rights reserved. -** -** This file is part of the OSDaB project (http://osdab.sourceforge.net/). -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See the file LICENSE.GPL that came with this software distribution or -** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information. -** -**********************************************************************/ - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Zip/UnZip API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#ifndef OSDAB_ZIP_P__H -#define OSDAB_ZIP_P__H - -#include "zip.h" -#include "zipentry_p.h" - -#include -#include - -/*! - zLib authors suggest using larger buffers (128K or 256K) for (de)compression (especially for inflate()) - we use a 256K buffer here - if you want to use this code on a pre-iceage mainframe please change it ;) -*/ -#define ZIP_READ_BUFFER (256*1024) - -class ZipPrivate -{ -public: - ZipPrivate(); - virtual ~ZipPrivate(); - - QMap* headers; - - QIODevice* device; - - char buffer1[ZIP_READ_BUFFER]; - char buffer2[ZIP_READ_BUFFER]; - - unsigned char* uBuffer; - - const quint32* crcTable; - - QString comment; - QString password; - - Zip::ErrorCode createArchive(QIODevice* device); - Zip::ErrorCode closeArchive(); - void reset(); - - bool zLibInit(); - - Zip::ErrorCode createEntry(const QFileInfo& file, const QString& root, Zip::CompressionLevel level); - Zip::CompressionLevel detectCompressionByMime(const QString& ext); - - inline void encryptBytes(quint32* keys, char* buffer, qint64 read); - - inline void setULong(quint32 v, char* buffer, unsigned int offset); - inline void updateKeys(quint32* keys, int c) const; - inline void initKeys(quint32* keys) const; - inline int decryptByte(quint32 key2) const; - - inline QString extractRoot(const QString& p); -}; - -#endif // OSDAB_ZIP_P__H +/**************************************************************************** +** Filename: zip_p.h +** Last updated [dd/mm/yyyy]: 28/01/2007 +** +** pkzip 2.0 file compression. +** +** Some of the code has been inspired by other open source projects, +** (mainly Info-Zip and Gilles Vollant's minizip). +** Compression and decompression actually uses the zlib library. +** +** Copyright (C) 2007 Angius Fabrizio. All rights reserved. +** +** This file is part of the OSDaB project (http://osdab.sourceforge.net/). +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See the file LICENSE.GPL that came with this software distribution or +** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information. +** +**********************************************************************/ + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Zip/UnZip API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#ifndef OSDAB_ZIP_P__H +#define OSDAB_ZIP_P__H + +#include "zip.h" +#include "zipentry_p.h" + +#include +#include + +/*! + zLib authors suggest using larger buffers (128K or 256K) for (de)compression (especially for inflate()) + we use a 256K buffer here - if you want to use this code on a pre-iceage mainframe please change it ;) +*/ +#define ZIP_READ_BUFFER (256*1024) + +class ZipPrivate +{ +public: + ZipPrivate(); + virtual ~ZipPrivate(); + + QMap* headers; + + QIODevice* device; + + char buffer1[ZIP_READ_BUFFER]; + char buffer2[ZIP_READ_BUFFER]; + + unsigned char* uBuffer; + + const quint32* crcTable; + + QString comment; + QString password; + + Zip::ErrorCode createArchive(QIODevice* device); + Zip::ErrorCode closeArchive(); + void reset(); + + bool zLibInit(); + + Zip::ErrorCode createEntry(const QFileInfo& file, const QString& root, Zip::CompressionLevel level); + Zip::CompressionLevel detectCompressionByMime(const QString& ext); + + inline void encryptBytes(quint32* keys, char* buffer, qint64 read); + + inline void setULong(quint32 v, char* buffer, unsigned int offset); + inline void updateKeys(quint32* keys, int c) const; + inline void initKeys(quint32* keys) const; + inline int decryptByte(quint32 key2) const; + + inline QString extractRoot(const QString& p); +}; + +#endif // OSDAB_ZIP_P__H diff --git a/rbutil/rbutilqt/zip/zipentry_p.h b/rbutil/rbutilqt/zip/zipentry_p.h index a201d0a..dce0984 100644 --- a/rbutil/rbutilqt/zip/zipentry_p.h +++ b/rbutil/rbutilqt/zip/zipentry_p.h @@ -1,78 +1,78 @@ -/**************************************************************************** -** Filename: ZipEntryP.h -** Last updated [dd/mm/yyyy]: 28/01/2007 -** -** Wrapper for a ZIP local header. -** -** Some of the code has been inspired by other open source projects, -** (mainly Info-Zip and Gilles Vollant's minizip). -** Compression and decompression actually uses the zlib library. -** -** Copyright (C) 2007 Angius Fabrizio. All rights reserved. -** -** This file is part of the OSDaB project (http://osdab.sourceforge.net/). -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See the file LICENSE.GPL that came with this software distribution or -** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information. -** -**********************************************************************/ - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Zip/UnZip API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#ifndef OSDAB_ZIPENTRY_P__H -#define OSDAB_ZIPENTRY_P__H - -#include -#include - -class ZipEntryP -{ -public: - ZipEntryP() - { - lhOffset = 0; - dataOffset = 0; - gpFlag[0] = gpFlag[1] = 0; - compMethod = 0; - modTime[0] = modTime[1] = 0; - modDate[0] = modDate[1] = 0; - crc = 0; - szComp = szUncomp = 0; - lhEntryChecked = false; - } - - quint32 lhOffset; // Offset of the local header record for this entry - quint32 dataOffset; // Offset of the file data for this entry - unsigned char gpFlag[2]; // General purpose flag - quint16 compMethod; // Compression method - unsigned char modTime[2]; // Last modified time - unsigned char modDate[2]; // Last modified date - quint32 crc; // CRC32 - quint32 szComp; // Compressed file size - quint32 szUncomp; // Uncompressed file size - QString comment; // File comment - - bool lhEntryChecked; // Is true if the local header record for this entry has been parsed - - inline bool isEncrypted() const { return gpFlag[0] & 0x01; } - inline bool hasDataDescriptor() const { return gpFlag[0] & 0x08; } -}; - -#endif // OSDAB_ZIPENTRY_P__H +/**************************************************************************** +** Filename: ZipEntryP.h +** Last updated [dd/mm/yyyy]: 28/01/2007 +** +** Wrapper for a ZIP local header. +** +** Some of the code has been inspired by other open source projects, +** (mainly Info-Zip and Gilles Vollant's minizip). +** Compression and decompression actually uses the zlib library. +** +** Copyright (C) 2007 Angius Fabrizio. All rights reserved. +** +** This file is part of the OSDaB project (http://osdab.sourceforge.net/). +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See the file LICENSE.GPL that came with this software distribution or +** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information. +** +**********************************************************************/ + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Zip/UnZip API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#ifndef OSDAB_ZIPENTRY_P__H +#define OSDAB_ZIPENTRY_P__H + +#include +#include + +class ZipEntryP +{ +public: + ZipEntryP() + { + lhOffset = 0; + dataOffset = 0; + gpFlag[0] = gpFlag[1] = 0; + compMethod = 0; + modTime[0] = modTime[1] = 0; + modDate[0] = modDate[1] = 0; + crc = 0; + szComp = szUncomp = 0; + lhEntryChecked = false; + } + + quint32 lhOffset; // Offset of the local header record for this entry + quint32 dataOffset; // Offset of the file data for this entry + unsigned char gpFlag[2]; // General purpose flag + quint16 compMethod; // Compression method + unsigned char modTime[2]; // Last modified time + unsigned char modDate[2]; // Last modified date + quint32 crc; // CRC32 + quint32 szComp; // Compressed file size + quint32 szUncomp; // Uncompressed file size + QString comment; // File comment + + bool lhEntryChecked; // Is true if the local header record for this entry has been parsed + + inline bool isEncrypted() const { return gpFlag[0] & 0x01; } + inline bool hasDataDescriptor() const { return gpFlag[0] & 0x08; } +}; + +#endif // OSDAB_ZIPENTRY_P__H diff --git a/rbutil/sansapatcher/parttypes.h b/rbutil/sansapatcher/parttypes.h index f8de303..c369bc3 100644 --- a/rbutil/sansapatcher/parttypes.h +++ b/rbutil/sansapatcher/parttypes.h @@ -6,104 +6,104 @@ struct parttype { }; struct parttype parttypes[] = { - {0x00, "Empty"}, - {0x01, "FAT12"}, - {0x02, "XENIX root"}, - {0x03, "XENIX usr"}, - {0x04, "FAT16 <32M"}, - {0x05, "Extended"}, /* DOS 3.3+ extended partition */ - {0x06, "FAT16"}, /* DOS 16-bit >=32M */ - {0x07, "HPFS/NTFS"}, /* OS/2 IFS, eg, HPFS or NTFS or QNX */ - {0x08, "AIX"}, /* AIX boot (AIX -- PS/2 port) or SplitDrive */ - {0x09, "AIX bootable"}, /* AIX data or Coherent */ - {0x0a, "OS/2 Boot Manager"},/* OS/2 Boot Manager */ - {0x0b, "W95 FAT32"}, - {0x0c, "W95 FAT32 (LBA)"},/* LBA really is `Extended Int 13h' */ - {0x0e, "W95 FAT16 (LBA)"}, - {0x0f, "W95 Ext'd (LBA)"}, - {0x10, "OPUS"}, - {0x11, "Hidden FAT12"}, - {0x12, "Compaq diagnostics"}, - {0x14, "Hidden FAT16 <32M"}, - {0x16, "Hidden FAT16"}, - {0x17, "Hidden HPFS/NTFS"}, - {0x18, "AST SmartSleep"}, - {0x1b, "Hidden W95 FAT32"}, - {0x1c, "Hidden W95 FAT32 (LBA)"}, - {0x1e, "Hidden W95 FAT16 (LBA)"}, - {0x24, "NEC DOS"}, - {0x39, "Plan 9"}, - {0x3c, "PartitionMagic recovery"}, - {0x40, "Venix 80286"}, - {0x41, "PPC PReP Boot"}, - {0x42, "SFS"}, - {0x4d, "QNX4.x"}, - {0x4e, "QNX4.x 2nd part"}, - {0x4f, "QNX4.x 3rd part"}, - {0x50, "OnTrack DM"}, - {0x51, "OnTrack DM6 Aux1"}, /* (or Novell) */ - {0x52, "CP/M"}, /* CP/M or Microport SysV/AT */ - {0x53, "OnTrack DM6 Aux3"}, - {0x54, "OnTrackDM6"}, - {0x55, "EZ-Drive"}, - {0x56, "Golden Bow"}, - {0x5c, "Priam Edisk"}, - {0x61, "SpeedStor"}, - {0x63, "GNU HURD or SysV"}, /* GNU HURD or Mach or Sys V/386 (such as ISC UNIX) */ - {0x64, "Novell Netware 286"}, - {0x65, "Novell Netware 386"}, - {0x70, "DiskSecure Multi-Boot"}, - {0x75, "PC/IX"}, - {0x80, "Old Minix"}, /* Minix 1.4a and earlier */ - {0x81, "Minix / old Linux"},/* Minix 1.4b and later */ - {0x82, "Linux swap / Solaris"}, - {0x83, "Linux"}, - {0x84, "OS/2 hidden C: drive"}, - {0x85, "Linux extended"}, - {0x86, "NTFS volume set"}, - {0x87, "NTFS volume set"}, - {0x88, "Linux plaintext"}, - {0x8e, "Linux LVM"}, - {0x93, "Amoeba"}, - {0x94, "Amoeba BBT"}, /* (bad block table) */ - {0x9f, "BSD/OS"}, /* BSDI */ - {0xa0, "IBM Thinkpad hibernation"}, - {0xa5, "FreeBSD"}, /* various BSD flavours */ - {0xa6, "OpenBSD"}, - {0xa7, "NeXTSTEP"}, - {0xa8, "Darwin UFS"}, - {0xa9, "NetBSD"}, - {0xab, "Darwin boot"}, - {0xb7, "BSDI fs"}, - {0xb8, "BSDI swap"}, - {0xbb, "Boot Wizard hidden"}, - {0xbe, "Solaris boot"}, - {0xbf, "Solaris"}, - {0xc1, "DRDOS/sec (FAT-12)"}, - {0xc4, "DRDOS/sec (FAT-16 < 32M)"}, - {0xc6, "DRDOS/sec (FAT-16)"}, - {0xc7, "Syrinx"}, - {0xda, "Non-FS data"}, - {0xdb, "CP/M / CTOS / ..."},/* CP/M or Concurrent CP/M or - Concurrent DOS or CTOS */ - {0xde, "Dell Utility"}, /* Dell PowerEdge Server utilities */ - {0xdf, "BootIt"}, /* BootIt EMBRM */ - {0xe1, "DOS access"}, /* DOS access or SpeedStor 12-bit FAT - extended partition */ - {0xe3, "DOS R/O"}, /* DOS R/O or SpeedStor */ - {0xe4, "SpeedStor"}, /* SpeedStor 16-bit FAT extended - partition < 1024 cyl. */ - {0xeb, "BeOS fs"}, - {0xee, "EFI GPT"}, /* Intel EFI GUID Partition Table */ - {0xef, "EFI (FAT-12/16/32)"},/* Intel EFI System Partition */ - {0xf0, "Linux/PA-RISC boot"},/* Linux/PA-RISC boot loader */ - {0xf1, "SpeedStor"}, - {0xf4, "SpeedStor"}, /* SpeedStor large partition */ - {0xf2, "DOS secondary"}, /* DOS 3.3+ secondary */ - {0xfd, "Linux raid autodetect"},/* New (2.2.x) raid partition with - autodetect using persistent - superblock */ - {0xfe, "LANstep"}, /* SpeedStor >1024 cyl. or LANstep */ - {0xff, "BBT"}, /* Xenix Bad Block Table */ - { 0, 0 } + {0x00, "Empty"}, + {0x01, "FAT12"}, + {0x02, "XENIX root"}, + {0x03, "XENIX usr"}, + {0x04, "FAT16 <32M"}, + {0x05, "Extended"}, /* DOS 3.3+ extended partition */ + {0x06, "FAT16"}, /* DOS 16-bit >=32M */ + {0x07, "HPFS/NTFS"}, /* OS/2 IFS, eg, HPFS or NTFS or QNX */ + {0x08, "AIX"}, /* AIX boot (AIX -- PS/2 port) or SplitDrive */ + {0x09, "AIX bootable"}, /* AIX data or Coherent */ + {0x0a, "OS/2 Boot Manager"},/* OS/2 Boot Manager */ + {0x0b, "W95 FAT32"}, + {0x0c, "W95 FAT32 (LBA)"},/* LBA really is `Extended Int 13h' */ + {0x0e, "W95 FAT16 (LBA)"}, + {0x0f, "W95 Ext'd (LBA)"}, + {0x10, "OPUS"}, + {0x11, "Hidden FAT12"}, + {0x12, "Compaq diagnostics"}, + {0x14, "Hidden FAT16 <32M"}, + {0x16, "Hidden FAT16"}, + {0x17, "Hidden HPFS/NTFS"}, + {0x18, "AST SmartSleep"}, + {0x1b, "Hidden W95 FAT32"}, + {0x1c, "Hidden W95 FAT32 (LBA)"}, + {0x1e, "Hidden W95 FAT16 (LBA)"}, + {0x24, "NEC DOS"}, + {0x39, "Plan 9"}, + {0x3c, "PartitionMagic recovery"}, + {0x40, "Venix 80286"}, + {0x41, "PPC PReP Boot"}, + {0x42, "SFS"}, + {0x4d, "QNX4.x"}, + {0x4e, "QNX4.x 2nd part"}, + {0x4f, "QNX4.x 3rd part"}, + {0x50, "OnTrack DM"}, + {0x51, "OnTrack DM6 Aux1"}, /* (or Novell) */ + {0x52, "CP/M"}, /* CP/M or Microport SysV/AT */ + {0x53, "OnTrack DM6 Aux3"}, + {0x54, "OnTrackDM6"}, + {0x55, "EZ-Drive"}, + {0x56, "Golden Bow"}, + {0x5c, "Priam Edisk"}, + {0x61, "SpeedStor"}, + {0x63, "GNU HURD or SysV"}, /* GNU HURD or Mach or Sys V/386 (such as ISC UNIX) */ + {0x64, "Novell Netware 286"}, + {0x65, "Novell Netware 386"}, + {0x70, "DiskSecure Multi-Boot"}, + {0x75, "PC/IX"}, + {0x80, "Old Minix"}, /* Minix 1.4a and earlier */ + {0x81, "Minix / old Linux"},/* Minix 1.4b and later */ + {0x82, "Linux swap / Solaris"}, + {0x83, "Linux"}, + {0x84, "OS/2 hidden C: drive"}, + {0x85, "Linux extended"}, + {0x86, "NTFS volume set"}, + {0x87, "NTFS volume set"}, + {0x88, "Linux plaintext"}, + {0x8e, "Linux LVM"}, + {0x93, "Amoeba"}, + {0x94, "Amoeba BBT"}, /* (bad block table) */ + {0x9f, "BSD/OS"}, /* BSDI */ + {0xa0, "IBM Thinkpad hibernation"}, + {0xa5, "FreeBSD"}, /* various BSD flavours */ + {0xa6, "OpenBSD"}, + {0xa7, "NeXTSTEP"}, + {0xa8, "Darwin UFS"}, + {0xa9, "NetBSD"}, + {0xab, "Darwin boot"}, + {0xb7, "BSDI fs"}, + {0xb8, "BSDI swap"}, + {0xbb, "Boot Wizard hidden"}, + {0xbe, "Solaris boot"}, + {0xbf, "Solaris"}, + {0xc1, "DRDOS/sec (FAT-12)"}, + {0xc4, "DRDOS/sec (FAT-16 < 32M)"}, + {0xc6, "DRDOS/sec (FAT-16)"}, + {0xc7, "Syrinx"}, + {0xda, "Non-FS data"}, + {0xdb, "CP/M / CTOS / ..."},/* CP/M or Concurrent CP/M or + Concurrent DOS or CTOS */ + {0xde, "Dell Utility"}, /* Dell PowerEdge Server utilities */ + {0xdf, "BootIt"}, /* BootIt EMBRM */ + {0xe1, "DOS access"}, /* DOS access or SpeedStor 12-bit FAT + extended partition */ + {0xe3, "DOS R/O"}, /* DOS R/O or SpeedStor */ + {0xe4, "SpeedStor"}, /* SpeedStor 16-bit FAT extended + partition < 1024 cyl. */ + {0xeb, "BeOS fs"}, + {0xee, "EFI GPT"}, /* Intel EFI GUID Partition Table */ + {0xef, "EFI (FAT-12/16/32)"},/* Intel EFI System Partition */ + {0xf0, "Linux/PA-RISC boot"},/* Linux/PA-RISC boot loader */ + {0xf1, "SpeedStor"}, + {0xf4, "SpeedStor"}, /* SpeedStor large partition */ + {0xf2, "DOS secondary"}, /* DOS 3.3+ secondary */ + {0xfd, "Linux raid autodetect"},/* New (2.2.x) raid partition with + autodetect using persistent + superblock */ + {0xfe, "LANstep"}, /* SpeedStor >1024 cyl. or LANstep */ + {0xff, "BBT"}, /* Xenix Bad Block Table */ + { 0, 0 } }; diff --git a/rbutil/sansapatcher/sansaio-posix.c b/rbutil/sansapatcher/sansaio-posix.c index 22abc88..a344c64 100644 --- a/rbutil/sansapatcher/sansaio-posix.c +++ b/rbutil/sansapatcher/sansaio-posix.c @@ -82,7 +82,7 @@ int sansa_open(struct sansa_t* sansa, int silent) if (!silent) { fprintf(stderr,"[ERR] ioctl() call to get sector size failed, defaulting to %d\n" ,sansa->sector_size); - } + } } return 0; } diff --git a/rbutil/sansapatcher/sansaio-win32.c b/rbutil/sansapatcher/sansaio-win32.c index 8c2c696..6681e3c 100644 --- a/rbutil/sansapatcher/sansaio-win32.c +++ b/rbutil/sansapatcher/sansaio-win32.c @@ -42,7 +42,7 @@ static int lock_volume(HANDLE hDisk) DWORD dummy; return DeviceIoControl(hDisk, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, - &dummy, NULL); + &dummy, NULL); } static int unlock_volume(HANDLE hDisk) @@ -50,7 +50,7 @@ static int unlock_volume(HANDLE hDisk) DWORD dummy; return DeviceIoControl(hDisk, FSCTL_UNLOCK_VOLUME, NULL, 0, NULL, 0, - &dummy, NULL); + &dummy, NULL); } #ifndef RBUTIL diff --git a/rbutil/sansapatcher/sansapatcher.c b/rbutil/sansapatcher/sansapatcher.c index bc03108..dc0747e 100644 --- a/rbutil/sansapatcher/sansapatcher.c +++ b/rbutil/sansapatcher/sansapatcher.c @@ -171,9 +171,9 @@ sansa_memmem (haystack, haystack_len, needle, needle_len) for (begin = (const char *) haystack; begin <= last_possible; ++begin) if (begin[0] == ((const char *) needle)[0] && - !memcmp ((const void *) &begin[1], - (const void *) ((const char *) needle + 1), - needle_len - 1)) + !memcmp ((const void *) &begin[1], + (const void *) ((const char *) needle + 1), + needle_len - 1)) return (void *) begin; return NULL; @@ -195,15 +195,15 @@ sansa_memmem (haystack, haystack_len, needle, needle_len) */ /* crc_tab[] -- this crcTable is being build by chksum_crc32GenTab(). - * so make sure, you call it before using the other - * functions! + * so make sure, you call it before using the other + * functions! */ static unsigned int crc_tab[256]; /* chksum_crc() -- to a given block, this one calculates the - * crc32-checksum until the length is - * reached. the crc32-checksum will be - * the result. + * crc32-checksum until the length is + * reached. the crc32-checksum will be + * the result. */ static unsigned int chksum_crc32 (unsigned char *block, unsigned int length) { @@ -219,8 +219,8 @@ static unsigned int chksum_crc32 (unsigned char *block, unsigned int length) } /* chksum_crc32gentab() -- to a global crc_tab[256], this one will - * calculate the crcTable for crc32-checksums. - * it is generated to the polynom [..] + * calculate the crcTable for crc32-checksums. + * it is generated to the polynom [..] */ static void chksum_crc32gentab (void) @@ -234,14 +234,14 @@ static void chksum_crc32gentab (void) crc = i; for (j = 8; j > 0; j--) { - if (crc & 1) - { - crc = (crc >> 1) ^ poly; - } - else - { - crc >>= 1; - } + if (crc & 1) + { + crc = (crc >> 1) ^ poly; + } + else + { + crc >>= 1; + } } crc_tab[i] = crc; } diff --git a/tools/convbdf.c b/tools/convbdf.c index cbb13cb..0d2f8d9 100644 --- a/tools/convbdf.c +++ b/tools/convbdf.c @@ -5,7 +5,7 @@ * * What fun it is converting font data... * - * 09/17/02 Version 1.0 + * 09/17/02 Version 1.0 */ #include #include @@ -17,51 +17,51 @@ /* BEGIN font.h*/ /* loadable font magic and version #*/ #ifdef ROTATE -#define VERSION "RB12" /* newer version */ +#define VERSION "RB12" /* newer version */ #else -#define VERSION "RB11" +#define VERSION "RB11" #endif /* bitmap_t helper macros*/ -#define BITMAP_WORDS(x) (((x)+15)/16) /* image size in words*/ +#define BITMAP_WORDS(x) (((x)+15)/16) /* image size in words*/ #define BITMAP_BYTES(x) (BITMAP_WORDS(x)*sizeof(bitmap_t)) -#define BITMAP_BITSPERIMAGE (sizeof(bitmap_t) * 8) -#define BITMAP_BITVALUE(n) ((bitmap_t) (((bitmap_t) 1) << (n))) -#define BITMAP_FIRSTBIT (BITMAP_BITVALUE(BITMAP_BITSPERIMAGE - 1)) -#define BITMAP_TESTBIT(m) ((m) & BITMAP_FIRSTBIT) -#define BITMAP_SHIFTBIT(m) ((bitmap_t) ((m) << 1)) +#define BITMAP_BITSPERIMAGE (sizeof(bitmap_t) * 8) +#define BITMAP_BITVALUE(n) ((bitmap_t) (((bitmap_t) 1) << (n))) +#define BITMAP_FIRSTBIT (BITMAP_BITVALUE(BITMAP_BITSPERIMAGE - 1)) +#define BITMAP_TESTBIT(m) ((m) & BITMAP_FIRSTBIT) +#define BITMAP_SHIFTBIT(m) ((bitmap_t) ((m) << 1)) typedef unsigned short bitmap_t; /* bitmap image unit size*/ /* builtin C-based proportional/fixed font structure */ /* based on The Microwindows Project http://microwindows.org */ struct font { - int maxwidth; /* max width in pixels*/ - int height; /* height in pixels*/ - int ascent; /* ascent (baseline) height*/ - int firstchar; /* first character in bitmap*/ - int size; /* font size in glyphs*/ - bitmap_t* bits; /* 16-bit right-padded bitmap data*/ - unsigned int* offset; /* offsets into bitmap data*/ - unsigned char* width; /* character widths or NULL if fixed*/ - int defaultchar; /* default char (not glyph index)*/ - int bits_size; /* # words of bitmap_t bits*/ + int maxwidth; /* max width in pixels*/ + int height; /* height in pixels*/ + int ascent; /* ascent (baseline) height*/ + int firstchar; /* first character in bitmap*/ + int size; /* font size in glyphs*/ + bitmap_t* bits; /* 16-bit right-padded bitmap data*/ + unsigned int* offset; /* offsets into bitmap data*/ + unsigned char* width; /* character widths or NULL if fixed*/ + int defaultchar; /* default char (not glyph index)*/ + int bits_size; /* # words of bitmap_t bits*/ /* unused by runtime system, read in by convbdf*/ - unsigned int* offrot; /* offsets into rotated bitmap data*/ - char * name; /* font name*/ - char * facename; /* facename of font*/ - char * copyright; /* copyright info for loadable fonts*/ - int pixel_size; - int descent; - int fbbw, fbbh, fbbx, fbby; + unsigned int* offrot; /* offsets into rotated bitmap data*/ + char * name; /* font name*/ + char * facename; /* facename of font*/ + char * copyright; /* copyright info for loadable fonts*/ + int pixel_size; + int descent; + int fbbw, fbbh, fbbx, fbby; }; /* END font.h*/ -#define isprefix(buf,str) (!strncmp(buf, str, strlen(str))) -#define strequal(s1,s2) (!strcmp(s1, s2)) +#define isprefix(buf,str) (!strncmp(buf, str, strlen(str))) +#define strequal(s1,s2) (!strcmp(s1, s2)) -#define EXTRA 300 /* # bytes extra allocation for buggy .bdf files*/ +#define EXTRA 300 /* # bytes extra allocation for buggy .bdf files*/ int gen_c = 0; int gen_h = 0; @@ -91,16 +91,16 @@ void usage(void) { char help[] = { - "Usage: convbdf [options] [input-files]\n" - " convbdf [options] [-o output-file] [single-input-file]\n" - "Options:\n" - " -c Convert .bdf to .c source file\n" - " -h Convert .bdf to .h header file (to create sysfont.h)\n" - " -f Convert .bdf to .fnt font file\n" - " -s N Start output at character encodings >= N\n" - " -l N Limit output to character encodings <= N\n" - " -n Don't generate bitmaps as comments in .c file\n" - }; + "Usage: convbdf [options] [input-files]\n" + " convbdf [options] [-o output-file] [single-input-file]\n" + "Options:\n" + " -c Convert .bdf to .c source file\n" + " -h Convert .bdf to .h header file (to create sysfont.h)\n" + " -f Convert .bdf to .fnt font file\n" + " -s N Start output at character encodings >= N\n" + " -l N Limit output to character encodings <= N\n" + " -n Don't generate bitmaps as comments in .c file\n" + }; fprintf(stderr, help); } @@ -118,25 +118,25 @@ void getopts(int *pac, char ***pav) p = &av[0][1]; while( *p) switch(*p++) { - case ' ': /* multiple -args on av[]*/ + case ' ': /* multiple -args on av[]*/ while( *p && *p == ' ') p++; - if( *p++ != '-') /* next option must have dash*/ + if( *p++ != '-') /* next option must have dash*/ p = ""; - break; /* proceed to next option*/ - case 'c': /* generate .c output*/ + break; /* proceed to next option*/ + case 'c': /* generate .c output*/ gen_c = 1; break; case 'h': /* generate .h output*/ gen_h = 1; break; - case 'f': /* generate .fnt output*/ + case 'f': /* generate .fnt output*/ gen_fnt = 1; break; - case 'n': /* don't gen bitmap comments*/ + case 'n': /* don't gen bitmap comments*/ gen_map = 0; break; - case 'o': /* set output file*/ + case 'o': /* set output file*/ oflag = 1; if (*p) { strcpy(outfile, p); @@ -149,7 +149,7 @@ void getopts(int *pac, char ***pav) strcpy(outfile, av[0]); } break; - case 'l': /* set encoding limit*/ + case 'l': /* set encoding limit*/ if (*p) { limit_char = atoi(p); while (*p && *p != ' ') @@ -161,7 +161,7 @@ void getopts(int *pac, char ***pav) limit_char = atoi(av[0]); } break; - case 's': /* set encoding start*/ + case 's': /* set encoding start*/ if (*p) { start_char = atoi(p); while (*p && *p != ' ') @@ -245,8 +245,8 @@ int main(int ac, char **av) { int ret = 0; - ++av; --ac; /* skip av[0]*/ - getopts(&ac, &av); /* read command line options*/ + ++av; --ac; /* skip av[0]*/ + getopts(&ac, &av); /* read command line options*/ if (ac < 1 || (!gen_c && !gen_h && !gen_fnt)) { usage(); @@ -302,7 +302,7 @@ struct font* bdf_read_font(char *path) pf = (struct font*)calloc(1, sizeof(struct font)); if (!pf) goto errout; - + pf->name = strdup(basename(path)); if (!bdf_read_header(fp, pf)) { @@ -345,7 +345,7 @@ int bdf_read_header(FILE *fp, struct font* pf) fprintf(stderr, "Error: EOF on file\n"); return 0; } - if (isprefix(buf, "FONT ")) { /* not required*/ + if (isprefix(buf, "FONT ")) { /* not required*/ if (sscanf(buf, "FONT %[^\n]", facename) != 1) { fprintf(stderr, "Error: bad 'FONT'\n"); return 0; @@ -353,7 +353,7 @@ int bdf_read_header(FILE *fp, struct font* pf) pf->facename = strdup(facename); continue; } - if (isprefix(buf, "COPYRIGHT ")) { /* not required*/ + if (isprefix(buf, "COPYRIGHT ")) { /* not required*/ if (sscanf(buf, "COPYRIGHT \"%[^\"]", copyright) != 1) { fprintf(stderr, "Error: bad 'COPYRIGHT'\n"); return 0; @@ -361,7 +361,7 @@ int bdf_read_header(FILE *fp, struct font* pf) pf->copyright = strdup(copyright); continue; } - if (isprefix(buf, "DEFAULT_CHAR ")) { /* not required*/ + if (isprefix(buf, "DEFAULT_CHAR ")) { /* not required*/ if (sscanf(buf, "DEFAULT_CHAR %d", &pf->defaultchar) != 1) { fprintf(stderr, "Error: bad 'DEFAULT_CHAR'\n"); return 0; @@ -439,7 +439,7 @@ int bdf_read_header(FILE *fp, struct font* pf) /* calc font size (offset/width entries)*/ pf->firstchar = firstchar; pf->size = lastchar - firstchar + 1; - + /* use the font boundingbox to get initial maxwidth*/ /*maxwidth = pf->fbbw - pf->fbbx;*/ maxwidth = pf->fbbw; @@ -452,7 +452,7 @@ int bdf_read_header(FILE *fp, struct font* pf) pf->offset = (unsigned int *)malloc(pf->size * sizeof(unsigned int)); pf->offrot = (unsigned int *)malloc(pf->size * sizeof(unsigned int)); pf->width = (unsigned char *)malloc(pf->size * sizeof(unsigned char)); - + if (!pf->bits || !pf->offset || !pf->offrot || !pf->width) { fprintf(stderr, "Error: no memory for font load\n"); return 0; @@ -536,7 +536,7 @@ int bdf_read_bitmaps(FILE *fp, struct font* pf) /* calc char width*/ if (bbx < 0) { width -= bbx; - /*if (width > maxwidth) + /*if (width > maxwidth) width = maxwidth;*/ bbx = 0; } @@ -548,8 +548,8 @@ int bdf_read_bitmaps(FILE *fp, struct font* pf) memset(ch_bitmap, 0, BITMAP_BYTES(width) * pf->height); ch_words = BITMAP_WORDS(width); -#define BM(row,col) (*(ch_bitmap + ((row)*ch_words) + (col))) -#define BITMAP_NIBBLES (BITMAP_BITSPERIMAGE/4) +#define BM(row,col) (*(ch_bitmap + ((row)*ch_words) + (col))) +#define BITMAP_NIBBLES (BITMAP_BITSPERIMAGE/4) /* read bitmaps*/ for (i=0; ; ++i) { @@ -567,7 +567,7 @@ int bdf_read_bitmaps(FILE *fp, struct font* pf) int ndx = k * BITMAP_NIBBLES; int padnibbles = hexnibbles - ndx; bitmap_t value; - + if (padnibbles <= 0) break; if (padnibbles >= BITMAP_NIBBLES) @@ -962,7 +962,7 @@ int gen_c_source(struct font* pf, char *path) else sprintf(buf, "0, /* fixed width */"); - fprintf(ofp, "/* Exported structure definition. */\n" + fprintf(ofp, "/* Exported structure definition. */\n" "const struct font sysfont = {\n" " %d, /* maxwidth */\n" " %d, /* height */\n" @@ -1116,9 +1116,9 @@ int gen_fnt_file(struct font* pf, char *path) writeint(ofp, pf->size); /* variable font data sizes*/ - writeint(ofp, pf->bits_size); /* # words of bitmap_t*/ + writeint(ofp, pf->bits_size); /* # words of bitmap_t*/ writeint(ofp, pf->offset? pf->size: 0); /* # ints of offset*/ - writeint(ofp, pf->width? pf->size: 0); /* # bytes of width*/ + writeint(ofp, pf->width? pf->size: 0); /* # bytes of width*/ /* variable font data*/ #ifdef ROTATE for (i=0; isize; ++i) @@ -1176,7 +1176,7 @@ int gen_fnt_file(struct font* pf, char *path) for (i=0; ibits_size; ++i) writeshort(ofp, pf->bits[i]); if (ftell(ofp) & 2) - writeshort(ofp, 0); /* pad to 32-bit boundary*/ + writeshort(ofp, 0); /* pad to 32-bit boundary*/ if (pf->offset) for (i=0; isize; ++i) { diff --git a/tools/descramble.c b/tools/descramble.c index 3d09bfa..524d58e 100644 --- a/tools/descramble.c +++ b/tools/descramble.c @@ -229,7 +229,7 @@ int main (int argc, char** argv) free(inbuf); free(outbuf); - return 0; + return 0; } int iaudio_decode(char *iname, char *oname) diff --git a/tools/fwpatcher/iriver.c b/tools/fwpatcher/iriver.c index e24df8c..4d34592 100644 --- a/tools/fwpatcher/iriver.c +++ b/tools/fwpatcher/iriver.c @@ -112,8 +112,8 @@ int iriver_decode(TCHAR *infile_name, TCHAR *outfile_name, unsigned int modify, infile = openinfile(infile_name); outfile = openoutfile(outfile_name); - if (!infile || !outfile) return -1; - + if (!infile || !outfile) return -1; + lenread = fread( headerdata, 1, 512, infile ); if( lenread != 512 ) { @@ -148,7 +148,7 @@ int iriver_decode(TCHAR *infile_name, TCHAR *outfile_name, unsigned int modify, { fprintf( stderr, "This doesn't look like a valid encrypted " "iHP firmware - reason: file 'length' data\n" ); - goto error; + goto error; }; pChecksums = ppChecksums = (unsigned char *)( malloc( dwLength3 ) ); @@ -208,7 +208,7 @@ int iriver_decode(TCHAR *infile_name, TCHAR *outfile_name, unsigned int modify, { fprintf( stderr, "This doesn't look like a valid encrypted " "iHP firmware - reason: 'length2' mismatch\n" ); - goto error; + goto error; }; fp = 0; @@ -223,7 +223,7 @@ int iriver_decode(TCHAR *infile_name, TCHAR *outfile_name, unsigned int modify, { fprintf( stderr, "This doesn't look like a valid encrypted " "iHP firmware - reason: Checksum mismatch!" ); - goto error; + goto error; }; ppChecksums += lenread; }; @@ -232,7 +232,7 @@ int iriver_decode(TCHAR *infile_name, TCHAR *outfile_name, unsigned int modify, { fprintf( stderr, "This doesn't look like a valid encrypted " "iHP firmware - reason: 'length3' mismatch\n" ); - goto error; + goto error; }; @@ -254,13 +254,13 @@ int iriver_decode(TCHAR *infile_name, TCHAR *outfile_name, unsigned int modify, break; }; - fclose(infile); - fclose(outfile); + fclose(infile); + fclose(outfile); return 0; error: - fclose(infile); - fclose(outfile); - return -1; + fclose(infile); + fclose(outfile); + return -1; }; int iriver_encode(TCHAR *infile_name, TCHAR *outfile_name, unsigned int modify ) @@ -282,7 +282,7 @@ int iriver_encode(TCHAR *infile_name, TCHAR *outfile_name, unsigned int modify ) infile = openinfile(infile_name); outfile = openoutfile(outfile_name); - if (!infile || !outfile) return -1; + if (!infile || !outfile) return -1; lenread = fread( headerdata, 1, 512, infile ); if( lenread != 512 ) @@ -383,11 +383,11 @@ int iriver_encode(TCHAR *infile_name, TCHAR *outfile_name, unsigned int modify ) fprintf( stderr, "File encoded successfully and checksum table built!\n" ); - fclose(infile); - fclose(outfile); + fclose(infile); + fclose(outfile); return 0; error: - fclose(infile); - fclose(outfile); - return -1; + fclose(infile); + fclose(outfile); + return -1; }; diff --git a/tools/ipod_fw.c b/tools/ipod_fw.c index eefe3f7..0ea3290 100644 --- a/tools/ipod_fw.c +++ b/tools/ipod_fw.c @@ -44,16 +44,16 @@ int be; unsigned short fw_version = 2; typedef struct _image { - char type[4]; /* '' */ - unsigned id; /* */ - char pad1[4]; /* 0000 0000 */ - unsigned devOffset; /* byte offset of start of image code */ - unsigned len; /* length in bytes of image */ - unsigned addr; /* load address */ - unsigned entryOffset; /* execution start within image */ - unsigned chksum; /* checksum for image */ - unsigned vers; /* image version */ - unsigned loadAddr; /* load address for image */ + char type[4]; /* '' */ + unsigned id; /* */ + char pad1[4]; /* 0000 0000 */ + unsigned devOffset; /* byte offset of start of image code */ + unsigned len; /* length in bytes of image */ + unsigned addr; /* load address */ + unsigned entryOffset; /* execution start within image */ + unsigned chksum; /* checksum for image */ + unsigned vers; /* image version */ + unsigned loadAddr; /* load address for image */ } image_t; static char *apple_copyright = "{{~~ /-----\\ {{~~ / \\ {{~~| | {{~~| S T O P | {{~~| | {{~~ \\ / {{~~ \\-----/ Copyright(C) 2001 Apple Computer, Inc.---------------------------------------------------------------------------------------------------------"; @@ -62,35 +62,35 @@ unsigned switch_32(unsigned l) { if (be) - return ((l & 0xff) << 24) - | ((l & 0xff00) << 8) - | ((l & 0xff0000) >> 8) - | ((l & 0xff000000) >> 24); + return ((l & 0xff) << 24) + | ((l & 0xff00) << 8) + | ((l & 0xff0000) >> 8) + | ((l & 0xff000000) >> 24); return l; } unsigned short switch_16(unsigned short s) { - if (be) { - return ((s & 0xff) << 8) | ((s & 0xff00) >> 8); - } else { - return s; - } + if (be) { + return ((s & 0xff) << 8) | ((s & 0xff00) >> 8); + } else { + return s; + } } void switch_endian(image_t *image) { if (be) { - image->id = switch_32(image->id); - image->devOffset = switch_32(image->devOffset); - image->len = switch_32(image->len); - image->addr = switch_32(image->addr); - image->entryOffset = switch_32(image->entryOffset); - image->chksum = switch_32(image->chksum); - image->vers = switch_32(image->vers); - image->loadAddr = switch_32(image->loadAddr); + image->id = switch_32(image->id); + image->devOffset = switch_32(image->devOffset); + image->len = switch_32(image->len); + image->addr = switch_32(image->addr); + image->entryOffset = switch_32(image->entryOffset); + image->chksum = switch_32(image->chksum); + image->vers = switch_32(image->vers); + image->loadAddr = switch_32(image->loadAddr); } } @@ -98,35 +98,35 @@ void print_image(image_t *image, const char *head) { printf("%stype: '%s' id: 0x%08x len: 0x%x addr: 0x%08x vers: 0x%x\n", - head, image->type, image->id, image->len, image->addr, image->vers); + head, image->type, image->id, image->len, image->addr, image->vers); printf(" devOffset: 0x%08X entryOffset: 0x%08X " - "loadAddr: 0x%08X chksum: 0x%08X\n", - image->devOffset, image->entryOffset, - image->loadAddr, image->chksum); + "loadAddr: 0x%08X chksum: 0x%08X\n", + image->devOffset, image->entryOffset, + image->loadAddr, image->chksum); } void usage() { printf("Usage: ipod_fw [-h]\n" - " ipod_fw [-v] -o outfile -e img_no fw_file\n" - " ipod_fw [-v] -g gen [-r rev] -o outfile [-i img_from_-e]* [-l raw_img]* ldr_img\n\n" - " -g: set target ipod generation, valid options are: 1g, 2g, 3g\n" - " 4g, 5g, scroll, touch, dock, mini, photo, color, nano and video\n" - " -e: extract the image at img_no in boot table to outfile\n" - " fw_file is an original firmware image\n" - " the original firmware has the sw at 0, and a flash updater at 1\n" - " -i|-l: create new image to outfile\n" - " up to 5 images, any of -i or -l allowed\n" - " -i: image extracted with -e, load and entry address preserved\n" - " -l: raw image, loaded to 0x28000000, entry at 0x00000000\n" - " -r: set master revision to rev (for example 210 for 2.10)\n" - " may be needed if newest -e img is not the same as the flash rev\n" - " ldr_img is the iPodLinux loader binary.\n" - " first image is loaded by default, 2., 3., 4. or 5. loaded if\n" - " rew, menu, play or ff is hold while booting\n\n" - " -v: verbose\n\n" - " This program is used to create a bootable ipod image.\n\n"); + " ipod_fw [-v] -o outfile -e img_no fw_file\n" + " ipod_fw [-v] -g gen [-r rev] -o outfile [-i img_from_-e]* [-l raw_img]* ldr_img\n\n" + " -g: set target ipod generation, valid options are: 1g, 2g, 3g\n" + " 4g, 5g, scroll, touch, dock, mini, photo, color, nano and video\n" + " -e: extract the image at img_no in boot table to outfile\n" + " fw_file is an original firmware image\n" + " the original firmware has the sw at 0, and a flash updater at 1\n" + " -i|-l: create new image to outfile\n" + " up to 5 images, any of -i or -l allowed\n" + " -i: image extracted with -e, load and entry address preserved\n" + " -l: raw image, loaded to 0x28000000, entry at 0x00000000\n" + " -r: set master revision to rev (for example 210 for 2.10)\n" + " may be needed if newest -e img is not the same as the flash rev\n" + " ldr_img is the iPodLinux loader binary.\n" + " first image is loaded by default, 2., 3., 4. or 5. loaded if\n" + " rew, menu, play or ff is hold while booting\n\n" + " -v: verbose\n\n" + " This program is used to create a bootable ipod image.\n\n"); } /* read len bytes from the beginning of s, @@ -139,24 +139,24 @@ copysum(FILE *s, FILE *d, unsigned len, unsigned off) unsigned sum = 0; unsigned i; if (fseek(s, off, SEEK_SET) == -1) { - fprintf(stderr, "fseek failed: %s\n", strerror(errno)); - return -1; + fprintf(stderr, "fseek failed: %s\n", strerror(errno)); + return -1; } for (i = 0; i < len; i++) { - if (fread(&temp, 1, 1, s) != 1) { - fprintf(stderr, "Failure in copysum: "); - if (ferror(s)) - fprintf(stderr, "fread error: %s\n", strerror(errno)); - else if (feof(s)) - fprintf(stderr, "fread length 1 at offset %d hit EOF.\n", off); - return -1; - } - sum = sum + (temp & 0xff); - if (d) - if (fwrite(&temp, 1, 1, d) != 1) { - fprintf(stderr, "Failure in copysum; fwrite error: %s\n", strerror(errno)); - return -1; - } + if (fread(&temp, 1, 1, s) != 1) { + fprintf(stderr, "Failure in copysum: "); + if (ferror(s)) + fprintf(stderr, "fread error: %s\n", strerror(errno)); + else if (feof(s)) + fprintf(stderr, "fread length 1 at offset %d hit EOF.\n", off); + return -1; + } + sum = sum + (temp & 0xff); + if (d) + if (fwrite(&temp, 1, 1, d) != 1) { + fprintf(stderr, "Failure in copysum; fwrite error: %s\n", strerror(errno)); + return -1; + } } return sum; } @@ -169,17 +169,17 @@ int load_entry(image_t *image, FILE *fw, unsigned offset, int entry) { if (fseek(fw, offset + entry * sizeof(image_t), SEEK_SET) == -1) { - fprintf(stderr, "fseek failed: %s\n", strerror(errno)); - return -1; + fprintf(stderr, "fseek failed: %s\n", strerror(errno)); + return -1; } if (fread(image, sizeof(image_t), 1, fw) != 1) { - if (ferror(fw)) - fprintf(stderr, "fread error (%s), ", strerror(errno)); - else if (feof(fw)) - fprintf(stderr, "fread length %lu at offset %lu hit EOF, ", - sizeof(image_t), offset + entry * sizeof(image_t)); - fprintf(stderr, "unable to load boot entry.\n"); - return -1; + if (ferror(fw)) + fprintf(stderr, "fread error (%s), ", strerror(errno)); + else if (feof(fw)) + fprintf(stderr, "fread length %lu at offset %lu hit EOF, ", + sizeof(image_t), offset + entry * sizeof(image_t)); + fprintf(stderr, "unable to load boot entry.\n"); + return -1; } switch_endian(image); @@ -202,14 +202,14 @@ int write_entry(image_t *image, FILE *fw, unsigned offset, int entry) { if (fseek(fw, offset + entry * sizeof(image_t), SEEK_SET) == -1) { - fprintf(stderr, "fseek failed: %s\n", strerror(errno)); - return -1; + fprintf(stderr, "fseek failed: %s\n", strerror(errno)); + return -1; } switch_endian(image); if (fwrite(image, sizeof(image_t), 1, fw) != 1) { - fprintf(stderr, "fwrite error (%s), unable to write boot entry\n", strerror(errno)); - switch_endian(image); - return -1; + fprintf(stderr, "fwrite error (%s), unable to write boot entry\n", strerror(errno)); + switch_endian(image); + return -1; } switch_endian(image); return 0; @@ -244,18 +244,18 @@ extract(FILE *f, int idx, FILE *out) off = image->devOffset + IMAGE_PADDING; if (fseek(f, off, SEEK_SET) == -1) { - fprintf(stderr, "fseek failed: %s\n", strerror(errno)); - return -1; + fprintf(stderr, "fseek failed: %s\n", strerror(errno)); + return -1; } if (write_entry(image, out, 0x0, 0) == -1) - return -1; + return -1; if (fseek(out, 512, SEEK_SET) == -1) { - fprintf(stderr, "fseek failed: %s\n", strerror(errno)); - return -1; + fprintf(stderr, "fseek failed: %s\n", strerror(errno)); + return -1; } if (copysum(f, out, image->len, off) == -1) - return -1; - + return -1; + return 0; } @@ -275,12 +275,12 @@ listall(FILE *f) idx = 0; while (idx < 20) { - char prefix[32]; - if (load_entry(image, f, TBL, idx) < 0) return -1; - if (!image->id) break; - sprintf (prefix, "%2d: ", idx); - print_image (image, prefix); - ++idx; + char prefix[32]; + if (load_entry(image, f, TBL, idx) < 0) return -1; + if (!image->id) break; + sprintf (prefix, "%2d: ", idx); + print_image (image, prefix); + ++idx; } return 0; @@ -293,12 +293,12 @@ lengthof(FILE *f) unsigned ret; if (fseek(f, 0, SEEK_END) == -1) { - fprintf(stderr, "fseek failed: %s\n", strerror(errno)); - return -1; + fprintf(stderr, "fseek failed: %s\n", strerror(errno)); + return -1; } if ((ret = ftell(f)) == -1) { - fprintf(stderr, "ftell failed: %s\n", strerror(errno)); - return -1; + fprintf(stderr, "ftell failed: %s\n", strerror(errno)); + return -1; } return ret; } @@ -310,9 +310,9 @@ test_endian(void) unsigned i = 0x00010203; if (*((int *)ch) == i) - be = 1; + be = 1; else - be = 0; + be = 0; return; } @@ -325,16 +325,16 @@ main(int argc, char **argv) char gen_set = 0; image_t images[5]; image_t image = { - { '!', 'A', 'T', 'A' }, // magic - 0x6f736f73, // id - { '\0', '\0', '\0', '\0' }, // pad - 0x4400, // devOffset - 0, // len - 0x28000000, // addr - 0, // entry - 0, // chksum - 0, // vers - 0xffffffff // loadAddr + { '!', 'A', 'T', 'A' }, // magic + 0x6f736f73, // id + { '\0', '\0', '\0', '\0' }, // pad + 0x4400, // devOffset + 0, // len + 0x28000000, // addr + 0, // entry + 0, // chksum + 0, // vers + 0xffffffff // loadAddr }; int images_done = 0; unsigned version = 0, offset = 0, len = 0; @@ -345,230 +345,230 @@ main(int argc, char **argv) /* parse options */ opterr = 0; while ((c = getopt(argc, argv, "3hve:o:i:l:r:g:")) != -1) - switch (c) { - case 'h': - if (verbose || in || out || images_done || ext) { - fprintf(stderr, - "-[?h] is exclusive with other arguments\n"); - usage(); - return 1; - } - usage(); - return 0; - case 'v': - if (verbose++) - fprintf(stderr, "Warning: multiple -v options specified\n"); - break; - case '3': - gen_set = 1; - fw_version = 3; - image.addr = 0x10000000; - break; - case 'g': - gen_set = 1; - if ((strcasecmp(optarg, "4g") == 0) || - (strcasecmp(optarg, "mini") == 0) || - (strcasecmp(optarg, "nano") == 0) || - (strcasecmp(optarg, "photo") == 0) || - (strcasecmp(optarg, "color") == 0) || - (strcasecmp(optarg, "video") == 0) || - (strcasecmp(optarg, "5g") == 0)) { - fw_version = 3; - image.addr = 0x10000000; - if ((strcasecmp(optarg, "5g") == 0) || (strcasecmp(optarg, "video") == 0)) { - needs_rcsc = 1; - } - } - else if ((strcasecmp(optarg, "1g") != 0) && - (strcasecmp(optarg, "2g") != 0) && - (strcasecmp(optarg, "3g") != 0) && - (strcasecmp(optarg, "scroll") != 0) && - (strcasecmp(optarg, "touch") != 0) && - (strcasecmp(optarg, "dock") != 0)) { - fprintf(stderr, "%s: bad gen. Valid options are: 1g, 2g," - " 3g, 4g, 5g, scroll, touch, dock, mini, nano," - " photo, color, and video\n", optarg); - return 1; - } - break; - case 'o': - if (out) { - fprintf(stderr, "output already opened\n"); - usage(); - return 1; - } - if ((out = fopen(optarg, "wb+")) == NULL) { - fprintf(stderr, "Cannot open output file %s\n", optarg); - return 1; - } - break; - case 'e': - if (!out || images_done || ext) { - usage(); - return 1; - } - - ext = atoi(optarg) + 1; - break; - case 'i': - if (!out || ext) { - usage(); - return 1; - } - if (images_done == 5) { - fprintf(stderr, "Only 5 images supported\n"); - return 1; - } - if ((in = fopen(optarg, "rb")) == NULL) { - fprintf(stderr, "Cannot open firmware image file %s\n", optarg); - return 1; - } - if (load_entry(images + images_done, in, 0, 0) == -1) - return 1; - if (!offset) offset = FIRST_OFFSET; - else offset = (offset + 0x1ff) & ~0x1ff; - images[images_done].devOffset = offset; - if (fseek(out, offset, SEEK_SET) == -1) { - fprintf(stderr, "fseek failed: %s\n", strerror(errno)); - return 1; - } - if ((images[images_done].chksum = copysum(in, out, - images[images_done].len, 0x200)) == -1) - return 1; - offset += images[images_done].len; - if (verbose) print_image(images + images_done, "Apple image added: "); - images_done++; - fclose(in); - break; - case 'l': - if (!out || ext) { - usage(); - return 1; - } - if (images_done == 5) { - fprintf(stderr, "Only 5 images supported\n"); - return 1; - } - if ((in = fopen(optarg, "rb")) == NULL) { - fprintf(stderr, "Cannot open linux image file %s\n", optarg); - return 1; - } - if (!offset) offset = FIRST_OFFSET; - else offset = (offset + 0x1ff) & ~0x1ff; - images[images_done] = image; - images[images_done].devOffset = offset; - if ((images[images_done].len = lengthof(in)) == -1) - return 1; - if (fseek(out, offset, SEEK_SET) == -1) { - fprintf(stderr, "fseek failed: %s\n", strerror(errno)); - return 1; - } - if ((images[images_done].chksum = copysum(in, out, - images[images_done].len, 0)) == -1) - return 1; - offset += images[images_done].len; - if (verbose) print_image(images + images_done, "Linux image added: "); - images_done++; - fclose(in); - break; - case 'r': - if (ext) { - usage(); - return 1; - } - version = strtol(optarg, NULL, 16); - break; - case '?': - fprintf(stderr, "invalid option -%c specified\n", optopt); - usage(); - return 1; - case ':': - fprintf(stderr, "option -%c needs an argument\n", optopt); - usage(); - return 1; - } + switch (c) { + case 'h': + if (verbose || in || out || images_done || ext) { + fprintf(stderr, + "-[?h] is exclusive with other arguments\n"); + usage(); + return 1; + } + usage(); + return 0; + case 'v': + if (verbose++) + fprintf(stderr, "Warning: multiple -v options specified\n"); + break; + case '3': + gen_set = 1; + fw_version = 3; + image.addr = 0x10000000; + break; + case 'g': + gen_set = 1; + if ((strcasecmp(optarg, "4g") == 0) || + (strcasecmp(optarg, "mini") == 0) || + (strcasecmp(optarg, "nano") == 0) || + (strcasecmp(optarg, "photo") == 0) || + (strcasecmp(optarg, "color") == 0) || + (strcasecmp(optarg, "video") == 0) || + (strcasecmp(optarg, "5g") == 0)) { + fw_version = 3; + image.addr = 0x10000000; + if ((strcasecmp(optarg, "5g") == 0) || (strcasecmp(optarg, "video") == 0)) { + needs_rcsc = 1; + } + } + else if ((strcasecmp(optarg, "1g") != 0) && + (strcasecmp(optarg, "2g") != 0) && + (strcasecmp(optarg, "3g") != 0) && + (strcasecmp(optarg, "scroll") != 0) && + (strcasecmp(optarg, "touch") != 0) && + (strcasecmp(optarg, "dock") != 0)) { + fprintf(stderr, "%s: bad gen. Valid options are: 1g, 2g," + " 3g, 4g, 5g, scroll, touch, dock, mini, nano," + " photo, color, and video\n", optarg); + return 1; + } + break; + case 'o': + if (out) { + fprintf(stderr, "output already opened\n"); + usage(); + return 1; + } + if ((out = fopen(optarg, "wb+")) == NULL) { + fprintf(stderr, "Cannot open output file %s\n", optarg); + return 1; + } + break; + case 'e': + if (!out || images_done || ext) { + usage(); + return 1; + } + + ext = atoi(optarg) + 1; + break; + case 'i': + if (!out || ext) { + usage(); + return 1; + } + if (images_done == 5) { + fprintf(stderr, "Only 5 images supported\n"); + return 1; + } + if ((in = fopen(optarg, "rb")) == NULL) { + fprintf(stderr, "Cannot open firmware image file %s\n", optarg); + return 1; + } + if (load_entry(images + images_done, in, 0, 0) == -1) + return 1; + if (!offset) offset = FIRST_OFFSET; + else offset = (offset + 0x1ff) & ~0x1ff; + images[images_done].devOffset = offset; + if (fseek(out, offset, SEEK_SET) == -1) { + fprintf(stderr, "fseek failed: %s\n", strerror(errno)); + return 1; + } + if ((images[images_done].chksum = copysum(in, out, + images[images_done].len, 0x200)) == -1) + return 1; + offset += images[images_done].len; + if (verbose) print_image(images + images_done, "Apple image added: "); + images_done++; + fclose(in); + break; + case 'l': + if (!out || ext) { + usage(); + return 1; + } + if (images_done == 5) { + fprintf(stderr, "Only 5 images supported\n"); + return 1; + } + if ((in = fopen(optarg, "rb")) == NULL) { + fprintf(stderr, "Cannot open linux image file %s\n", optarg); + return 1; + } + if (!offset) offset = FIRST_OFFSET; + else offset = (offset + 0x1ff) & ~0x1ff; + images[images_done] = image; + images[images_done].devOffset = offset; + if ((images[images_done].len = lengthof(in)) == -1) + return 1; + if (fseek(out, offset, SEEK_SET) == -1) { + fprintf(stderr, "fseek failed: %s\n", strerror(errno)); + return 1; + } + if ((images[images_done].chksum = copysum(in, out, + images[images_done].len, 0)) == -1) + return 1; + offset += images[images_done].len; + if (verbose) print_image(images + images_done, "Linux image added: "); + images_done++; + fclose(in); + break; + case 'r': + if (ext) { + usage(); + return 1; + } + version = strtol(optarg, NULL, 16); + break; + case '?': + fprintf(stderr, "invalid option -%c specified\n", optopt); + usage(); + return 1; + case ':': + fprintf(stderr, "option -%c needs an argument\n", optopt); + usage(); + return 1; + } if (argc - optind != 1) { - usage(); - return 1; + usage(); + return 1; } if (ext) { - if ((in = fopen(argv[optind], "rb")) == NULL) { - fprintf(stderr, "Cannot open firmware image file %s\n", argv[optind]); - return 1; - } - if (extract(in, ext-1, out) == -1) return 1; - fclose(in); fclose(out); - return 0; + if ((in = fopen(argv[optind], "rb")) == NULL) { + fprintf(stderr, "Cannot open firmware image file %s\n", argv[optind]); + return 1; + } + if (extract(in, ext-1, out) == -1) return 1; + fclose(in); fclose(out); + return 0; } else if (!gen_set) { - if ((in = fopen(argv[optind], "rb")) != NULL) { - // just list all available entries - listall (in); - fclose(in); - return 0; - } - usage(); - return 1; + if ((in = fopen(argv[optind], "rb")) != NULL) { + // just list all available entries + listall (in); + fclose(in); + return 0; + } + usage(); + return 1; } printf("Generating firmware image compatible with "); if (fw_version == 3) { - if (needs_rcsc) { - printf("iPod video\n"); - } else { - printf("iPod mini, 4g and iPod photo/color...\n"); - } + if (needs_rcsc) { + printf("iPod video\n"); + } else { + printf("iPod mini, 4g and iPod photo/color...\n"); + } } else { - printf("1g, 2g and 3g iPods...\n"); + printf("1g, 2g and 3g iPods...\n"); } if (!images_done) { - fprintf(stderr, "no images specified!\n"); - return 1; + fprintf(stderr, "no images specified!\n"); + return 1; } if ((in = fopen(argv[optind], "rb")) == NULL) { - fprintf(stderr, "Cannot open loader image file %s\n", argv[optind]); - return 1; + fprintf(stderr, "Cannot open loader image file %s\n", argv[optind]); + return 1; } offset = (offset + 0x1ff) & ~0x1ff; if ((len = lengthof(in)) == -1) - return 1; + return 1; if (fseek(out, offset, SEEK_SET) == -1) { - fprintf(stderr, "fseek failed: %s\n", strerror(errno)); - return 1; + fprintf(stderr, "fseek failed: %s\n", strerror(errno)); + return 1; } if (copysum(in, out, len, 0) == -1) - return 1; + return 1; for (i=0; i < images_done; i++) { - if (images[i].vers > image.vers) image.vers = images[i].vers; - if (write_entry(images+i, out, offset+0x0100, i) == -1) - return 1; + if (images[i].vers > image.vers) image.vers = images[i].vers; + if (write_entry(images+i, out, offset+0x0100, i) == -1) + return 1; } if (version) image.vers = version; image.len = offset + len - FIRST_OFFSET; image.entryOffset = offset - FIRST_OFFSET; image.devOffset = (sectorsize==512 ? 0x4400 : 0x4800); if ((image.chksum = copysum(out, NULL, image.len, FIRST_OFFSET)) == -1) - return 1; + return 1; if (fseek(out, 0x0, SEEK_SET) == -1) { - fprintf(stderr, "fseek failed: %s\n", strerror(errno)); - return 1; + fprintf(stderr, "fseek failed: %s\n", strerror(errno)); + return 1; } if (fwrite(apple_copyright, 0x100, 1, out) != 1) { - fprintf(stderr, "fwrite error (%s) while writing copyright\n", strerror(errno)); - return 1; + fprintf(stderr, "fwrite error (%s) while writing copyright\n", strerror(errno)); + return 1; } version = switch_32(0x5b68695d); /* magic */ if (fwrite(&version, 4, 1, out) != 1) { - fprintf(stderr, "fwrite error (%s) while writing version magic\n", strerror(errno)); - return 1; + fprintf(stderr, "fwrite error (%s) while writing version magic\n", strerror(errno)); + return 1; } version = switch_32(0x00004000); /* magic */ if (fwrite(&version, 4, 1, out) != 1) { - fprintf(stderr, "fwrite error (%s) while writing version magic\n", strerror(errno)); - return 1; + fprintf(stderr, "fwrite error (%s) while writing version magic\n", strerror(errno)); + return 1; } if (fw_version == 3) { version = switch_32(0x0003010c); /* magic */ @@ -577,39 +577,39 @@ main(int argc, char **argv) } if (fwrite(&version, 4, 1, out) != 1) { - fprintf(stderr, "fwrite error (%s) while writing version magic\n", strerror(errno)); - return 1; + fprintf(stderr, "fwrite error (%s) while writing version magic\n", strerror(errno)); + return 1; } if (write_entry(&image, out, TBL, 0) == -1) - return 1; + return 1; if (verbose) print_image(&image, "Master image: "); if (needs_rcsc) { - image_t rsrc; - - if ((in = fopen("apple_sw_5g_rcsc.bin", "rb")) == NULL) { - fprintf(stderr, "Cannot open firmware image file %s\n", "apple_sw_5g_rcsc.bin"); - return 1; - } - if (load_entry(&rsrc, in, 0, 0) == -1) { - return 1; - } - rsrc.devOffset = image.devOffset + image.len; - rsrc.devOffset = ((rsrc.devOffset + 0x1ff) & ~0x1ff) + 0x200; - if (fseek(out, rsrc.devOffset + IMAGE_PADDING, SEEK_SET) == -1) { - fprintf(stderr, "fseek failed: %s\n", strerror(errno)); - return 1; - } - if ((rsrc.chksum = copysum(in, out, rsrc.len, 0x200)) == -1) { - return 1; - } - fclose(in); - - if (write_entry(&rsrc, out, TBL, 1) == -1) { - return 1; - } - - if (verbose) print_image(&rsrc, "rsrc image: "); + image_t rsrc; + + if ((in = fopen("apple_sw_5g_rcsc.bin", "rb")) == NULL) { + fprintf(stderr, "Cannot open firmware image file %s\n", "apple_sw_5g_rcsc.bin"); + return 1; + } + if (load_entry(&rsrc, in, 0, 0) == -1) { + return 1; + } + rsrc.devOffset = image.devOffset + image.len; + rsrc.devOffset = ((rsrc.devOffset + 0x1ff) & ~0x1ff) + 0x200; + if (fseek(out, rsrc.devOffset + IMAGE_PADDING, SEEK_SET) == -1) { + fprintf(stderr, "fseek failed: %s\n", strerror(errno)); + return 1; + } + if ((rsrc.chksum = copysum(in, out, rsrc.len, 0x200)) == -1) { + return 1; + } + fclose(in); + + if (write_entry(&rsrc, out, TBL, 1) == -1) { + return 1; + } + + if (verbose) print_image(&rsrc, "rsrc image: "); } return 0; diff --git a/tools/mi4.c b/tools/mi4.c index a76308c..16a4ee3 100644 --- a/tools/mi4.c +++ b/tools/mi4.c @@ -42,15 +42,15 @@ #include /* crc_tab[] -- this crcTable is being build by chksum_crc32GenTab(). - * so make sure, you call it before using the other - * functions! + * so make sure, you call it before using the other + * functions! */ static unsigned int crc_tab[256]; /* chksum_crc() -- to a given block, this one calculates the - * crc32-checksum until the length is - * reached. the crc32-checksum will be - * the result. + * crc32-checksum until the length is + * reached. the crc32-checksum will be + * the result. */ static unsigned int chksum_crc32 (unsigned char *block, unsigned int length) { @@ -66,8 +66,8 @@ static unsigned int chksum_crc32 (unsigned char *block, unsigned int length) } /* chksum_crc32gentab() -- to a global crc_tab[256], this one will - * calculate the crcTable for crc32-checksums. - * it is generated to the polynom [..] + * calculate the crcTable for crc32-checksums. + * it is generated to the polynom [..] */ static void chksum_crc32gentab (void) @@ -81,14 +81,14 @@ static void chksum_crc32gentab (void) crc = i; for (j = 8; j > 0; j--) { - if (crc & 1) - { - crc = (crc >> 1) ^ poly; - } - else - { - crc >>= 1; - } + if (crc & 1) + { + crc = (crc >> 1) ^ poly; + } + else + { + crc >>= 1; + } } crc_tab[i] = crc; } diff --git a/tools/sh2d.c b/tools/sh2d.c index cb78df8..287e95b 100644 --- a/tools/sh2d.c +++ b/tools/sh2d.c @@ -445,10 +445,10 @@ void SH2Disasm(unsigned v_addr, unsigned char *p_addr, int mode, char *m_addr) unsigned char *b_addr = (unsigned char *)((intptr_t)p_addr & ~3); int dat = (unsigned int) (*(imm + b_addr) << 24) | (*(imm + b_addr + 1) << 16) | (*(imm + b_addr + 2) << 8) | *(imm + b_addr + 3) ; - /* SH-1 register name lookup */ - char* str = ""; - if ( (dat & 0xfffffe00) == 0x05fffe00 ) - str = regname[dat & 0x1ff]; + /* SH-1 register name lookup */ + char* str = ""; + if ( (dat & 0xfffffe00) == 0x05fffe00 ) + str = regname[dat & 0x1ff]; m_addr[imm+(b_addr-p_addr)+0] = ND8_F; /* this couldn't be an instruction so mark it ! */ m_addr[imm+(b_addr-p_addr)+1] = imm; m_addr[imm+(b_addr-p_addr)+2] = -1; diff --git a/tools/testdbv2.c b/tools/testdbv2.c index c800437..5e92d95 100644 --- a/tools/testdbv2.c +++ b/tools/testdbv2.c @@ -11,29 +11,29 @@ #define BE32(_x_) (((_x_ & 0xff000000) >> 24) | \ - ((_x_ & 0x00ff0000) >> 8) | \ - ((_x_ & 0x0000ff00) << 8) | \ - ((_x_ & 0x000000ff) << 24)) + ((_x_ & 0x00ff0000) >> 8) | \ + ((_x_ & 0x0000ff00) << 8) | \ + ((_x_ & 0x000000ff) << 24)) #define BE16(_x_) ( ((_x_&0xff00) >> 8) | ((_x_&0xff)<<8)) struct header { - int version; - int artiststart; - int albumstart; - int songstart; - int filestart; - int artistcount; - int albumcount; - int songcount; - int filecount; - int artistlen; - int albumlen; - int songlen; - int genrelen; - int filelen; - int songarraylen; - int albumarraylen; - int rundbdirty; + int version; + int artiststart; + int albumstart; + int songstart; + int filestart; + int artistcount; + int albumcount; + int songcount; + int filecount; + int artistlen; + int albumlen; + int songlen; + int genrelen; + int filelen; + int songarraylen; + int albumarraylen; + int rundbdirty; } header; struct FileEntry { @@ -146,8 +146,8 @@ int main() { fread(&header,sizeof(header),1,fp); p=&header; for(i=0;i<17;i++) { - *p=BE32(*p); - p++; + *p=BE32(*p); + p++; } if(fp2>=0) { fread(&RundbHeader,sizeof(RundbHeader),1,fp2); @@ -179,7 +179,7 @@ int main() { printf("Rundb entrys : %d\n",RundbHeader.entrycount); } if( sizeof(struct SongEntry)!=(header.songlen+header.genrelen+16)) { - printf("Song Entry Size mismatch.. update the code to correct size.\n"); + printf("Song Entry Size mismatch.. update the code to correct size.\n"); return; } if(sizeof(struct AlbumEntry)!=(header.albumlen+4+header.songarraylen*4)) { @@ -191,8 +191,8 @@ printf("Artist Entry Size mismatch.. update the code to correct size.\n"); return; } if(sizeof(struct FileEntry)!=(header.filelen+12)) { - printf("File Entry Size mismatch.. update the code to correct size.\n"); - return; + printf("File Entry Size mismatch.. update the code to correct size.\n"); + return; } do { @@ -206,47 +206,47 @@ printf("Artist Entry Size mismatch.. update the code to correct size.\n"); fflush(stdout); scanf("%d",&temp2); if(temp2==-1) { - printf("Offset ? 0x"); - fflush(stdout); - scanf("%x",&temp3); + printf("Offset ? 0x"); + fflush(stdout); + scanf("%x",&temp3); } switch(temp) { - case 1: - if(temp2==-1) - showartist(temp3); - else - showartist(header.artiststart + - temp2*sizeof(struct ArtistEntry)); - break; - case 2: + case 1: + if(temp2==-1) + showartist(temp3); + else + showartist(header.artiststart + + temp2*sizeof(struct ArtistEntry)); + break; + case 2: if(temp2==-1) showalbum(temp3); else showalbum(header.albumstart + temp2*sizeof(struct AlbumEntry)); - break; - case 3: + break; + case 3: if(temp2==-1) showsong(temp3); else showsong(header.songstart + temp2*sizeof(struct SongEntry)); - break; - case 4: + break; + case 4: if(temp2==-1) showfile(temp3); else showfile(header.filestart + temp2*sizeof(struct FileEntry)); - break; + break; case 5: if(temp2==-1) showrundb(temp3); else showrundb(8+temp2*sizeof(struct RundbEntry)); break; default: - return; - break; + return; + break; } } while(1); fclose(fp); diff --git a/uisimulator/battery.c b/uisimulator/battery.c index acb0835..3dfda7e 100644 --- a/uisimulator/battery.c +++ b/uisimulator/battery.c @@ -87,7 +87,7 @@ void draw_battery(int xbase, int ybase, int len, int wid, int percent) xbase+bar_xoffset+bar_len, ybase+bar_yoffset+i); } } - lcd_update(); + lcd_update(); } diff --git a/uisimulator/common/sim_icons.c b/uisimulator/common/sim_icons.c index f24fce2..91c8d3d 100644 --- a/uisimulator/common/sim_icons.c +++ b/uisimulator/common/sim_icons.c @@ -306,7 +306,7 @@ void lcd_icon(int icon, bool enable) { lcd_print_icon(icons[icon].xpos, icons[icon].row, enable, - icons[icon].bitmap); + icons[icon].bitmap); } #endif /* HAVE_LCD_CHARCELLS */ diff --git a/utils/disassembler/arm/disasm_arm.c b/utils/disassembler/arm/disasm_arm.c index aa04ab6..59f63ef 100644 --- a/utils/disassembler/arm/disasm_arm.c +++ b/utils/disassembler/arm/disasm_arm.c @@ -1,420 +1,420 @@ -#include -#include -#include - -#define ULONG uint32_t -#define UCHAR uint8_t - -#define FRMT "0x%x" // "0x%x" -#define SHFTFRMC "%s %s #%d" // "%s %s %d" -#define SHFTFRMR "%s %s %s" // "%s %s %s" -//#define FRMT "0x%x" -//#define SHFTFRMC "%s %s %d" -//#define SHFTFRMR "%s %s %s" - -char *cond[16] = { "eq", "ne", "cs", "cc", "mi", "pl", "vs", "vc", "hi", "ls", "ge", "lt", "gt", "le", "", "nv" }; -char *cnd1[16] = { "eq", "ne", "cs", "cc", "mi", "pl", "vs", "vc", "hi", "ls", "ge", "lt", "gt", "le", " ", "nv" }; -char *opcd[16] = {"and","eor","sub","rsb","add","adc","sbc","rsc","tst","teq","cmp","cmn","orr","mov","bic","mvn" }; -char setc[32] = {0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0, 0 ,0, 0 ,0, 0 ,0, 0 ,0,115,0,115,0,115,0,115 }; -char *regs[16] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "sl", "fp", "ip", "sp", "lr", "pc" }; - -char *shfts[4] = { "lsl", "lsr", "asr", "ror" }; - -/* -31-28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 -Cond 0 0 I ---Opcode--- S |----Rn----- ----Rd----- --------Operand 2-------- Data Processing /PSR Transfer -Cond 0 0 0 0 | 0 0 A S |----Rd----- ----Rn----- ---Rs---- 1 0 0 1 --Rm--- Multiply -Cond 0 0 0 0 | 1 U A S |---RdHi---- ---RdLo---- ---Rn---- 1 0 0 1 --Rm--- Multiply Long -Cond 0 0 0 1 | 0 B 0 0 |----Rn----- ----Rd----- 0 0 0 0 1 0 0 1 --Rm--- Single Data Swap -Cond 0 0 0 1 | 0 0 1 0 |1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 --Rn--- Branch and Exchange -Cond 0 0 0 P | U 0 W L |----Rn----- ----Rd----- 0 0 0 0 1 S H 1 --Rm--- Halfword Data Transfer: register offset -Cond 0 0 0 P | U 1 W L |----Rn----- ----Rd----- --Offset- 1 S H 1 -Offset Halfword Data Transfer: immediate offset -Cond 0 1 I P | U B W L |----Rn----- ----Rd----- --------Offset----------- Single Data Transfer -Cond 0 1 1 1 | x x x x |x x x x x x x x x x x x x x x 1 x x x x Undefined -Cond 1 0 0 P | U S W L |----Rn----- -----------Register List------------- Block Data Transfer -Cond 1 0 1 L | -------------------------Offset------------------------------ Branch -Cond 1 1 0 P | U N W L |----Rn----- ----CRd---- ---CP#--- -----Offset---- Coprocessor Data Transfer -Cond 1 1 1 0 | --CP Opc---|----CRn---- ----CRd---- ---CP#--- -CP-- 0 --CRm-- Coprocessor Data Operation -Cond 1 1 1 0 | CP Opc L |----CRn---- ----Rd----- ---CP#--- -CP-- 1 --CRm-- Coprocessor Register Transfer -Cond 1 1 1 1 | x x x x |x x x x x x x x x x x x x x x x x x x x Software Interrupt - -0x04200000 -0001 0 0 0 0 0 1 1 0 6 e 1 1 1 0 1 8 -================================================================================ -Cond 0 1 I P | U B W L |----Rn----- ----Rd----- --------Offset----------- Single Data Transfer - - -EQ 0 Z set equal -NE 1 Z clear not equal -CS 2 C set unsigned higher or same -CC 3 C clear unsigned lower -MI 4 N set negative -PL 5 N clear positive or zero -VS 6 V set overflow -VC 7 V clear no overflow -HI 8 C set and Z clear unsigned higher -LS 9 C clear or Z set unsigned lower or same -GE A N equals V greater or equal -LT B N not equal to V less than -GT C Z clear AND (N equals V) greater than -LE D Z set OR (N not equal to V) less than or equal -AL E (ignored) always - -AND 0 operand1 AND operand2 -EOR 1 operand1 EOR operand2 -SUB 2 operand1 - operand2 -RSB 3 operand2 - operand1 -ADD 4 operand1 + operand2 -ADC 5 operand1 + operand2 + carry -SBC 6 operand1 - operand2 + carry - 1 -RSC 7 operand2 - operand1 + carry - 1 -TST 8 AND, but result is not written -TEQ 9 as EOR, but result is not written -CMP A as SUB, but result is not written -CMN B as ADD, but result is not written -ORR C operand1 OR operand2 -MOV D operand2 (operand1 is ignored) -BIC E operand1 AND NOT operand2 (Bit clear) -MVN F NOT operand2 (operand1 is ignored) -*/ - -void multiply_stg(char *stg, ULONG val) -{ - if((val&0xc00000) == 0) // simple mul - { - if(val & 0x100000) // set condition flags - if(val & 0x200000) sprintf(stg+strlen(stg), "mla%ss ", cond[val>>28]); - else sprintf(stg+strlen(stg), "mul%ss ", cond[val>>28]); - else - if(val & 0x200000) sprintf(stg+strlen(stg), "mla%s ", cnd1[val>>28]); - else sprintf(stg+strlen(stg), "mul%s ", cnd1[val>>28]); - - if(val & 0x200000) // accumulate - sprintf(stg+strlen(stg), "%s, %s, %s, %s", regs[(val>>16)&15], regs[(val>>0)&15], regs[(val>>8)&15], regs[(val>>12)&15]); - else - sprintf(stg+strlen(stg), "%s, %s, %s", regs[(val>>16)&15], regs[(val>>0)&15], regs[(val>>8)&15]); - } - else - { - if(val & 0x100000) // set condition flags - if(val & 0x200000) // accumulate - if(val & 0x400000) sprintf(stg+strlen(stg), "smlal%ss ", cond[val>>28]); - else sprintf(stg+strlen(stg), "umlal%ss ", cond[val>>28]); - else - if(val & 0x400000) sprintf(stg+strlen(stg), "smull%ss ", cond[val>>28]); - else sprintf(stg+strlen(stg), "umull%ss ", cond[val>>28]); - else - if(val & 0x200000) - if(val & 0x400000) sprintf(stg+strlen(stg), "smlal%s ", cond[val>>28]); - else sprintf(stg+strlen(stg), "umlal%s ", cond[val>>28]); - else - if(val & 0x400000) sprintf(stg+strlen(stg), "smull%s ", cond[val>>28]); - else sprintf(stg+strlen(stg), "umull%s ", cond[val>>28]); - - sprintf(stg+strlen(stg), "%s, %s, %s, %s", regs[(val>>12)&15], regs[(val>>16)&15], regs[(val>>0)&15], regs[(val>>8)&15]); - } -} - -void halfword_stg(char *stg, ULONG val) -{ - ULONG off = ((val>>4) & 0xf0) + (val & 0x0f); - - if(val & 0x100000) sprintf(stg+strlen(stg), "ldr%s", cond[val>>28]); - else sprintf(stg+strlen(stg), "str%s", cond[val>>28]); - - switch((val>>5) & 3) // SWP, HW, SB, SH - { - case 0: sprintf(stg+strlen(stg), "error: SWP"); break; - case 1: sprintf(stg+strlen(stg), "h "); break; - case 2: sprintf(stg+strlen(stg), "sb "); break; - case 3: sprintf(stg+strlen(stg), "sh "); break; - } - - if(val & 0x400000) // immidiate offset - if(val & 0x1000000) // pre index - if(val & 0x200000) // write back - if(val & 0x800000) sprintf(stg+strlen(stg), "%s, [%s, "FRMT"]!", regs[(val>>12)&15], regs[(val>>16)&15], off); - else sprintf(stg+strlen(stg), "%s, [%s, -"FRMT"]!", regs[(val>>12)&15], regs[(val>>16)&15], off); - else - if(val & 0x800000) sprintf(stg+strlen(stg), "%s, [%s, "FRMT"]", regs[(val>>12)&15], regs[(val>>16)&15], off); - else sprintf(stg+strlen(stg), "%s, [%s, -"FRMT"]", regs[(val>>12)&15], regs[(val>>16)&15], off); - else - if(val & 0x200000) // write back - sprintf(stg+strlen(stg), "error 'write back' on post indexed"); - else - if(val & 0x800000) sprintf(stg+strlen(stg), "%s, [%s], "FRMT, regs[(val>>12)&15], regs[(val>>16)&15], off); - else sprintf(stg+strlen(stg), "%s, [%s], -"FRMT, regs[(val>>12)&15], regs[(val>>16)&15], off); - else - if(val & 0x1000000) // pre index - if(val & 0x200000) // write back - if(val & 0x800000) sprintf(stg+strlen(stg), "%s, [%s, %s]!", regs[(val>>12)&15], regs[(val>>16)&15], regs[val&15]); - else sprintf(stg+strlen(stg), "%s, [%s, -%s]!", regs[(val>>12)&15], regs[(val>>16)&15], regs[val&15]); - else - if(val & 0x800000) sprintf(stg+strlen(stg), "%s, [%s, %s]", regs[(val>>12)&15], regs[(val>>16)&15], regs[val&15]); - else sprintf(stg+strlen(stg), "%s, [%s, -%s]", regs[(val>>12)&15], regs[(val>>16)&15], regs[val&15]); - else - if(val & 0x200000) // write back - sprintf(stg+strlen(stg), "error 'write back' on post indexed"); - else - if(val & 0x800000) sprintf(stg+strlen(stg), "%s, [%s], %s", regs[(val>>12)&15], regs[(val>>16)&15], regs[val&15]); - else sprintf(stg+strlen(stg), "%s, [%s], -%s", regs[(val>>12)&15], regs[(val>>16)&15], regs[val&15]); -} - -void branch_stg(char *stg, ULONG val, ULONG pos) -{ - ULONG off = pos + (((int32_t)val << 8) >> 6) + 8; - - if((val & 0x0ffffff0) == 0x012fff10) // bx instruction - { sprintf(stg+strlen(stg), "bx%s %s", cond[val>>28], regs[val&15]); } - else - { - if(((val>>24)&15) == 10) sprintf(stg+strlen(stg), "b%s ", cond[val>>28]); - else sprintf(stg+strlen(stg), "bl%s ", cond[val>>28]); - - sprintf(stg+strlen(stg), "0x%x", off); - } -} - -void opcode_stg(char *stg, ULONG val, ULONG off) -{ - ULONG des, op1; - char op2[80]; - char *st = stg + strlen(stg); - - if(((val & 0x0ffffff0) == 0x012fff10) && (val & 16)) - { branch_stg(stg, val, off); return; } - else if(((val & 0x0f000000) == 0x00000000) && ((val & 0xf0) == 0x90)) - { multiply_stg(stg, val); return; } - else if(((val & 0x0f000000) <= 0x01000000) && ((val & 0x90) == 0x90) && ((val & 0xf0) > 0x90) && ((val & 0x01200000) != 0x00200000)) - { halfword_stg(stg, val); return; } - - sprintf(stg+strlen(stg), "%s%s%s ", opcd[(val>>21) & 15], cond[val>>28], setc[(val>>20) & 31]?"s":" "); - - des = (val>>12) & 15; - op1 = (val>>16) & 15; - - if(val & 0x2000000) // immidiate - { - off = (ULONG)((uint64_t)(val&0xff) << (32 - 2 * ((val >> 8) & 15))) | ((val&0xff) >> 2 * ((val >> 8) & 15)); - sprintf(op2, FRMT" ", off); - } - else - { - if(val & 16) // shift type - sprintf(op2, SHFTFRMR, regs[val&15], shfts[(val>>5)&3], regs[(val>>8)&15]); - else - if((val>>7) & 31) - sprintf(op2, SHFTFRMC, regs[val&15], shfts[(val>>5)&3], (val>>7) & 31); - else - sprintf(op2, "%s ", regs[val&15]); - } - - switch((val>>21) & 15) - { - case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 12: - case 14: sprintf(stg+strlen(stg), "%s, %s, %s", regs[des], regs[op1], op2); break; - - case 8: case 9: case 10: - case 11: if(val & 0x100000) // set status - sprintf(stg+strlen(stg), "%s, %s", regs[op1], op2); // standard TEQ,TST,CMP,CMN - else - { //special MRS/MSR opcodes - if((((val>>23) & 31) == 2) && ((val & 0x3f0fff) == 0x0f0000)) - { sprintf(st, "mrs%s %s, %s", cnd1[val>>28], regs[des], val&0x400000?"SPSR_xx":"CPSR"); } - else - if((((val>>23) & 31) == 2) && ((val & 0x30fff0) == 0x20f000)) - { sprintf(st, "msr%s %s, %s", cnd1[val>>28], val&0x400000?"SPSR_xx":"CPSR", regs[val&15]); } - else - if((((val>>23) & 31) == 6) && ((val & 0x30f000) == 0x20f000)) - { sprintf(st, "msr%s %s, %s", cnd1[val>>28], val&0x400000?"SPSR_xx":"CPSR_cf", op2); } - else - if((((val>>23) & 31) == 2) && ((val & 0x300ff0) == 0x000090)) - { sprintf(st, "swp%s%s %s, %s, [%s]", val&0x400000?"b":"", cnd1[val>>28], regs[(val>>12)&15], regs[val&15], regs[(val>>16)&15]); } - else - { sprintf(stg+strlen(stg), "??????????????"); } - } break; - case 13: - case 15: sprintf(stg+strlen(stg), "%s, %s", regs[des], op2); break; - } -} - -void opcode_cop(char *stg, ULONG val, ULONG off) -{ - char* op; - int opcode1 = (val >> 21) & 0x7; - int CRn = (val >> 16) & 0xf; - int Rd = (val >> 12) & 0xf; - int cp_num = (val >> 8) & 0xf; - int opcode2 = (val >> 5) & 0x7; - int CRm = val & 0xf; - - -// ee073f5e mcr 15, 0, r3, cr7, cr14, {2} - - if (val & (1<<4)) { - if (val & (1<<20)) { - op = "mrc"; - } else { - op = "mcr"; - } - opcode1 = (val >> 21) & 0x7; - CRn = (val >> 16) & 0xf; - Rd = (val >> 12) & 0xf; - cp_num = (val >> 8) & 0xf; - opcode2 = (val >> 5) & 0x7; - CRm = val & 0xf; - - sprintf(stg+strlen(stg), "%s%s %d, %d, r%d, cr%d, cr%d, {%d}", op, cnd1[val>>28], cp_num, opcode1, Rd, CRn, CRm, opcode2); - } else { - op = "cdp"; - - opcode1 = (val >> 20) & 0xf; - CRn = (val >> 16) & 0xf; - Rd = (val >> 12) & 0xf; - cp_num = (val >> 8) & 0xf; - opcode2 = (val >> 5) & 0x7; - CRm = val & 0xf; - - sprintf(stg+strlen(stg), "%s%s %d, %d, cr%d, cr%d, cr%d, {%d}", op, cnd1[val>>28], cp_num, opcode1, Rd, CRn, CRm, opcode2); - } - -} - - -void single_data(char *stg, ULONG val) -{ - char op2[80]; - - if(((val & 0x0e000000) == 0x06000000) && (val & 16)) - { sprintf(stg+strlen(stg), "undef%s", cond[val>>28]); - return; - } - - if(val & 0x400000) - if(val & 0x100000) sprintf(stg+strlen(stg), "ldr%sb ", cond[val>>28]); - else sprintf(stg+strlen(stg), "str%sb ", cond[val>>28]); - else - if(val & 0x100000) sprintf(stg+strlen(stg), "ldr%s ", cnd1[val>>28]); - else sprintf(stg+strlen(stg), "str%s ", cnd1[val>>28]); - - if(val & 0x2000000) {// reg offset - if(val & 16) // shift type - sprintf(op2, "error: reg defined shift"); - else - if((val>>7) & 31) - sprintf(op2, SHFTFRMC, regs[val&15], shfts[(val>>5)&3], (val>>7) & 31); - else - sprintf(op2, "%s", regs[val&15]); - } - - if(val & 0x2000000) // reg offset - if(val & 0x1000000) // pre index - if(val & 0x800000) // up offset (+) - if(val & 0x200000) // write back - sprintf(stg+strlen(stg), "%s, [%s, %s]!", regs[(val>>12)&15], regs[(val>>16)&15], op2); - else - sprintf(stg+strlen(stg), "%s, [%s, %s]", regs[(val>>12)&15], regs[(val>>16)&15], op2); - else - if(val & 0x200000) // write back - sprintf(stg+strlen(stg), "%s, [%s, -%s]!", regs[(val>>12)&15], regs[(val>>16)&15], op2); - else - sprintf(stg+strlen(stg), "%s, [%s, -%s]", regs[(val>>12)&15], regs[(val>>16)&15], op2); - else - if(val & 0x200000) // write back - sprintf(stg+strlen(stg), "error 'write back' set"); - else - if(val & 0x800000) // up offset (+) - sprintf(stg+strlen(stg), "%s, [%s], %s", regs[(val>>12)&15], regs[(val>>16)&15], op2); - else - sprintf(stg+strlen(stg), "%s, [%s], -%s", regs[(val>>12)&15], regs[(val>>16)&15], op2); - else - if(val & 0x1000000) // pre index - if(val & 0x800000) // up offset (+) - if(val & 0x200000) // write back - if(val & 0xfff) sprintf(stg+strlen(stg), "%s, [%s, "FRMT"]!", regs[(val>>12)&15], regs[(val>>16)&15], val & 0xfff); - else sprintf(stg+strlen(stg), "%s, [%s]!", regs[(val>>12)&15], regs[(val>>16)&15]); - else - if(val & 0xfff) sprintf(stg+strlen(stg), "%s, [%s, "FRMT"]", regs[(val>>12)&15], regs[(val>>16)&15], val & 0xfff); - else sprintf(stg+strlen(stg), "%s, [%s]", regs[(val>>12)&15], regs[(val>>16)&15]); - else - if(val & 0x200000) // write back - if(val & 0xfff) sprintf(stg+strlen(stg), "%s, [%s, -"FRMT"]!", regs[(val>>12)&15], regs[(val>>16)&15], val & 0xfff); - else sprintf(stg+strlen(stg), "%s, [%s]!", regs[(val>>12)&15], regs[(val>>16)&15]); - else - if(val & 0xfff) sprintf(stg+strlen(stg), "%s, [%s, -"FRMT"]", regs[(val>>12)&15], regs[(val>>16)&15], val & 0xfff); - else sprintf(stg+strlen(stg), "%s, [%s]", regs[(val>>12)&15], regs[(val>>16)&15]); - else - if(val & 0x200000) // write back - sprintf(stg+strlen(stg), "error 'write back' set"); - else - if(val & 0x800000) // up offset (+) - if(val & 0xfff) sprintf(stg+strlen(stg), "%s, [%s], "FRMT, regs[(val>>12)&15], regs[(val>>16)&15], val & 0xfff); - else sprintf(stg+strlen(stg), "%s, [%s]", regs[(val>>12)&15], regs[(val>>16)&15]); - else - if(val & 0xfff) sprintf(stg+strlen(stg), "%s, [%s], -"FRMT, regs[(val>>12)&15], regs[(val>>16)&15], val & 0xfff); - else sprintf(stg+strlen(stg), "%s, [%s]", regs[(val>>12)&15], regs[(val>>16)&15]); -} - -void block_data(char *stg, ULONG val) -{ - char lst[80]; - int i; - - strcpy(lst, "{"); - for(i=0; i<16; i++) - if(val & (1<>28]); - else sprintf(stg+strlen(stg), "ldm%sdb ", cond[val>>28]); - else - if(val & 0x800000) sprintf(stg+strlen(stg), "ldm%sia ", cond[val>>28]); - else sprintf(stg+strlen(stg), "ldm%sda ", cond[val>>28]); - else - if(val & 0x1000000) - if(val & 0x800000) sprintf(stg+strlen(stg), "stm%sib ", cond[val>>28]); - else sprintf(stg+strlen(stg), "stm%sdb ", cond[val>>28]); - else - if(val & 0x800000) sprintf(stg+strlen(stg), "stm%sia ", cond[val>>28]); - else sprintf(stg+strlen(stg), "stm%sda ", cond[val>>28]); - - switch((val>>21)&3) - { - case 0: sprintf(stg+strlen(stg), "%s, %s", regs[(val>>16)&15], lst); break; - case 1: sprintf(stg+strlen(stg), "%s!, %s", regs[(val>>16)&15], lst); break; - case 2: sprintf(stg+strlen(stg), "%s, %s", regs[(val>>16)&15], lst); break; - case 3: sprintf(stg+strlen(stg), "%s!, %s", regs[(val>>16)&15], lst); break; - } -} - -void dis_asm(ULONG off, ULONG val, char *stg) -{ - sprintf(stg, "%6x: %08x ", off, val); - - switch((val >> 24) & 15) - { - case 0: - case 1: - case 2: - case 3: opcode_stg(stg, val, off); break; - case 4: - case 5: - case 6: - case 7: single_data(stg, val); break; - case 8: - case 9: block_data(stg, val); break; - case 10: - case 11: branch_stg(stg, val, off); break; - case 12: - case 13: sprintf(stg+strlen(stg), "cop%s", cnd1[val>>28]); break; - case 14: opcode_cop(stg, val, off); break; - case 15: sprintf(stg+strlen(stg), "swi%s", cnd1[val>>28]); break; - } -} +#include +#include +#include + +#define ULONG uint32_t +#define UCHAR uint8_t + +#define FRMT "0x%x" // "0x%x" +#define SHFTFRMC "%s %s #%d" // "%s %s %d" +#define SHFTFRMR "%s %s %s" // "%s %s %s" +//#define FRMT "0x%x" +//#define SHFTFRMC "%s %s %d" +//#define SHFTFRMR "%s %s %s" + +char *cond[16] = { "eq", "ne", "cs", "cc", "mi", "pl", "vs", "vc", "hi", "ls", "ge", "lt", "gt", "le", "", "nv" }; +char *cnd1[16] = { "eq", "ne", "cs", "cc", "mi", "pl", "vs", "vc", "hi", "ls", "ge", "lt", "gt", "le", " ", "nv" }; +char *opcd[16] = {"and","eor","sub","rsb","add","adc","sbc","rsc","tst","teq","cmp","cmn","orr","mov","bic","mvn" }; +char setc[32] = {0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0, 0 ,0, 0 ,0, 0 ,0, 0 ,0,115,0,115,0,115,0,115 }; +char *regs[16] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "sl", "fp", "ip", "sp", "lr", "pc" }; + +char *shfts[4] = { "lsl", "lsr", "asr", "ror" }; + +/* +31-28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +Cond 0 0 I ---Opcode--- S |----Rn----- ----Rd----- --------Operand 2-------- Data Processing /PSR Transfer +Cond 0 0 0 0 | 0 0 A S |----Rd----- ----Rn----- ---Rs---- 1 0 0 1 --Rm--- Multiply +Cond 0 0 0 0 | 1 U A S |---RdHi---- ---RdLo---- ---Rn---- 1 0 0 1 --Rm--- Multiply Long +Cond 0 0 0 1 | 0 B 0 0 |----Rn----- ----Rd----- 0 0 0 0 1 0 0 1 --Rm--- Single Data Swap +Cond 0 0 0 1 | 0 0 1 0 |1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 --Rn--- Branch and Exchange +Cond 0 0 0 P | U 0 W L |----Rn----- ----Rd----- 0 0 0 0 1 S H 1 --Rm--- Halfword Data Transfer: register offset +Cond 0 0 0 P | U 1 W L |----Rn----- ----Rd----- --Offset- 1 S H 1 -Offset Halfword Data Transfer: immediate offset +Cond 0 1 I P | U B W L |----Rn----- ----Rd----- --------Offset----------- Single Data Transfer +Cond 0 1 1 1 | x x x x |x x x x x x x x x x x x x x x 1 x x x x Undefined +Cond 1 0 0 P | U S W L |----Rn----- -----------Register List------------- Block Data Transfer +Cond 1 0 1 L | -------------------------Offset------------------------------ Branch +Cond 1 1 0 P | U N W L |----Rn----- ----CRd---- ---CP#--- -----Offset---- Coprocessor Data Transfer +Cond 1 1 1 0 | --CP Opc---|----CRn---- ----CRd---- ---CP#--- -CP-- 0 --CRm-- Coprocessor Data Operation +Cond 1 1 1 0 | CP Opc L |----CRn---- ----Rd----- ---CP#--- -CP-- 1 --CRm-- Coprocessor Register Transfer +Cond 1 1 1 1 | x x x x |x x x x x x x x x x x x x x x x x x x x Software Interrupt + +0x04200000 +0001 0 0 0 0 0 1 1 0 6 e 1 1 1 0 1 8 +================================================================================ +Cond 0 1 I P | U B W L |----Rn----- ----Rd----- --------Offset----------- Single Data Transfer + + +EQ 0 Z set equal +NE 1 Z clear not equal +CS 2 C set unsigned higher or same +CC 3 C clear unsigned lower +MI 4 N set negative +PL 5 N clear positive or zero +VS 6 V set overflow +VC 7 V clear no overflow +HI 8 C set and Z clear unsigned higher +LS 9 C clear or Z set unsigned lower or same +GE A N equals V greater or equal +LT B N not equal to V less than +GT C Z clear AND (N equals V) greater than +LE D Z set OR (N not equal to V) less than or equal +AL E (ignored) always + +AND 0 operand1 AND operand2 +EOR 1 operand1 EOR operand2 +SUB 2 operand1 - operand2 +RSB 3 operand2 - operand1 +ADD 4 operand1 + operand2 +ADC 5 operand1 + operand2 + carry +SBC 6 operand1 - operand2 + carry - 1 +RSC 7 operand2 - operand1 + carry - 1 +TST 8 AND, but result is not written +TEQ 9 as EOR, but result is not written +CMP A as SUB, but result is not written +CMN B as ADD, but result is not written +ORR C operand1 OR operand2 +MOV D operand2 (operand1 is ignored) +BIC E operand1 AND NOT operand2 (Bit clear) +MVN F NOT operand2 (operand1 is ignored) +*/ + +void multiply_stg(char *stg, ULONG val) +{ + if((val&0xc00000) == 0) // simple mul + { + if(val & 0x100000) // set condition flags + if(val & 0x200000) sprintf(stg+strlen(stg), "mla%ss ", cond[val>>28]); + else sprintf(stg+strlen(stg), "mul%ss ", cond[val>>28]); + else + if(val & 0x200000) sprintf(stg+strlen(stg), "mla%s ", cnd1[val>>28]); + else sprintf(stg+strlen(stg), "mul%s ", cnd1[val>>28]); + + if(val & 0x200000) // accumulate + sprintf(stg+strlen(stg), "%s, %s, %s, %s", regs[(val>>16)&15], regs[(val>>0)&15], regs[(val>>8)&15], regs[(val>>12)&15]); + else + sprintf(stg+strlen(stg), "%s, %s, %s", regs[(val>>16)&15], regs[(val>>0)&15], regs[(val>>8)&15]); + } + else + { + if(val & 0x100000) // set condition flags + if(val & 0x200000) // accumulate + if(val & 0x400000) sprintf(stg+strlen(stg), "smlal%ss ", cond[val>>28]); + else sprintf(stg+strlen(stg), "umlal%ss ", cond[val>>28]); + else + if(val & 0x400000) sprintf(stg+strlen(stg), "smull%ss ", cond[val>>28]); + else sprintf(stg+strlen(stg), "umull%ss ", cond[val>>28]); + else + if(val & 0x200000) + if(val & 0x400000) sprintf(stg+strlen(stg), "smlal%s ", cond[val>>28]); + else sprintf(stg+strlen(stg), "umlal%s ", cond[val>>28]); + else + if(val & 0x400000) sprintf(stg+strlen(stg), "smull%s ", cond[val>>28]); + else sprintf(stg+strlen(stg), "umull%s ", cond[val>>28]); + + sprintf(stg+strlen(stg), "%s, %s, %s, %s", regs[(val>>12)&15], regs[(val>>16)&15], regs[(val>>0)&15], regs[(val>>8)&15]); + } +} + +void halfword_stg(char *stg, ULONG val) +{ + ULONG off = ((val>>4) & 0xf0) + (val & 0x0f); + + if(val & 0x100000) sprintf(stg+strlen(stg), "ldr%s", cond[val>>28]); + else sprintf(stg+strlen(stg), "str%s", cond[val>>28]); + + switch((val>>5) & 3) // SWP, HW, SB, SH + { + case 0: sprintf(stg+strlen(stg), "error: SWP"); break; + case 1: sprintf(stg+strlen(stg), "h "); break; + case 2: sprintf(stg+strlen(stg), "sb "); break; + case 3: sprintf(stg+strlen(stg), "sh "); break; + } + + if(val & 0x400000) // immidiate offset + if(val & 0x1000000) // pre index + if(val & 0x200000) // write back + if(val & 0x800000) sprintf(stg+strlen(stg), "%s, [%s, "FRMT"]!", regs[(val>>12)&15], regs[(val>>16)&15], off); + else sprintf(stg+strlen(stg), "%s, [%s, -"FRMT"]!", regs[(val>>12)&15], regs[(val>>16)&15], off); + else + if(val & 0x800000) sprintf(stg+strlen(stg), "%s, [%s, "FRMT"]", regs[(val>>12)&15], regs[(val>>16)&15], off); + else sprintf(stg+strlen(stg), "%s, [%s, -"FRMT"]", regs[(val>>12)&15], regs[(val>>16)&15], off); + else + if(val & 0x200000) // write back + sprintf(stg+strlen(stg), "error 'write back' on post indexed"); + else + if(val & 0x800000) sprintf(stg+strlen(stg), "%s, [%s], "FRMT, regs[(val>>12)&15], regs[(val>>16)&15], off); + else sprintf(stg+strlen(stg), "%s, [%s], -"FRMT, regs[(val>>12)&15], regs[(val>>16)&15], off); + else + if(val & 0x1000000) // pre index + if(val & 0x200000) // write back + if(val & 0x800000) sprintf(stg+strlen(stg), "%s, [%s, %s]!", regs[(val>>12)&15], regs[(val>>16)&15], regs[val&15]); + else sprintf(stg+strlen(stg), "%s, [%s, -%s]!", regs[(val>>12)&15], regs[(val>>16)&15], regs[val&15]); + else + if(val & 0x800000) sprintf(stg+strlen(stg), "%s, [%s, %s]", regs[(val>>12)&15], regs[(val>>16)&15], regs[val&15]); + else sprintf(stg+strlen(stg), "%s, [%s, -%s]", regs[(val>>12)&15], regs[(val>>16)&15], regs[val&15]); + else + if(val & 0x200000) // write back + sprintf(stg+strlen(stg), "error 'write back' on post indexed"); + else + if(val & 0x800000) sprintf(stg+strlen(stg), "%s, [%s], %s", regs[(val>>12)&15], regs[(val>>16)&15], regs[val&15]); + else sprintf(stg+strlen(stg), "%s, [%s], -%s", regs[(val>>12)&15], regs[(val>>16)&15], regs[val&15]); +} + +void branch_stg(char *stg, ULONG val, ULONG pos) +{ + ULONG off = pos + (((int32_t)val << 8) >> 6) + 8; + + if((val & 0x0ffffff0) == 0x012fff10) // bx instruction + { sprintf(stg+strlen(stg), "bx%s %s", cond[val>>28], regs[val&15]); } + else + { + if(((val>>24)&15) == 10) sprintf(stg+strlen(stg), "b%s ", cond[val>>28]); + else sprintf(stg+strlen(stg), "bl%s ", cond[val>>28]); + + sprintf(stg+strlen(stg), "0x%x", off); + } +} + +void opcode_stg(char *stg, ULONG val, ULONG off) +{ + ULONG des, op1; + char op2[80]; + char *st = stg + strlen(stg); + + if(((val & 0x0ffffff0) == 0x012fff10) && (val & 16)) + { branch_stg(stg, val, off); return; } + else if(((val & 0x0f000000) == 0x00000000) && ((val & 0xf0) == 0x90)) + { multiply_stg(stg, val); return; } + else if(((val & 0x0f000000) <= 0x01000000) && ((val & 0x90) == 0x90) && ((val & 0xf0) > 0x90) && ((val & 0x01200000) != 0x00200000)) + { halfword_stg(stg, val); return; } + + sprintf(stg+strlen(stg), "%s%s%s ", opcd[(val>>21) & 15], cond[val>>28], setc[(val>>20) & 31]?"s":" "); + + des = (val>>12) & 15; + op1 = (val>>16) & 15; + + if(val & 0x2000000) // immidiate + { + off = (ULONG)((uint64_t)(val&0xff) << (32 - 2 * ((val >> 8) & 15))) | ((val&0xff) >> 2 * ((val >> 8) & 15)); + sprintf(op2, FRMT" ", off); + } + else + { + if(val & 16) // shift type + sprintf(op2, SHFTFRMR, regs[val&15], shfts[(val>>5)&3], regs[(val>>8)&15]); + else + if((val>>7) & 31) + sprintf(op2, SHFTFRMC, regs[val&15], shfts[(val>>5)&3], (val>>7) & 31); + else + sprintf(op2, "%s ", regs[val&15]); + } + + switch((val>>21) & 15) + { + case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 12: + case 14: sprintf(stg+strlen(stg), "%s, %s, %s", regs[des], regs[op1], op2); break; + + case 8: case 9: case 10: + case 11: if(val & 0x100000) // set status + sprintf(stg+strlen(stg), "%s, %s", regs[op1], op2); // standard TEQ,TST,CMP,CMN + else + { //special MRS/MSR opcodes + if((((val>>23) & 31) == 2) && ((val & 0x3f0fff) == 0x0f0000)) + { sprintf(st, "mrs%s %s, %s", cnd1[val>>28], regs[des], val&0x400000?"SPSR_xx":"CPSR"); } + else + if((((val>>23) & 31) == 2) && ((val & 0x30fff0) == 0x20f000)) + { sprintf(st, "msr%s %s, %s", cnd1[val>>28], val&0x400000?"SPSR_xx":"CPSR", regs[val&15]); } + else + if((((val>>23) & 31) == 6) && ((val & 0x30f000) == 0x20f000)) + { sprintf(st, "msr%s %s, %s", cnd1[val>>28], val&0x400000?"SPSR_xx":"CPSR_cf", op2); } + else + if((((val>>23) & 31) == 2) && ((val & 0x300ff0) == 0x000090)) + { sprintf(st, "swp%s%s %s, %s, [%s]", val&0x400000?"b":"", cnd1[val>>28], regs[(val>>12)&15], regs[val&15], regs[(val>>16)&15]); } + else + { sprintf(stg+strlen(stg), "??????????????"); } + } break; + case 13: + case 15: sprintf(stg+strlen(stg), "%s, %s", regs[des], op2); break; + } +} + +void opcode_cop(char *stg, ULONG val, ULONG off) +{ + char* op; + int opcode1 = (val >> 21) & 0x7; + int CRn = (val >> 16) & 0xf; + int Rd = (val >> 12) & 0xf; + int cp_num = (val >> 8) & 0xf; + int opcode2 = (val >> 5) & 0x7; + int CRm = val & 0xf; + + +// ee073f5e mcr 15, 0, r3, cr7, cr14, {2} + + if (val & (1<<4)) { + if (val & (1<<20)) { + op = "mrc"; + } else { + op = "mcr"; + } + opcode1 = (val >> 21) & 0x7; + CRn = (val >> 16) & 0xf; + Rd = (val >> 12) & 0xf; + cp_num = (val >> 8) & 0xf; + opcode2 = (val >> 5) & 0x7; + CRm = val & 0xf; + + sprintf(stg+strlen(stg), "%s%s %d, %d, r%d, cr%d, cr%d, {%d}", op, cnd1[val>>28], cp_num, opcode1, Rd, CRn, CRm, opcode2); + } else { + op = "cdp"; + + opcode1 = (val >> 20) & 0xf; + CRn = (val >> 16) & 0xf; + Rd = (val >> 12) & 0xf; + cp_num = (val >> 8) & 0xf; + opcode2 = (val >> 5) & 0x7; + CRm = val & 0xf; + + sprintf(stg+strlen(stg), "%s%s %d, %d, cr%d, cr%d, cr%d, {%d}", op, cnd1[val>>28], cp_num, opcode1, Rd, CRn, CRm, opcode2); + } + +} + + +void single_data(char *stg, ULONG val) +{ + char op2[80]; + + if(((val & 0x0e000000) == 0x06000000) && (val & 16)) + { sprintf(stg+strlen(stg), "undef%s", cond[val>>28]); + return; + } + + if(val & 0x400000) + if(val & 0x100000) sprintf(stg+strlen(stg), "ldr%sb ", cond[val>>28]); + else sprintf(stg+strlen(stg), "str%sb ", cond[val>>28]); + else + if(val & 0x100000) sprintf(stg+strlen(stg), "ldr%s ", cnd1[val>>28]); + else sprintf(stg+strlen(stg), "str%s ", cnd1[val>>28]); + + if(val & 0x2000000) {// reg offset + if(val & 16) // shift type + sprintf(op2, "error: reg defined shift"); + else + if((val>>7) & 31) + sprintf(op2, SHFTFRMC, regs[val&15], shfts[(val>>5)&3], (val>>7) & 31); + else + sprintf(op2, "%s", regs[val&15]); + } + + if(val & 0x2000000) // reg offset + if(val & 0x1000000) // pre index + if(val & 0x800000) // up offset (+) + if(val & 0x200000) // write back + sprintf(stg+strlen(stg), "%s, [%s, %s]!", regs[(val>>12)&15], regs[(val>>16)&15], op2); + else + sprintf(stg+strlen(stg), "%s, [%s, %s]", regs[(val>>12)&15], regs[(val>>16)&15], op2); + else + if(val & 0x200000) // write back + sprintf(stg+strlen(stg), "%s, [%s, -%s]!", regs[(val>>12)&15], regs[(val>>16)&15], op2); + else + sprintf(stg+strlen(stg), "%s, [%s, -%s]", regs[(val>>12)&15], regs[(val>>16)&15], op2); + else + if(val & 0x200000) // write back + sprintf(stg+strlen(stg), "error 'write back' set"); + else + if(val & 0x800000) // up offset (+) + sprintf(stg+strlen(stg), "%s, [%s], %s", regs[(val>>12)&15], regs[(val>>16)&15], op2); + else + sprintf(stg+strlen(stg), "%s, [%s], -%s", regs[(val>>12)&15], regs[(val>>16)&15], op2); + else + if(val & 0x1000000) // pre index + if(val & 0x800000) // up offset (+) + if(val & 0x200000) // write back + if(val & 0xfff) sprintf(stg+strlen(stg), "%s, [%s, "FRMT"]!", regs[(val>>12)&15], regs[(val>>16)&15], val & 0xfff); + else sprintf(stg+strlen(stg), "%s, [%s]!", regs[(val>>12)&15], regs[(val>>16)&15]); + else + if(val & 0xfff) sprintf(stg+strlen(stg), "%s, [%s, "FRMT"]", regs[(val>>12)&15], regs[(val>>16)&15], val & 0xfff); + else sprintf(stg+strlen(stg), "%s, [%s]", regs[(val>>12)&15], regs[(val>>16)&15]); + else + if(val & 0x200000) // write back + if(val & 0xfff) sprintf(stg+strlen(stg), "%s, [%s, -"FRMT"]!", regs[(val>>12)&15], regs[(val>>16)&15], val & 0xfff); + else sprintf(stg+strlen(stg), "%s, [%s]!", regs[(val>>12)&15], regs[(val>>16)&15]); + else + if(val & 0xfff) sprintf(stg+strlen(stg), "%s, [%s, -"FRMT"]", regs[(val>>12)&15], regs[(val>>16)&15], val & 0xfff); + else sprintf(stg+strlen(stg), "%s, [%s]", regs[(val>>12)&15], regs[(val>>16)&15]); + else + if(val & 0x200000) // write back + sprintf(stg+strlen(stg), "error 'write back' set"); + else + if(val & 0x800000) // up offset (+) + if(val & 0xfff) sprintf(stg+strlen(stg), "%s, [%s], "FRMT, regs[(val>>12)&15], regs[(val>>16)&15], val & 0xfff); + else sprintf(stg+strlen(stg), "%s, [%s]", regs[(val>>12)&15], regs[(val>>16)&15]); + else + if(val & 0xfff) sprintf(stg+strlen(stg), "%s, [%s], -"FRMT, regs[(val>>12)&15], regs[(val>>16)&15], val & 0xfff); + else sprintf(stg+strlen(stg), "%s, [%s]", regs[(val>>12)&15], regs[(val>>16)&15]); +} + +void block_data(char *stg, ULONG val) +{ + char lst[80]; + int i; + + strcpy(lst, "{"); + for(i=0; i<16; i++) + if(val & (1<>28]); + else sprintf(stg+strlen(stg), "ldm%sdb ", cond[val>>28]); + else + if(val & 0x800000) sprintf(stg+strlen(stg), "ldm%sia ", cond[val>>28]); + else sprintf(stg+strlen(stg), "ldm%sda ", cond[val>>28]); + else + if(val & 0x1000000) + if(val & 0x800000) sprintf(stg+strlen(stg), "stm%sib ", cond[val>>28]); + else sprintf(stg+strlen(stg), "stm%sdb ", cond[val>>28]); + else + if(val & 0x800000) sprintf(stg+strlen(stg), "stm%sia ", cond[val>>28]); + else sprintf(stg+strlen(stg), "stm%sda ", cond[val>>28]); + + switch((val>>21)&3) + { + case 0: sprintf(stg+strlen(stg), "%s, %s", regs[(val>>16)&15], lst); break; + case 1: sprintf(stg+strlen(stg), "%s!, %s", regs[(val>>16)&15], lst); break; + case 2: sprintf(stg+strlen(stg), "%s, %s", regs[(val>>16)&15], lst); break; + case 3: sprintf(stg+strlen(stg), "%s!, %s", regs[(val>>16)&15], lst); break; + } +} + +void dis_asm(ULONG off, ULONG val, char *stg) +{ + sprintf(stg, "%6x: %08x ", off, val); + + switch((val >> 24) & 15) + { + case 0: + case 1: + case 2: + case 3: opcode_stg(stg, val, off); break; + case 4: + case 5: + case 6: + case 7: single_data(stg, val); break; + case 8: + case 9: block_data(stg, val); break; + case 10: + case 11: branch_stg(stg, val, off); break; + case 12: + case 13: sprintf(stg+strlen(stg), "cop%s", cnd1[val>>28]); break; + case 14: opcode_cop(stg, val, off); break; + case 15: sprintf(stg+strlen(stg), "swi%s", cnd1[val>>28]); break; + } +} diff --git a/utils/disassembler/arm/main.c b/utils/disassembler/arm/main.c index 0edc633..67e5a06 100644 --- a/utils/disassembler/arm/main.c +++ b/utils/disassembler/arm/main.c @@ -1,132 +1,132 @@ -#include -#include -#include -#include - -#define ULONG uint32_t -#define USHORT uint16_t -#define UCHAR uint8_t - -ULONG isdata[1000000]; /* each bit defines one byte as: code=0, data=1 */ - -extern void dis_asm(ULONG off, ULONG val, char *stg); - -int static inline le2int(unsigned char* buf) -{ - int32_t res = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0]; - - return res; -} - -int main(int argc, char **argv) -{ - FILE *in, *out; - char *ptr, stg[256]; - unsigned char buf[4]; - ULONG pos, sz, val, loop; - int offset, offset1; - USHORT regid; - - if(argc == 1 || strcmp(argv[1], "--help") == 0) - { printf("Usage: arm_disass [input file]\n"); - printf(" disassembles input file to 'disasm.txt'\n"); - exit(-1); - } - - in = fopen(argv[1], "rb"); - if(in == NULL) - { printf("Cannot open %s", argv[1]); - exit(-1); - } - - out = fopen("disasm.txt", "w"); - if(out == NULL) exit(-1); - - fseek(in, 0, SEEK_END); - sz = ftell(in); - - /* first loop only sets data/code tags */ - for(loop=0; loop<2; loop++) - { - for(pos=0; pos assume data */ - if((isdata[pos>>5] & (0xf << (pos & 31))) || (val & 0xffff0000) == 0) - { - sprintf(stg, "%6x: %08x", pos, val); - } - else - { - dis_asm(pos, val, stg); - - /* check for instant mov operation */ - if(memcmp(stg+17, "mov ", 4) == 0 && (ptr=strstr(stg, "0x")) != NULL) - { - regid = *(USHORT*)(stg+22); - - sscanf(ptr+2, "%x", &offset); - if(ptr[-1] == '-') - offset = -offset; - } - else - /* check for add/sub operation */ - if((ptr=strstr(stg, "0x")) != NULL - && (memcmp(stg+17, "add ", 4) == 0 || memcmp(stg+17, "sub ", 4) == 0)) - { - if(regid == *(USHORT*)(stg+22) && regid == *(USHORT*)(stg+26)) - { - sscanf(ptr+2, "%x", &offset1); - if(ptr[-1] == '-') - offset1 = -offset1; - - if(memcmp(stg+17, "add ", 4) == 0) offset += offset1; - else offset -= offset1; - - /* add result to disassembler string */ - sprintf(stg+strlen(stg), " <- 0x%x", offset); - } - else - regid = 0; - } - else - regid = 0; - - /* check for const data */ - if(memcmp(stg+26, "[pc, ", 5) == 0 && (ptr=strstr(stg, "0x")) != NULL) - { - sscanf(ptr+2, "%x", &offset); - if(ptr[-1] == '-') - offset = -offset; - - /* add data tag */ - isdata[(pos+offset+8)>>5] |= 1 << ((pos+offset+8) & 31); - - /* add const data to disassembler string */ - fseek(in, pos+offset+8, SEEK_SET); - fread(&buf, 1, 4, in); - offset = le2int(buf); - - sprintf(stg+strlen(stg), " <- 0x%x", offset); - } - } - - /* remove trailing spaces */ - while(stg[strlen(stg)-1] == 32) - stg[strlen(stg)-1] = 0; - - if(loop == 1) - fprintf(out, "%s\n", stg); - } - } - - fclose(in); - return 0; -} +#include +#include +#include +#include + +#define ULONG uint32_t +#define USHORT uint16_t +#define UCHAR uint8_t + +ULONG isdata[1000000]; /* each bit defines one byte as: code=0, data=1 */ + +extern void dis_asm(ULONG off, ULONG val, char *stg); + +int static inline le2int(unsigned char* buf) +{ + int32_t res = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0]; + + return res; +} + +int main(int argc, char **argv) +{ + FILE *in, *out; + char *ptr, stg[256]; + unsigned char buf[4]; + ULONG pos, sz, val, loop; + int offset, offset1; + USHORT regid; + + if(argc == 1 || strcmp(argv[1], "--help") == 0) + { printf("Usage: arm_disass [input file]\n"); + printf(" disassembles input file to 'disasm.txt'\n"); + exit(-1); + } + + in = fopen(argv[1], "rb"); + if(in == NULL) + { printf("Cannot open %s", argv[1]); + exit(-1); + } + + out = fopen("disasm.txt", "w"); + if(out == NULL) exit(-1); + + fseek(in, 0, SEEK_END); + sz = ftell(in); + + /* first loop only sets data/code tags */ + for(loop=0; loop<2; loop++) + { + for(pos=0; pos assume data */ + if((isdata[pos>>5] & (0xf << (pos & 31))) || (val & 0xffff0000) == 0) + { + sprintf(stg, "%6x: %08x", pos, val); + } + else + { + dis_asm(pos, val, stg); + + /* check for instant mov operation */ + if(memcmp(stg+17, "mov ", 4) == 0 && (ptr=strstr(stg, "0x")) != NULL) + { + regid = *(USHORT*)(stg+22); + + sscanf(ptr+2, "%x", &offset); + if(ptr[-1] == '-') + offset = -offset; + } + else + /* check for add/sub operation */ + if((ptr=strstr(stg, "0x")) != NULL + && (memcmp(stg+17, "add ", 4) == 0 || memcmp(stg+17, "sub ", 4) == 0)) + { + if(regid == *(USHORT*)(stg+22) && regid == *(USHORT*)(stg+26)) + { + sscanf(ptr+2, "%x", &offset1); + if(ptr[-1] == '-') + offset1 = -offset1; + + if(memcmp(stg+17, "add ", 4) == 0) offset += offset1; + else offset -= offset1; + + /* add result to disassembler string */ + sprintf(stg+strlen(stg), " <- 0x%x", offset); + } + else + regid = 0; + } + else + regid = 0; + + /* check for const data */ + if(memcmp(stg+26, "[pc, ", 5) == 0 && (ptr=strstr(stg, "0x")) != NULL) + { + sscanf(ptr+2, "%x", &offset); + if(ptr[-1] == '-') + offset = -offset; + + /* add data tag */ + isdata[(pos+offset+8)>>5] |= 1 << ((pos+offset+8) & 31); + + /* add const data to disassembler string */ + fseek(in, pos+offset+8, SEEK_SET); + fread(&buf, 1, 4, in); + offset = le2int(buf); + + sprintf(stg+strlen(stg), " <- 0x%x", offset); + } + } + + /* remove trailing spaces */ + while(stg[strlen(stg)-1] == 32) + stg[strlen(stg)-1] = 0; + + if(loop == 1) + fprintf(out, "%s\n", stg); + } + } + + fclose(in); + return 0; +}