diff options
-rw-r--r-- | .editorconfig | 4 | ||||
-rw-r--r-- | src/.vscode/c_cpp_properties.json | 16 | ||||
-rw-r--r-- | src/.vscode/settings.json | 6 | ||||
-rw-r--r-- | src/engine/TODO/combat.h (renamed from src/stm32/TODO/hh_combat.h) | 0 | ||||
-rw-r--r-- | src/engine/TODO/draw_screen.h (renamed from src/stm32/TODO/hh_draw_screen.h) | 0 | ||||
-rw-r--r-- | src/engine/TODO/entity.c (renamed from src/stm32/TODO/hh_entity.c) | 0 | ||||
-rw-r--r-- | src/engine/TODO/entity.h (renamed from src/stm32/TODO/hh_entity.h) | 0 | ||||
-rw-r--r-- | src/engine/TODO/level.h (renamed from src/stm32/TODO/hh_level.h) | 3 | ||||
-rw-r--r-- | src/engine/TODO/maths.h (renamed from src/stm32/TODO/maths.h) | 7 | ||||
-rw-r--r-- | src/engine/TODO/player_controller.h (renamed from src/stm32/TODO/player_controller.h) | 0 | ||||
-rw-r--r-- | src/engine/TODO/sprite_controller.h (renamed from src/stm32/TODO/sprite_controller.h) | 0 | ||||
-rw-r--r-- | src/entity.h | 1 | ||||
-rw-r--r-- | src/input.h | 1 | ||||
-rw-r--r-- | src/ppusim/sim.c | 28 | ||||
-rw-r--r-- | src/ppusim/sim.h | 3 | ||||
-rw-r--r-- | src/stm32/TODO/hh_rand.h | 1 | ||||
-rw-r--r-- | src/stm32/TODO/maths.c | 10 | ||||
-rw-r--r-- | src/stm32/main.c | 3 | ||||
-rw-r--r-- | test/bin/test_file_read.c | 48 | ||||
-rw-r--r-- | test/bin/tiles.bs | 544 |
20 files changed, 657 insertions, 18 deletions
diff --git a/.editorconfig b/.editorconfig index fece754..1f4a360 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,10 +2,10 @@ root = true [*] indent_style = tab -indent_size = 2 +indent_size = 3 end_of_line = lf insert_final_newline = true [*.md] indent_style = space -indent_size = 2 +indent_size = 3 diff --git a/src/.vscode/c_cpp_properties.json b/src/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..359928d --- /dev/null +++ b/src/.vscode/c_cpp_properties.json @@ -0,0 +1,16 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [], + "compilerPath": "/usr/bin/gcc", + "cStandard": "c17", + "cppStandard": "c++14", + "intelliSenseMode": "linux-gcc-x64" + } + ], + "version": 4 +}
\ No newline at end of file diff --git a/src/.vscode/settings.json b/src/.vscode/settings.json new file mode 100644 index 0000000..d485e2c --- /dev/null +++ b/src/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "files.associations": { + "hh_entity.h": "c", + "maths.h": "c" + } +}
\ No newline at end of file diff --git a/src/stm32/TODO/hh_combat.h b/src/engine/TODO/combat.h index 16c41f5..16c41f5 100644 --- a/src/stm32/TODO/hh_combat.h +++ b/src/engine/TODO/combat.h diff --git a/src/stm32/TODO/hh_draw_screen.h b/src/engine/TODO/draw_screen.h index f5d7507..f5d7507 100644 --- a/src/stm32/TODO/hh_draw_screen.h +++ b/src/engine/TODO/draw_screen.h diff --git a/src/stm32/TODO/hh_entity.c b/src/engine/TODO/entity.c index fa550d5..fa550d5 100644 --- a/src/stm32/TODO/hh_entity.c +++ b/src/engine/TODO/entity.c diff --git a/src/stm32/TODO/hh_entity.h b/src/engine/TODO/entity.h index fdbeb8a..fdbeb8a 100644 --- a/src/stm32/TODO/hh_entity.h +++ b/src/engine/TODO/entity.h diff --git a/src/stm32/TODO/hh_level.h b/src/engine/TODO/level.h index 43b19a3..09f77e7 100644 --- a/src/stm32/TODO/hh_level.h +++ b/src/engine/TODO/level.h @@ -1 +1,4 @@ //deal with loading/saving the correct level + +/** @brief */ +void hh_map_load(); diff --git a/src/stm32/TODO/maths.h b/src/engine/TODO/maths.h index 0889c47..c7f1b44 100644 --- a/src/stm32/TODO/maths.h +++ b/src/engine/TODO/maths.h @@ -1,15 +1,16 @@ #pragma once - +#include <stdint.h> // #include <math.h> typedef struct { - u_int32_t x,y; + uint32_t x,y; } vec2; typedef vec2 vec_cen;//centered typedef vec2 vec_cor;//left upper corner -#define HH_MATH_FIXED_POINT 7 //fixed point at decimal 7lsb (world positions in pixels (with fixed decimal point)) +//fixed point at decimal 7lsb (world positions in pixels (with fixed decimal point)) +#define HH_MATH_FIXED_POINT 7 #define MIN(a,b) (((a)<(b))?(a):(b)) #define MAX(a,b) (((a)>(b))?(a):(b)) diff --git a/src/stm32/TODO/player_controller.h b/src/engine/TODO/player_controller.h index 1e9b86c..1e9b86c 100644 --- a/src/stm32/TODO/player_controller.h +++ b/src/engine/TODO/player_controller.h diff --git a/src/stm32/TODO/sprite_controller.h b/src/engine/TODO/sprite_controller.h index c1fadff..c1fadff 100644 --- a/src/stm32/TODO/sprite_controller.h +++ b/src/engine/TODO/sprite_controller.h diff --git a/src/entity.h b/src/entity.h index 20cbf42..181182b 100644 --- a/src/entity.h +++ b/src/entity.h @@ -12,4 +12,3 @@ typedef struct { int8_t speed; //10 default L/R MODifier bool in_air; } hh_s_entity_player; - diff --git a/src/input.h b/src/input.h index adacba2..90f0c61 100644 --- a/src/input.h +++ b/src/input.h @@ -19,4 +19,3 @@ extern hh_s_gamepad g_hh_controller_p2; /** @brief update g_hh_controller_p1 and 2 by reading buttons */ void hh_input_read(); - diff --git a/src/ppusim/sim.c b/src/ppusim/sim.c index 449b78d..1fceb82 100644 --- a/src/ppusim/sim.c +++ b/src/ppusim/sim.c @@ -1,9 +1,12 @@ #include <SDL2/SDL.h> #include <stdbool.h> #include <stdlib.h> +#include <stdio.h> #include "main.h" #include "ppu/ppu.h" +#include "ppu/consts.h" +#include "ppu/internals.h" #include "ppusim/mem.h" #include "ppusim/sim.h" #include "ppusim/work.h" @@ -22,6 +25,31 @@ void hh_ppu_init() { g_hh_ppusim_vram = malloc(sizeof(hh_ppu_data_t) * 0xffff); memset(g_hh_ppusim_vram, 0x0000, 0xffff); + hh_ppu_load_tilemap(); +} + +void hh_ppu_load_tilemap() { + char* filename = "tiles.bin"; + FILE* fp = fopen(filename,"rb"); + if (!fp){ + return;//error + } + + fseek(fp, 0, SEEK_END);//goto EOF + int _size = ftell(fp)/HH_PPU_VRAM_TMM_SPRITE_SIZE; + fseek(fp, 0, 0);//goto start of file + + for (int i = 0; i < _size; i++) { + uint8_t data[HH_PPU_VRAM_TMM_SPRITE_SIZE]; + + fread(data,HH_PPU_VRAM_TMM_SPRITE_SIZE,1,fp); + + hh_s_ppu_vram_data sprite = hh_ppu_2nat_sprite(data); + sprite.offset = i*HH_PPU_VRAM_TMM_SPRITE_SIZE; + hh_ppu_vram_write(sprite); + free(sprite.data); + } + fclose(fp); } void hh_ppu_deinit() { diff --git a/src/ppusim/sim.h b/src/ppusim/sim.h index 73f4b23..4d1d718 100644 --- a/src/ppusim/sim.h +++ b/src/ppusim/sim.h @@ -4,3 +4,6 @@ #define HH_PPUSIM_UPSCALE_FACTOR 3 /** @brief max framerate for PPUSIM */ #define HH_PPUSIM_FRAMERATE 60 + +/** @brief pump tilemap from rom to ppu ram */ +void hh_ppu_load_tilemap(); //ppu sim? diff --git a/src/stm32/TODO/hh_rand.h b/src/stm32/TODO/hh_rand.h deleted file mode 100644 index ea7c1d4..0000000 --- a/src/stm32/TODO/hh_rand.h +++ /dev/null @@ -1 +0,0 @@ -// deal with Pseudo random number generation here. diff --git a/src/stm32/TODO/maths.c b/src/stm32/TODO/maths.c deleted file mode 100644 index 2f4444a..0000000 --- a/src/stm32/TODO/maths.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "maths.h" - -float clamp( float* x, float *min, float *max ){ - if (*x < *min) - return *min; - else if (*x > *max) - return *max; - else - return *x; -} diff --git a/src/stm32/main.c b/src/stm32/main.c index 735b378..d381d35 100644 --- a/src/stm32/main.c +++ b/src/stm32/main.c @@ -1,4 +1,7 @@ #include "main.h" +#include "ppu/ppu.h" + +void hh_ppu_load_tilemap() {} void hh_loop() { while(g_hh_run); diff --git a/test/bin/test_file_read.c b/test/bin/test_file_read.c new file mode 100644 index 0000000..6357feb --- /dev/null +++ b/test/bin/test_file_read.c @@ -0,0 +1,48 @@ + +#include <stdio.h> +#include <stdint.h> +#include <stdlib.h> + + +#define HH_PPU_VRAM_TMM_SPRITE_SIZE 52 + + +void printData(uint8_t* in) { + for (int i = 0; i < HH_PPU_VRAM_TMM_SPRITE_SIZE; i++) + { + printf("%02x ",in[i]); + } + printf("\n"); +} + +void hh_ppu_load_tilemap() { + + //TODO: lees bestand in mem + char* filename = "tiles.bin"; + FILE* fp = fopen(filename,"rb"); + if (!fp){ + return;//error + } + + fseek(fp, 0, SEEK_END); + int _size = ftell(fp)/HH_PPU_VRAM_TMM_SPRITE_SIZE; + fseek(fp, 0, 0); + // printf("%i",_size); + for (int i = 0; i < _size; i++) { + uint8_t data[HH_PPU_VRAM_TMM_SPRITE_SIZE]; + // for (int i = 0; i < 255; i++) { + // buffer[i] = 0; //TODO: vullen + fread(data,HH_PPU_VRAM_TMM_SPRITE_SIZE,1,fp); + // } + + printData(data); + } + fclose(fp); + +} + + +int main(){ +hh_ppu_load_tilemap(); + return 0; +} diff --git a/test/bin/tiles.bs b/test/bin/tiles.bs new file mode 100644 index 0000000..4452c2a --- /dev/null +++ b/test/bin/tiles.bs @@ -0,0 +1,544 @@ +0000: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0010: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0020: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0030: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0040: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0050: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0060: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0070: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0080: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0090: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +00a0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +00b0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +00c0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +00d0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +00e0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +00f0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0100: 29 29 29 29 29 28 29 29 29 29 29 28 29 29 29 29 +0110: 29 28 28 28 28 26 28 28 28 28 28 26 28 28 28 28 +0120: 29 28 27 27 27 26 28 28 28 28 28 26 28 28 28 28 +0130: 29 27 27 27 27 25 25 25 25 25 25 25 25 25 25 25 +0140: 29 27 27 27 27 25 25 26 26 26 26 26 26 25 26 26 +0150: 28 27 27 27 27 25 26 26 26 26 26 26 26 25 26 26 +0160: 28 27 27 27 27 25 26 26 26 26 26 26 26 25 26 26 +0170: 26 26 26 26 26 25 25 25 25 25 25 25 25 25 25 25 +0180: 29 29 27 27 27 27 27 25 25 25 26 26 26 26 25 25 +0190: 28 27 27 27 27 27 27 25 26 26 26 26 26 26 26 25 +01a0: 28 27 27 27 27 27 27 25 25 26 26 26 26 26 26 25 +01b0: 28 26 26 26 26 26 25 25 25 25 25 25 25 25 25 25 +01c0: 01 28 27 27 27 27 27 27 25 25 26 26 26 26 26 26 +01d0: 01 28 27 27 27 27 27 27 25 26 26 26 26 26 26 26 +01e0: 01 28 27 27 27 27 27 27 25 26 26 26 26 26 26 26 +01f0: 29 29 29 28 28 28 25 25 25 25 25 25 25 25 25 25 +0200: 29 29 29 28 29 29 29 29 29 29 29 28 29 29 29 29 +0210: 28 28 28 26 28 28 28 28 28 28 28 26 28 28 28 28 +0220: 28 28 28 26 28 28 28 28 28 28 28 26 28 28 28 28 +0230: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +0240: 26 26 26 26 26 25 26 26 26 26 26 26 26 25 26 26 +0250: 26 26 26 26 26 25 26 26 26 26 26 26 26 25 26 26 +0260: 26 26 26 26 25 25 26 26 26 26 26 26 26 25 26 26 +0270: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +0280: 25 26 26 26 26 26 26 25 26 26 26 26 26 26 26 25 +0290: 26 26 26 26 26 26 26 25 26 26 26 26 26 26 26 25 +02a0: 26 26 26 26 26 26 26 25 26 26 26 26 26 26 26 25 +02b0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +02c0: 26 25 26 26 26 26 26 26 26 25 26 26 26 26 26 26 +02d0: 26 25 26 26 26 26 26 26 26 25 26 26 26 26 26 26 +02e0: 25 25 26 26 26 26 26 26 26 25 26 26 26 26 26 26 +02f0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +0300: 29 29 29 28 29 29 29 29 29 29 28 29 29 29 29 29 +0310: 28 28 28 26 28 28 28 28 28 28 26 28 28 28 28 29 +0320: 28 28 28 26 28 28 28 28 28 28 26 27 27 28 28 29 +0330: 25 25 25 25 25 25 25 25 25 25 25 27 27 27 27 29 +0340: 26 26 26 26 26 25 26 26 26 26 25 27 27 27 27 29 +0350: 26 26 26 26 26 25 26 26 26 26 25 27 27 27 27 28 +0360: 26 26 26 26 26 25 26 26 26 26 25 27 27 27 27 28 +0370: 25 25 25 25 25 25 25 25 25 25 25 26 26 26 26 28 +0380: 26 26 26 26 26 26 26 25 27 27 27 27 27 28 28 01 +0390: 26 26 26 26 26 26 26 25 27 27 27 27 27 27 28 01 +03a0: 26 26 26 26 26 26 26 25 27 27 27 27 27 27 28 01 +03b0: 25 25 25 25 25 25 25 25 25 25 25 28 28 29 29 29 +03c0: 26 25 26 26 26 26 26 26 26 25 27 27 27 27 27 29 +03d0: 26 25 26 26 26 26 26 26 26 25 27 27 27 27 27 29 +03e0: 26 25 26 26 26 26 26 26 26 25 27 27 27 27 27 28 +03f0: 25 25 25 25 25 25 25 25 25 25 25 25 26 26 26 28 +0400: 29 27 27 27 27 27 27 25 26 26 26 26 26 26 26 25 +0410: 28 27 27 27 27 27 27 25 26 26 26 26 26 26 26 25 +0420: 28 27 27 27 27 27 27 25 25 26 26 26 26 26 25 25 +0430: 28 26 26 26 26 26 25 25 25 25 25 25 25 25 25 25 +0440: 01 28 27 27 27 26 25 26 26 26 26 26 26 25 26 26 +0450: 01 28 27 27 27 25 26 26 26 26 26 26 26 25 26 26 +0460: 01 27 27 27 27 25 26 26 26 26 26 25 25 25 25 26 +0470: 29 29 28 28 25 25 25 25 25 25 25 25 25 25 25 25 +0480: 29 27 27 27 27 27 27 25 26 26 26 26 26 26 26 25 +0490: 28 27 27 27 27 27 27 25 26 26 26 26 26 26 26 25 +04a0: 28 27 27 27 27 27 27 25 25 26 26 26 26 26 26 25 +04b0: 28 26 26 26 26 26 25 25 25 25 25 25 25 25 25 25 +04c0: 01 28 28 27 27 27 27 26 25 26 26 26 26 26 26 26 +04d0: 01 28 27 27 27 27 27 27 25 25 26 26 26 26 26 26 +04e0: 01 28 27 27 27 27 27 27 25 25 26 26 26 26 26 26 +04f0: 01 28 26 26 26 26 26 25 25 25 25 25 25 25 25 25 +0500: 26 26 25 25 25 26 26 26 26 26 26 25 25 26 26 26 +0510: 26 26 26 25 26 26 26 26 26 26 26 25 26 26 26 26 +0520: 26 26 26 25 26 26 26 26 26 26 25 25 25 26 26 26 +0530: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +0540: 26 26 26 26 25 25 26 26 26 26 26 26 26 25 26 26 +0550: 26 26 26 26 26 25 26 26 26 26 26 26 26 25 26 26 +0560: 26 26 26 26 26 25 26 26 26 26 26 26 25 25 25 26 +0570: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +0580: 25 26 26 26 26 26 26 25 26 26 26 26 26 26 25 25 +0590: 26 26 26 26 26 26 26 25 26 26 26 26 26 26 26 25 +05a0: 26 26 26 26 26 26 25 25 25 25 26 26 26 26 26 25 +05b0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +05c0: 25 25 25 26 26 26 26 26 26 25 26 26 26 26 26 26 +05d0: 26 25 26 26 26 26 26 26 26 25 26 26 26 26 26 26 +05e0: 26 25 26 26 26 26 26 26 25 25 25 26 26 26 26 26 +05f0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +0600: 26 26 26 25 26 26 26 26 26 26 26 25 27 27 28 01 +0610: 26 26 26 25 26 26 26 26 26 26 26 25 27 27 28 01 +0620: 26 26 25 25 26 26 26 26 26 26 26 25 27 27 27 01 +0630: 25 25 25 25 25 25 25 25 25 25 25 25 25 29 29 29 +0640: 26 26 26 26 26 25 26 26 26 25 27 27 27 27 27 29 +0650: 26 26 26 26 26 25 26 26 26 25 27 27 27 27 27 28 +0660: 26 26 26 26 26 25 26 26 26 25 27 27 27 27 27 28 +0670: 25 25 25 25 25 25 25 25 25 25 25 26 26 26 26 28 +0680: 26 26 26 26 26 26 26 25 27 27 27 27 27 28 28 01 +0690: 26 26 26 26 26 26 26 25 27 27 27 27 27 27 28 01 +06a0: 26 26 26 26 26 26 26 25 27 27 27 27 27 27 28 01 +06b0: 25 25 25 25 25 25 25 25 25 25 25 26 26 29 29 29 +06c0: 26 25 26 26 26 26 26 26 26 25 27 27 27 27 27 29 +06d0: 26 25 26 26 26 26 26 26 26 25 27 27 27 27 27 28 +06e0: 26 25 26 26 26 26 26 26 26 25 27 27 27 27 27 28 +06f0: 25 25 25 25 25 25 25 25 25 25 25 25 26 26 26 28 +0700: 29 27 27 27 27 27 27 25 26 26 26 26 26 26 26 25 +0710: 28 27 27 27 27 27 27 25 26 26 26 26 26 26 26 25 +0720: 28 27 27 27 27 27 27 25 25 26 26 26 26 26 25 25 +0730: 28 26 26 26 26 26 25 25 25 25 25 25 25 25 25 25 +0740: 01 28 27 27 27 26 25 26 26 26 26 26 26 25 26 26 +0750: 01 28 27 27 27 25 26 26 26 26 26 26 26 25 26 26 +0760: 01 27 27 27 27 25 26 26 26 26 26 25 25 25 25 26 +0770: 29 29 28 28 25 25 25 25 25 25 25 25 25 25 25 25 +0780: 29 27 27 27 27 27 27 25 26 26 26 26 26 26 26 25 +0790: 28 27 27 27 27 27 27 25 26 26 26 26 26 26 26 25 +07a0: 28 27 27 27 27 27 27 25 25 26 26 26 26 26 26 25 +07b0: 28 26 26 26 26 26 25 25 25 25 25 25 25 25 25 25 +07c0: 01 28 28 27 27 27 27 27 27 27 27 25 25 25 25 27 +07d0: 01 28 28 27 27 27 27 27 27 27 27 27 25 27 27 27 +07e0: 01 29 28 28 28 27 27 27 27 27 27 27 26 27 27 27 +07f0: 01 29 29 29 28 28 28 28 28 28 28 28 26 28 28 28 +0800: 26 26 25 25 25 26 26 26 26 26 26 25 25 26 26 26 +0810: 26 26 26 25 26 26 26 26 26 26 26 25 26 26 26 26 +0820: 26 26 26 25 26 26 26 26 26 26 25 25 25 26 26 26 +0830: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +0840: 26 26 26 26 25 25 26 26 26 26 26 26 26 25 26 26 +0850: 26 26 26 26 26 25 26 26 26 26 26 26 26 25 26 26 +0860: 26 26 26 26 26 25 26 26 26 26 26 26 25 25 25 26 +0870: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +0880: 25 26 26 26 26 26 26 25 26 26 26 26 26 26 25 25 +0890: 26 26 26 26 26 26 26 25 26 26 26 26 26 26 26 25 +08a0: 26 26 26 26 26 26 25 25 25 25 26 26 26 26 26 25 +08b0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +08c0: 27 27 27 27 27 27 27 27 26 26 26 27 27 27 27 27 +08d0: 27 27 27 27 27 27 27 27 27 26 26 27 27 27 27 27 +08e0: 27 27 27 27 27 27 27 27 27 26 27 27 27 27 27 27 +08f0: 28 28 28 28 28 28 28 28 28 26 28 28 28 28 28 28 +0900: 26 26 26 25 26 26 26 26 26 26 26 25 27 27 28 01 +0910: 26 26 26 25 26 26 26 26 26 26 26 25 27 27 28 01 +0920: 26 26 25 25 26 26 26 26 26 26 26 25 27 27 27 01 +0930: 25 25 25 25 25 25 25 25 25 25 25 25 25 29 29 29 +0940: 26 26 26 26 26 25 26 26 26 25 27 27 27 27 27 29 +0950: 26 26 26 26 26 25 26 26 26 25 27 27 27 27 27 28 +0960: 26 26 26 26 26 25 26 26 26 25 27 27 27 27 27 28 +0970: 25 25 25 25 25 25 25 25 25 25 25 26 26 26 26 28 +0980: 26 26 26 26 26 26 26 25 27 27 27 27 27 28 28 01 +0990: 26 26 26 26 26 26 26 25 27 27 27 27 27 27 28 01 +09a0: 26 26 26 26 26 26 26 25 27 27 27 27 27 27 28 01 +09b0: 25 25 25 25 25 25 26 26 26 26 26 26 26 29 29 29 +09c0: 27 27 26 26 26 27 27 27 27 27 27 27 27 27 28 29 +09d0: 27 27 27 26 26 27 27 27 27 27 27 27 27 28 28 28 +09e0: 27 27 27 26 27 27 27 27 27 27 27 28 28 28 28 29 +09f0: 28 28 28 26 28 28 28 28 28 28 28 28 28 29 29 29 +0a00: 29 29 29 29 29 28 29 29 29 29 29 28 29 29 29 29 +0a10: 29 28 28 28 28 26 28 28 28 28 28 26 28 28 28 28 +0a20: 29 28 27 27 27 26 28 28 28 28 28 26 28 28 28 28 +0a30: 29 27 27 27 27 25 25 25 25 25 25 25 25 25 25 25 +0a40: 29 27 27 27 27 25 25 26 26 26 26 26 26 25 26 26 +0a50: 28 27 27 27 27 25 26 26 26 26 26 26 26 25 26 26 +0a60: 28 27 27 27 27 25 26 26 26 26 26 26 26 25 26 26 +0a70: 26 26 26 26 26 25 25 25 25 25 25 25 25 25 25 25 +0a80: 29 27 27 27 27 27 27 25 26 26 26 26 26 26 26 25 +0a90: 28 27 27 27 27 27 27 25 26 26 26 26 26 26 26 25 +0aa0: 28 27 27 27 27 27 27 25 25 26 26 26 26 26 26 25 +0ab0: 28 26 26 26 26 26 25 25 25 25 25 25 25 25 25 25 +0ac0: 01 28 28 27 27 27 27 27 27 27 27 25 25 25 25 27 +0ad0: 01 28 28 27 27 27 27 27 27 27 27 27 25 27 27 27 +0ae0: 01 29 28 28 28 27 27 27 27 27 27 27 26 27 27 27 +0af0: 01 29 29 29 28 28 28 28 28 28 28 28 26 28 28 28 +0b00: 29 29 29 28 29 29 29 29 29 29 29 28 29 29 29 29 +0b10: 28 28 28 26 28 28 28 28 28 28 28 26 28 28 28 28 +0b20: 28 28 28 26 28 28 28 28 28 28 28 26 28 28 28 28 +0b30: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +0b40: 26 26 26 26 26 25 26 26 26 26 26 26 26 25 26 26 +0b50: 26 26 26 26 26 25 26 26 26 26 26 26 26 25 26 26 +0b60: 26 26 26 26 25 25 26 26 26 26 26 26 26 25 26 26 +0b70: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +0b80: 25 26 26 26 26 26 26 25 26 26 26 26 26 26 25 25 +0b90: 26 26 26 26 26 26 26 25 26 26 26 26 26 26 26 25 +0ba0: 26 26 26 26 26 26 25 25 25 25 26 26 26 26 26 25 +0bb0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +0bc0: 27 27 27 27 27 27 27 27 26 26 26 27 27 27 27 27 +0bd0: 27 27 27 27 27 27 27 27 27 26 26 27 27 27 27 27 +0be0: 27 27 27 27 27 27 27 27 27 26 27 27 27 27 27 27 +0bf0: 28 28 28 28 28 28 28 28 28 26 28 28 28 28 28 28 +0c00: 29 29 29 28 29 29 29 29 29 29 28 29 29 29 29 29 +0c10: 28 28 28 26 28 28 28 28 28 28 26 28 28 28 28 29 +0c20: 28 28 28 26 28 28 28 28 28 28 26 27 27 28 28 29 +0c30: 25 25 25 25 25 25 25 25 25 25 25 27 27 27 27 29 +0c40: 26 26 26 26 26 25 26 26 26 26 25 27 27 27 27 29 +0c50: 26 26 26 26 26 25 26 26 26 26 25 27 27 27 27 28 +0c60: 26 26 26 26 26 25 26 26 26 26 25 27 27 27 27 28 +0c70: 25 25 25 25 25 25 25 25 25 25 25 26 26 26 26 28 +0c80: 26 26 26 26 26 26 26 25 27 27 27 27 27 28 28 01 +0c90: 26 26 26 26 26 26 26 25 27 27 27 27 27 27 28 01 +0ca0: 26 26 26 26 26 26 26 25 27 27 27 27 27 27 28 01 +0cb0: 25 25 25 25 25 25 26 26 26 26 26 26 26 29 29 29 +0cc0: 27 27 26 26 26 27 27 27 27 27 27 27 27 27 28 29 +0cd0: 27 27 27 26 26 27 27 27 27 27 27 27 27 28 28 28 +0ce0: 27 27 27 26 27 27 27 27 27 27 27 28 28 28 28 29 +0cf0: 28 28 28 26 28 28 28 28 28 28 28 28 28 29 29 29 +0d00: 29 29 29 29 29 28 29 29 29 29 28 29 29 29 29 29 +0d10: 29 28 28 28 28 26 28 28 28 28 26 28 28 28 28 29 +0d20: 29 28 27 27 27 26 28 28 28 28 26 27 27 28 28 29 +0d30: 29 27 27 27 27 25 25 25 25 25 25 27 27 27 27 29 +0d40: 29 27 27 27 27 25 25 26 26 26 25 27 27 27 27 29 +0d50: 28 27 27 27 27 25 26 26 26 26 25 27 27 27 27 28 +0d60: 28 27 27 27 27 25 26 26 26 26 25 27 27 27 27 28 +0d70: 26 26 26 26 26 25 25 25 25 25 25 26 26 26 26 28 +0d80: 29 29 27 27 27 27 27 25 27 27 27 27 27 28 28 01 +0d90: 28 27 27 27 27 27 27 25 27 27 27 27 27 27 28 01 +0da0: 28 27 27 27 27 27 27 25 27 27 27 27 27 27 28 01 +0db0: 28 26 26 26 26 26 25 25 25 25 25 28 28 29 29 29 +0dc0: 01 28 27 27 27 27 27 27 26 25 27 27 27 27 27 29 +0dd0: 01 28 27 27 27 27 27 27 26 25 27 27 27 27 27 29 +0de0: 01 28 27 27 27 27 27 27 26 25 27 27 27 27 27 28 +0df0: 29 29 29 28 28 28 25 25 25 25 25 25 26 26 26 28 +0e00: 29 27 27 27 27 27 27 25 26 26 26 25 27 27 28 01 +0e10: 28 27 27 27 27 27 27 25 26 26 26 25 27 27 28 01 +0e20: 28 27 27 27 27 27 27 25 26 26 26 25 27 27 27 01 +0e30: 28 26 26 26 26 26 25 25 25 25 25 25 25 29 29 29 +0e40: 01 28 27 27 27 26 25 26 26 25 27 27 27 27 27 29 +0e50: 01 28 27 27 27 25 26 26 26 25 27 27 27 27 27 28 +0e60: 01 27 27 27 27 25 26 26 26 25 26 27 27 27 27 28 +0e70: 29 29 28 28 25 25 25 25 25 25 25 26 26 26 26 28 +0e80: 29 27 27 27 27 27 27 25 27 27 27 27 27 28 28 01 +0e90: 28 27 27 27 27 27 27 25 27 27 27 27 27 27 28 01 +0ea0: 28 27 27 27 27 27 27 25 27 27 27 27 27 27 28 01 +0eb0: 28 26 26 26 26 26 25 25 25 25 25 26 26 29 29 29 +0ec0: 01 28 28 27 27 27 26 26 26 26 26 27 27 27 27 29 +0ed0: 01 28 27 27 27 27 26 26 26 26 27 27 27 27 27 28 +0ee0: 01 28 27 27 27 26 26 26 26 26 27 27 27 27 27 28 +0ef0: 01 28 26 26 26 26 26 25 25 25 25 25 26 26 26 28 +0f00: 29 27 27 27 27 27 27 25 26 26 26 25 27 27 28 01 +0f10: 28 27 27 27 27 27 27 25 26 26 26 25 27 27 28 01 +0f20: 28 27 27 27 27 27 27 25 26 26 26 25 27 27 27 01 +0f30: 28 26 26 26 26 26 25 25 25 25 25 25 25 29 29 29 +0f40: 01 28 27 27 27 26 25 26 26 25 27 27 27 27 27 29 +0f50: 01 28 27 27 27 25 26 26 26 25 27 27 27 27 27 28 +0f60: 01 27 27 27 27 25 26 26 26 25 27 27 27 27 27 28 +0f70: 29 29 28 28 25 25 25 25 25 25 25 26 26 26 26 28 +0f80: 29 27 27 27 27 27 27 25 27 27 27 27 27 28 28 01 +0f90: 28 27 27 27 27 27 27 25 27 27 27 27 27 27 28 01 +0fa0: 28 27 27 27 27 27 27 25 27 27 27 27 27 27 28 01 +0fb0: 28 26 26 26 26 26 25 25 26 26 26 26 26 29 29 29 +0fc0: 01 28 28 27 27 27 27 27 27 27 27 27 27 27 28 29 +0fd0: 01 28 28 27 27 27 27 27 27 27 27 27 27 28 28 28 +0fe0: 01 29 28 28 28 27 27 27 27 27 27 28 28 28 28 29 +0ff0: 01 29 29 29 28 28 28 28 28 28 28 28 28 29 29 29 +1000: 26 26 25 25 25 26 26 26 26 26 26 25 25 26 26 26 +1010: 26 26 26 25 26 26 26 26 26 26 26 25 26 26 26 26 +1020: 26 26 26 25 26 26 26 26 26 26 25 25 25 26 26 26 +1030: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1040: 26 26 26 26 25 25 26 26 26 26 26 26 26 25 26 26 +1050: 26 26 26 26 26 25 26 26 26 26 26 26 26 25 26 26 +1060: 26 26 26 26 26 25 26 26 26 26 26 26 25 25 25 26 +1070: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1080: 25 26 26 26 26 26 26 25 26 26 26 26 26 26 25 25 +1090: 26 26 26 26 26 26 26 25 26 26 26 26 26 26 26 25 +10a0: 26 26 26 26 26 26 25 25 25 25 26 26 26 26 26 25 +10b0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +10c0: 25 25 25 26 26 26 26 26 26 25 26 26 26 27 27 27 +10d0: 26 25 26 26 26 26 26 26 26 25 26 26 27 27 27 27 +10e0: 26 25 26 26 26 26 26 26 25 25 25 26 27 27 27 27 +10f0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1100: 26 26 25 25 25 26 26 26 26 26 26 25 25 26 26 26 +1110: 26 26 26 25 26 26 26 26 26 26 26 25 26 26 26 26 +1120: 26 26 26 25 26 26 26 26 26 26 25 25 25 26 26 26 +1130: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1140: 26 26 26 26 25 25 26 26 26 26 26 26 26 25 26 26 +1150: 26 26 26 26 26 25 26 26 26 26 26 26 26 25 26 26 +1160: 26 26 26 26 26 25 26 26 26 26 26 26 25 25 25 26 +1170: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1180: 25 26 26 26 26 26 26 25 26 26 26 26 26 26 25 25 +1190: 26 26 26 26 26 26 26 25 26 26 26 26 26 26 26 25 +11a0: 26 26 26 26 26 26 25 25 25 25 26 26 26 26 26 25 +11b0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +11c0: 25 25 25 26 26 26 26 26 26 25 26 26 26 26 26 26 +11d0: 27 25 27 27 26 26 26 26 26 25 26 26 26 26 26 26 +11e0: 27 25 27 27 26 26 26 26 25 25 25 26 26 26 26 26 +11f0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1200: 26 26 25 25 25 26 26 26 26 26 26 25 25 28 28 28 +1210: 26 26 26 25 26 26 26 26 26 26 26 25 26 28 28 28 +1220: 26 26 26 25 26 26 26 26 26 26 25 25 25 26 28 28 +1230: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1240: 26 26 26 26 25 25 26 26 26 26 26 26 26 25 26 26 +1250: 26 26 26 26 26 25 26 26 26 26 26 26 26 25 26 26 +1260: 26 26 26 26 26 25 26 26 26 26 26 26 25 25 25 26 +1270: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1280: 25 26 26 26 26 26 26 25 26 26 26 26 26 26 25 25 +1290: 26 26 26 26 26 26 26 25 26 26 26 26 26 26 26 25 +12a0: 26 26 26 26 26 26 25 25 25 25 26 26 26 26 26 25 +12b0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +12c0: 25 25 25 26 26 26 26 26 26 25 26 26 26 26 26 26 +12d0: 26 25 26 26 26 26 26 26 26 25 26 26 26 26 26 26 +12e0: 26 25 26 26 26 26 26 26 25 25 25 26 26 26 26 26 +12f0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1300: 28 28 25 25 25 26 26 26 26 26 26 25 25 26 26 26 +1310: 28 28 28 25 26 26 26 26 26 26 26 25 26 26 26 26 +1320: 28 28 26 25 26 26 26 26 26 26 25 25 25 26 26 26 +1330: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1340: 26 26 26 26 25 25 26 26 26 26 26 26 26 25 26 26 +1350: 26 26 26 26 26 25 26 26 26 26 26 26 26 25 26 26 +1360: 26 26 26 26 26 25 26 26 26 26 26 26 25 25 25 26 +1370: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1380: 25 26 26 26 26 26 26 25 26 26 26 26 26 26 25 25 +1390: 26 26 26 26 26 26 26 25 26 26 26 26 26 26 26 25 +13a0: 26 26 26 26 26 26 25 25 25 25 26 26 26 26 26 25 +13b0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +13c0: 25 25 25 26 26 26 26 26 26 25 26 26 26 26 26 26 +13d0: 26 25 26 26 26 26 26 26 26 25 26 26 26 26 26 26 +13e0: 26 25 26 26 26 26 26 26 25 25 25 26 26 26 26 26 +13f0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1400: 26 26 25 25 24 25 25 25 25 25 24 24 24 24 24 24 +1410: 26 26 26 24 25 25 25 25 25 25 24 24 24 24 24 24 +1420: 26 26 25 24 25 25 25 25 25 25 24 24 24 24 24 24 +1430: 25 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1440: 25 25 25 25 24 24 25 25 25 25 24 24 24 24 24 24 +1450: 25 25 25 25 25 24 25 25 25 25 24 24 24 24 24 24 +1460: 25 25 25 25 25 24 25 25 25 25 24 24 24 24 24 24 +1470: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1480: 24 25 25 25 25 25 25 24 24 24 24 24 24 24 24 24 +1490: 25 25 25 25 25 25 25 24 24 24 24 24 24 24 24 24 +14a0: 25 25 25 25 25 25 24 24 24 24 24 24 24 24 24 24 +14b0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +14c0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +14d0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +14e0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +14f0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1500: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1510: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1520: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1530: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1540: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1550: 24 24 24 24 24 24 24 24 25 25 25 25 25 24 25 25 +1560: 24 24 24 24 24 24 24 25 25 25 25 25 24 24 24 25 +1570: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1580: 24 24 24 24 24 24 24 24 25 25 25 25 25 25 24 24 +1590: 24 24 24 24 24 24 24 24 25 25 25 25 25 25 25 24 +15a0: 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 24 +15b0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 25 25 +15c0: 24 24 24 24 24 25 25 25 25 24 25 25 25 26 26 26 +15d0: 24 24 24 24 25 25 25 25 25 24 25 25 26 26 26 26 +15e0: 24 24 24 24 25 25 25 25 24 24 24 26 26 26 26 26 +15f0: 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 25 +1600: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1610: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1620: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1630: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1640: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1650: 25 25 25 25 25 24 25 25 25 25 24 24 24 24 24 24 +1660: 25 25 25 25 25 24 25 25 25 25 25 24 24 24 24 25 +1670: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1680: 24 25 25 25 25 25 25 24 25 25 25 25 25 25 24 24 +1690: 25 25 25 25 25 25 25 24 25 25 25 25 25 25 25 24 +16a0: 25 25 25 25 25 25 24 24 24 24 25 25 25 25 25 24 +16b0: 25 25 25 25 24 24 24 24 24 24 24 24 24 24 24 24 +16c0: 25 25 25 26 26 25 25 25 25 24 25 25 26 26 26 26 +16d0: 26 25 26 26 26 26 26 26 26 25 26 26 26 26 26 26 +16e0: 26 25 26 26 26 26 26 26 25 25 25 26 26 26 26 26 +16f0: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1700: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1710: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1720: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1730: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1740: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1750: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1760: 25 25 25 25 25 24 24 24 24 24 24 24 24 24 24 24 +1770: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1780: 24 25 25 25 25 25 25 24 25 25 24 24 24 24 24 24 +1790: 25 25 25 25 25 25 25 24 25 25 24 24 24 24 24 24 +17a0: 25 25 25 25 25 25 24 24 24 24 24 24 24 24 24 24 +17b0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +17c0: 25 24 24 25 25 25 25 25 25 24 24 24 24 24 24 24 +17d0: 26 25 25 25 25 25 25 25 25 24 24 24 24 24 24 24 +17e0: 26 25 26 25 25 25 25 25 24 24 24 24 24 24 24 24 +17f0: 25 25 25 25 24 24 24 24 24 24 24 24 24 24 24 24 +1800: 24 24 24 24 24 25 25 25 25 25 26 25 25 26 26 26 +1810: 24 24 24 24 25 25 25 25 25 25 26 25 26 26 26 26 +1820: 24 24 24 24 25 25 25 25 25 25 25 25 25 26 26 26 +1830: 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 25 +1840: 24 24 24 24 24 24 25 25 25 25 26 26 26 25 26 26 +1850: 24 24 24 24 24 24 25 25 25 25 26 26 26 25 26 26 +1860: 24 24 24 24 24 24 25 25 25 25 26 26 25 25 25 26 +1870: 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 25 +1880: 24 24 24 24 25 25 25 24 25 25 26 26 26 26 25 25 +1890: 24 24 24 25 25 25 25 24 25 25 25 26 26 26 26 25 +18a0: 24 24 24 25 25 25 24 24 24 24 25 25 26 26 26 25 +18b0: 24 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 +18c0: 24 24 24 25 25 25 25 25 25 24 26 26 26 26 26 26 +18d0: 24 24 24 24 25 25 25 25 25 24 26 26 26 26 26 26 +18e0: 24 24 24 24 25 25 25 25 24 24 25 26 26 26 26 26 +18f0: 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 25 +1900: 26 26 25 25 25 25 25 25 25 24 24 24 24 24 24 24 +1910: 26 26 26 25 26 25 25 25 25 24 24 24 24 24 24 24 +1920: 26 26 26 25 26 25 25 25 25 24 24 24 24 24 24 24 +1930: 25 25 25 25 25 24 24 24 24 24 24 24 24 24 24 24 +1940: 26 26 26 26 25 24 25 25 25 24 24 24 24 24 24 24 +1950: 26 26 26 26 26 24 25 25 25 24 24 24 24 24 24 24 +1960: 26 26 26 26 26 24 25 25 24 24 24 24 24 24 24 24 +1970: 25 25 25 25 24 24 24 24 24 24 24 24 24 24 24 24 +1980: 25 26 26 26 25 25 25 24 24 24 24 24 24 24 24 24 +1990: 26 26 26 26 25 25 25 24 24 24 24 24 24 24 24 24 +19a0: 26 26 26 26 26 25 24 24 24 24 24 24 24 24 24 24 +19b0: 25 25 25 25 25 24 24 24 24 24 24 24 24 24 24 24 +19c0: 25 25 25 26 26 25 25 25 25 24 24 24 24 24 24 24 +19d0: 26 25 26 26 26 25 25 25 25 24 24 24 24 24 24 24 +19e0: 26 25 26 26 26 25 25 25 24 24 24 24 24 24 24 24 +19f0: 25 25 25 25 25 24 24 24 24 24 24 24 24 24 24 24 +1a00: 24 24 24 24 24 25 25 25 25 25 26 25 25 26 26 26 +1a10: 24 24 24 24 25 25 25 25 25 25 25 25 26 26 26 26 +1a20: 24 24 24 24 25 25 25 25 25 25 24 24 25 26 26 26 +1a30: 24 24 24 24 24 24 24 24 24 24 24 24 24 25 25 25 +1a40: 24 24 24 24 24 24 25 25 25 25 25 25 25 24 26 26 +1a50: 24 24 24 24 24 24 24 25 25 25 25 25 25 24 25 25 +1a60: 24 24 24 24 24 24 24 25 25 25 25 25 24 24 24 25 +1a70: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1a80: 24 24 24 24 24 24 24 24 25 25 25 25 25 25 24 24 +1a90: 24 24 24 24 24 24 24 24 25 25 25 25 25 25 25 24 +1aa0: 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 24 +1ab0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1ac0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1ad0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1ae0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1af0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1b00: 26 26 25 25 25 26 26 26 26 26 26 25 25 26 26 26 +1b10: 26 26 26 25 26 26 26 26 26 26 26 25 26 26 26 26 +1b20: 26 26 26 25 26 26 26 26 26 26 25 25 25 26 26 26 +1b30: 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 +1b40: 26 26 26 26 25 25 26 26 26 26 26 26 26 25 26 25 +1b50: 25 25 25 25 25 24 25 25 25 25 25 25 25 24 25 25 +1b60: 25 25 25 25 25 24 25 25 25 25 25 25 24 24 24 25 +1b70: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1b80: 24 25 25 25 25 25 25 24 25 25 25 25 25 25 24 24 +1b90: 25 25 25 25 25 25 25 24 25 25 25 25 25 25 25 24 +1ba0: 25 25 25 25 25 25 24 24 24 24 25 25 25 25 25 24 +1bb0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1bc0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1bd0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1be0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1bf0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1c00: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +1c10: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +1c20: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +1c30: 01 01 01 01 01 1b 1b 1b 1b 1b 1b 01 01 01 01 01 +1c40: 01 01 01 01 01 1b 01 01 01 01 1b 01 01 01 01 01 +1c50: 01 01 01 01 01 01 01 01 01 01 1b 01 01 01 01 01 +1c60: 01 01 01 01 01 01 01 01 01 01 1b 01 01 01 01 01 +1c70: 01 01 01 01 01 01 01 01 01 1b 1b 01 01 01 01 01 +1c80: 01 01 01 01 01 01 01 01 1b 1b 01 01 01 01 01 01 +1c90: 01 01 01 01 01 01 01 1b 1b 01 01 01 01 01 01 01 +1ca0: 01 01 01 01 01 01 01 1b 01 01 01 01 01 01 01 01 +1cb0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +1cc0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +1cd0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +1ce0: 01 01 01 01 01 01 01 1b 01 01 01 01 01 01 01 01 +1cf0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +1d00: 01 01 01 01 01 01 01 1b 1b 1b 01 01 01 01 01 01 +1d10: 01 01 01 01 01 01 1b 1b 1b 1b 1b 01 01 01 01 01 +1d20: 01 01 01 01 01 1b 1b 1b 1b 1b 1b 1b 01 01 01 01 +1d30: 01 01 01 01 01 1b 1b 1b 1b 1b 1b 1b 01 01 01 01 +1d40: 01 01 01 01 01 1b 1b 1b 1b 1b 1b 1b 01 01 01 01 +1d50: 01 01 01 01 01 1b 1b 1b 1b 1b 1b 1b 01 01 01 01 +1d60: 01 01 01 01 01 1b 1b 1b 1b 1b 1b 1b 01 01 01 01 +1d70: 01 01 01 01 01 01 1b 1b 1b 1b 1b 01 01 01 01 01 +1d80: 01 01 01 01 01 01 1b 1b 1b 1b 1b 01 01 01 01 01 +1d90: 01 01 01 01 01 01 01 1b 1b 1b 01 01 01 01 01 01 +1da0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +1db0: 01 01 01 01 01 01 01 1b 1b 1b 01 01 01 01 01 01 +1dc0: 01 01 01 01 01 01 1b 1b 1b 1b 1b 01 01 01 01 01 +1dd0: 01 01 01 01 01 01 1b 1b 1b 1b 1b 01 01 01 01 01 +1de0: 01 01 01 01 01 01 1b 1b 1b 1b 1b 01 01 01 01 01 +1df0: 01 01 01 01 01 01 01 1b 1b 1b 01 01 01 01 01 01 +1e00: 09 09 09 08 08 09 09 09 09 09 09 09 08 08 09 09 +1e10: 09 08 08 08 09 09 08 08 07 09 09 08 08 07 07 07 +1e20: 09 08 07 07 09 08 08 07 07 06 09 08 08 07 07 09 +1e30: 08 08 07 06 08 08 08 07 07 06 09 08 07 07 08 09 +1e40: 07 06 06 08 06 06 07 07 07 06 06 08 07 08 08 08 +1e50: 06 08 08 08 08 06 06 07 06 06 08 06 08 08 08 07 +1e60: 08 07 07 08 08 08 06 06 06 08 08 07 06 07 07 07 +1e70: 06 06 07 07 07 08 08 06 08 08 07 07 06 06 06 06 +1e80: 24 24 06 07 07 07 06 07 07 07 07 06 06 24 24 24 +1e90: 24 24 24 06 06 06 06 06 07 06 06 24 24 24 24 24 +1ea0: 24 24 24 24 24 24 24 24 06 24 24 24 24 24 24 24 +1eb0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1ec0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1ed0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1ee0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1ef0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 +1f00: 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e +1f10: 0d 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0d +1f20: 0d 0d 0d 0e 12 12 12 12 12 12 12 12 0e 0d 0d 0d +1f30: 0d 0d 13 0d 0e 12 12 12 12 12 12 0e 0d 13 0d 0d +1f40: 0d 0d 12 13 0d 0e 12 12 12 12 0e 0d 13 12 0d 0d +1f50: 0d 0d 12 12 13 0d 0e 12 12 0e 0d 13 12 12 0d 0d +1f60: 0d 0d 12 12 12 13 0d 0e 0e 0d 13 12 12 12 0d 0d +1f70: 0d 0d 12 12 12 12 13 0d 0d 13 12 12 12 12 0d 0d +1f80: 0d 0d 12 12 12 12 0e 0d 0d 0e 12 12 12 12 0d 0d +1f90: 0d 0d 12 12 12 0e 0d 13 13 0d 0e 12 12 12 0d 0d +1fa0: 0d 0d 12 12 0e 0d 13 12 12 13 0d 0e 12 12 0d 0d +1fb0: 0d 0d 12 0e 0d 13 12 12 12 12 13 0d 0e 12 0d 0d +1fc0: 0d 0d 0e 0d 13 12 12 12 12 12 12 13 0d 0e 0d 0d +1fd0: 0d 0d 0d 13 12 12 12 12 12 12 12 12 13 0d 0d 0d +1fe0: 0d 13 13 13 13 13 13 13 13 13 13 13 13 13 13 0d +1ff0: 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 +2000: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +2010: 01 01 2d 2d 2d 2d 2d 01 01 01 2d 2d 2d 01 01 01 +2020: 01 01 01 01 2d 01 01 01 01 2d 01 01 01 2d 01 01 +2030: 01 01 01 01 2d 01 01 01 01 2d 01 01 01 2d 01 01 +2040: 01 01 01 01 2d 01 01 01 01 2d 01 01 01 2d 01 01 +2050: 01 01 01 01 2d 01 01 01 01 2d 01 01 01 2d 01 01 +2060: 01 01 01 01 2d 01 01 01 01 01 2d 2d 2d 01 01 01 +2070: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +2080: 01 01 2d 2d 2d 2d 01 01 01 01 2d 2d 2d 01 01 01 +2090: 01 01 2d 01 01 01 2d 01 01 2d 01 01 01 2d 01 01 +20a0: 01 01 2d 01 01 01 2d 01 01 2d 01 01 01 2d 01 01 +20b0: 01 01 2d 01 01 01 2d 01 01 2d 01 01 01 2d 01 01 +20c0: 01 01 2d 01 01 01 2d 01 01 2d 01 01 01 2d 01 01 +20d0: 01 01 2d 2d 2d 2d 01 01 01 01 2d 2d 2d 01 01 01 +20e0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +20f0: 01 01 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 01 +2100: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +2110: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +2120: 01 01 01 01 01 01 17 17 17 17 01 01 01 01 01 01 +2130: 01 01 01 01 17 17 17 17 17 17 17 17 01 01 01 01 +2140: 01 01 01 17 17 17 16 17 16 17 17 17 17 01 01 01 +2150: 01 01 01 17 17 17 15 15 15 15 17 17 17 01 01 01 +2160: 01 01 17 17 17 15 16 17 16 17 17 17 17 17 01 01 +2170: 01 01 17 17 17 15 16 17 16 17 17 17 17 17 01 01 +2180: 01 01 17 17 17 15 16 17 16 17 17 17 17 17 01 01 +2190: 01 01 17 17 17 15 16 17 16 17 17 17 17 17 01 01 +21a0: 01 01 01 17 17 17 15 15 15 15 17 17 17 01 01 01 +21b0: 01 01 01 17 17 17 16 17 16 17 17 17 17 01 01 01 +21c0: 01 01 01 01 17 17 17 17 17 17 17 17 01 01 01 01 +21d0: 01 01 01 01 01 01 17 17 17 17 01 01 01 01 01 01 +21e0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +21f0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |