aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.editorconfig4
-rw-r--r--src/.vscode/c_cpp_properties.json16
-rw-r--r--src/.vscode/settings.json6
-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.h1
-rw-r--r--src/input.h1
-rw-r--r--src/ppusim/sim.c28
-rw-r--r--src/ppusim/sim.h3
-rw-r--r--src/stm32/TODO/hh_rand.h1
-rw-r--r--src/stm32/TODO/maths.c10
-rw-r--r--src/stm32/main.c3
-rw-r--r--test/bin/test_file_read.c48
-rw-r--r--test/bin/tiles.bs544
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