summaryrefslogtreecommitdiff
path: root/frontends/calculator/CEdev/examples
diff options
context:
space:
mode:
Diffstat (limited to 'frontends/calculator/CEdev/examples')
-rw-r--r--frontends/calculator/CEdev/examples/debugging/bin/DEMO.8xpbin0 -> 584 bytes
-rw-r--r--frontends/calculator/CEdev/examples/debugging/bin/DEMO.binbin0 -> 508 bytes
-rw-r--r--frontends/calculator/CEdev/examples/debugging/bin/DEMO.dbgbin0 -> 971 bytes
-rw-r--r--frontends/calculator/CEdev/examples/debugging/bin/DEMO.map35
-rw-r--r--frontends/calculator/CEdev/examples/debugging/makefile18
-rw-r--r--frontends/calculator/CEdev/examples/debugging/obj/main.src484
-rw-r--r--frontends/calculator/CEdev/examples/debugging/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/debugging/screenshot.pngbin0 -> 139570 bytes
-rw-r--r--frontends/calculator/CEdev/examples/debugging/src/main.c47
-rw-r--r--frontends/calculator/CEdev/examples/delay/autotester.json39
-rw-r--r--frontends/calculator/CEdev/examples/delay/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/delay/readme.md9
-rw-r--r--frontends/calculator/CEdev/examples/delay/src/main.c16
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detect/autotester.json33
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.8xpbin0 -> 557 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.binbin0 -> 481 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.map148
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detect/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detect/obj/main.src182
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detect/readme.md11
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detect/screenshot.pngbin0 -> 1369 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detect/src/main.c47
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detectany/autotester.json33
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.8xpbin0 -> 568 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.binbin0 -> 492 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.map148
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detectany/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detectany/obj/main.src190
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detectany/readme.md11
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detectany/screenshot.pngbin0 -> 1369 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_detectany/src/main.c49
-rw-r--r--frontends/calculator/CEdev/examples/fileio_factorize/autotester.badjson37
-rw-r--r--frontends/calculator/CEdev/examples/fileio_factorize/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/fileio_factorize/readme.md12
-rw-r--r--frontends/calculator/CEdev/examples/fileio_factorize/screenshot.pngbin0 -> 2335 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_factorize/src/main.c75
-rw-r--r--frontends/calculator/CEdev/examples/fileio_os_vars/autotester.badjson65
-rw-r--r--frontends/calculator/CEdev/examples/fileio_os_vars/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/fileio_os_vars/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/fileio_os_vars/screenshot.pngbin0 -> 3032 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_os_vars/src/main.c101
-rw-r--r--frontends/calculator/CEdev/examples/fileio_read_write/autotester.json33
-rw-r--r--frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.8xpbin0 -> 827 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.binbin0 -> 751 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.map154
-rw-r--r--frontends/calculator/CEdev/examples/fileio_read_write/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/fileio_read_write/obj/main.src343
-rw-r--r--frontends/calculator/CEdev/examples/fileio_read_write/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/fileio_read_write/screenshot.pngbin0 -> 54385 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_read_write/src/main.c88
-rw-r--r--frontends/calculator/CEdev/examples/fileio_rename/autotester.json33
-rw-r--r--frontends/calculator/CEdev/examples/fileio_rename/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/fileio_rename/readme.md8
-rw-r--r--frontends/calculator/CEdev/examples/fileio_rename/src/main.c77
-rw-r--r--frontends/calculator/CEdev/examples/fileio_tokens/autotester.json33
-rw-r--r--frontends/calculator/CEdev/examples/fileio_tokens/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/fileio_tokens/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/fileio_tokens/screenshot.pngbin0 -> 1702 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_tokens/src/main.c59
-rw-r--r--frontends/calculator/CEdev/examples/gfx_blitting/autotester.json46
-rw-r--r--frontends/calculator/CEdev/examples/gfx_blitting/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_blitting/readme.md7
-rw-r--r--frontends/calculator/CEdev/examples/gfx_blitting/src/main.c47
-rw-r--r--frontends/calculator/CEdev/examples/gfx_buffered_cube/autotester.json40
-rw-r--r--frontends/calculator/CEdev/examples/gfx_buffered_cube/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_buffered_cube/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_buffered_cube/screenshot.gifbin0 -> 103190 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_buffered_cube/src/main.c113
-rw-r--r--frontends/calculator/CEdev/examples/gfx_char/autotester.json30
-rw-r--r--frontends/calculator/CEdev/examples/gfx_char/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_char/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_char/screenshot.pngbin0 -> 967 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_char/src/main.c52
-rw-r--r--frontends/calculator/CEdev/examples/gfx_clipping/autotester.json52
-rw-r--r--frontends/calculator/CEdev/examples/gfx_clipping/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_clipping/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_clipping/screenshot.gifbin0 -> 94716 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_clipping/src/main.c85
-rw-r--r--frontends/calculator/CEdev/examples/gfx_floodfill/autotester.json36
-rw-r--r--frontends/calculator/CEdev/examples/gfx_floodfill/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_floodfill/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_floodfill/screenshot.gifbin0 -> 8036 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_floodfill/src/main.c50
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/autotester.json31
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/readme.md9
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/screenshot.pngbin0 -> 143527 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/convpng.ini15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c4
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h8
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.c18
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.pngbin0 -> 182649 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.8xvbin0 -> 56118 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.c31
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.h31
-rw-r--r--frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/main.c66
-rw-r--r--frontends/calculator/CEdev/examples/gfx_hello_world/autotester.json40
-rw-r--r--frontends/calculator/CEdev/examples/gfx_hello_world/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_hello_world/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_hello_world/screenshot.pngbin0 -> 856 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_hello_world/src/main.c46
-rw-r--r--frontends/calculator/CEdev/examples/gfx_light_dark/autotester.json63
-rw-r--r--frontends/calculator/CEdev/examples/gfx_light_dark/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_light_dark/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_light_dark/screenshot.gifbin0 -> 67785 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_light_dark/src/main.c59
-rw-r--r--frontends/calculator/CEdev/examples/gfx_rletsprite/autotester.json30
-rw-r--r--frontends/calculator/CEdev/examples/gfx_rletsprite/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_rletsprite/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_rletsprite/screenshot.pngbin0 -> 6999 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/convpng.ini5
-rw-r--r--frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.c203
-rw-r--r--frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.h17
-rw-r--r--frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/ubuntu.c25
-rw-r--r--frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/ubuntu.pngbin0 -> 1427 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_rletsprite/src/main.c109
-rw-r--r--frontends/calculator/CEdev/examples/gfx_shapes_shift/autotester.json63
-rw-r--r--frontends/calculator/CEdev/examples/gfx_shapes_shift/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_shapes_shift/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_shapes_shift/screenshot.gifbin0 -> 14726 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_shapes_shift/src/main.c112
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite/autotester.json31
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite/screenshot.pngbin0 -> 6597 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/convpng.ini4
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.c195
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.h17
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/ubuntu.c40
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/ubuntu.pngbin0 -> 1404 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite/src/main.c39
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_compress/autotester.json33
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_compress/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_compress/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_compress/screenshot.pngbin0 -> 29221 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.c262
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.h13
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/apple.c667
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/apple.pngbin0 -> 59927 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/convpng.ini5
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_compress/src/main.c45
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_keys/autotester.json31
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_keys/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_keys/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_keys/screenshot.gifbin0 -> 57679 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/convpng.ini4
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.c195
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.h17
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/ubuntu.c40
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/ubuntu.pngbin0 -> 1404 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_keys/src/main.c89
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate/autotester.json33
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate/screenshot.pngbin0 -> 5159 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/convpng.ini4
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.c196
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.h15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/ubuntu.c40
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/ubuntu.pngbin0 -> 1404 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/main.c37
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/autotester.json33
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/readme.md9
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/screenshot.gifbin0 -> 238242 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/convpng.ini4
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.c196
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.h15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/ubuntu.c40
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/ubuntu.pngbin0 -> 1404 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/main.c44
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/autotester.json31
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/screenshot.pngbin0 -> 2839 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.c4
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.h8
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/convpng.ini16
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/mint.c4
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/mint.pngbin0 -> 1809 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/ubuntu.c4
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/ubuntu.pngbin0 -> 1404 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.8xvbin0 -> 2640 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.c27
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.h18
-rw-r--r--frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/main.c42
-rw-r--r--frontends/calculator/CEdev/examples/gfx_template/iconc.pngbin0 -> 910 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_template/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_template/readme.md12
-rw-r--r--frontends/calculator/CEdev/examples/gfx_template/src/main.c64
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap/autotester.json43
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap/screenshot.gifbin0 -> 360772 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/convpng.ini5
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.c82
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.h271
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tileset.c2694
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tileset.pngbin0 -> 12899 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap/src/main.c102
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap/src/tilemapdata.c30
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/autotester.json43
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/screenshot.gifbin0 -> 360772 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/convpng.ini14
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.c4
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.h10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.c134
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.pngbin0 -> 12899 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.8xvbin0 -> 33252 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.c31
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.h148
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/main.c106
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/tilemapdata.c30
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_compress/autotester.json43
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_compress/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_compress/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/convpng.ini6
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.c82
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.h142
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tileset.c726
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tileset.pngbin0 -> 12899 bytes
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/main.c119
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.c16
-rw-r--r--frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.h9
-rw-r--r--frontends/calculator/CEdev/examples/hello_world/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/hello_world/readme.md9
-rw-r--r--frontends/calculator/CEdev/examples/hello_world/screenshot.pngbin0 -> 1701 bytes
-rw-r--r--frontends/calculator/CEdev/examples/hello_world/src/main.c48
-rw-r--r--frontends/calculator/CEdev/examples/keypad_arrows/autotester.json61
-rw-r--r--frontends/calculator/CEdev/examples/keypad_arrows/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/keypad_arrows/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/keypad_arrows/screenshot.gifbin0 -> 6859 bytes
-rw-r--r--frontends/calculator/CEdev/examples/keypad_arrows/src/main.c49
-rw-r--r--frontends/calculator/CEdev/examples/keypad_multiple_keys/autotester.json62
-rw-r--r--frontends/calculator/CEdev/examples/keypad_multiple_keys/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/keypad_multiple_keys/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/keypad_multiple_keys/screenshot.gifbin0 -> 5495 bytes
-rw-r--r--frontends/calculator/CEdev/examples/keypad_multiple_keys/src/main.c60
-rw-r--r--frontends/calculator/CEdev/examples/lcd_fade/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/lcd_fade/readme.md8
-rw-r--r--frontends/calculator/CEdev/examples/lcd_fade/src/main.c29
-rw-r--r--frontends/calculator/CEdev/examples/lcd_fill/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/lcd_fill/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/lcd_fill/screenshot.gifbin0 -> 6473 bytes
-rw-r--r--frontends/calculator/CEdev/examples/lcd_fill/src/main.c30
-rw-r--r--frontends/calculator/CEdev/examples/makefile12
-rw-r--r--frontends/calculator/CEdev/examples/os_input/autotester.json38
-rw-r--r--frontends/calculator/CEdev/examples/os_input/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/os_input/readme.md9
-rw-r--r--frontends/calculator/CEdev/examples/os_input/screenshot.pngbin0 -> 7676 bytes
-rw-r--r--frontends/calculator/CEdev/examples/os_input/src/main.c36
-rw-r--r--frontends/calculator/CEdev/examples/random/autotester.json30
-rw-r--r--frontends/calculator/CEdev/examples/random/bin/DEMO.8xpbin0 -> 381 bytes
-rw-r--r--frontends/calculator/CEdev/examples/random/bin/DEMO.binbin0 -> 305 bytes
-rw-r--r--frontends/calculator/CEdev/examples/random/bin/DEMO.map143
-rw-r--r--frontends/calculator/CEdev/examples/random/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/random/obj/main.src69
-rw-r--r--frontends/calculator/CEdev/examples/random/readme.md9
-rw-r--r--frontends/calculator/CEdev/examples/random/screenshot.pngbin0 -> 213249 bytes
-rw-r--r--frontends/calculator/CEdev/examples/random/src/main.c19
-rw-r--r--frontends/calculator/CEdev/examples/random/test/expected.binbin0 -> 153600 bytes
-rw-r--r--frontends/calculator/CEdev/examples/real_time_clock/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/real_time_clock/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/real_time_clock/screenshot.gifbin0 -> 9251 bytes
-rw-r--r--frontends/calculator/CEdev/examples/real_time_clock/src/main.c39
-rw-r--r--frontends/calculator/CEdev/examples/second_counter/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/second_counter/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/second_counter/screenshot.gifbin0 -> 5999 bytes
-rw-r--r--frontends/calculator/CEdev/examples/second_counter/src/main.c43
-rw-r--r--frontends/calculator/CEdev/examples/second_counter2/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/second_counter2/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/second_counter2/screenshot.gifbin0 -> 4146 bytes
-rw-r--r--frontends/calculator/CEdev/examples/second_counter2/src/main.c57
-rw-r--r--frontends/calculator/CEdev/examples/stopwatch/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/stopwatch/readme.md10
-rw-r--r--frontends/calculator/CEdev/examples/stopwatch/screenshot.pngbin0 -> 40879 bytes
-rw-r--r--frontends/calculator/CEdev/examples/stopwatch/src/main.c60
-rw-r--r--frontends/calculator/CEdev/examples/template/iconc.pngbin0 -> 910 bytes
-rw-r--r--frontends/calculator/CEdev/examples/template/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/template/readme.md14
-rw-r--r--frontends/calculator/CEdev/examples/template/src/main.c30
283 files changed, 13508 insertions, 0 deletions
diff --git a/frontends/calculator/CEdev/examples/debugging/bin/DEMO.8xp b/frontends/calculator/CEdev/examples/debugging/bin/DEMO.8xp
new file mode 100644
index 0000000..477a3d0
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/debugging/bin/DEMO.8xp
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/debugging/bin/DEMO.bin b/frontends/calculator/CEdev/examples/debugging/bin/DEMO.bin
new file mode 100644
index 0000000..10c5c3c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/debugging/bin/DEMO.bin
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/debugging/bin/DEMO.dbg b/frontends/calculator/CEdev/examples/debugging/bin/DEMO.dbg
new file mode 100644
index 0000000..8430b95
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/debugging/bin/DEMO.dbg
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/debugging/bin/DEMO.map b/frontends/calculator/CEdev/examples/debugging/bin/DEMO.map
new file mode 100644
index 0000000..4462134
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/debugging/bin/DEMO.map
@@ -0,0 +1,35 @@
+Segment Base Top High Length
+-------- ------ ------ ------ -------
+icon D1A882 D1A882 0h
+launcher D1A882 D1A882 0h
+libs D1A882 D1A882 0h
+startup D1A882 D1A8C1 3Fh
+cleanup D1A8C1 D1A8D5 14h
+exit D1A8D5 D1A8DB 6h
+code D1A8DB D1A9D6 FBh
+data D1A9D6 D1A9D6 0h
+strsect D1A9D6 D1AA7B A5h
+text D1AA7B D1AA7B 0h
+bss D031F6 D031F6 D13FD6 0h
+header D1A87F D1A882 3h
+
+Label Value
+------------------------- ------
+_os_DisableHomeTextBuffer = D1A8DB
+_os_EnableHomeTextBuffer = D1A8ED
+_dbg_Debugger = D1A8FF
+_dbg_RemoveAllBreakpoints = D1A905
+_dbg_RemoveWatchpoint = D1A90B
+_dbg_SetWatchpoint = D1A915
+_dbg_RemoveAllWatchpoints = D1A921
+_dbg_SetWriteWatchpoint = D1A927
+_abort = D1A933
+_sprintf = 0000BC
+__ccleanup = D1A8C1
+_errno = D008DC
+_init = D1A882
+_exit = D1A8D7
+__exit = D1A8B0
+__exitsp = D1A8B0
+__errsp = D1A8B0
+_main = D1A93C
diff --git a/frontends/calculator/CEdev/examples/debugging/makefile b/frontends/calculator/CEdev/examples/debugging/makefile
new file mode 100644
index 0000000..3ea542a
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/debugging/makefile
@@ -0,0 +1,18 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+# This is just so the main makefile in $CEDEV/examples makes this one be like "make debug"
+.DEFAULT_GOAL := debug
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/debugging/obj/main.src b/frontends/calculator/CEdev/examples/debugging/obj/main.src
new file mode 100644
index 0000000..4a90981
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/debugging/obj/main.src
@@ -0,0 +1,484 @@
+; Zilog eZ80 ANSI C Compiler Release 3.4
+; -debug -optsize -noreduceopt -nomodsect -peephole -globalopt
+; -localcse -const=ROM
+ FILE "SRC\MAIN.C"
+ .assume ADL=1
+.DEBUG "C"
+ SEGMENT CODE
+.BEGREC "NONAME0",9
+.DEFINE "sign"
+.VALUE 0
+.CLASS 8
+.TYPE 2
+.ENDEF
+.DEFINE "exp"
+.VALUE 1
+.CLASS 8
+.TYPE 2
+.ENDEF
+.DEFINE "mant"
+.VALUE 2
+.CLASS 8
+.DIM 7
+.TYPE 108
+.ENDEF
+.ENDREC "NONAME0"
+.BEGREC "NONAME1",18
+.DEFINE "real"
+.VALUE 0
+.CLASS 8
+.TAG "NONAME0"
+.TYPE 8
+.ENDEF
+.DEFINE "imag"
+.VALUE 9
+.CLASS 8
+.TAG "NONAME0"
+.TYPE 8
+.ENDEF
+.ENDREC "NONAME1"
+.BEGREC "NONAME2",11
+.DEFINE "dim"
+.VALUE 0
+.CLASS 8
+.TYPE 13
+.ENDEF
+.DEFINE "items"
+.VALUE 2
+.CLASS 8
+.DIM 1
+.TAG "NONAME0"
+.TYPE 104
+.ENDEF
+.ENDREC "NONAME2"
+.BEGREC "NONAME3",20
+.DEFINE "dim"
+.VALUE 0
+.CLASS 8
+.TYPE 13
+.ENDEF
+.DEFINE "items"
+.VALUE 2
+.CLASS 8
+.DIM 1
+.TAG "NONAME1"
+.TYPE 104
+.ENDEF
+.ENDREC "NONAME3"
+.BEGREC "NONAME4",11
+.DEFINE "cols"
+.VALUE 0
+.CLASS 8
+.TYPE 12
+.ENDEF
+.DEFINE "rows"
+.VALUE 1
+.CLASS 8
+.TYPE 12
+.ENDEF
+.DEFINE "items"
+.VALUE 2
+.CLASS 8
+.DIM 1
+.TAG "NONAME0"
+.TYPE 104
+.ENDEF
+.ENDREC "NONAME4"
+.BEGREC "NONAME5",3
+.DEFINE "len"
+.VALUE 0
+.CLASS 8
+.TYPE 13
+.ENDEF
+.DEFINE "data"
+.VALUE 2
+.CLASS 8
+.DIM 1
+.TYPE 98
+.ENDEF
+.ENDREC "NONAME5"
+.BEGREC "NONAME6",3
+.DEFINE "len"
+.VALUE 0
+.CLASS 8
+.TYPE 13
+.ENDEF
+.DEFINE "data"
+.VALUE 2
+.CLASS 8
+.DIM 1
+.TYPE 98
+.ENDEF
+.ENDREC "NONAME6"
+.BEGREC "NONAME7",3
+.DEFINE "size"
+.VALUE 0
+.CLASS 8
+.TYPE 13
+.ENDEF
+.DEFINE "data"
+.VALUE 2
+.CLASS 8
+.DIM 1
+.TYPE 108
+.ENDEF
+.ENDREC "NONAME7"
+.BEGREC "fmt_type",19
+.DEFINE "status"
+.VALUE 0
+.CLASS 8
+.TYPE 12
+.ENDEF
+.DEFINE "flags"
+.VALUE 1
+.CLASS 8
+.TYPE 12
+.ENDEF
+.DEFINE "size"
+.VALUE 2
+.CLASS 8
+.TYPE 2
+.ENDEF
+.DEFINE "chr"
+.VALUE 3
+.CLASS 8
+.TYPE 2
+.ENDEF
+.DEFINE "type"
+.VALUE 4
+.CLASS 8
+.TYPE 2
+.ENDEF
+.DEFINE "field_width"
+.VALUE 5
+.CLASS 8
+.TYPE 2
+.ENDEF
+.DEFINE "precision"
+.VALUE 6
+.CLASS 8
+.TYPE 2
+.ENDEF
+.DEFINE "set_begin"
+.VALUE 7
+.CLASS 8
+.TYPE 34
+.ENDEF
+.DEFINE "set_end"
+.VALUE 10
+.CLASS 8
+.TYPE 34
+.ENDEF
+.DEFINE "pad_whole"
+.VALUE 13
+.CLASS 8
+.TYPE 12
+.ENDEF
+.DEFINE "pad_pre_fract"
+.VALUE 14
+.CLASS 8
+.TYPE 12
+.ENDEF
+.DEFINE "pad_post_fract"
+.VALUE 15
+.CLASS 8
+.TYPE 12
+.ENDEF
+.DEFINE "pad_at"
+.VALUE 16
+.CLASS 8
+.TYPE 34
+.ENDEF
+.ENDREC "fmt_type"
+.BEGREC "flt_info",12
+.DEFINE "flags"
+.VALUE 0
+.CLASS 8
+.TYPE 12
+.ENDEF
+.DEFINE "exp"
+.VALUE 1
+.CLASS 8
+.TYPE 2
+.ENDEF
+.DEFINE "digits"
+.VALUE 2
+.CLASS 8
+.DIM 10
+.TYPE 108
+.ENDEF
+.ENDREC "flt_info"
+.BEGREC "NONAME8",6
+.DEFINE "quot"
+.VALUE 0
+.CLASS 8
+.TYPE 4
+.ENDEF
+.DEFINE "rem"
+.VALUE 3
+.CLASS 8
+.TYPE 4
+.ENDEF
+.ENDREC "NONAME8"
+.BEGREC "NONAME9",8
+.DEFINE "quot"
+.VALUE 0
+.CLASS 8
+.TYPE 5
+.ENDEF
+.DEFINE "rem"
+.VALUE 4
+.CLASS 8
+.TYPE 5
+.ENDEF
+.ENDREC "NONAME9"
+.BEGREC "header",6
+.DEFINE "s"
+.VALUE 0
+.CLASS 11
+.TAG "NONAME10"
+.TYPE 8
+.ENDEF
+.DEFINE "x"
+.VALUE 0
+.CLASS 11
+.TYPE 2
+.ENDEF
+.ENDREC "header"
+.BEGREC "NONAME10",6
+.DEFINE "ptr"
+.VALUE 0
+.CLASS 8
+.TAG "header"
+.TYPE 40
+.ENDEF
+.DEFINE "size"
+.VALUE 3
+.CLASS 8
+.TYPE 14
+.ENDEF
+.ENDREC "NONAME10"
+.BEGREC "__stdio_file",1
+.DEFINE "slot"
+.VALUE 0
+.CLASS 8
+.TYPE 12
+.ENDEF
+.ENDREC "__stdio_file"
+; 1 #include <stdbool.h>
+; 2 #include <stddef.h>
+; 3 #include <stdint.h>
+; 4 #include <tice.h>
+; 5
+; 6 #include <assert.h>
+; 7 #include <debug.h>
+; 8
+; 9 /*
+; 10 * Even though debug.h has prototypes for Debugger, SetWriteWatchpoint, SetWatchpoint, RemoveWatchpoint, RemoveAllWatchpoints, RemoveAllBreakpoints...
+; 11 * you have to use the dbg_ prefix as shown here:
+; 12 */
+; 13
+; 14 void main(void) {
+_main:
+.DEFINE "_main"
+
+.VALUE _main
+
+.CLASS 2
+
+.TYPE 65
+
+.ENDEF
+
+.BEGFUNC "main",14,"_main"
+
+.LINE 14
+
+.DEFINE "dbg_test_var_2"
+
+.CLASS 65
+
+.VALUE -1
+
+.TYPE 12
+
+.ENDEF
+
+.DEFINE "dbg_test_var_1"
+
+.CLASS 65
+
+.VALUE -4
+
+.TYPE 4
+
+.ENDEF
+
+ PUSH IX
+ LD IX,0
+ ADD IX,SP
+ PUSH BC
+ DEC SP
+; 15 /* Set the intial value of some variables */
+; 16 int dbg_test_var_1 = 10;
+.LINE 16
+
+ LD BC,10
+ LD (IX+-4),BC
+; 17 uint8_t dbg_test_var_2 = 3;
+.LINE 17
+
+ LD (IX+-1),3
+; 18
+; 19 /* Print a simple debugging string */
+; 20 dbg_sprintf(dbgout, "This is the start of a CEmu debugging test\n");
+.LINE 20
+
+ LD BC,L__0
+ PUSH BC
+ LD BC,16449536
+ PUSH BC
+ CALL _sprintf
+ POP BC
+ POP BC
+; 21
+; 22 /* You can enter the debugger manually */
+; 23 dbg_Debugger();
+.LINE 23
+
+ CALL _dbg_Debugger
+; 24
+; 25 /* Set a watchpoint that will break anytime we write/change this variable */
+; 26 dbg_SetWriteWatchpoint(&dbg_test_var_1, sizeof dbg_test_var_1);
+.LINE 26
+
+ LD BC,3
+ PUSH BC
+ PEA IX+-4
+ CALL _dbg_SetWriteWatchpoint
+ POP BC
+ POP BC
+; 27
+; 28 /* Set a non breaking watchpoint just so we can see what is in this variable at any given time */
+; 29 dbg_SetWatchpoint(&dbg_test_var_2, sizeof dbg_test_var_2);
+.LINE 29
+
+ LD BC,1
+ PUSH BC
+ PEA IX+-1
+ CALL _dbg_SetWatchpoint
+ POP BC
+ POP BC
+; 30
+; 31 /* Now, let's write to the variable to see what happens (Go to the 'Watchpoints' tab in CEmu to view the status) */
+; 32 dbg_test_var_1 = 5;
+.LINE 32
+
+ LD BC,5
+ LD (IX+-4),BC
+; 33
+; 34 /* Remove the watchpoint that we had set */
+; 35 dbg_RemoveWatchpoint(&dbg_test_var_1);
+.LINE 35
+
+ PEA IX+-4
+ CALL _dbg_RemoveWatchpoint
+ POP BC
+; 36 dbg_RemoveWatchpoint(&dbg_test_var_2);
+.LINE 36
+
+ PEA IX+-1
+ CALL _dbg_RemoveWatchpoint
+ POP BC
+; 37
+; 38 /* We can also use those */
+; 39 dbg_RemoveAllWatchpoints();
+.LINE 39
+
+ CALL _dbg_RemoveAllWatchpoints
+; 40 dbg_RemoveAllBreakpoints();
+.LINE 40
+
+ CALL _dbg_RemoveAllBreakpoints
+; 41
+; 42 /* Set this value to zero */
+; 43 dbg_test_var_2 = 0;
+.LINE 43
+
+ LD (IX+-1),0
+; 44
+; 45 /* Fail this assertion */
+; 46 assert(dbg_test_var_2);
+.LINE 46
+
+ LD A,(IX+-1)
+ OR A,A
+ JR NZ,L_3
+ LD BC,46
+ PUSH BC
+ LD BC,L__2
+ PUSH BC
+ LD BC,L__3
+ PUSH BC
+ LD BC,L__4
+ PUSH BC
+ LD BC,16449536
+ PUSH BC
+ CALL _sprintf
+ POP BC
+ POP BC
+ POP BC
+ POP BC
+ POP BC
+ CALL _abort
+; 47 }
+L_3:
+.LINE 47
+
+ LD SP,IX
+ POP IX
+ RET
+
+
+;**************************** _main ***************************
+;Name Addr/Register Size Type
+;_abort IMPORT ----- function
+;_dbg_RemoveAllBreakpoints IMPORT ----- function
+;_dbg_RemoveAllWatchpoints IMPORT ----- function
+;_dbg_RemoveWatchpoint IMPORT ----- function
+;_dbg_SetWatchpoint IMPORT ----- function
+;_dbg_SetWriteWatchpoint IMPORT ----- function
+;_dbg_Debugger IMPORT ----- function
+;_sprintf IMPORT ----- function
+;dbg_test_var_1 IX-4 3 variable
+;dbg_test_var_2 IX-1 1 variable
+
+
+; Stack Frame Size: 10 (bytes)
+; Spill Code: 0 (instruction)
+
+
+.ENDFUNC "main",47,"_main"
+ SEGMENT STRSECT
+L__0:
+ DB "This is the start of a CEmu debugging test"
+ DB 10,0
+L__2:
+ DB "Z:\\HOME\\WALTZ\\DOCUMENTS\\TOOLCHAIN\\EXAMPLES\\DEBUGGING\\SRC\\MAIN.C"
+ DB 0
+L__3:
+ DB "dbg_test_var_2"
+ DB 0
+L__4:
+ DB "Assertion failure: %s, file: %s, line %d"
+ DB 10,0
+ XREF _dbg_RemoveAllBreakpoints:ROM
+ XREF _dbg_RemoveAllWatchpoints:ROM
+ XREF _dbg_RemoveWatchpoint:ROM
+ XREF _dbg_SetWriteWatchpoint:ROM
+ XREF _dbg_SetWatchpoint:ROM
+ XREF _dbg_Debugger:ROM
+ XREF _sprintf:ROM
+ XREF _abort:ROM
+ XDEF _main
+ END
diff --git a/frontends/calculator/CEdev/examples/debugging/readme.md b/frontends/calculator/CEdev/examples/debugging/readme.md
new file mode 100644
index 0000000..9d95f90
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/debugging/readme.md
@@ -0,0 +1,10 @@
+### Debugging Demo
+
+This demo demonstrates how to use a few of the debugging features implemented in CEmu
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/debugging/screenshot.png b/frontends/calculator/CEdev/examples/debugging/screenshot.png
new file mode 100644
index 0000000..7c7ab17
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/debugging/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/debugging/src/main.c b/frontends/calculator/CEdev/examples/debugging/src/main.c
new file mode 100644
index 0000000..67b5bac
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/debugging/src/main.c
@@ -0,0 +1,47 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <assert.h>
+#include <debug.h>
+
+/*
+ * Even though debug.h has prototypes for Debugger, SetWriteWatchpoint, SetWatchpoint, RemoveWatchpoint, RemoveAllWatchpoints, RemoveAllBreakpoints...
+ * you have to use the dbg_ prefix as shown here:
+ */
+
+void main(void) {
+ /* Set the intial value of some variables */
+ int dbg_test_var_1 = 10;
+ uint8_t dbg_test_var_2 = 3;
+
+ /* Print a simple debugging string */
+ dbg_sprintf(dbgout, "This is the start of a CEmu debugging test\n");
+
+ /* You can enter the debugger manually */
+ dbg_Debugger();
+
+ /* Set a watchpoint that will break anytime we write/change this variable */
+ dbg_SetWriteWatchpoint(&dbg_test_var_1, sizeof dbg_test_var_1);
+
+ /* Set a non breaking watchpoint just so we can see what is in this variable at any given time */
+ dbg_SetWatchpoint(&dbg_test_var_2, sizeof dbg_test_var_2);
+
+ /* Now, let's write to the variable to see what happens (Go to the 'Watchpoints' tab in CEmu to view the status) */
+ dbg_test_var_1 = 5;
+
+ /* Remove the watchpoint that we had set */
+ dbg_RemoveWatchpoint(&dbg_test_var_1);
+ dbg_RemoveWatchpoint(&dbg_test_var_2);
+
+ /* We can also use those */
+ dbg_RemoveAllWatchpoints();
+ dbg_RemoveAllBreakpoints();
+
+ /* Set this value to zero */
+ dbg_test_var_2 = 0;
+
+ /* Fail this assertion */
+ assert(dbg_test_var_2);
+}
diff --git a/frontends/calculator/CEdev/examples/delay/autotester.json b/frontends/calculator/CEdev/examples/delay/autotester.json
new file mode 100644
index 0000000..4eabd14
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/delay/autotester.json
@@ -0,0 +1,39 @@
+{
+ "__comment": "FIXME timing is way too lenient because the autotester framework and travis are trash",
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "delay|4500",
+ "hashWait|2",
+ "hashWait|3"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Waiting for 5000 ms...",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "690F0EEC" ]
+ },
+ "2": {
+ "description": "Done",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "948248E" ],
+ "timeout": 1100
+ },
+ "3": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/delay/makefile b/frontends/calculator/CEdev/examples/delay/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/delay/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/delay/readme.md b/frontends/calculator/CEdev/examples/delay/readme.md
new file mode 100644
index 0000000..0110f27
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/delay/readme.md
@@ -0,0 +1,9 @@
+### Delay Demo
+
+Demonstrates using the millisecond delay function in tice.h.
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/delay/src/main.c b/frontends/calculator/CEdev/examples/delay/src/main.c
new file mode 100644
index 0000000..2fb8c41
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/delay/src/main.c
@@ -0,0 +1,16 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+void main(void) {
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Wait for 5 seconds */
+ os_PutStrFull("Waiting for 5000 ms...");
+ delay(5000);
+ os_SetCursorPos(1, 22);
+ os_PutStrFull("Done");
+ delay(100);
+}
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/autotester.json b/frontends/calculator/CEdev/examples/fileio_detect/autotester.json
new file mode 100644
index 0000000..b8563a6
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detect/autotester.json
@@ -0,0 +1,33 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|1000",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "'LibLoad' is displayed",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "D874E0B0" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.8xp b/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.8xp
new file mode 100644
index 0000000..d4fc967
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.8xp
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.bin b/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.bin
new file mode 100644
index 0000000..a2a9ac4
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.bin
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.map b/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.map
new file mode 100644
index 0000000..082420b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.map
@@ -0,0 +1,148 @@
+Segment Base Top High Length
+-------- ------ ------ ------ -------
+icon D1A882 D1A882 0h
+launcher D1A882 D1A8DA 58h
+libs D1A8DA D1A8F6 1Ch
+startup D1A8F6 D1A935 3Fh
+cleanup D1A935 D1A949 14h
+exit D1A949 D1A94F 6h
+code D1A94F D1AA3B ECh
+data D1AA3B D1AA5D 22h
+strsect D1AA5D D1AA5D 0h
+text D1AA5D D1AA60 3h
+bss D031F6 D031F6 D13FD6 0h
+header D1A87F D1A882 3h
+
+Label Value
+------------------------- ------
+_os_DisableHomeTextBuffer = D1A94F
+_os_EnableHomeTextBuffer = D1A961
+_boot_GetBootMajorVer = 000080
+_boot_GetHardwareVer = 000084
+_boot_GetBootMinorVer = 00008C
+_boot_DebugPrintf = 0000B4
+_boot_ClearVRAM = 000374
+_boot_TurnOff = 000388
+_boot_NewLine = 000390
+_boot_Set6MHzMode = 00039C
+_boot_Set48MHzMode = 0003A0
+_boot_Set6MHzModeI = 0003A4
+_boot_Set48MHzModeI = 0003A8
+_boot_GetBatteryStatus = 0003B0
+_boot_WaitShort = 0003B4
+_boot_CheckOnPressed = 00057C
+_boot_SetDate = 000598
+_boot_GetDate = 0005A8
+_boot_GetTime = 0005B0
+_boot_SetTime = 0005B4
+_boot_IsAfterNoon = 0005C8
+_os_NewLine = 0207F0
+_os_PushErrorHandler = 021C78
+_os_PopErrorHandler = 021C7C
+_os_ThrowError = 021C80
+_os_RealCopy = 021C84
+_os_RealAsinRad = 021C88
+_os_RealAcosRad = 021C8C
+_os_RealAtanRad = 021C90
+_os_RealAdd = 021C94
+_os_CplxSquare = 021C98
+_os_RealCompare = 021C9C
+_os_RealCosRad = 021CA0
+_os_RealRadToDeg = 021CA4
+_os_RealDiv = 021CA8
+_os_RealExp = 021CAC
+_os_RealFloor = 021CB0
+_os_RealToStr = 021CB4
+_os_RealFrac = 021CB8
+_os_RealGcd = 021CBC
+_os_RealRoundInt = 021CC0
+_os_RealLcm = 021CC4
+_os_RealLog = 021CC8
+_os_RealMax = 021CCC
+_os_RealMin = 021CD0
+_os_RealMul = 021CD4
+_os_RealNcr = 021CD8
+_os_RealNeg = 021CDC
+_os_RealNpr = 021CE0
+_os_RealPow = 021CE4
+_os_RealDegToRad = 021CE8
+_os_RealRandInt = 021CEC
+_os_RealInv = 021CF0
+_os_RealMod = 021CF4
+_os_RealRound = 021CF8
+_os_RealSinRad = 021CFC
+_os_RealSqrt = 021D00
+_os_RealSub = 021D04
+_os_RealTanRad = 021D08
+_os_StrToReal = 021D0C
+_os_RealInt = 021D10
+_os_SetFlagBits = 021D14
+_os_ResetFlagBits = 021D18
+_os_TestFlagBits = 021D1C
+_os_SetFlagByte = 021D20
+_os_GetFlagByte = 021D24
+_os_GetCursorPos = 021D28
+_os_PutStrFull = 021D2C
+_os_PutStrLine = 021D30
+_os_SetCursorPos = 021D34
+_os_AppInit = 021D40
+_os_GetKey = 021D38
+_os_GetCSC = 021D3C
+_os_DisableCursor = 021DE4
+_os_EnableCursor = 021DE8
+_os_FontDrawText = 021E00
+_os_FontGetHeight = 021E14
+_os_FontGetWidth = 021E18
+_os_InitDrawing = 021E1C
+_os_SetDrawBGColor = 021E20
+_os_SetDrawFGColor = 021E24
+_os_FontSelect = 021E28
+_os_RclAns = 021E70
+_os_SetTimer1 = 021EC8
+_os_DisableTimer1 = 021ECC
+_os_GetSystemStats = 021ED4
+_os_GetDrawBGColor = 021EE4
+_os_GetDrawFGColor = 021EE8
+_os_FontGetID = 021EEC
+_os_RealToInt24 = 021EF4
+_os_Int24ToReal = 021EF8
+_os_ForceCmdNoChar = 021FA8
+_os_GetSymTablePtr = 021FB0
+_os_NextSymEntry = 021FB4
+_os_ChkFindSym = 021FB8
+_os_MemChk = 021FF0
+_os_SetTimer2 = 022080
+_os_DisableTimer2 = 022084
+_os_FloatToReal = 022170
+_os_RealToFloat = 022174
+_os_FontDrawTransText = 022178
+_os_CreateAppVar = 022184
+_asm_MoveDown = 0207F4
+_asm_MoveUp = 020800
+_asm_ClrLCDFull = 020808
+_asm_ClrLCD = 02080C
+_asm_ClrTxtShd = 020818
+_asm_HomeUp = 020828
+_asm_RunIndicOn = 020844
+_asm_RunIndicOff = 020848
+_asm_DelRes = 020E5C
+_asm_DisableAPD = 021134
+_asm_EnableAPD = 021138
+_asm_DrawStatusBar = 021A3C
+_asm_ArcChk = 022040
+__OS = D1A973
+__frameset0 = D1A97D
+__icmpzero = D1A988
+__frameset = D1A98D
+__findlibload = D1A882
+__ccleanup = D1A935
+_errno = D008DC
+_init = D1A882
+_exit = D1A94B
+__exit = D1A924
+__exitsp = D1A924
+__errsp = D1A924
+_printText = D1AA19
+_main = D1A99B
+_ti_CloseAll = D1A8EE
+_ti_Detect = D1A8F2
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/makefile b/frontends/calculator/CEdev/examples/fileio_detect/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detect/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/obj/main.src b/frontends/calculator/CEdev/examples/fileio_detect/obj/main.src
new file mode 100644
index 0000000..aef9b8b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detect/obj/main.src
@@ -0,0 +1,182 @@
+; Zilog eZ80 ANSI C Compiler Release 3.4
+; -optsize -noreduceopt -nomodsect -peephole -globalopt
+; -localcse -const=ROM
+ FILE "SRC\MAIN.C"
+ .assume ADL=1
+ SEGMENT CODE
+; 1 #include <stdbool.h>
+; 2 #include <stddef.h>
+; 3 #include <stdint.h>
+; 4 #include <tice.h>
+; 5
+; 6 #include <stdio.h>
+; 7 #include <stdlib.h>
+; 8 #include <string.h>
+; 9
+; 10 #include <fileioc.h>
+; 11
+; 12 /* Function prototypes */
+; 13 void printText(int8_t xpos, int8_t ypos, const char *text);
+; 14
+; 15 /* Main Function */
+; 16 void main(void) {
+_main:
+ LD HL,-10
+ CALL __frameset
+; 17 /* Declare some variables -- search_pos must be NULL to begin with */
+; 18 uint8_t *search_pos = NULL;
+ LD BC,0
+ LD (IX+-10),BC
+; 19 int8_t y = 0;
+ LD (IX+-1),0
+; 20 ti_var_t myVar;
+; 21 char *var_name;
+; 22
+; 23 /* First couple bytes of the LibLoad AppVar, which is known to exist *
+; 24 /* Technically is a null-terminated string, if an odd looking one */
+; 25 const char search_string[] = { 0xBF, 0xFE, 0x00 };
+ LEA DE,IX+-7
+; 26
+; 27 /* Clear the homescreen */
+; 28 os_ClrHome();
+ LD BC,_asm_ClrLCD
+ PUSH BC
+ LD HL,_0temp0
+ LD BC,3
+ LDIR
+ CALL __OS
+ POP BC
+ LD BC,_asm_HomeUp
+ PUSH BC
+ CALL __OS
+ POP BC
+ LD BC,_asm_DrawStatusBar
+ PUSH BC
+ CALL __OS
+ POP BC
+ JR L_4
+; 29
+; 30 /* Find all of the variables that start with this string */
+; 31 while ((var_name = ti_Detect(&search_pos, search_string)) != NULL) {
+L_5:
+; 32 /* Print the name of the variable (Should be LibLoad) */
+; 33 printText(0, y++, var_name);
+ LD C,(IX+-1)
+ INC (IX+-1)
+ LD DE,(IX+-4)
+ PUSH DE
+ LD B,0
+ PUSH BC
+ LD BC,0
+ PUSH BC
+ CALL _printText
+ POP BC
+ POP BC
+ POP BC
+; 34 }
+L_4:
+ PEA IX+-7
+ PEA IX+-10
+ CALL _ti_Detect
+ POP BC
+ POP BC
+ LD (IX+-4),HL
+ CALL __icmpzero
+ JR NZ,L_5
+; 35
+; 36 /* Wait for a key */
+; 37 while (!os_GetCSC());
+L_8:
+ CALL _os_GetCSC
+ OR A,A
+ JR Z,L_8
+; 38
+; 39 /* Close all open files */
+; 40 ti_CloseAll();
+ CALL _ti_CloseAll
+; 41 }
+ LD SP,IX
+ POP IX
+ RET
+
+
+;**************************** _main ***************************
+;Name Addr/Register Size Type
+;_ti_CloseAll IMPORT ----- function
+;_os_GetCSC IMPORT ----- function
+;_ti_Detect IMPORT ----- function
+;_printText IMPORT ----- function
+;_asm_DrawStatusBar IMPORT ----- function
+;_asm_HomeUp IMPORT ----- function
+;_asm_ClrLCD IMPORT ----- function
+;__OS IMPORT ----- function
+;_0temp0 STATIC 3 variable
+;search_pos IX-10 3 variable
+;search_string IX-7 3 variable
+;var_name IX-4 3 variable
+;y IX-1 1 variable
+
+
+; Stack Frame Size: 16 (bytes)
+; Spill Code: 0 (instruction)
+
+
+ SEGMENT TEXT
+_0temp0:
+ DB 191
+ DB 254
+ DB 0
+ SEGMENT CODE
+; 42
+; 43 /* Draw text on the homescreen at the given X/Y location */
+; 44 void printText(int8_t xpos, int8_t ypos, const char *text) {
+_printText:
+ CALL __frameset0
+; 45 os_SetCursorPos(ypos, xpos);
+ LD C,(IX+6)
+ LD B,0
+ PUSH BC
+ LD C,(IX+9)
+ PUSH BC
+ CALL _os_SetCursorPos
+ POP BC
+ POP BC
+; 46 os_PutStrFull(text);
+ LD BC,(IX+12)
+ PUSH BC
+ CALL _os_PutStrFull
+ POP BC
+; 47 }
+ LD SP,IX
+ POP IX
+ RET
+
+
+;**************************** _printText ***************************
+;Name Addr/Register Size Type
+;_os_PutStrFull IMPORT ----- function
+;_os_SetCursorPos IMPORT ----- function
+;text IX+12 3 parameter
+;ypos IX+9 1 parameter
+;xpos IX+6 1 parameter
+
+
+; Stack Frame Size: 15 (bytes)
+; Spill Code: 0 (instruction)
+
+
+ XREF _ti_Detect:ROM
+ XREF _ti_CloseAll:ROM
+ XREF _asm_DrawStatusBar:ROM
+ XREF _asm_ClrLCD:ROM
+ XREF _asm_HomeUp:ROM
+ XREF __OS:ROM
+ XREF _os_GetCSC:ROM
+ XREF _os_PutStrFull:ROM
+ XREF _os_SetCursorPos:ROM
+ XREF __frameset0:ROM
+ XREF __frameset:ROM
+ XREF __icmpzero:ROM
+ XDEF _printText
+ XDEF _main
+ END
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/readme.md b/frontends/calculator/CEdev/examples/fileio_detect/readme.md
new file mode 100644
index 0000000..41ecb73
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detect/readme.md
@@ -0,0 +1,11 @@
+### FileIO File Detection Demo
+
+This demo shows how to use the ti_Detect function to search for a varible that starts with a particular sequence of bytes
+LibLoad is used because it is known to exist for demonstration.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/screenshot.png b/frontends/calculator/CEdev/examples/fileio_detect/screenshot.png
new file mode 100644
index 0000000..d5c9e73
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detect/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/src/main.c b/frontends/calculator/CEdev/examples/fileio_detect/src/main.c
new file mode 100644
index 0000000..d3be5a5
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detect/src/main.c
@@ -0,0 +1,47 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fileioc.h>
+
+/* Function prototypes */
+void printText(int8_t xpos, int8_t ypos, const char *text);
+
+/* Main Function */
+void main(void) {
+ /* Declare some variables -- search_pos must be NULL to begin with */
+ uint8_t *search_pos = NULL;
+ int8_t y = 0;
+ ti_var_t myVar;
+ char *var_name;
+
+ /* First couple bytes of the LibLoad AppVar, which is known to exist *
+ /* Technically is a null-terminated string, if an odd looking one */
+ const char search_string[] = { 0xBF, 0xFE, 0x00 };
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Find all of the variables that start with this string */
+ while ((var_name = ti_Detect(&search_pos, search_string)) != NULL) {
+ /* Print the name of the variable (Should be LibLoad) */
+ printText(0, y++, var_name);
+ }
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Close all open files */
+ ti_CloseAll();
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(int8_t xpos, int8_t ypos, const char *text) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/autotester.json b/frontends/calculator/CEdev/examples/fileio_detectany/autotester.json
new file mode 100644
index 0000000..b8563a6
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detectany/autotester.json
@@ -0,0 +1,33 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|1000",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "'LibLoad' is displayed",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "D874E0B0" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.8xp b/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.8xp
new file mode 100644
index 0000000..9bd4645
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.8xp
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.bin b/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.bin
new file mode 100644
index 0000000..36a8f64
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.bin
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.map b/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.map
new file mode 100644
index 0000000..4b8f06a
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.map
@@ -0,0 +1,148 @@
+Segment Base Top High Length
+-------- ------ ------ ------ -------
+icon D1A882 D1A882 0h
+launcher D1A882 D1A8DA 58h
+libs D1A8DA D1A8F6 1Ch
+startup D1A8F6 D1A935 3Fh
+cleanup D1A935 D1A949 14h
+exit D1A949 D1A94F 6h
+code D1A94F D1AA46 F7h
+data D1AA46 D1AA68 22h
+strsect D1AA68 D1AA68 0h
+text D1AA68 D1AA6B 3h
+bss D031F6 D031F6 D13FD6 0h
+header D1A87F D1A882 3h
+
+Label Value
+------------------------- ------
+_os_DisableHomeTextBuffer = D1A94F
+_os_EnableHomeTextBuffer = D1A961
+_boot_GetBootMajorVer = 000080
+_boot_GetHardwareVer = 000084
+_boot_GetBootMinorVer = 00008C
+_boot_DebugPrintf = 0000B4
+_boot_ClearVRAM = 000374
+_boot_TurnOff = 000388
+_boot_NewLine = 000390
+_boot_Set6MHzMode = 00039C
+_boot_Set48MHzMode = 0003A0
+_boot_Set6MHzModeI = 0003A4
+_boot_Set48MHzModeI = 0003A8
+_boot_GetBatteryStatus = 0003B0
+_boot_WaitShort = 0003B4
+_boot_CheckOnPressed = 00057C
+_boot_SetDate = 000598
+_boot_GetDate = 0005A8
+_boot_GetTime = 0005B0
+_boot_SetTime = 0005B4
+_boot_IsAfterNoon = 0005C8
+_os_NewLine = 0207F0
+_os_PushErrorHandler = 021C78
+_os_PopErrorHandler = 021C7C
+_os_ThrowError = 021C80
+_os_RealCopy = 021C84
+_os_RealAsinRad = 021C88
+_os_RealAcosRad = 021C8C
+_os_RealAtanRad = 021C90
+_os_RealAdd = 021C94
+_os_CplxSquare = 021C98
+_os_RealCompare = 021C9C
+_os_RealCosRad = 021CA0
+_os_RealRadToDeg = 021CA4
+_os_RealDiv = 021CA8
+_os_RealExp = 021CAC
+_os_RealFloor = 021CB0
+_os_RealToStr = 021CB4
+_os_RealFrac = 021CB8
+_os_RealGcd = 021CBC
+_os_RealRoundInt = 021CC0
+_os_RealLcm = 021CC4
+_os_RealLog = 021CC8
+_os_RealMax = 021CCC
+_os_RealMin = 021CD0
+_os_RealMul = 021CD4
+_os_RealNcr = 021CD8
+_os_RealNeg = 021CDC
+_os_RealNpr = 021CE0
+_os_RealPow = 021CE4
+_os_RealDegToRad = 021CE8
+_os_RealRandInt = 021CEC
+_os_RealInv = 021CF0
+_os_RealMod = 021CF4
+_os_RealRound = 021CF8
+_os_RealSinRad = 021CFC
+_os_RealSqrt = 021D00
+_os_RealSub = 021D04
+_os_RealTanRad = 021D08
+_os_StrToReal = 021D0C
+_os_RealInt = 021D10
+_os_SetFlagBits = 021D14
+_os_ResetFlagBits = 021D18
+_os_TestFlagBits = 021D1C
+_os_SetFlagByte = 021D20
+_os_GetFlagByte = 021D24
+_os_GetCursorPos = 021D28
+_os_PutStrFull = 021D2C
+_os_PutStrLine = 021D30
+_os_SetCursorPos = 021D34
+_os_AppInit = 021D40
+_os_GetKey = 021D38
+_os_GetCSC = 021D3C
+_os_DisableCursor = 021DE4
+_os_EnableCursor = 021DE8
+_os_FontDrawText = 021E00
+_os_FontGetHeight = 021E14
+_os_FontGetWidth = 021E18
+_os_InitDrawing = 021E1C
+_os_SetDrawBGColor = 021E20
+_os_SetDrawFGColor = 021E24
+_os_FontSelect = 021E28
+_os_RclAns = 021E70
+_os_SetTimer1 = 021EC8
+_os_DisableTimer1 = 021ECC
+_os_GetSystemStats = 021ED4
+_os_GetDrawBGColor = 021EE4
+_os_GetDrawFGColor = 021EE8
+_os_FontGetID = 021EEC
+_os_RealToInt24 = 021EF4
+_os_Int24ToReal = 021EF8
+_os_ForceCmdNoChar = 021FA8
+_os_GetSymTablePtr = 021FB0
+_os_NextSymEntry = 021FB4
+_os_ChkFindSym = 021FB8
+_os_MemChk = 021FF0
+_os_SetTimer2 = 022080
+_os_DisableTimer2 = 022084
+_os_FloatToReal = 022170
+_os_RealToFloat = 022174
+_os_FontDrawTransText = 022178
+_os_CreateAppVar = 022184
+_asm_MoveDown = 0207F4
+_asm_MoveUp = 020800
+_asm_ClrLCDFull = 020808
+_asm_ClrLCD = 02080C
+_asm_ClrTxtShd = 020818
+_asm_HomeUp = 020828
+_asm_RunIndicOn = 020844
+_asm_RunIndicOff = 020848
+_asm_DelRes = 020E5C
+_asm_DisableAPD = 021134
+_asm_EnableAPD = 021138
+_asm_DrawStatusBar = 021A3C
+_asm_ArcChk = 022040
+__OS = D1A973
+__frameset0 = D1A97D
+__icmpzero = D1A988
+__frameset = D1A98D
+__findlibload = D1A882
+__ccleanup = D1A935
+_errno = D008DC
+_init = D1A882
+_exit = D1A94B
+__exit = D1A924
+__exitsp = D1A924
+__errsp = D1A924
+_printText = D1AA24
+_main = D1A99B
+_ti_CloseAll = D1A8EE
+_ti_DetectAny = D1A8F2
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/makefile b/frontends/calculator/CEdev/examples/fileio_detectany/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detectany/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/obj/main.src b/frontends/calculator/CEdev/examples/fileio_detectany/obj/main.src
new file mode 100644
index 0000000..4e2f655
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detectany/obj/main.src
@@ -0,0 +1,190 @@
+; Zilog eZ80 ANSI C Compiler Release 3.4
+; -optsize -noreduceopt -nomodsect -peephole -globalopt
+; -localcse -const=ROM
+ FILE "SRC\MAIN.C"
+ .assume ADL=1
+ SEGMENT CODE
+; 1 #include <stdbool.h>
+; 2 #include <stddef.h>
+; 3 #include <stdint.h>
+; 4 #include <tice.h>
+; 5
+; 6 #include <stdio.h>
+; 7 #include <stdlib.h>
+; 8 #include <string.h>
+; 9
+; 10 #include <fileioc.h>
+; 11
+; 12 /* Function prototypes */
+; 13 void printText(int8_t xpos, int8_t ypos, const char *text);
+; 14
+; 15 /* Main Function */
+; 16 void main(void) {
+_main:
+ LD HL,-11
+ CALL __frameset
+; 17 /* Declare some variables -- search_pos must be NULL to begin with */
+; 18 uint8_t *search_pos = NULL, type;
+ LD BC,0
+ LD (IX+-11),BC
+; 19 int8_t y = 0;
+ LD (IX+-1),0
+; 20 ti_var_t myVar;
+; 21 char *var_name;
+; 22
+; 23 /* First couple bytes of the LibLoad AppVar, which is known to exist *
+; 24 /* Technically is a null-terminated string, if an odd looking one */
+; 25 const char search_string[] = { 0xBF, 0xFE, 0x00 };
+ LEA DE,IX+-8
+; 26
+; 27 /* Clear the homescreen */
+; 28 os_ClrHome();
+ LD BC,_asm_ClrLCD
+ PUSH BC
+ LD HL,_0temp0
+ LD BC,3
+ LDIR
+ CALL __OS
+ POP BC
+ LD BC,_asm_HomeUp
+ PUSH BC
+ CALL __OS
+ POP BC
+ LD BC,_asm_DrawStatusBar
+ PUSH BC
+ CALL __OS
+ POP BC
+ JR L_5
+; 29
+; 30 /* Find all of the variables that start with this string */
+; 31 while ((var_name = ti_DetectAny(&search_pos, search_string, &type)) != NULL) {
+L_6:
+; 32 if (type == TI_APPVAR_TYPE) {
+ LD A,(IX+-2)
+ CP A,21
+ JR NZ,L_5
+; 33 /* Print the name of the variable (Should be LibLoad) */
+; 34 printText(0, y++, var_name);
+ LD C,(IX+-1)
+ INC (IX+-1)
+ LD DE,(IX+-5)
+ PUSH DE
+ LD B,0
+ PUSH BC
+ LD BC,0
+ PUSH BC
+ CALL _printText
+ POP BC
+ POP BC
+ POP BC
+; 35 }
+; 36 }
+L_5:
+ PEA IX+-2
+ PEA IX+-8
+ PEA IX+-11
+ CALL _ti_DetectAny
+ POP BC
+ POP BC
+ POP BC
+ LD (IX+-5),HL
+ CALL __icmpzero
+ JR NZ,L_6
+; 37
+; 38 /* Wait for a key */
+; 39 while (!os_GetCSC());
+L_9:
+ CALL _os_GetCSC
+ OR A,A
+ JR Z,L_9
+; 40
+; 41 /* Close all open files */
+; 42 ti_CloseAll();
+ CALL _ti_CloseAll
+; 43 }
+ LD SP,IX
+ POP IX
+ RET
+
+
+;**************************** _main ***************************
+;Name Addr/Register Size Type
+;_ti_CloseAll IMPORT ----- function
+;_os_GetCSC IMPORT ----- function
+;_ti_DetectAny IMPORT ----- function
+;_printText IMPORT ----- function
+;_asm_DrawStatusBar IMPORT ----- function
+;_asm_HomeUp IMPORT ----- function
+;_asm_ClrLCD IMPORT ----- function
+;__OS IMPORT ----- function
+;_0temp0 STATIC 3 variable
+;search_pos IX-11 3 variable
+;search_string IX-8 3 variable
+;var_name IX-5 3 variable
+;type IX-2 1 variable
+;y IX-1 1 variable
+
+
+; Stack Frame Size: 17 (bytes)
+; Spill Code: 0 (instruction)
+
+
+ SEGMENT TEXT
+_0temp0:
+ DB 191
+ DB 254
+ DB 0
+ SEGMENT CODE
+; 44
+; 45 /* Draw text on the homescreen at the given X/Y location */
+; 46 void printText(int8_t xpos, int8_t ypos, const char *text) {
+_printText:
+ CALL __frameset0
+; 47 os_SetCursorPos(ypos, xpos);
+ LD C,(IX+6)
+ LD B,0
+ PUSH BC
+ LD C,(IX+9)
+ PUSH BC
+ CALL _os_SetCursorPos
+ POP BC
+ POP BC
+; 48 os_PutStrFull(text);
+ LD BC,(IX+12)
+ PUSH BC
+ CALL _os_PutStrFull
+ POP BC
+; 49 }
+ LD SP,IX
+ POP IX
+ RET
+
+
+;**************************** _printText ***************************
+;Name Addr/Register Size Type
+;_os_PutStrFull IMPORT ----- function
+;_os_SetCursorPos IMPORT ----- function
+;text IX+12 3 parameter
+;ypos IX+9 1 parameter
+;xpos IX+6 1 parameter
+
+
+; Stack Frame Size: 15 (bytes)
+; Spill Code: 0 (instruction)
+
+
+ XREF _ti_DetectAny:ROM
+ XREF _ti_CloseAll:ROM
+ XREF _asm_DrawStatusBar:ROM
+ XREF _asm_ClrLCD:ROM
+ XREF _asm_HomeUp:ROM
+ XREF __OS:ROM
+ XREF _os_GetCSC:ROM
+ XREF _os_PutStrFull:ROM
+ XREF _os_SetCursorPos:ROM
+ XREF __frameset0:ROM
+ XREF __frameset:ROM
+ XREF __icmpzero:ROM
+ XDEF _printText
+ XDEF _main
+ END
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/readme.md b/frontends/calculator/CEdev/examples/fileio_detectany/readme.md
new file mode 100644
index 0000000..21a7e26
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detectany/readme.md
@@ -0,0 +1,11 @@
+### FileIO File Detection Demo
+
+This demo shows how to use the ti_DetectAny function to search for a variable that starts with a particular sequence of bytes
+LibLoad is used because it is known to exist for demonstration.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/screenshot.png b/frontends/calculator/CEdev/examples/fileio_detectany/screenshot.png
new file mode 100644
index 0000000..d5c9e73
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detectany/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/src/main.c b/frontends/calculator/CEdev/examples/fileio_detectany/src/main.c
new file mode 100644
index 0000000..6809123
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_detectany/src/main.c
@@ -0,0 +1,49 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fileioc.h>
+
+/* Function prototypes */
+void printText(int8_t xpos, int8_t ypos, const char *text);
+
+/* Main Function */
+void main(void) {
+ /* Declare some variables -- search_pos must be NULL to begin with */
+ uint8_t *search_pos = NULL, type;
+ int8_t y = 0;
+ ti_var_t myVar;
+ char *var_name;
+
+ /* First couple bytes of the LibLoad AppVar, which is known to exist *
+ /* Technically is a null-terminated string, if an odd looking one */
+ const char search_string[] = { 0xBF, 0xFE, 0x00 };
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Find all of the variables that start with this string */
+ while ((var_name = ti_DetectAny(&search_pos, search_string, &type)) != NULL) {
+ if (type == TI_APPVAR_TYPE) {
+ /* Print the name of the variable (Should be LibLoad) */
+ printText(0, y++, var_name);
+ }
+ }
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Close all open files */
+ ti_CloseAll();
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(int8_t xpos, int8_t ypos, const char *text) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/autotester.badjson b/frontends/calculator/CEdev/examples/fileio_factorize/autotester.badjson
new file mode 100644
index 0000000..1e97c78
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_factorize/autotester.badjson
@@ -0,0 +1,37 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch", --> type input in Ans ; expect known output back in Ans
+ "delay|500",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hash|2"
+ ],
+
+******* Broken JSON TODO :
+******* implement autotester var handling feature *******
+
+ "hashes": {
+ "1": {
+ "description": "Variable Ans is a list [TODO]",
+ "start": "var_complex_B",
+ "size": "var_size",
+ "expected_CRCs": [ "" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/makefile b/frontends/calculator/CEdev/examples/fileio_factorize/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_factorize/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/readme.md b/frontends/calculator/CEdev/examples/fileio_factorize/readme.md
new file mode 100644
index 0000000..196474c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_factorize/readme.md
@@ -0,0 +1,12 @@
+### FileIO Factorize Demo
+
+This demo demonstrates a way to compute the factors of a input number in Ans
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
+
+
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/screenshot.png b/frontends/calculator/CEdev/examples/fileio_factorize/screenshot.png
new file mode 100644
index 0000000..924c14d
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_factorize/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/src/main.c b/frontends/calculator/CEdev/examples/fileio_factorize/src/main.c
new file mode 100644
index 0000000..3be9992
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_factorize/src/main.c
@@ -0,0 +1,75 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <fileioc.h>
+
+void prime_factors(unsigned int n);
+
+int primes[512];
+unsigned int total_primes = 0;
+
+/* Main Function */
+void main(void) {
+ /* Declare some variables */
+ real_t *real_in;
+ list_t *list_out;
+ unsigned i;
+ int in;
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Get the answer variable */
+ if (ti_RclVar(TI_REAL_TYPE, ti_Ans, &real_in)) return;
+ if ((in = os_RealToInt24(real_in)) < 1) return;
+
+ /* Get the prime factors of the input */
+ prime_factors((unsigned)in);
+
+ /* Create a list to store the primes */
+ if (!total_primes) return;
+ list_out = ti_MallocList(total_primes); // Same as ti_AllocList(total_primes, malloc)
+
+ /* Write out the list of primes */
+ for (i=0; i<total_primes; i++) {
+ list_out->items[i] = os_Int24ToReal(primes[i]);
+ }
+
+ /* Set the new answer */
+ ti_SetVar(TI_REAL_LIST_TYPE, ti_Ans, list_out);
+}
+
+/* Store to an array all the prime numbers */
+void prime_factors(unsigned int n) {
+ unsigned int div, end;
+
+ while (!(n % 2)) {
+ primes[total_primes++] = 2;
+ n /= 2;
+ }
+
+ if (n == 1) return;
+
+ div = 3;
+ end = sqrt(n);
+
+ while (div <= end) {
+ if (!(n % div)) {
+ do {
+ primes[total_primes++] = div;
+ n /= div;
+ } while (!(n % div));
+ if (n == 1) return;
+ end = sqrt(n);
+ }
+ div += 2;
+ }
+
+ primes[total_primes++] = n;
+}
diff --git a/frontends/calculator/CEdev/examples/fileio_os_vars/autotester.badjson b/frontends/calculator/CEdev/examples/fileio_os_vars/autotester.badjson
new file mode 100644
index 0000000..dbf9e3d
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_os_vars/autotester.badjson
@@ -0,0 +1,65 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|500",
+ "hash|1",
+ "hash|2",
+ "hash|3",
+ "hash|4",
+ "hash|5",
+ "key|enter",
+ "delay|200",
+ "hash|6"
+ ],
+
+******* Broken JSON TODO :
+******* implement autotester var handling feature *******
+
+ "hashes": {
+ "1": {
+ "description": "Variable B is complex 1.5+2.5i",
+ "start": "var_complex_B",
+ "size": "var_size",
+ "expected_CRCs": [ "" ]
+ },
+ "2": {
+ "description": "Variable A is real 1.5",
+ "start": "var_real_A",
+ "size": "var_size",
+ "expected_CRCs": [ "" ]
+ },
+ "3": {
+ "description": "Variable Y1 is equation 2+2",
+ "start": "var",
+ "size": "var_equation_Y1",
+ "expected_CRCs": [ "" ]
+ },
+ "4": {
+ "description": "Variable L1 is list {1.5,2.5,3.5}",
+ "start": "var",
+ "size": "var_list_L1",
+ "expected_CRCs": [ "" ]
+ },
+ "5": {
+ "description": "Variable Ans is matrix [[2.5,2.5]]",
+ "start": "var_Ans",
+ "size": "var_size",
+ "expected_CRCs": [ "" ]
+ },
+ "6": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_os_vars/makefile b/frontends/calculator/CEdev/examples/fileio_os_vars/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_os_vars/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_os_vars/readme.md b/frontends/calculator/CEdev/examples/fileio_os_vars/readme.md
new file mode 100644
index 0000000..d628217
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_os_vars/readme.md
@@ -0,0 +1,10 @@
+### FileIO OS Variables Demo
+
+This demo shows how to use the different OS variable accessing functions.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/fileio_os_vars/screenshot.png b/frontends/calculator/CEdev/examples/fileio_os_vars/screenshot.png
new file mode 100644
index 0000000..8bcb253
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_os_vars/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_os_vars/src/main.c b/frontends/calculator/CEdev/examples/fileio_os_vars/src/main.c
new file mode 100644
index 0000000..657f9d9
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_os_vars/src/main.c
@@ -0,0 +1,101 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fileioc.h>
+
+/* Some function prototypes. Maybe in the future these functions will become a library */
+cplx_t Int24sToCplx(int real, int imag);
+cplx_t FloatsToCplx(float real, float imag);
+cplx_t RealsToCplx(real_t real, real_t imag);
+cplx_t StrsToCplx(char *real, char **real_end, char *imag, char **imag_end);
+
+/* Main Function */
+void main(void) {
+ /* Declare some variables */
+ equ_t *my_equ;
+ list_t *my_list;
+ matrix_t *my_matrix;
+ real_t my_real;
+ cplx_t my_cplx;
+ real_t real_1_5 = os_FloatToReal(1.5);
+ real_t real_2_5 = os_FloatToReal(2.5);
+ real_t real_3_5 = os_FloatToReal(3.5);
+
+ /* Store the value '1.5+2.5i' into the variable B */
+ my_cplx = FloatsToCplx(1.5, 2.5);
+ ti_SetVar(TI_CPLX_TYPE, ti_B, &my_cplx);
+
+ /* Store the value '1.5' into the variable A */
+ my_real = real_1_5;
+ ti_SetVar(TI_REAL_TYPE, ti_A, &my_real);
+
+ /* Store the equation "2+2" into the Y1 variable */
+ my_equ = ti_MallocEqu(3); // Same as ti_AllocEqu(3, malloc)
+ my_equ->data[0] = '2';
+ my_equ->data[1] = tAdd;
+ my_equ->data[2] = '2';
+ ti_SetVar(TI_EQU_TYPE, ti_Y1, my_equ);
+ free(my_equ);
+
+ /* Store the list {1.5,2.5,3.5} to L1 */
+ my_list = ti_MallocList(3); // Same as ti_AllocList(3, malloc)
+ my_list->items[0] = real_1_5;
+ my_list->items[1] = real_2_5;
+ my_list->items[2] = real_3_5;
+ ti_SetVar(TI_REAL_LIST_TYPE, ti_L1, my_list);
+ free(my_list);
+
+ /* Store the matrix [[2.5,2.5]] to Ans */
+ my_matrix = ti_MallocMatrix(1,2); // Same as ti_AllocMatrix(1, 2, malloc)
+ matrix_element(my_matrix, 0, 0) = real_2_5;
+ matrix_element(my_matrix, 0, 1) = real_2_5;
+ ti_SetVar(TI_MATRIX_TYPE, ti_Ans, my_matrix);
+ free(my_matrix);
+}
+
+/* Stores some ints to a complex variable type */
+cplx_t Int24sToCplx(int real, int imag) {
+ cplx_t res;
+ res.real = os_Int24ToReal(real);
+ res.real.sign |= TI_CPLX_TYPE;
+ res.imag = os_Int24ToReal(imag);
+ res.imag.sign |= TI_CPLX_TYPE;
+ return res;
+}
+
+/* Stores some floats to a complex variable type */
+cplx_t FloatsToCplx(float real, float imag) {
+ cplx_t res;
+ res.real = os_FloatToReal(real);
+ res.real.sign |= TI_CPLX_TYPE;
+ res.imag = os_FloatToReal(imag);
+ res.imag.sign |= TI_CPLX_TYPE;
+ return res;
+}
+
+/* Converts a pair of reals to a complex number */
+cplx_t RealsToCplx(real_t real, real_t imag) {
+ cplx_t res;
+ res.real = real;
+ res.real.sign |= TI_CPLX_TYPE;
+ res.imag = imag;
+ res.imag.sign |= TI_CPLX_TYPE;
+ return res;
+}
+
+/* Converts strings to a complex variable type */
+cplx_t StrsToCplx(char *real, char **real_end, char *imag, char **imag_end) {
+ cplx_t res;
+ res.real = os_StrToReal(real, real_end);
+ res.real.sign |= TI_CPLX_TYPE;
+ res.imag = os_StrToReal(imag, imag_end);
+ res.imag.sign |= TI_CPLX_TYPE;
+ return res;
+}
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/autotester.json b/frontends/calculator/CEdev/examples/fileio_read_write/autotester.json
new file mode 100644
index 0000000..bd30851
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_read_write/autotester.json
@@ -0,0 +1,33 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|1000",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Assert that the read was succesful",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "D720F0D9" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.8xp b/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.8xp
new file mode 100644
index 0000000..8c3e091
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.8xp
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.bin b/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.bin
new file mode 100644
index 0000000..0b69716
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.bin
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.map b/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.map
new file mode 100644
index 0000000..7cf5131
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.map
@@ -0,0 +1,154 @@
+Segment Base Top High Length
+-------- ------ ------ ------ -------
+icon D1A882 D1A882 0h
+launcher D1A882 D1A8DA 58h
+libs D1A8DA D1A906 2Ch
+startup D1A906 D1A945 3Fh
+cleanup D1A945 D1A959 14h
+exit D1A959 D1A95F 6h
+code D1A95F D1AB0A 1ABh
+data D1AB0A D1AB2F 25h
+strsect D1AB2F D1AB6E 3Fh
+text D1AB6E D1AB6E 0h
+bss D031F6 D03207 D13FD6 11h
+header D1A87F D1A882 3h
+
+Label Value
+------------------------- ------
+_os_DisableHomeTextBuffer = D1A95F
+_os_EnableHomeTextBuffer = D1A971
+_boot_GetBootMajorVer = 000080
+_boot_GetHardwareVer = 000084
+_boot_GetBootMinorVer = 00008C
+_boot_DebugPrintf = 0000B4
+_boot_ClearVRAM = 000374
+_boot_TurnOff = 000388
+_boot_NewLine = 000390
+_boot_Set6MHzMode = 00039C
+_boot_Set48MHzMode = 0003A0
+_boot_Set6MHzModeI = 0003A4
+_boot_Set48MHzModeI = 0003A8
+_boot_GetBatteryStatus = 0003B0
+_boot_WaitShort = 0003B4
+_boot_CheckOnPressed = 00057C
+_boot_SetDate = 000598
+_boot_GetDate = 0005A8
+_boot_GetTime = 0005B0
+_boot_SetTime = 0005B4
+_boot_IsAfterNoon = 0005C8
+_os_NewLine = 0207F0
+_os_PushErrorHandler = 021C78
+_os_PopErrorHandler = 021C7C
+_os_ThrowError = 021C80
+_os_RealCopy = 021C84
+_os_RealAsinRad = 021C88
+_os_RealAcosRad = 021C8C
+_os_RealAtanRad = 021C90
+_os_RealAdd = 021C94
+_os_CplxSquare = 021C98
+_os_RealCompare = 021C9C
+_os_RealCosRad = 021CA0
+_os_RealRadToDeg = 021CA4
+_os_RealDiv = 021CA8
+_os_RealExp = 021CAC
+_os_RealFloor = 021CB0
+_os_RealToStr = 021CB4
+_os_RealFrac = 021CB8
+_os_RealGcd = 021CBC
+_os_RealRoundInt = 021CC0
+_os_RealLcm = 021CC4
+_os_RealLog = 021CC8
+_os_RealMax = 021CCC
+_os_RealMin = 021CD0
+_os_RealMul = 021CD4
+_os_RealNcr = 021CD8
+_os_RealNeg = 021CDC
+_os_RealNpr = 021CE0
+_os_RealPow = 021CE4
+_os_RealDegToRad = 021CE8
+_os_RealRandInt = 021CEC
+_os_RealInv = 021CF0
+_os_RealMod = 021CF4
+_os_RealRound = 021CF8
+_os_RealSinRad = 021CFC
+_os_RealSqrt = 021D00
+_os_RealSub = 021D04
+_os_RealTanRad = 021D08
+_os_StrToReal = 021D0C
+_os_RealInt = 021D10
+_os_SetFlagBits = 021D14
+_os_ResetFlagBits = 021D18
+_os_TestFlagBits = 021D1C
+_os_SetFlagByte = 021D20
+_os_GetFlagByte = 021D24
+_os_GetCursorPos = 021D28
+_os_PutStrFull = 021D2C
+_os_PutStrLine = 021D30
+_os_SetCursorPos = 021D34
+_os_AppInit = 021D40
+_os_GetKey = 021D38
+_os_GetCSC = 021D3C
+_os_DisableCursor = 021DE4
+_os_EnableCursor = 021DE8
+_os_FontDrawText = 021E00
+_os_FontGetHeight = 021E14
+_os_FontGetWidth = 021E18
+_os_InitDrawing = 021E1C
+_os_SetDrawBGColor = 021E20
+_os_SetDrawFGColor = 021E24
+_os_FontSelect = 021E28
+_os_RclAns = 021E70
+_os_SetTimer1 = 021EC8
+_os_DisableTimer1 = 021ECC
+_os_GetSystemStats = 021ED4
+_os_GetDrawBGColor = 021EE4
+_os_GetDrawFGColor = 021EE8
+_os_FontGetID = 021EEC
+_os_RealToInt24 = 021EF4
+_os_Int24ToReal = 021EF8
+_os_ForceCmdNoChar = 021FA8
+_os_GetSymTablePtr = 021FB0
+_os_NextSymEntry = 021FB4
+_os_ChkFindSym = 021FB8
+_os_MemChk = 021FF0
+_os_SetTimer2 = 022080
+_os_DisableTimer2 = 022084
+_os_FloatToReal = 022170
+_os_RealToFloat = 022174
+_os_FontDrawTransText = 022178
+_os_CreateAppVar = 022184
+_asm_MoveDown = 0207F4
+_asm_MoveUp = 020800
+_asm_ClrLCDFull = 020808
+_asm_ClrLCD = 02080C
+_asm_ClrTxtShd = 020818
+_asm_HomeUp = 020828
+_asm_RunIndicOn = 020844
+_asm_RunIndicOff = 020848
+_asm_DelRes = 020E5C
+_asm_DisableAPD = 021134
+_asm_EnableAPD = 021138
+_asm_DrawStatusBar = 021A3C
+_asm_ArcChk = 022040
+__OS = D1A983
+__frameset0 = D1A98D
+__frameset = D1A998
+_strcpy = 0000CC
+__findlibload = D1A882
+__ccleanup = D1A945
+_errno = D008DC
+_init = D1A882
+_exit = D1A95B
+__exit = D1A934
+__exitsp = D1A934
+__errsp = D1A934
+_printText = D1AAE8
+_main = D1A9A6
+_data = D031F6
+_appvarName = D1AB2C
+_ti_CloseAll = D1A8EE
+_ti_Open = D1A8F2
+_ti_Write = D1A8F6
+_ti_Read = D1A8FA
+_ti_Rewind = D1A8FE
+_ti_GetName = D1A902
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/makefile b/frontends/calculator/CEdev/examples/fileio_read_write/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_read_write/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/obj/main.src b/frontends/calculator/CEdev/examples/fileio_read_write/obj/main.src
new file mode 100644
index 0000000..3371816
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_read_write/obj/main.src
@@ -0,0 +1,343 @@
+; Zilog eZ80 ANSI C Compiler Release 3.4
+; -optsize -noreduceopt -nomodsect -peephole -globalopt
+; -localcse -const=ROM
+ FILE "SRC\MAIN.C"
+ .assume ADL=1
+ SEGMENT STRSECT
+L__0:
+ DB "AppVar"
+ DB 0
+ SEGMENT DATA
+_appvarName:
+ DW24 L__0
+ SEGMENT BSS
+_data:
+ DS 17
+; 1 #include <stdbool.h>
+; 2 #include <stddef.h>
+; 3 #include <stdint.h>
+; 4 #include <tice.h>
+; 5
+; 6 #include <stdio.h>
+; 7 #include <stdlib.h>
+; 8 #include <string.h>
+; 9
+; 10 #include <fileioc.h>
+; 11
+; 12 /* Declare some variables */
+; 13 const char *appvarName = "AppVar";
+; 14
+; 15 typedef struct {
+; 16 char name[15];
+; 17 uint8_t var1;
+; 18 uint8_t var2;
+; 19 } data_t;
+; 20
+; 21 data_t data;
+ SEGMENT CODE
+; 22
+; 23 #define VAR1_VALUE 10
+; 24 #define VAR2_VALUE 20
+; 25
+; 26 /* Function prototypes */
+; 27 void printText(int8_t xpos, int8_t ypos, const char *text);
+; 28
+; 29 /* Main Function */
+; 30 void main(void) {
+_main:
+ LD HL,-11
+ CALL __frameset
+; 31 char nameBuffer[10];
+; 32 ti_var_t myAppVar;
+; 33 int x;
+; 34
+; 35 /* Clear the homescreen */
+; 36 os_ClrHome();
+ LD BC,_asm_ClrLCD
+ PUSH BC
+ CALL __OS
+ POP BC
+ LD BC,_asm_HomeUp
+ PUSH BC
+ CALL __OS
+ POP BC
+ LD BC,_asm_DrawStatusBar
+ PUSH BC
+ CALL __OS
+ POP BC
+; 37
+; 38 /* Declare some variable values */
+; 39 strcpy(data.name, "My Data");
+ LD BC,L__1
+ PUSH BC
+ LD BC,_data
+ PUSH BC
+ CALL _strcpy
+ POP BC
+ POP BC
+; 40 data.var1 = VAR1_VALUE;
+ LD A,10
+ LD (_data+15),A
+; 41 data.var2 = VAR2_VALUE;
+ LD A,20
+ LD (_data+16),A
+; 42
+; 43 /* Close any files that may be open already */
+; 44 ti_CloseAll();
+ CALL _ti_CloseAll
+; 45
+; 46 /* Open a new variable; deleting it if it already exists */
+; 47 myAppVar = ti_Open(appvarName, "w");
+ LD BC,L__2
+ PUSH BC
+ LD BC,(_appvarName)
+ PUSH BC
+ CALL _ti_Open
+ POP BC
+ POP BC
+ LD (IX+-1),A
+; 48
+; 49 /* Make sure we opened okay */
+; 50 if (!myAppVar) goto err;
+ OR A,A
+ JR Z,L_3
+; 51
+; 52 /* Write the structure to the appvar */
+; 53 if (ti_Write(&data, sizeof(data_t), 1, myAppVar) != 1) goto err;
+ LD C,(IX+-1)
+ LD B,0
+ PUSH BC
+ LD BC,1
+ PUSH BC
+ LD BC,17
+ PUSH BC
+ LD BC,_data
+ PUSH BC
+ CALL _ti_Write
+ POP BC
+ POP BC
+ POP BC
+ POP BC
+ LD BC,1
+ OR A,A
+ SBC HL,BC
+ JR NZ,L_3
+; 54
+; 55 /* Go back to the start of the file */
+; 56 if (ti_Rewind(myAppVar) == EOF) goto err;
+ LD C,(IX+-1)
+ LD B,0
+ PUSH BC
+ CALL _ti_Rewind
+ POP BC
+ LD BC,16777215
+ OR A,A
+ SBC HL,BC
+ JR Z,L_3
+; 57
+; 58 /* Let's read it just to make sure we wrote it correctly */
+; 59 if (ti_Read(&data, sizeof(data_t), 1, myAppVar) != 1) goto err;
+ LD C,(IX+-1)
+ LD B,0
+ PUSH BC
+ LD BC,1
+ PUSH BC
+ LD BC,17
+ PUSH BC
+ LD BC,_data
+ PUSH BC
+ CALL _ti_Read
+ POP BC
+ POP BC
+ POP BC
+ POP BC
+ LD BC,1
+ OR A,A
+ SBC HL,BC
+ JR NZ,L_3
+; 60
+; 61 /* Make sure we read these variables correctly too */
+; 62 if (data.var1 != VAR1_VALUE && data.var2 != VAR2_VALUE) goto err;
+ LD A,(_data+15)
+ CP A,10
+ JR Z,L_14
+ LD A,(_data+16)
+ CP A,20
+ JR NZ,L_3
+L_14:
+; 63
+; 64 /* Ensure the name of the AppVar is correct */
+; 65 ti_GetName(nameBuffer, myAppVar);
+ LD C,(IX+-1)
+ LD B,0
+ PUSH BC
+ PEA IX+-11
+ CALL _ti_GetName
+ POP BC
+ POP BC
+; 66
+; 67 printText(0, 0, "Appvar: ");
+ LD BC,L__9
+ PUSH BC
+ LD BC,0
+ PUSH BC
+ PUSH BC
+ CALL _printText
+ POP BC
+ POP BC
+ POP BC
+; 68 printText(8, 0, nameBuffer);
+ PEA IX+-11
+ LD BC,0
+ PUSH BC
+ LD BC,8
+ PUSH BC
+ CALL _printText
+ POP BC
+ POP BC
+ POP BC
+; 69 printText(0, 1, "Read was successful");
+ LD BC,L__10
+ PUSH BC
+ LD BC,1
+ PUSH BC
+ LD BC,0
+ PUSH BC
+ CALL _printText
+ POP BC
+ POP BC
+ POP BC
+; 70 goto noerr;
+ JR L_16
+L_3:
+; 71
+; 72 err:
+; 73 printText(0, 0, "An error occured");
+ LD BC,L__11
+ PUSH BC
+ LD BC,0
+ PUSH BC
+ PUSH BC
+ CALL _printText
+ POP BC
+ POP BC
+ POP BC
+; 74 noerr:
+; 75
+; 76 /* Pause */
+; 77 while (!os_GetCSC());
+L_16:
+ CALL _os_GetCSC
+ OR A,A
+ JR Z,L_16
+; 78
+; 79 /* Close all open files */
+; 80 ti_CloseAll();
+ CALL _ti_CloseAll
+; 81 }
+ LD SP,IX
+ POP IX
+ RET
+
+
+;**************************** _main ***************************
+;Name Addr/Register Size Type
+;_os_GetCSC IMPORT ----- function
+;_printText IMPORT ----- function
+;_ti_GetName IMPORT ----- function
+;_ti_Read IMPORT ----- function
+;_ti_Rewind IMPORT ----- function
+;_ti_Write IMPORT ----- function
+;_appvarName STATIC 3 variable
+;_ti_Open IMPORT ----- function
+;_ti_CloseAll IMPORT ----- function
+;_data STATIC 17 variable
+;_strcpy IMPORT ----- function
+;_asm_DrawStatusBar IMPORT ----- function
+;_asm_HomeUp IMPORT ----- function
+;_asm_ClrLCD IMPORT ----- function
+;__OS IMPORT ----- function
+;nameBuffer IX-11 10 variable
+;myAppVar IX-1 1 variable
+
+
+; Stack Frame Size: 17 (bytes)
+; Spill Code: 0 (instruction)
+
+
+ SEGMENT STRSECT
+L__1:
+ DB "My Data"
+ DB 0
+L__2:
+ DB "w"
+ DB 0
+L__9:
+ DB "Appvar: "
+ DB 0
+L__10:
+ DB "Read was successful"
+ DB 0
+L__11:
+ DB "An error occured"
+ DB 0
+ SEGMENT CODE
+; 82
+; 83 /* Draw text on the homescreen at the given X/Y location */
+; 84 void printText(int8_t xpos, int8_t ypos, const char *text) {
+_printText:
+ CALL __frameset0
+; 85 os_SetCursorPos(ypos, xpos);
+ LD C,(IX+6)
+ LD B,0
+ PUSH BC
+ LD C,(IX+9)
+ PUSH BC
+ CALL _os_SetCursorPos
+ POP BC
+ POP BC
+; 86 os_PutStrFull(text);
+ LD BC,(IX+12)
+ PUSH BC
+ CALL _os_PutStrFull
+ POP BC
+; 87 }
+ LD SP,IX
+ POP IX
+ RET
+
+
+;**************************** _printText ***************************
+;Name Addr/Register Size Type
+;_os_PutStrFull IMPORT ----- function
+;_os_SetCursorPos IMPORT ----- function
+;text IX+12 3 parameter
+;ypos IX+9 1 parameter
+;xpos IX+6 1 parameter
+
+
+; Stack Frame Size: 15 (bytes)
+; Spill Code: 0 (instruction)
+
+
+ XREF _strcpy:ROM
+ XREF _ti_GetName:ROM
+ XREF _ti_Rewind:ROM
+ XREF _ti_Read:ROM
+ XREF _ti_Write:ROM
+ XREF _ti_Open:ROM
+ XREF _ti_CloseAll:ROM
+ XREF _asm_DrawStatusBar:ROM
+ XREF _asm_ClrLCD:ROM
+ XREF _asm_HomeUp:ROM
+ XREF __OS:ROM
+ XREF _os_GetCSC:ROM
+ XREF _os_PutStrFull:ROM
+ XREF _os_SetCursorPos:ROM
+ XREF __frameset0:ROM
+ XREF __frameset:ROM
+ XDEF _printText
+ XDEF _main
+ XDEF _data
+ XDEF _appvarName
+ END
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/readme.md b/frontends/calculator/CEdev/examples/fileio_read_write/readme.md
new file mode 100644
index 0000000..8666507
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_read_write/readme.md
@@ -0,0 +1,10 @@
+### FileIO Write/Read Demo
+
+This example demonstrates writing some data to a file and then reading it back out to make sure it was written correctly
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/screenshot.png b/frontends/calculator/CEdev/examples/fileio_read_write/screenshot.png
new file mode 100644
index 0000000..8f22d44
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_read_write/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/src/main.c b/frontends/calculator/CEdev/examples/fileio_read_write/src/main.c
new file mode 100644
index 0000000..a776037
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_read_write/src/main.c
@@ -0,0 +1,88 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fileioc.h>
+
+/* Declare some variables */
+const char *appvarName = "AppVar";
+
+typedef struct {
+ char name[15];
+ uint8_t var1;
+ uint8_t var2;
+} data_t;
+
+data_t data;
+
+#define VAR1_VALUE 10
+#define VAR2_VALUE 20
+
+/* Function prototypes */
+void printText(int8_t xpos, int8_t ypos, const char *text);
+
+/* Main Function */
+void main(void) {
+ char nameBuffer[10];
+ ti_var_t myAppVar;
+ int x;
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Declare some variable values */
+ strcpy(data.name, "My Data");
+ data.var1 = VAR1_VALUE;
+ data.var2 = VAR2_VALUE;
+
+ /* Close any files that may be open already */
+ ti_CloseAll();
+
+ /* Open a new variable; deleting it if it already exists */
+ myAppVar = ti_Open(appvarName, "w");
+
+ /* Make sure we opened okay */
+ if (!myAppVar) goto err;
+
+ /* Write the structure to the appvar */
+ if (ti_Write(&data, sizeof(data_t), 1, myAppVar) != 1) goto err;
+
+ /* Go back to the start of the file */
+ if (ti_Rewind(myAppVar) == EOF) goto err;
+
+ /* Let's read it just to make sure we wrote it correctly */
+ if (ti_Read(&data, sizeof(data_t), 1, myAppVar) != 1) goto err;
+
+ /* Make sure we read these variables correctly too */
+ if (data.var1 != VAR1_VALUE && data.var2 != VAR2_VALUE) goto err;
+
+ /* Ensure the name of the AppVar is correct */
+ ti_GetName(nameBuffer, myAppVar);
+
+ printText(0, 0, "Appvar: ");
+ printText(8, 0, nameBuffer);
+ printText(0, 1, "Read was successful");
+ goto noerr;
+
+err:
+ printText(0, 0, "An error occured");
+noerr:
+
+ /* Pause */
+ while (!os_GetCSC());
+
+ /* Close all open files */
+ ti_CloseAll();
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(int8_t xpos, int8_t ypos, const char *text) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_rename/autotester.json b/frontends/calculator/CEdev/examples/fileio_rename/autotester.json
new file mode 100644
index 0000000..5b454c9
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_rename/autotester.json
@@ -0,0 +1,33 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|1000",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Assert that the rename was succesful",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "94538693" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_rename/makefile b/frontends/calculator/CEdev/examples/fileio_rename/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_rename/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_rename/readme.md b/frontends/calculator/CEdev/examples/fileio_rename/readme.md
new file mode 100644
index 0000000..9584b02
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_rename/readme.md
@@ -0,0 +1,8 @@
+### FileIO Rename Demo
+
+This example demonstrates how to rename previously created files
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/fileio_rename/src/main.c b/frontends/calculator/CEdev/examples/fileio_rename/src/main.c
new file mode 100644
index 0000000..6f046bb
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_rename/src/main.c
@@ -0,0 +1,77 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fileioc.h>
+
+/* Function prototypes */
+void printText(int8_t xpos, int8_t ypos, const char *text);
+
+/* Main Function */
+void main(void) {
+ /* Declare some variables */
+ const char *oldName = "OldFile";
+ const char *newName = "NewFile";
+ char nameBuffer[10];
+ ti_var_t file;
+ bool err = true;
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Close any previously open files */
+ ti_CloseAll();
+
+ /* Delete both the new and old files if they already exist */
+ ti_Delete(oldName);
+ ti_Delete(newName);
+
+ do {
+ /* Create a file with the old name */
+ file = ti_Open(oldName, "w");
+ if (!file) break;
+
+ ti_GetName(nameBuffer, file);
+ printText(0, 0, "Old Name: ");
+ printText(10, 0, nameBuffer);
+
+ /* Close the old file */
+ ti_CloseAll();
+
+ /* Rename the old file to the new file name */
+ ti_Rename(oldName, newName);
+
+ /* Ensure the new name of the file is correct */
+ file = ti_Open(newName, "r");
+ if (!file) break;
+
+ ti_GetName(nameBuffer, file);
+ printText(0, 1, "New Name: ");
+ printText(10, 1, nameBuffer);
+
+ err = false;
+ } while (0);
+
+ /* Close all open files */
+ ti_CloseAll();
+
+ /* If an error occured, inform the user */
+ if (err == true) {
+ printText(0, 2, "An error occured");
+ }
+
+ /* Wait for a keypress */
+ while (!os_GetCSC());
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(int8_t xpos, int8_t ypos, const char *text) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_tokens/autotester.json b/frontends/calculator/CEdev/examples/fileio_tokens/autotester.json
new file mode 100644
index 0000000..529758c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_tokens/autotester.json
@@ -0,0 +1,33 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|1000",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Blank screen",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "349F4775" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_tokens/makefile b/frontends/calculator/CEdev/examples/fileio_tokens/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_tokens/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_tokens/readme.md b/frontends/calculator/CEdev/examples/fileio_tokens/readme.md
new file mode 100644
index 0000000..a1d5546
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_tokens/readme.md
@@ -0,0 +1,10 @@
+### FileIO Get Token Demo
+
+This demo shows how to use the ti_GetDataPtr and ti_GetTokenString functions. It prints out the first two tokens in the basic prgmABC.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/fileio_tokens/screenshot.png b/frontends/calculator/CEdev/examples/fileio_tokens/screenshot.png
new file mode 100644
index 0000000..928b693
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_tokens/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_tokens/src/main.c b/frontends/calculator/CEdev/examples/fileio_tokens/src/main.c
new file mode 100644
index 0000000..d3f6b57
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_tokens/src/main.c
@@ -0,0 +1,59 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fileioc.h>
+
+/* Declare the program name */
+const char *prgmName = "ABC";
+
+/* Function prototypes */
+void printText(int8_t xpos, int8_t ypos, const char *text);
+
+/* Main Function */
+void main(void) {
+ ti_var_t prgm;
+ char *text;
+ uint8_t *data_ptr;
+ uint8_t token_length;
+ uint16_t size;
+ int8_t y = 0;
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Close any files that may be open already */
+ ti_CloseAll();
+
+ /* Open the program for reading */
+ prgm = ti_OpenVar(prgmName, "r", TI_PRGM_TYPE);
+
+ /* Make sure we opened okay */
+ if (!prgm) goto err;
+
+ data_ptr = ti_GetDataPtr(prgm);
+ size = ti_GetSize(prgm);
+
+ while (size && y < 8) {
+ printText(0, y++, ti_GetTokenString(&data_ptr, &token_length, NULL));
+ size -= token_length;
+ }
+
+err:
+ /* Pause */
+ while (!os_GetCSC());
+
+ /* Close files */
+ ti_CloseAll();
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(int8_t xpos, int8_t ypos, const char *text) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_blitting/autotester.json b/frontends/calculator/CEdev/examples/gfx_blitting/autotester.json
new file mode 100644
index 0000000..bb67e72
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_blitting/autotester.json
@@ -0,0 +1,46 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2",
+ "key|enter",
+ "hashWait|3",
+ "key|enter",
+ "hashWait|4"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Nothing blitted yet, white screen",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "3132DE74" ]
+ },
+ "2": {
+ "description": "Parts of buffer blitted to screen",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "830291D3" ]
+ },
+ "3": {
+ "description": "Full buffer blitted to screen",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "EA181DC1" ]
+ },
+ "4": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_blitting/makefile b/frontends/calculator/CEdev/examples/gfx_blitting/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_blitting/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_blitting/readme.md b/frontends/calculator/CEdev/examples/gfx_blitting/readme.md
new file mode 100644
index 0000000..caa3bcb
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_blitting/readme.md
@@ -0,0 +1,7 @@
+### GraphX Blitting Demo
+
+This example demonstrates blitting to manually copy data from the drawing buffer to the screen buffer
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/gfx_blitting/src/main.c b/frontends/calculator/CEdev/examples/gfx_blitting/src/main.c
new file mode 100644
index 0000000..1582583
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_blitting/src/main.c
@@ -0,0 +1,47 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* This tutorial is meant to be played around with to get a feeling for how blitting works */
+void main(void) {
+ uint8_t c;
+
+ /* Initialize the 8bpp graphics, screen cleared to white */
+ gfx_Begin();
+
+ /* Draw to buffer instead of directly to screen */
+ gfx_SetDrawBuffer(); // This is the same as gfx_SetDraw(gfx_buffer)
+
+ /* Draw a gradient (to the buffer) */
+ for (c = 0; c < 8; c++) {
+ gfx_SetColor(c);
+ gfx_FillRectangle_NoClip(c * (LCD_WIDTH / 8), 0, LCD_WIDTH / 8, LCD_HEIGHT);
+ }
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Copy parts of the buffer to the screen */
+ gfx_BlitLines(gfx_buffer, LCD_HEIGHT - 32, 32);
+ gfx_BlitRectangle(gfx_buffer, LCD_WIDTH / 4, LCD_HEIGHT / 4, LCD_WIDTH / 2, LCD_HEIGHT / 2);
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Copy the full buffer to the screen */
+ gfx_BlitBuffer(); // This is the same as gfx_Blit(gfx_buffer)
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_buffered_cube/autotester.json b/frontends/calculator/CEdev/examples/gfx_buffered_cube/autotester.json
new file mode 100644
index 0000000..6d4c32f
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_buffered_cube/autotester.json
@@ -0,0 +1,40 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|300",
+ "hash|1",
+ "hash|2",
+ "key|enter",
+ "delay|300",
+ "hashWait|3"
+ ],
+ "hashes": {
+ "1": {
+ "description": "The background will be white (check a part before the cube)",
+ "start": "vram_start",
+ "size": "0x500",
+ "expected_CRCs": [ "5DAA1FBD" ]
+ },
+ "2": {
+ "description": "The background will be white (check a part after the cube)",
+ "start": "0xD52700",
+ "size": "0x500",
+ "expected_CRCs": [ "5DAA1FBD" ]
+ },
+ "3": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_buffered_cube/makefile b/frontends/calculator/CEdev/examples/gfx_buffered_cube/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_buffered_cube/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_buffered_cube/readme.md b/frontends/calculator/CEdev/examples/gfx_buffered_cube/readme.md
new file mode 100644
index 0000000..413aa36
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_buffered_cube/readme.md
@@ -0,0 +1,10 @@
+### GraphX Cube Buffer Demo
+
+Draws a rotating cube which demonstartes the line and double buffering routines
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_buffered_cube/screenshot.gif b/frontends/calculator/CEdev/examples/gfx_buffered_cube/screenshot.gif
new file mode 100644
index 0000000..73c97a0
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_buffered_cube/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_buffered_cube/src/main.c b/frontends/calculator/CEdev/examples/gfx_buffered_cube/src/main.c
new file mode 100644
index 0000000..422e96c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_buffered_cube/src/main.c
@@ -0,0 +1,113 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Function prototypes */
+void rotate(void);
+
+/* Globals */
+#define ORG (-50)
+#define DEG (6.0)
+#define ANG (DEG * M_PI / 180.0)
+
+/* define the verticies for the two rectangles */
+float face1[4][2] = {
+ { 140, 45 },
+ { 240, 45 },
+ { 240, 145 },
+ { 140, 145 },
+};
+
+float face2[4][2] = {
+ { 140 + ORG, 45 - ORG },
+ { 240 + ORG, 45 - ORG },
+ { 240 + ORG, 145 - ORG },
+ { 140 + ORG, 145 - ORG },
+};
+
+/* declare some globals */
+float sin_angle,
+ cos_angle;
+
+float midx1,
+ midy1,
+ midx2,
+ midy2;
+
+/* Place main code in main */
+void main(void) {
+ uint8_t loop = 0;
+
+ /* Seed the random numbers */
+ srand(rtc_Time());
+
+ /* Get some main variables set up */
+ sin_angle = sin(ANG);
+ cos_angle = cos(ANG);
+ midx1 = (face1[0][0] + face1[1][0]) / 2.0;
+ midy1 = (face1[1][1] + face1[2][1]) / 2.0;
+ midx2 = (face2[0][0] + face2[1][0]) / 2.0;
+ midy2 = (face2[1][1] + face2[2][1]) / 2.0;
+
+ /* Start the graphics routines */
+ gfx_Begin();
+ gfx_SetDrawBuffer();
+
+ /* Loop until a key is pressed */
+ while (!os_GetCSC()) {
+
+ /* Change the color of the cube depending on loop (mod 16) */
+ if (!((loop++) & 0xf)) {
+ gfx_SetColor(rand());
+ }
+
+ /* Call the rotation code */
+ rotate();
+
+ /* Swap the buffer with the screen */
+ gfx_SwapDraw();
+ }
+
+ /* End the graphics */
+ gfx_End();
+}
+
+/* Rotation code */
+void rotate(void) {
+ uint8_t i, j;
+ float tmp1, tmp2;
+
+ /* Compute the new vertex coordinates */
+ for (i=0; i<4; i++) {
+ tmp1 = face1[i][0] - midx1;
+ tmp2 = face1[i][1] - midy1;
+
+ face1[i][0] = midx1 + (tmp1 * cos_angle) - (tmp2 * sin_angle);
+ face1[i][1] = midy1 + (tmp1 * sin_angle) + (tmp2 * cos_angle);
+
+ tmp1 = face2[i][0] - midx2;
+ tmp2 = face2[i][1] - midy2;
+
+ face2[i][0] = midx2 + (tmp1 * cos_angle) - (tmp2 * sin_angle);
+ face2[i][1] = midy2 + (tmp1 * sin_angle) + (tmp2 * cos_angle);
+ }
+
+ /* Clear the drawing buffer */
+ gfx_FillScreen(gfx_white);
+
+ /* Draw the cube */
+ for (i=0; i<4; i++) {
+ j = i + 1 & 3;
+ gfx_Line(face1[i][0], face1[i][1], face1[j][0], face1[j][1]);
+ gfx_Line(face2[i][0], face2[i][1], face2[j][0], face2[j][1]);
+ gfx_Line(face1[i][0], face1[i][1], face2[i][0], face2[i][1]);
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_char/autotester.json b/frontends/calculator/CEdev/examples/gfx_char/autotester.json
new file mode 100644
index 0000000..66dfe16
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_char/autotester.json
@@ -0,0 +1,30 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Test flipped text on black background",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "198A8841" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_char/makefile b/frontends/calculator/CEdev/examples/gfx_char/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_char/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_char/readme.md b/frontends/calculator/CEdev/examples/gfx_char/readme.md
new file mode 100644
index 0000000..7889ac8
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_char/readme.md
@@ -0,0 +1,10 @@
+### GraphX Character Demo
+
+A simple demo showing an upside down string.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_char/screenshot.png b/frontends/calculator/CEdev/examples/gfx_char/screenshot.png
new file mode 100644
index 0000000..6eefa42
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_char/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_char/src/main.c b/frontends/calculator/CEdev/examples/gfx_char/src/main.c
new file mode 100644
index 0000000..7d1b5ec
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_char/src/main.c
@@ -0,0 +1,52 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Use some random color as the transparent one */
+#define TRANSPARENT_COLOR 10
+#define FONT_WIDTH 8
+#define FONT_HEIGHT 8
+
+/* Function prototypes */
+void printu(char *str, int x, int y);
+
+const char *my_str = "!!DEPPILF si txet sihT";
+
+void main(void) {
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+ gfx_FillScreen(gfx_black);
+
+ /* Setup the colors */
+ gfx_SetTextFGColor(gfx_white);
+
+ /* Set the transparent text background color */
+ gfx_SetTextBGColor(TRANSPARENT_COLOR);
+ gfx_SetTextTransparentColor(TRANSPARENT_COLOR);
+ gfx_SetMonospaceFont(FONT_WIDTH);
+
+ /* Print some upside down text */
+ printu(my_str, (LCD_WIDTH - gfx_GetStringWidth(my_str)) / 2, (LCD_HEIGHT - FONT_HEIGHT) / 2);
+
+ /* Wait for key */
+ while (!os_GetCSC());
+
+ /* Finish the graphics */
+ gfx_End();
+}
+
+void printu(char *str, int x, int y) {
+ gfx_TempSprite(my_char, 8, 8);
+
+ while (*str) {
+ gfx_TransparentSprite(gfx_RotateSpriteHalf(gfx_GetSpriteChar(*str), my_char), x, y);
+ x += gfx_GetCharWidth(*str++);
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_clipping/autotester.json b/frontends/calculator/CEdev/examples/gfx_clipping/autotester.json
new file mode 100644
index 0000000..13f45cb
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_clipping/autotester.json
@@ -0,0 +1,52 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|300",
+ "hash|1",
+ "key|enter",
+ "delay|300",
+ "hash|2",
+ "key|right",
+ "key|left",
+ "delay|300",
+ "hash|3",
+ "key|enter",
+ "delay|300",
+ "hashWait|4"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Check text scaling",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "BCD2C22B" ]
+ },
+ "2": {
+ "description": "Check text clipping",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "BCD2C22B" ]
+ },
+ "3": {
+ "description": "Check clipped region movement and text clipping",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "BE2F6B1A" ]
+ },
+ "4": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_clipping/makefile b/frontends/calculator/CEdev/examples/gfx_clipping/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_clipping/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_clipping/readme.md b/frontends/calculator/CEdev/examples/gfx_clipping/readme.md
new file mode 100644
index 0000000..c0f0dbb
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_clipping/readme.md
@@ -0,0 +1,10 @@
+### GraphX Clipping Demo
+
+This example demonstrates alternating the clipping region and using clipped text properly.
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_clipping/screenshot.gif b/frontends/calculator/CEdev/examples/gfx_clipping/screenshot.gif
new file mode 100644
index 0000000..1c1e5e3
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_clipping/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_clipping/src/main.c b/frontends/calculator/CEdev/examples/gfx_clipping/src/main.c
new file mode 100644
index 0000000..97f30eb
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_clipping/src/main.c
@@ -0,0 +1,85 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Use some random color as the transparent one */
+#define TRANSPARENT_COLOR 10
+#define FONT_WIDTH 8
+#define FONT_HEIGHT 8
+
+void main(void) {
+ uint8_t key = 24;
+
+ /* Starting text posistion */
+ int x = (LCD_WIDTH / 2) - 20;
+ int y = (LCD_HEIGHT / 2) - 5;
+
+ int box_stride = 1;
+ int box_scale = 20;
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+ gfx_FillScreen(gfx_black);
+
+ /* Setup the colors */
+ gfx_SetColor(gfx_white);
+ gfx_SetTextFGColor(gfx_red);
+
+ /* Set the transparent text background color */
+ gfx_SetTextBGColor(TRANSPARENT_COLOR);
+ gfx_SetTextTransparentColor(TRANSPARENT_COLOR);
+
+ /* Print some scaled font */
+ gfx_SetTextScale(2, 2);
+ gfx_PrintStringXY("This text is SCALED!!", 15, 10);
+
+ /* Wait for a key before continuing */
+ while (!os_GetCSC());
+
+ /* Configure the font to normal size, clipped, and monospaced */
+ gfx_SetTextScale(1, 1);
+ gfx_SetTextConfig(gfx_text_clip);
+ gfx_SetMonospaceFont(FONT_WIDTH);
+
+ /* Graphics routines draw to the back buffer */
+ gfx_SetDrawBuffer();
+
+ /* Run until the [ENTER] key is pressed */
+ do {
+ /* Check if any keys are pressed */
+ if (key == sk_Left) { x--; }
+ if (key == sk_Right) { x++; }
+ if (key == sk_Down) { y++; }
+ if (key == sk_Up) { y--; }
+ if (key) {
+ gfx_SetClipRegion((LCD_WIDTH/2) - box_scale, (LCD_HEIGHT/2) - box_scale, (LCD_WIDTH/2) + box_scale, (LCD_HEIGHT/2) + box_scale);
+
+ gfx_FillScreen(gfx_black);
+ gfx_PrintStringXY("FUN WITH CLIPPING", x, y);
+
+ /* Draw a rectangle on the edges of the clipping region so we can see it */
+ gfx_Rectangle_NoClip((LCD_WIDTH/2) - box_scale, (LCD_HEIGHT/2) - box_scale, box_scale * 2, box_scale * 2);
+
+ /* Change the clipping region */
+ box_scale += box_stride;
+
+ /* Check if we should increase or decrease the clip region */
+ if (box_scale > 100 || box_scale < 10) {
+ box_stride = -box_stride;
+ }
+
+ /* Move the graphics so the user can see it */
+ gfx_SwapDraw();
+ }
+ } while ((key = os_GetCSC()) != sk_Enter);
+
+ /* Usual cleanup */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_floodfill/autotester.json b/frontends/calculator/CEdev/examples/gfx_floodfill/autotester.json
new file mode 100644
index 0000000..01e94ee
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_floodfill/autotester.json
@@ -0,0 +1,36 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|300",
+ "hash|1",
+ "key|enter",
+ "delay|300",
+ "hash|2",
+ "delay|300",
+ "key|enter",
+ "delay|300"
+ ],
+ "hashes": {
+ "1": {
+ "description": "A black star outline is drawn to the screen",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "7EA01B1B" ]
+ },
+ "2": {
+ "description": "The rest of the screen will be filled a solid black",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "4CECC590" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_floodfill/makefile b/frontends/calculator/CEdev/examples/gfx_floodfill/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_floodfill/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_floodfill/readme.md b/frontends/calculator/CEdev/examples/gfx_floodfill/readme.md
new file mode 100644
index 0000000..e94fd0d
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_floodfill/readme.md
@@ -0,0 +1,10 @@
+### GraphX Flood Fill Demo
+
+This example demonstrates using the flood fill algorithim implemented in GraphX
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_floodfill/screenshot.gif b/frontends/calculator/CEdev/examples/gfx_floodfill/screenshot.gif
new file mode 100644
index 0000000..f6408ab
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_floodfill/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_floodfill/src/main.c b/frontends/calculator/CEdev/examples/gfx_floodfill/src/main.c
new file mode 100644
index 0000000..31a2090
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_floodfill/src/main.c
@@ -0,0 +1,50 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+void main(void) {
+ int pts[10], i;
+
+ int rx = 100;
+ int ry = 100;
+ int cx = LCD_WIDTH / 2;
+ int cy = LCD_HEIGHT / 2;
+
+ /* Build the coordinates of the polygon */
+ double theta = -M_PI / 2;
+ double dtheta = 4 * M_PI / 5;
+ for (i = 0; i < 10; i += 2) {
+ pts[i+0] = (int)(cx + rx * cos(theta)),
+ pts[i+1] = (int)(cy + ry * sin(theta));
+ theta += dtheta;
+ }
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette */
+ gfx_SetColor(gfx_black);
+
+ /* Draw a polygon on the buffer */
+ gfx_Polygon(pts, 5);
+
+ /* Pause */
+ while (!os_GetCSC());
+
+ /* Flood fill the rest of the screen */
+ gfx_FloodFill(0, 0, 0);
+
+ /* Pause */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/autotester.json b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/autotester.json
new file mode 100644
index 0000000..3b57eb8
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/autotester.json
@@ -0,0 +1,31 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp",
+ "src/gfx/var_gfx.8xv"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Fullscreen tiled image",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "2846A371" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44", "43BF8092", "5ACF1C01" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/makefile b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/readme.md b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/readme.md
new file mode 100644
index 0000000..c656e6d
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/readme.md
@@ -0,0 +1,9 @@
+### GraphX Fullscreen Image Demo
+
+An example of a compressed tiled image to construct a fullscreen image.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/screenshot.png b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/screenshot.png
new file mode 100644
index 0000000..68c625a
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/convpng.ini
new file mode 100644
index 0000000..3c282fe
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/convpng.ini
@@ -0,0 +1,15 @@
+// Appvar to place all graphics in
+
+#AppvarC : var_gfx
+#OutputPalettes : tiles_gfx
+#PNGImages :
+ tileset
+
+// The compressed group for the tileset
+
+#GroupC : tiles_gfx
+#Tilemap : 80,80,true
+#Compression : zx7
+#PNGImages :
+ tileset
+
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c
new file mode 100644
index 0000000..7243683
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c
@@ -0,0 +1,4 @@
+// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h
new file mode 100644
index 0000000..1ae708a
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h
@@ -0,0 +1,8 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __tiles_gfx__
+#define __tiles_gfx__
+#include <stdint.h>
+
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.c b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.c
new file mode 100644
index 0000000..ff03cd2
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.c
@@ -0,0 +1,18 @@
+// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
+uint8_t *tileset_tiles_compressed[12] = {
+ (uint8_t*)0,
+ (uint8_t*)3752,
+ (uint8_t*)7872,
+ (uint8_t*)12183,
+ (uint8_t*)15527,
+ (uint8_t*)20894,
+ (uint8_t*)25809,
+ (uint8_t*)30646,
+ (uint8_t*)35982,
+ (uint8_t*)41664,
+ (uint8_t*)46419,
+ (uint8_t*)50679,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.png b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.png
new file mode 100644
index 0000000..4baee35
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.8xv b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.8xv
new file mode 100644
index 0000000..b4981a2
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.8xv
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.c b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.c
new file mode 100644
index 0000000..6de6afa
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.c
@@ -0,0 +1,31 @@
+// convpng
+#include <stdint.h>
+#include "var_gfx.h"
+
+#include <fileioc.h>
+uint8_t *var_gfx[2] = {
+ (uint8_t*)0,
+ (uint8_t*)55530,
+};
+
+bool var_gfx_init(void) {
+ unsigned int data, i;
+ ti_var_t appvar;
+
+ ti_CloseAll();
+
+ appvar = ti_Open("var_gfx", "r");
+ data = (unsigned int)ti_GetDataPtr(appvar) - (unsigned int)var_gfx[0];
+ for (i = 0; i < var_gfx_num; i++) {
+ var_gfx[i] += data;
+ }
+
+ ti_CloseAll();
+
+ data = (unsigned int)var_gfx[0] - (unsigned int)tileset_tiles_compressed[0];
+ for (i = 0; i < tileset_tiles_num; i++) {
+ tileset_tiles_compressed[i] += data;
+ }
+
+ return (bool)appvar;
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.h b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.h
new file mode 100644
index 0000000..23b61b1
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.h
@@ -0,0 +1,31 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __var_gfx__
+#define __var_gfx__
+#include <stdint.h>
+
+#include <stdbool.h>
+
+#define var_gfx_num 2
+
+extern uint8_t *var_gfx[2];
+#define tileset_compressed ((gfx_sprite_t*)var_gfx[0])
+#define tileset_tiles_num 12
+extern uint8_t *tileset_tiles_compressed[12];
+#define tileset_tile_0_compressed ((gfx_sprite_t*)tileset_tiles_compressed[0])
+#define tileset_tile_1_compressed ((gfx_sprite_t*)tileset_tiles_compressed[1])
+#define tileset_tile_2_compressed ((gfx_sprite_t*)tileset_tiles_compressed[2])
+#define tileset_tile_3_compressed ((gfx_sprite_t*)tileset_tiles_compressed[3])
+#define tileset_tile_4_compressed ((gfx_sprite_t*)tileset_tiles_compressed[4])
+#define tileset_tile_5_compressed ((gfx_sprite_t*)tileset_tiles_compressed[5])
+#define tileset_tile_6_compressed ((gfx_sprite_t*)tileset_tiles_compressed[6])
+#define tileset_tile_7_compressed ((gfx_sprite_t*)tileset_tiles_compressed[7])
+#define tileset_tile_8_compressed ((gfx_sprite_t*)tileset_tiles_compressed[8])
+#define tileset_tile_9_compressed ((gfx_sprite_t*)tileset_tiles_compressed[9])
+#define tileset_tile_10_compressed ((gfx_sprite_t*)tileset_tiles_compressed[10])
+#define tileset_tile_11_compressed ((gfx_sprite_t*)tileset_tiles_compressed[11])
+#define sizeof_tiles_gfx_pal 512
+#define tiles_gfx_pal ((uint16_t*)var_gfx[1])
+bool var_gfx_init(void);
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/main.c b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/main.c
new file mode 100644
index 0000000..1ed734b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/main.c
@@ -0,0 +1,66 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <compression.h>
+#include <graphx.h>
+
+/* Include the graphics */
+#include "gfx/tiles_gfx.h"
+#include "gfx/var_gfx.h"
+
+/* Include the external map data */
+extern uint8_t tilemap_map[];
+
+#define TILE_WIDTH 80
+#define TILE_HEIGHT 80
+
+void main(void) {
+ unsigned int i;
+ unsigned int x, y;
+ gfx_sprite_t *tile;
+
+ tile = gfx_MallocSprite(TILE_WIDTH, TILE_HEIGHT);
+
+ /* Initialize the graphics */
+ if (!var_gfx_init()) {
+ return;
+ }
+
+ /* Start the graphics */
+ gfx_Begin();
+ x = y = i = 0;
+
+ /* Draw offscreen */
+ gfx_SetDrawBuffer();
+
+ /* Decompress the tiles */
+ for (; i < tileset_tiles_num; i++) {
+ zx7_Decompress(tile, tileset_tiles_compressed[i]);
+ gfx_Sprite_NoClip(tile, x, y);
+ x += TILE_WIDTH;
+ if (x >= LCD_WIDTH) {
+ y += TILE_HEIGHT;
+ x = 0;
+ }
+ }
+
+ /* Copy to visible screen */
+ gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0);
+ gfx_BlitBuffer();
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Close the graphics and return to the OS */
+ gfx_End();
+
+ /* Free the earlier allocation */
+ free(tile);
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_hello_world/autotester.json b/frontends/calculator/CEdev/examples/gfx_hello_world/autotester.json
new file mode 100644
index 0000000..2e8ca49
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_hello_world/autotester.json
@@ -0,0 +1,40 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|300",
+ "hash|1",
+ "hash|2",
+ "key|enter",
+ "delay|300",
+ "hashWait|3"
+ ],
+ "hashes": {
+ "1": {
+ "description": "The background will be black (check a part before the text)",
+ "start": "vram_start",
+ "size": "0x4000",
+ "expected_CRCs": [ "94640B85" ]
+ },
+ "2": {
+ "description": "The background will be black (check a part after the text)",
+ "start": "0xD4EC00",
+ "size": "0x4000",
+ "expected_CRCs": [ "94640B85" ]
+ },
+ "3": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_hello_world/makefile b/frontends/calculator/CEdev/examples/gfx_hello_world/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_hello_world/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_hello_world/readme.md b/frontends/calculator/CEdev/examples/gfx_hello_world/readme.md
new file mode 100644
index 0000000..24fed5e
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_hello_world/readme.md
@@ -0,0 +1,10 @@
+### GraphX Hello World Demo
+
+This example of the graphics library demostrates filling the screen black and then printing `Hello World!` centered on the screen.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_hello_world/screenshot.png b/frontends/calculator/CEdev/examples/gfx_hello_world/screenshot.png
new file mode 100644
index 0000000..1a3f070
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_hello_world/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_hello_world/src/main.c b/frontends/calculator/CEdev/examples/gfx_hello_world/src/main.c
new file mode 100644
index 0000000..852120e
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_hello_world/src/main.c
@@ -0,0 +1,46 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+#define FONT_HEIGHT 8
+
+/* Function prototypes */
+void print_string_centered(const char *str);
+
+void main(void) {
+ const char *msg = "Hello World!";
+
+ /* Seed the random numbers */
+ srand(rtc_Time());
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Fill the screen black */
+ gfx_FillScreen(gfx_black);
+
+ /* Set the random text color */
+ gfx_SetTextFGColor(randInt(1, 255));
+
+ /* Print the message on the screen */
+ print_string_centered(msg);
+
+ /* Wait for a key to be pressed */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
+
+/* Prints a screen centered string */
+void print_string_centered(const char *str) {
+ gfx_PrintStringXY(str, (LCD_WIDTH - gfx_GetStringWidth(str)) / 2, (LCD_HEIGHT - FONT_HEIGHT) / 2);
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_light_dark/autotester.json b/frontends/calculator/CEdev/examples/gfx_light_dark/autotester.json
new file mode 100644
index 0000000..772c268
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_light_dark/autotester.json
@@ -0,0 +1,63 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch", "delay|300", "hash|rectangles", "hash|palette_0",
+ "key|enter", "delay|1000", "hash|palette_25",
+ "key|enter", "delay|1000", "hash|palette_50",
+ "key|enter", "delay|1000", "hash|palette_75",
+ "key|enter", "delay|1000", "hash|palette_100",
+ "key|enter", "delay|300", "hash|after_exit"
+ ],
+ "hashes": {
+ "rectangles": {
+ "description": "Test rectangles",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "328D511E" ]
+ },
+ "palette_0": {
+ "description": "Test lighten/darken fade, 0% progress",
+ "start": "lcdPalette",
+ "size": "8",
+ "expected_CRCs": [ "41C3BFF8" ]
+ },
+ "palette_25": {
+ "description": "Test lighten/darken fade, 25% progress",
+ "start": "lcdPalette",
+ "size": "8",
+ "expected_CRCs": [ "5F64F889" ]
+ },
+ "palette_50": {
+ "description": "Test lighten/darken fade, 50% progress",
+ "start": "lcdPalette",
+ "size": "8",
+ "expected_CRCs": [ "C48CEF7C" ]
+ },
+ "palette_75": {
+ "description": "Test lighten/darken fade, 75% progress",
+ "start": "lcdPalette",
+ "size": "8",
+ "expected_CRCs": [ "81FEDD4E" ]
+ },
+ "palette_100": {
+ "description": "Test lighten/darken fade, 100% progress",
+ "start": "lcdPalette",
+ "size": "8",
+ "expected_CRCs": [ "B451E096" ]
+ },
+ "after_exit": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_light_dark/makefile b/frontends/calculator/CEdev/examples/gfx_light_dark/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_light_dark/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_light_dark/readme.md b/frontends/calculator/CEdev/examples/gfx_light_dark/readme.md
new file mode 100644
index 0000000..e429c6c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_light_dark/readme.md
@@ -0,0 +1,10 @@
+### GraphX Lighten and Darken Demo
+
+Demonstrates rectangle drawing and using gfx_Darken and gfx_Lighten to modify colors in the palette to implement fade effects.
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_light_dark/screenshot.gif b/frontends/calculator/CEdev/examples/gfx_light_dark/screenshot.gif
new file mode 100644
index 0000000..8470736
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_light_dark/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_light_dark/src/main.c b/frontends/calculator/CEdev/examples/gfx_light_dark/src/main.c
new file mode 100644
index 0000000..d4c0a06
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_light_dark/src/main.c
@@ -0,0 +1,59 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+#define color gfx_RGBTo1555(34, 55, 89)
+
+void main(void) {
+ uint8_t i = 0;
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* For i in 0..255 */
+ do {
+
+ /* Fade out to black */
+ gfx_palette[0] = gfx_Darken(color, i);
+ /* Fade in from black */
+ gfx_palette[1] = gfx_Darken(color, ~i);
+ /* Fade in from white */
+ gfx_palette[3] = gfx_Lighten(color, ~i);
+ /* Fade out to white */
+ gfx_palette[2] = gfx_Lighten(color, i);
+
+ /* Fade out to black */
+ gfx_SetColor(0);
+ gfx_FillRectangle_NoClip(0, 0, 160, 120);
+ /* Fade in from black */
+ gfx_SetColor(1);
+ gfx_FillRectangle_NoClip(160, 0, 160, 120);
+ /* Fade in from white */
+ gfx_SetColor(2);
+ gfx_FillRectangle_NoClip(0, 120, 160, 120);
+ /* Fade out to white */
+ gfx_SetColor(3);
+ gfx_FillRectangle_NoClip(160, 120, 160, 120);
+
+ /* Wait for a keypress at the start of each quarter of the fade */
+ if (!(i & 0x3f)) {
+ while (!os_GetCSC());
+ }
+
+ /* Loop until i is 0 again because of 8 bit range */
+ } while (++i);
+
+ /* Wait for a keypress */
+ while (!os_GetCSC());
+
+ /* Usual cleanup */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/autotester.json b/frontends/calculator/CEdev/examples/gfx_rletsprite/autotester.json
new file mode 100644
index 0000000..8093b64
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/autotester.json
@@ -0,0 +1,30 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Make sure the sprites are displayed properly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "4F8D6CB" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/makefile b/frontends/calculator/CEdev/examples/gfx_rletsprite/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/readme.md b/frontends/calculator/CEdev/examples/gfx_rletsprite/readme.md
new file mode 100644
index 0000000..b0c8df7
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/readme.md
@@ -0,0 +1,10 @@
+### GraphX RLETSprite Demo
+
+Draws a sprite with RLE transparency in many clipping scenarios and converts to
+and from a normal sprite with transparency. Created for testing.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/screenshot.png b/frontends/calculator/CEdev/examples/gfx_rletsprite/screenshot.png
new file mode 100644
index 0000000..9235010
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/convpng.ini
new file mode 100644
index 0000000..bac699c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/convpng.ini
@@ -0,0 +1,5 @@
+#GroupC : logo_gfx
+#Style : rlet
+#TransparentColor : 255,255,255
+#PNGImages :
+ ubuntu
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.c b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.c
new file mode 100644
index 0000000..894a456
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.c
@@ -0,0 +1,203 @@
+// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+uint16_t logo_gfx_pal[197] = {
+ 0xFFFF, // 00 :: rgb(255,255,255)
+ 0x7C00, // 01 :: rgb(255,0,0)
+ 0x6800, // 02 :: rgb(212,2,2)
+ 0xE821, // 03 :: rgb(213,11,11)
+ 0xFFE0, // 04 :: rgb(255,255,0)
+ 0x83E0, // 05 :: rgb(0,255,0)
+ 0x001F, // 06 :: rgb(0,0,255)
+ 0x7E20, // 07 :: rgb(251,139,0)
+ 0x7920, // 08 :: rgb(244,72,0)
+ 0xFFFF, // 09 :: rgb(255,254,254)
+ 0x7E20, // 10 :: rgb(251,139,2)
+ 0x7E20, // 11 :: rgb(251,139,1)
+ 0xFFFF, // 12 :: rgb(255,253,253)
+ 0xFE20, // 13 :: rgb(251,140,4)
+ 0xFFFF, // 14 :: rgb(255,254,253)
+ 0xFECC, // 15 :: rgb(252,182,97)
+ 0x7A90, // 16 :: rgb(249,163,128)
+ 0x7FDC, // 17 :: rgb(254,244,231)
+ 0xF985, // 18 :: rgb(245,100,40)
+ 0x7F9A, // 19 :: rgb(253,225,213)
+ 0x7FDD, // 20 :: rgb(253,242,242)
+ 0x6D6B, // 21 :: rgb(226,90,90)
+ 0xFFBC, // 22 :: rgb(254,239,233)
+ 0xF921, // 23 :: rgb(244,77,7)
+ 0x7EED, // 24 :: rgb(252,187,107)
+ 0xFF99, // 25 :: rgb(254,231,203)
+ 0xFFFE, // 26 :: rgb(255,253,250)
+ 0xFF16, // 27 :: rgb(251,199,177)
+ 0xF921, // 28 :: rgb(244,78,8)
+ 0x7F31, // 29 :: rgb(253,204,143)
+ 0x7FDD, // 30 :: rgb(252,241,241)
+ 0xF18C, // 31 :: rgb(229,102,102)
+ 0x7B5A, // 32 :: rgb(247,212,212)
+ 0xFF76, // 33 :: rgb(253,221,181)
+ 0xF652, // 34 :: rgb(237,151,151)
+ 0x7652, // 35 :: rgb(236,145,145)
+ 0xE800, // 36 :: rgb(212,3,3)
+ 0x718C, // 37 :: rgb(228,98,98)
+ 0xFF54, // 38 :: rgb(253,214,165)
+ 0x7673, // 39 :: rgb(237,153,153)
+ 0xFF32, // 40 :: rgb(252,205,148)
+ 0x7EA8, // 41 :: rgb(251,169,68)
+ 0x6CC6, // 42 :: rgb(219,48,48)
+ 0x7FBA, // 43 :: rgb(254,234,211)
+ 0xE842, // 44 :: rgb(215,20,20)
+ 0xFB7B, // 45 :: rgb(250,224,224)
+ 0xFF77, // 46 :: rgb(253,224,187)
+ 0xF652, // 47 :: rgb(237,149,149)
+ 0x7F75, // 48 :: rgb(253,218,175)
+ 0x7FFE, // 49 :: rgb(254,249,249)
+ 0x7EEC, // 50 :: rgb(252,185,102)
+ 0x7FBD, // 51 :: rgb(252,236,236)
+ 0xFFFF, // 52 :: rgb(255,253,251)
+ 0x7EED, // 53 :: rgb(252,188,109)
+ 0x7FFF, // 54 :: rgb(254,252,252)
+ 0xFAF7, // 55 :: rgb(243,189,189)
+ 0x7B9B, // 56 :: rgb(250,225,225)
+ 0xFE87, // 57 :: rgb(251,164,56)
+ 0x7AD2, // 58 :: rgb(250,179,149)
+ 0xED09, // 59 :: rgb(224,70,70)
+ 0xECA5, // 60 :: rgb(218,43,43)
+ 0xFAF4, // 61 :: rgb(250,190,165)
+ 0x6D29, // 62 :: rgb(224,74,74)
+ 0x6D4A, // 63 :: rgb(225,82,82)
+ 0xED08, // 64 :: rgb(223,69,69)
+ 0x6D08, // 65 :: rgb(222,63,63)
+ 0x76D6, // 66 :: rgb(242,178,178)
+ 0xECC6, // 67 :: rgb(220,51,51)
+ 0xF1AD, // 68 :: rgb(229,109,109)
+ 0xFFDD, // 69 :: rgb(254,246,235)
+ 0x718C, // 70 :: rgb(228,97,97)
+ 0xFFBC, // 71 :: rgb(254,239,234)
+ 0xFF77, // 72 :: rgb(253,223,187)
+ 0x76D6, // 73 :: rgb(242,179,179)
+ 0x6863, // 74 :: rgb(216,26,26)
+ 0x7AB1, // 75 :: rgb(249,169,136)
+ 0xE843, // 76 :: rgb(215,21,21)
+ 0xFF9C, // 77 :: rgb(251,230,230)
+ 0xF9A6, // 78 :: rgb(245,108,51)
+ 0x7F97, // 79 :: rgb(253,225,189)
+ 0x7942, // 80 :: rgb(244,81,13)
+ 0x7FBA, // 81 :: rgb(254,236,215)
+ 0xFE21, // 82 :: rgb(251,143,11)
+ 0x7FBC, // 83 :: rgb(251,234,234)
+ 0xFB18, // 84 :: rgb(245,197,197)
+ 0x76D6, // 85 :: rgb(242,177,177)
+ 0x71AD, // 86 :: rgb(229,106,106)
+ 0xFAB2, // 87 :: rgb(249,176,144)
+ 0x7F9A, // 88 :: rgb(253,227,217)
+ 0x7FDD, // 89 :: rgb(254,242,237)
+ 0x7FDE, // 90 :: rgb(253,243,243)
+ 0x7AB1, // 91 :: rgb(249,171,139)
+ 0xFFBB, // 92 :: rgb(254,239,221)
+ 0xF694, // 93 :: rgb(240,167,167)
+ 0xFE87, // 94 :: rgb(251,167,61)
+ 0xFF7A, // 95 :: rgb(253,224,213)
+ 0x7F0E, // 96 :: rgb(253,193,117)
+ 0xFA6F, // 97 :: rgb(249,159,121)
+ 0x7FFE, // 98 :: rgb(255,251,247)
+ 0xFEAA, // 99 :: rgb(251,175,80)
+ 0x7694, // 100 :: rgb(239,161,161)
+ 0x7AF3, // 101 :: rgb(250,186,160)
+ 0xE801, // 102 :: rgb(213,5,5)
+ 0xFA6F, // 103 :: rgb(249,159,122)
+ 0x7FDB, // 104 :: rgb(254,241,224)
+ 0xF920, // 105 :: rgb(244,75,4)
+ 0x7A8F, // 106 :: rgb(249,160,123)
+ 0x7694, // 107 :: rgb(239,163,163)
+ 0x7B7B, // 108 :: rgb(249,220,220)
+ 0xE822, // 109 :: rgb(214,14,14)
+ 0x6D29, // 110 :: rgb(223,71,71)
+ 0xFAF7, // 111 :: rgb(244,192,192)
+ 0xFF55, // 112 :: rgb(253,215,169)
+ 0x7A8F, // 113 :: rgb(249,161,124)
+ 0xFF32, // 114 :: rgb(253,207,151)
+ 0x7FBB, // 115 :: rgb(253,233,224)
+ 0xF694, // 116 :: rgb(239,165,165)
+ 0xFFBC, // 117 :: rgb(254,238,231)
+ 0xFB39, // 118 :: rgb(247,208,208)
+ 0x7B38, // 119 :: rgb(246,201,201)
+ 0x6842, // 120 :: rgb(214,16,16)
+ 0x7FFF, // 121 :: rgb(254,251,251)
+ 0xFB7B, // 122 :: rgb(250,223,223)
+ 0xF16C, // 123 :: rgb(227,95,95)
+ 0x7672, // 124 :: rgb(237,152,152)
+ 0x7631, // 125 :: rgb(235,138,138)
+ 0xFE87, // 126 :: rgb(251,165,60)
+ 0xFFDD, // 127 :: rgb(254,245,240)
+ 0xFF33, // 128 :: rgb(252,208,154)
+ 0x7F79, // 129 :: rgb(252,220,207)
+ 0x7E41, // 130 :: rgb(251,144,12)
+ 0x7E42, // 131 :: rgb(251,146,19)
+ 0x7F36, // 132 :: rgb(251,202,182)
+ 0x7FDC, // 133 :: rgb(254,243,230)
+ 0x7963, // 134 :: rgb(244,89,24)
+ 0x7F0E, // 135 :: rgb(252,193,119)
+ 0xFE87, // 136 :: rgb(251,164,57)
+ 0x7A2B, // 137 :: rgb(247,138,92)
+ 0xFA6E, // 138 :: rgb(249,157,119)
+ 0xFF9B, // 139 :: rgb(253,229,219)
+ 0x7920, // 140 :: rgb(244,74,3)
+ 0xFFDE, // 141 :: rgb(254,246,243)
+ 0xF964, // 142 :: rgb(245,95,32)
+ 0xF921, // 143 :: rgb(244,76,6)
+ 0xFAD3, // 144 :: rgb(250,183,155)
+ 0xFFBA, // 145 :: rgb(254,237,216)
+ 0xFAD3, // 146 :: rgb(250,182,154)
+ 0xF985, // 147 :: rgb(245,103,44)
+ 0x7FFE, // 148 :: rgb(255,252,250)
+ 0x7FFE, // 149 :: rgb(255,251,250)
+ 0x6800, // 150 :: rgb(212,1,1)
+ 0x7B18, // 151 :: rgb(245,195,195)
+ 0x7AD2, // 152 :: rgb(250,178,148)
+ 0x7ECB, // 153 :: rgb(251,179,87)
+ 0x7EA8, // 154 :: rgb(251,169,69)
+ 0xFEAA, // 155 :: rgb(251,176,82)
+ 0x7652, // 156 :: rgb(236,146,146)
+ 0xF942, // 157 :: rgb(244,83,16)
+ 0xF9E9, // 158 :: rgb(246,126,76)
+ 0xFFDD, // 159 :: rgb(254,246,242)
+ 0x71EF, // 160 :: rgb(231,120,120)
+ 0xFB39, // 161 :: rgb(247,206,206)
+ 0xFF37, // 162 :: rgb(252,208,190)
+ 0x6D08, // 163 :: rgb(222,65,65)
+ 0x7FDE, // 164 :: rgb(253,244,244)
+ 0x7A4D, // 165 :: rgb(248,147,106)
+ 0xFB5A, // 166 :: rgb(248,216,216)
+ 0x7F79, // 167 :: rgb(253,220,206)
+ 0xFAD3, // 168 :: rgb(250,181,153)
+ 0x7F15, // 169 :: rgb(251,196,173)
+ 0x7F31, // 170 :: rgb(252,201,137)
+ 0xF9C8, // 171 :: rgb(246,116,62)
+ 0xFAB2, // 172 :: rgb(250,176,145)
+ 0xFF10, // 173 :: rgb(252,198,131)
+ 0x7A6E, // 174 :: rgb(248,155,117)
+ 0xFF9B, // 175 :: rgb(253,232,224)
+ 0xFFBB, // 176 :: rgb(254,240,221)
+ 0x7920, // 177 :: rgb(244,74,2)
+ 0x7FDC, // 178 :: rgb(254,243,229)
+ 0xFE21, // 179 :: rgb(251,141,6)
+ 0x7F53, // 180 :: rgb(253,210,155)
+ 0xF9E9, // 181 :: rgb(247,127,77)
+ 0xFF58, // 182 :: rgb(252,213,197)
+ 0xFE87, // 183 :: rgb(251,164,58)
+ 0xFF54, // 184 :: rgb(253,213,164)
+ 0xFEA9, // 185 :: rgb(251,174,78)
+ 0xFE21, // 186 :: rgb(251,143,10)
+ 0x79E8, // 187 :: rgb(246,120,67)
+ 0x7E87, // 188 :: rgb(251,163,54)
+ 0xFFDD, // 189 :: rgb(254,248,240)
+ 0x7F57, // 190 :: rgb(252,210,193)
+ 0xFF76, // 191 :: rgb(253,222,183)
+ 0xC3E0, // 192 :: rgb(128,255,0)
+ 0x0210, // 193 :: rgb(0,128,128)
+ 0x7E00, // 194 :: rgb(255,128,0)
+ 0x4030, // 195 :: rgb(128,8,128)
+ 0x6800, // 196 :: rgb(212,0,0)
+}; \ No newline at end of file
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.h b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.h
new file mode 100644
index 0000000..96abca5
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.h
@@ -0,0 +1,17 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __logo_gfx__
+#define __logo_gfx__
+#include <stdint.h>
+
+#define logo_gfx_transparent_color_index 0
+
+#define ubuntu_width 31
+#define ubuntu_height 30
+#define ubuntu_size 545
+extern uint8_t ubuntu_data[545];
+#define ubuntu ((gfx_rletsprite_t*)ubuntu_data)
+#define sizeof_logo_gfx_pal 394
+extern uint16_t logo_gfx_pal[197];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/ubuntu.c b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/ubuntu.c
new file mode 100644
index 0000000..eed6d7a
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/ubuntu.c
@@ -0,0 +1,25 @@
+// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+// 8 bpp image
+uint8_t ubuntu_data[545] = {
+ 31,30, // width,height
+ 0x00,0x04,0xC0,0x04,0x04,0x04,0x17,0x04,0x04,0x04,0x04,0xC2,0x00,0x01,0x05,0x14,0x04,0x0C,0x42,0x23,0x6C,0x05,0x01,0x01,0x00,0x01,0x05,0x13,0x06,0x09,0x15,0xC4,
+ 0xC4,0x03,0x6F,0x04,0x01,0x01,0x00,0x01,0x05,0x0C,0x0D,0x09,0x58,0x3D,0x4B,0x10,0x90,0x16,0xA6,0xC4,0xC4,0xC4,0xC4,0x3E,0x04,0x01,0x01,0x0C,0x0E,0x84,0x12,0x08,
+ 0x08,0x08,0x08,0x08,0xA9,0xA1,0xC4,0xC4,0xC4,0xC4,0x40,0x05,0x0A,0x01,0x85,0x01,0x0E,0x8B,0x17,0x08,0x08,0x08,0x08,0x08,0xA5,0x09,0xA3,0xC4,0xC4,0x96,0x55,0x05,
+ 0x09,0x03,0x80,0x83,0x11,0x01,0x0C,0x8A,0x08,0x08,0x08,0x08,0x08,0x17,0xA7,0xA4,0x9C,0xA0,0x97,0x06,0x08,0x04,0x70,0x0B,0x07,0x0F,0x01,0x0E,0x7F,0x86,0x69,0x8E,
+ 0x93,0x1C,0x08,0x9D,0xA8,0x9F,0x95,0x13,0x5B,0x09,0x04,0x07,0x06,0x5C,0x52,0x07,0x07,0x0A,0x19,0x01,0x02,0x5F,0x59,0x02,0x09,0x94,0xA2,0x9E,0x08,0x08,0x8F,0x08,
+ 0x08,0x3A,0x04,0x07,0x06,0x9B,0x07,0x07,0x07,0x07,0x87,0x07,0x08,0x09,0x92,0x8C,0x08,0x08,0x08,0x50,0x47,0x03,0x06,0x07,0xB0,0x0B,0x07,0x07,0x07,0x7E,0x1A,0x09,
+ 0x06,0x57,0x08,0x08,0x08,0x08,0x10,0x03,0x06,0x06,0xB8,0x07,0x07,0x07,0x0A,0x51,0x0A,0x07,0x09,0x4E,0x08,0x08,0x08,0x12,0x09,0x02,0x02,0x04,0x8D,0xAC,0xAE,0xBE,
+ 0x01,0x04,0x18,0x07,0x07,0x9A,0x0C,0x06,0x65,0x08,0x08,0x08,0x08,0x16,0x02,0x01,0x0A,0x0E,0xAB,0x08,0x08,0xB1,0x1B,0xBD,0xBA,0x07,0xAD,0x0C,0x06,0x75,0x71,0x6A,
+ 0x67,0x61,0x73,0x02,0x01,0x06,0x81,0x08,0x08,0x08,0x08,0xBB,0x01,0x03,0xB7,0x07,0xB4,0x14,0x01,0x06,0x13,0x08,0x08,0x08,0x08,0xB5,0x01,0x03,0xBC,0x07,0xAA,0x0C,
+ 0x06,0x5A,0x64,0x6B,0x74,0x5D,0x53,0x02,0x01,0x0A,0x09,0x89,0x08,0x08,0x1C,0xB6,0xB2,0xB3,0x07,0x99,0x0C,0x06,0x49,0xC4,0xC4,0xC4,0xC4,0x4D,0x02,0x02,0x0A,0x0E,
+ 0x1B,0x98,0xAF,0x1A,0xB9,0x07,0x07,0x82,0x45,0x0B,0x06,0x3F,0xC4,0xC4,0xC4,0x4A,0x0C,0x02,0x06,0x06,0x19,0x07,0x07,0x07,0x07,0x32,0x0A,0x06,0x37,0x02,0xC4,0xC4,
+ 0xC4,0x44,0x03,0x06,0x07,0x09,0x88,0x07,0x07,0x07,0x07,0x28,0x08,0x07,0x76,0x4C,0xC4,0xC4,0xC4,0x24,0x20,0x03,0x07,0x06,0x48,0x07,0x07,0x07,0x07,0x30,0x01,0x02,
+ 0x31,0x09,0x03,0x08,0x14,0x7D,0x03,0xC4,0xC4,0xC4,0xC4,0x1F,0x04,0x08,0x13,0x35,0x07,0x07,0x29,0x09,0x36,0x2A,0x43,0x46,0x56,0x6E,0x6D,0xC4,0xC4,0x02,0x03,0xC4,
+ 0x3C,0x1E,0x04,0x08,0x04,0x34,0x0F,0x0D,0x2B,0x01,0x0D,0x2F,0xC4,0xC4,0xC4,0xC4,0xC4,0xC4,0x78,0x7C,0x14,0x79,0x7A,0x38,0x05,0x0A,0x01,0x2E,0x01,0x0D,0x33,0x2C,
+ 0xC4,0xC4,0xC4,0xC4,0xC4,0x66,0x77,0x62,0x72,0x60,0x4F,0x06,0x0C,0x0E,0x27,0x02,0xC4,0xC4,0xC4,0xC4,0xC4,0x7B,0x09,0x63,0x07,0x07,0x0B,0x26,0x05,0x0D,0x0D,0x2D,
+ 0x22,0x25,0x3B,0x41,0x15,0x54,0x68,0x07,0x07,0x07,0x07,0x39,0x05,0x00,0x01,0x05,0x13,0x06,0x11,0x0A,0x07,0x07,0x07,0x5E,0x04,0x01,0x01,0x00,0x01,0x05,0x14,0x05,
+ 0x18,0x07,0x07,0x0D,0xBF,0x04,0x01,0x01,0x00,0x01,0x05,0x15,0x03,0x21,0x1D,0x91,0x05,0x01,0x01,0x00,0x04,0xC1,0x06,0x06,0x06,0x17,0x04,0x06,0x06,0x06,0xC3,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/ubuntu.png b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/ubuntu.png
new file mode 100644
index 0000000..55b8ab5
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/ubuntu.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/main.c b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/main.c
new file mode 100644
index 0000000..8d4e485
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/main.c
@@ -0,0 +1,109 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+
+#include <graphx.h>
+
+/* Include the sprite data */
+#include "gfx/logo_gfx.h"
+
+#define w ubuntu_width
+#define h ubuntu_height
+
+#define xmin ((gfx_lcdWidth-w*6)/2)
+#define ymin ((gfx_lcdHeight-h*6)/2)
+#define xmax (xmin+w*6)
+#define ymax (ymin+h*6)
+
+#define xmin2 (xmin+w*7/2+4)
+#define ymin2 (ymin+h*2+4)
+#define xmax2 (xmin2+w-8)
+#define ymax2 (ymin2+h-8)
+
+/* For testing conversions */
+gfx_UninitedSprite(ubuntu_normal, w, h);
+gfx_UninitedRLETSprite(ubuntu_uninited, (w + 1) * h);
+
+void main(void) {
+ /* For testing conversions */
+ gfx_rletsprite_t *ubuntu_malloc;
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette for our sprites */
+ gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0);
+ gfx_palette[255] = gfx_RGBTo1555(192, 192, 192);
+
+ /* Set a centered 192*192 clip region, bordered by gray and filled with color index 0 */
+ gfx_FillScreen(255);
+ gfx_SetColor(0);
+ gfx_FillRectangle_NoClip(xmin, ymin, xmax - xmin, ymax - ymin);
+ gfx_SetClipRegion(xmin, ymin, xmax, ymax);
+
+ /* Test no clipping */
+ gfx_RLETSprite_NoClip(ubuntu, xmin + w * 3 / 2, ymin + h * 2);
+ gfx_RLETSprite(ubuntu, xmin + w * 5 / 2, ymin + h * 2);
+
+ /* Test top clipping */
+ gfx_RLETSprite(ubuntu, xmin + w, ymin);
+ gfx_RLETSprite(ubuntu, xmin + w * 2, ymin - h + 1);
+ gfx_RLETSprite(ubuntu, xmin + w * 3, ymin - h);
+ gfx_RLETSprite(ubuntu, xmin + w * 4, INT_MIN);
+
+ /* Test bottom clipping */
+ gfx_RLETSprite(ubuntu, xmin + w * 4, ymax - h);
+ gfx_RLETSprite(ubuntu, xmin + w * 3, ymax - 1);
+ gfx_RLETSprite(ubuntu, xmin + w * 2, ymax);
+ gfx_RLETSprite(ubuntu, xmin + w, INT_MAX);
+
+ /* Test right clipping */
+ gfx_RLETSprite(ubuntu, xmax - w, ymin + h);
+ gfx_RLETSprite(ubuntu, xmax - 1, ymin + h * 2);
+ gfx_RLETSprite(ubuntu, xmax, ymin + h * 3);
+ gfx_RLETSprite(ubuntu, INT_MAX, ymin + h * 4);
+
+ /* Test left clipping */
+ gfx_RLETSprite(ubuntu, xmin, ymin + h * 4);
+ gfx_RLETSprite(ubuntu, xmin - w + 1, ymin + h * 3);
+ gfx_RLETSprite(ubuntu, xmin - w, ymin + h * 2);
+ gfx_RLETSprite(ubuntu, INT_MIN, ymin + h);
+
+ /* Test corner clipping */
+ gfx_RLETSprite(ubuntu, xmin - w + 1, ymin - h + 1);
+ gfx_RLETSprite(ubuntu, xmax - 1, ymin - h + 1);
+ gfx_RLETSprite(ubuntu, xmax - 1, ymax - 1);
+ gfx_RLETSprite(ubuntu, xmin - w + 1, ymax - 1);
+
+ /* Set a centered 16*16 clip region, bordered by gray and filled with color index 0 */
+ gfx_SetColor(255);
+ gfx_FillRectangle_NoClip(xmin2 - 4, ymin2 - 4, xmax2 - xmin2 + 8, ymax2 - ymin2 + 8);
+ gfx_SetColor(0);
+ gfx_FillRectangle_NoClip(xmin2, ymin2, xmax2 - xmin2, ymax2 - ymin2);
+ gfx_SetClipRegion(xmin2, ymin2, xmax2, ymax2);
+
+ /* Test all-around clipping */
+ gfx_RLETSprite(ubuntu, xmin2 - 4, ymin2 - 4);
+
+ /* Test conversions */
+ gfx_SetTransparentColor(0);
+ gfx_ConvertFromRLETSprite(ubuntu, ubuntu_normal);
+ gfx_TransparentSprite_NoClip(ubuntu_normal, xmin + w * 3 / 2, ymin + h * 3);
+ gfx_ConvertToRLETSprite(ubuntu_normal, ubuntu_uninited);
+ gfx_RLETSprite_NoClip(ubuntu_uninited, xmin + w * 5 / 2, ymin + h * 3);
+ ubuntu_malloc = gfx_ConvertMallocRLETSprite(ubuntu_normal); // Same as gfx_ConvertToNewRLETSprite(ubuntu_normal, malloc)
+ gfx_RLETSprite_NoClip(ubuntu_malloc, xmin + w * 7 / 2, ymin + h * 3);
+
+ /* Wait for a key to be pressed */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_shapes_shift/autotester.json b/frontends/calculator/CEdev/examples/gfx_shapes_shift/autotester.json
new file mode 100644
index 0000000..af3def5
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_shapes_shift/autotester.json
@@ -0,0 +1,63 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2",
+ "key|enter",
+ "hashWait|3",
+ "key|enter",
+ "hashWait|4",
+ "key|enter",
+ "hashWait|5",
+ "key|enter",
+ "hashWait|6"
+ ],
+ "hashes": {
+ "1": {
+ "description": "The empty and filled blue circles are drawn correctly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "2C41178A" ]
+ },
+ "2": {
+ "description": "The yellow rectangle, red circle, and blue triangle are drawn correctly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "C8E3ED16" ]
+ },
+ "3": {
+ "description": "Filled yellow rectangle, red circle, and blue triangle are drawn correctly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "D7543DD6" ]
+ },
+ "4": {
+ "description": "The screen is shifted several times",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "F2BD5102" ]
+ },
+ "5": {
+ "description": "The screen displays many different triangles",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "CDE95095" ]
+ },
+ "6": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_shapes_shift/makefile b/frontends/calculator/CEdev/examples/gfx_shapes_shift/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_shapes_shift/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_shapes_shift/readme.md b/frontends/calculator/CEdev/examples/gfx_shapes_shift/readme.md
new file mode 100644
index 0000000..5f163d3
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_shapes_shift/readme.md
@@ -0,0 +1,10 @@
+### GraphX Shapes and Shift Demo
+
+Draws different shapes, and demonstrates window shifting.
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_shapes_shift/screenshot.gif b/frontends/calculator/CEdev/examples/gfx_shapes_shift/screenshot.gif
new file mode 100644
index 0000000..e6bf77b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_shapes_shift/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_shapes_shift/src/main.c b/frontends/calculator/CEdev/examples/gfx_shapes_shift/src/main.c
new file mode 100644
index 0000000..cfa784d
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_shapes_shift/src/main.c
@@ -0,0 +1,112 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+void main(void) {
+ uint8_t y;
+ uint24_t i;
+
+ /* Triangle coordinates */
+ int verts[6] = {
+ 160, 1, /* (x0, y0) */
+ 1, 238, /* (x1, y1) */
+ 318,238, /* (x2, y2) */
+ };
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+ gfx_SetColor(gfx_blue);
+
+ /* Draw some circles to make sure they all look the same */
+ y = 40;
+ for (i = 2; i < 13; i++) {
+ y += i;
+ gfx_FillCircle_NoClip(80, y, i);
+ y += i + 3;
+ }
+ y = 40;
+ for (i = 2; i < 13; i++) {
+ y += i;
+ gfx_FillCircle(240, y, i);
+ y += i + 3;
+ }
+ y = 40;
+ for (i = 2; i < 13; i++) {
+ y += i;
+ gfx_Circle(160, y, i);
+ y += i + 3;
+ }
+
+ /* Wait for any key */
+ while (!os_GetCSC());
+
+ gfx_FillScreen(gfx_white);
+ gfx_SetColor(gfx_yellow);
+ gfx_Rectangle(0, 0, 320, 240);
+
+ /* Draw a blue triangle outline */
+ gfx_SetColor(gfx_blue);
+ gfx_Polygon(verts, 3);
+
+ /* Draw a red circle outline */
+ gfx_SetColor(gfx_red);
+ gfx_Circle(160, 152, 80);
+
+ /* Wait for any key */
+ while (!os_GetCSC());
+
+ /* Draw a filled yellow rectangle */
+ gfx_SetColor(gfx_yellow);
+ gfx_FillRectangle(0, 0, 320, 240);
+
+ /* Draw a filled blue triangle */
+ gfx_SetColor(gfx_blue);
+ gfx_FillTriangle(verts[0], verts[1], verts[2], verts[3], verts[4], verts[5]);
+
+ /* Draw a filled red circle */
+ gfx_SetColor(gfx_red);
+ gfx_FillCircle(160, 152, 80);
+
+ /* Wait for any key */
+ while (!os_GetCSC());
+
+ /* Shift the screen around a bit */
+ gfx_ShiftDown(20);
+ gfx_ShiftDown(20);
+ gfx_ShiftLeft(20);
+ gfx_ShiftLeft(20);
+ gfx_ShiftUp(20);
+ gfx_ShiftRight(20);
+
+ /* Wait for any key */
+ while (!os_GetCSC());
+
+ gfx_FillScreen(gfx_white);
+
+ /* Test triangle drawing */
+ gfx_SetColor(gfx_blue);
+ gfx_FillTriangle(110, 170, 110, 70, 230, 70);
+ gfx_SetColor(gfx_green);
+ gfx_FillTriangle_NoClip(110, 170, 230, 70, 230, 170);
+ gfx_SetColor(gfx_black);
+ gfx_FillTriangle(110, 170, 200, 200, 230, 200);
+ gfx_FillTriangle_NoClip(140, 40, 110, 40, 230, 70);
+ gfx_FillTriangle(1, 1, 318, 1, 1, 1);
+ gfx_FillTriangle_NoClip(1, 238, 1, 238, 318, 238);
+ gfx_FillTriangle(1, 3, 1, 236, 1, 236);
+ gfx_FillTriangle_NoClip(318, 3, 318, 236, 318, 3);
+
+ /* Wait for any key */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/autotester.json b/frontends/calculator/CEdev/examples/gfx_sprite/autotester.json
new file mode 100644
index 0000000..a88868a
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite/autotester.json
@@ -0,0 +1,31 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Make sure the sprites are displayed properly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "DF7FD32" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/makefile b/frontends/calculator/CEdev/examples/gfx_sprite/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/readme.md b/frontends/calculator/CEdev/examples/gfx_sprite/readme.md
new file mode 100644
index 0000000..9c072c0
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite/readme.md
@@ -0,0 +1,10 @@
+### GraphX Sprite Demo
+
+Draws a bunch of different styles of sprites on the screen.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/screenshot.png b/frontends/calculator/CEdev/examples/gfx_sprite/screenshot.png
new file mode 100644
index 0000000..b115cbe
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/convpng.ini
new file mode 100644
index 0000000..7bd3158
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/convpng.ini
@@ -0,0 +1,4 @@
+#GroupC : logo_gfx
+#TransparentColor : 255,255,255
+#PNGImages :
+ ubuntu
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.c
new file mode 100644
index 0000000..4086cdc
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.c
@@ -0,0 +1,195 @@
+// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+uint16_t logo_gfx_pal[189] = {
+ 0xFFFF, // 00 :: rgb(255,255,255)
+ 0x7E20, // 01 :: rgb(251,139,1)
+ 0xFE20, // 02 :: rgb(251,140,4)
+ 0xFFFF, // 03 :: rgb(255,253,253)
+ 0x6800, // 04 :: rgb(212,2,2)
+ 0xE821, // 05 :: rgb(213,11,11)
+ 0x7E20, // 06 :: rgb(251,139,2)
+ 0x7E20, // 07 :: rgb(251,139,0)
+ 0x7920, // 08 :: rgb(244,72,0)
+ 0xFFFF, // 09 :: rgb(255,254,254)
+ 0xFFFF, // 10 :: rgb(255,254,253)
+ 0xFECC, // 11 :: rgb(252,182,97)
+ 0x7A90, // 12 :: rgb(249,163,128)
+ 0x7FDC, // 13 :: rgb(254,244,231)
+ 0xF985, // 14 :: rgb(245,100,40)
+ 0x7F9A, // 15 :: rgb(253,225,213)
+ 0x7FDD, // 16 :: rgb(253,242,242)
+ 0x6D6B, // 17 :: rgb(226,90,90)
+ 0xFFBC, // 18 :: rgb(254,239,233)
+ 0xF921, // 19 :: rgb(244,77,7)
+ 0x7EED, // 20 :: rgb(252,187,107)
+ 0xFF99, // 21 :: rgb(254,231,203)
+ 0xFFFE, // 22 :: rgb(255,253,250)
+ 0xFF16, // 23 :: rgb(251,199,177)
+ 0xF921, // 24 :: rgb(244,78,8)
+ 0xFE87, // 25 :: rgb(251,167,61)
+ 0xFFBA, // 26 :: rgb(254,237,216)
+ 0x7F31, // 27 :: rgb(253,204,143)
+ 0xFF76, // 28 :: rgb(253,222,183)
+ 0x7B7B, // 29 :: rgb(249,220,220)
+ 0xFAF7, // 30 :: rgb(244,192,192)
+ 0x7FDD, // 31 :: rgb(252,241,241)
+ 0xF18C, // 32 :: rgb(229,102,102)
+ 0xFE87, // 33 :: rgb(251,164,56)
+ 0x7B5A, // 34 :: rgb(247,212,212)
+ 0xFF76, // 35 :: rgb(253,221,181)
+ 0xF652, // 36 :: rgb(237,151,151)
+ 0x7652, // 37 :: rgb(236,145,145)
+ 0x6D29, // 38 :: rgb(224,74,74)
+ 0xE800, // 39 :: rgb(212,3,3)
+ 0x718C, // 40 :: rgb(228,98,98)
+ 0xFF54, // 41 :: rgb(253,214,165)
+ 0x7673, // 42 :: rgb(237,153,153)
+ 0xFF32, // 43 :: rgb(252,205,148)
+ 0x7EA8, // 44 :: rgb(251,169,68)
+ 0x6CC6, // 45 :: rgb(219,48,48)
+ 0x7FBA, // 46 :: rgb(254,234,211)
+ 0xE842, // 47 :: rgb(215,20,20)
+ 0xFB7B, // 48 :: rgb(250,224,224)
+ 0xFF77, // 49 :: rgb(253,224,187)
+ 0xF652, // 50 :: rgb(237,149,149)
+ 0x7F75, // 51 :: rgb(253,218,175)
+ 0x7FFE, // 52 :: rgb(254,249,249)
+ 0x7EEC, // 53 :: rgb(252,185,102)
+ 0x7FBD, // 54 :: rgb(252,236,236)
+ 0xFFFF, // 55 :: rgb(255,253,251)
+ 0x7EED, // 56 :: rgb(252,188,109)
+ 0x7FFF, // 57 :: rgb(254,252,252)
+ 0xFAF7, // 58 :: rgb(243,189,189)
+ 0x7B9B, // 59 :: rgb(250,225,225)
+ 0x7AD2, // 60 :: rgb(250,179,149)
+ 0xED09, // 61 :: rgb(224,70,70)
+ 0xECA5, // 62 :: rgb(218,43,43)
+ 0xFAF4, // 63 :: rgb(250,190,165)
+ 0x6D4A, // 64 :: rgb(225,82,82)
+ 0xED08, // 65 :: rgb(223,69,69)
+ 0x6D08, // 66 :: rgb(222,63,63)
+ 0x76D6, // 67 :: rgb(242,178,178)
+ 0xECC6, // 68 :: rgb(220,51,51)
+ 0xF1AD, // 69 :: rgb(229,109,109)
+ 0xFFDD, // 70 :: rgb(254,246,235)
+ 0x718C, // 71 :: rgb(228,97,97)
+ 0xFFBC, // 72 :: rgb(254,239,234)
+ 0xFF77, // 73 :: rgb(253,223,187)
+ 0x76D6, // 74 :: rgb(242,179,179)
+ 0x6863, // 75 :: rgb(216,26,26)
+ 0x7AB1, // 76 :: rgb(249,169,136)
+ 0xE843, // 77 :: rgb(215,21,21)
+ 0xFF9C, // 78 :: rgb(251,230,230)
+ 0xF9A6, // 79 :: rgb(245,108,51)
+ 0x7F97, // 80 :: rgb(253,225,189)
+ 0x7942, // 81 :: rgb(244,81,13)
+ 0x7FBA, // 82 :: rgb(254,236,215)
+ 0xFE21, // 83 :: rgb(251,143,11)
+ 0x7FBC, // 84 :: rgb(251,234,234)
+ 0xFB18, // 85 :: rgb(245,197,197)
+ 0x76D6, // 86 :: rgb(242,177,177)
+ 0x71AD, // 87 :: rgb(229,106,106)
+ 0xFAB2, // 88 :: rgb(249,176,144)
+ 0x7F9A, // 89 :: rgb(253,227,217)
+ 0x7FDD, // 90 :: rgb(254,242,237)
+ 0x7FDE, // 91 :: rgb(253,243,243)
+ 0x7AB1, // 92 :: rgb(249,171,139)
+ 0xFFBB, // 93 :: rgb(254,239,221)
+ 0xF694, // 94 :: rgb(240,167,167)
+ 0xFF7A, // 95 :: rgb(253,224,213)
+ 0x7F0E, // 96 :: rgb(253,193,117)
+ 0xFA6F, // 97 :: rgb(249,159,121)
+ 0x7FFE, // 98 :: rgb(255,251,247)
+ 0xFEAA, // 99 :: rgb(251,175,80)
+ 0x7694, // 100 :: rgb(239,161,161)
+ 0x7AF3, // 101 :: rgb(250,186,160)
+ 0xE801, // 102 :: rgb(213,5,5)
+ 0xFA6F, // 103 :: rgb(249,159,122)
+ 0x7FDB, // 104 :: rgb(254,241,224)
+ 0xF920, // 105 :: rgb(244,75,4)
+ 0x7A8F, // 106 :: rgb(249,160,123)
+ 0x7694, // 107 :: rgb(239,163,163)
+ 0xE822, // 108 :: rgb(214,14,14)
+ 0x6D29, // 109 :: rgb(223,71,71)
+ 0xFF55, // 110 :: rgb(253,215,169)
+ 0x7A8F, // 111 :: rgb(249,161,124)
+ 0xFF32, // 112 :: rgb(253,207,151)
+ 0x7FBB, // 113 :: rgb(253,233,224)
+ 0xF694, // 114 :: rgb(239,165,165)
+ 0xFFBC, // 115 :: rgb(254,238,231)
+ 0xFB39, // 116 :: rgb(247,208,208)
+ 0x7B38, // 117 :: rgb(246,201,201)
+ 0x6842, // 118 :: rgb(214,16,16)
+ 0x7FFF, // 119 :: rgb(254,251,251)
+ 0xFB7B, // 120 :: rgb(250,223,223)
+ 0xF16C, // 121 :: rgb(227,95,95)
+ 0x7672, // 122 :: rgb(237,152,152)
+ 0x7631, // 123 :: rgb(235,138,138)
+ 0xFE87, // 124 :: rgb(251,165,60)
+ 0xFFDD, // 125 :: rgb(254,245,240)
+ 0xFF33, // 126 :: rgb(252,208,154)
+ 0x7F79, // 127 :: rgb(252,220,207)
+ 0x7E41, // 128 :: rgb(251,144,12)
+ 0x7E42, // 129 :: rgb(251,146,19)
+ 0x7F36, // 130 :: rgb(251,202,182)
+ 0x7FDC, // 131 :: rgb(254,243,230)
+ 0x7963, // 132 :: rgb(244,89,24)
+ 0x7F0E, // 133 :: rgb(252,193,119)
+ 0xFE87, // 134 :: rgb(251,164,57)
+ 0x7A2B, // 135 :: rgb(247,138,92)
+ 0xFA6E, // 136 :: rgb(249,157,119)
+ 0xFF9B, // 137 :: rgb(253,229,219)
+ 0x7920, // 138 :: rgb(244,74,3)
+ 0xFFDE, // 139 :: rgb(254,246,243)
+ 0xF964, // 140 :: rgb(245,95,32)
+ 0xF921, // 141 :: rgb(244,76,6)
+ 0xFAD3, // 142 :: rgb(250,183,155)
+ 0xFAD3, // 143 :: rgb(250,182,154)
+ 0xF985, // 144 :: rgb(245,103,44)
+ 0x7FFE, // 145 :: rgb(255,252,250)
+ 0x7FFE, // 146 :: rgb(255,251,250)
+ 0x6800, // 147 :: rgb(212,1,1)
+ 0x7B18, // 148 :: rgb(245,195,195)
+ 0x7AD2, // 149 :: rgb(250,178,148)
+ 0x7ECB, // 150 :: rgb(251,179,87)
+ 0x7EA8, // 151 :: rgb(251,169,69)
+ 0xFEAA, // 152 :: rgb(251,176,82)
+ 0x7652, // 153 :: rgb(236,146,146)
+ 0xF942, // 154 :: rgb(244,83,16)
+ 0xF9E9, // 155 :: rgb(246,126,76)
+ 0xFFDD, // 156 :: rgb(254,246,242)
+ 0x71EF, // 157 :: rgb(231,120,120)
+ 0xFB39, // 158 :: rgb(247,206,206)
+ 0xFF37, // 159 :: rgb(252,208,190)
+ 0x6D08, // 160 :: rgb(222,65,65)
+ 0x7FDE, // 161 :: rgb(253,244,244)
+ 0x7A4D, // 162 :: rgb(248,147,106)
+ 0xFB5A, // 163 :: rgb(248,216,216)
+ 0x7F79, // 164 :: rgb(253,220,206)
+ 0xFAD3, // 165 :: rgb(250,181,153)
+ 0x7F15, // 166 :: rgb(251,196,173)
+ 0x7F31, // 167 :: rgb(252,201,137)
+ 0xF9C8, // 168 :: rgb(246,116,62)
+ 0xFAB2, // 169 :: rgb(250,176,145)
+ 0xFF10, // 170 :: rgb(252,198,131)
+ 0x7A6E, // 171 :: rgb(248,155,117)
+ 0xFF9B, // 172 :: rgb(253,232,224)
+ 0xFFBB, // 173 :: rgb(254,240,221)
+ 0x7920, // 174 :: rgb(244,74,2)
+ 0x7FDC, // 175 :: rgb(254,243,229)
+ 0xFE21, // 176 :: rgb(251,141,6)
+ 0x7F53, // 177 :: rgb(253,210,155)
+ 0xF9E9, // 178 :: rgb(247,127,77)
+ 0xFF58, // 179 :: rgb(252,213,197)
+ 0xFE87, // 180 :: rgb(251,164,58)
+ 0xFF54, // 181 :: rgb(253,213,164)
+ 0xFEA9, // 182 :: rgb(251,174,78)
+ 0xFE21, // 183 :: rgb(251,143,10)
+ 0x79E8, // 184 :: rgb(246,120,67)
+ 0x7E87, // 185 :: rgb(251,163,54)
+ 0xFFDD, // 186 :: rgb(254,248,240)
+ 0x7F57, // 187 :: rgb(252,210,193)
+ 0x6800, // 188 :: rgb(212,0,0)
+}; \ No newline at end of file
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.h
new file mode 100644
index 0000000..eba6d22
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.h
@@ -0,0 +1,17 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __logo_gfx__
+#define __logo_gfx__
+#include <stdint.h>
+
+#define logo_gfx_transparent_color_index 0
+
+#define ubuntu_width 32
+#define ubuntu_height 32
+#define ubuntu_size 1026
+extern uint8_t ubuntu_data[1026];
+#define ubuntu ((gfx_sprite_t*)ubuntu_data)
+#define sizeof_logo_gfx_pal 378
+extern uint16_t logo_gfx_pal[189];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/ubuntu.c b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/ubuntu.c
new file mode 100644
index 0000000..ac4f3b9
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/ubuntu.c
@@ -0,0 +1,40 @@
+// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+// 8 bpp image
+uint8_t ubuntu_data[1026] = {
+ 32,32, // width,height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x43,0x25,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x11,0xBC,0xBC,0x05,0x1E,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x59,0x3F,0x4C,0x0C,0x8E,0x12,0xA3,0xBC,0xBC,0xBC,0xBC,0x26,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x0E,0x08,0x08,0x08,0x08,0x08,0xA6,0x9E,0xBC,0xBC,0xBC,0xBC,0x41,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x89,0x13,0x08,0x08,0x08,0x08,0x08,0xA2,0x09,0xA0,0xBC,0xBC,0x93,0x56,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x81,0x0D,0x00,0x88,0x08,0x08,0x08,0x08,0x08,0x13,0xA4,0xA1,0x99,0x9D,0x94,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x01,0x07,0x0B,0x00,0x7D,0x84,0x69,0x8C,0x90,0x18,0x08,0x9A,0xA5,0x9C,0x92,0x0F,0x5C,0x09,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5D,0x53,0x07,0x07,0x06,0x15,0x00,0x5F,0x5A,0x00,0x00,0x91,0x9F,0x9B,0x08,0x08,0x8D,0x08,0x08,0x3C,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x07,0x07,0x07,0x07,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x8F,0x8A,0x08,0x08,0x08,0x51,0x48,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAD,0x01,0x07,0x07,0x07,0x7C,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x08,0x08,0x08,0x08,0x0C,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB5,0x07,0x07,0x07,0x06,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x4F,0x08,0x08,0x08,0x0E,0x09,0x00,0x00,
+ 0x00,0x00,0x00,0x8B,0xA9,0xAB,0xBB,0x00,0x14,0x07,0x07,0x97,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0x08,0x08,0x08,0x08,0x12,0x00,0x00,
+ 0x00,0x00,0x0A,0xA8,0x08,0x08,0xAE,0x17,0xBA,0xB7,0x07,0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x6F,0x6A,0x67,0x61,0x71,0x00,0x00,
+ 0x00,0x00,0x7F,0x08,0x08,0x08,0x08,0xB8,0x00,0xB4,0x07,0xB1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x0F,0x08,0x08,0x08,0x08,0xB2,0x00,0xB9,0x07,0xA7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5B,0x64,0x6B,0x72,0x5E,0x54,0x00,0x00,
+ 0x00,0x00,0x09,0x87,0x08,0x08,0x18,0xB3,0xAF,0xB0,0x07,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4A,0xBC,0xBC,0xBC,0xBC,0x4E,0x00,0x00,
+ 0x00,0x00,0x00,0x0A,0x17,0x95,0xAC,0x16,0xB6,0x07,0x07,0x80,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xBC,0xBC,0xBC,0x4B,0x03,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x07,0x07,0x07,0x07,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3A,0x04,0xBC,0xBC,0xBC,0x45,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x86,0x07,0x07,0x07,0x07,0x2B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x4D,0xBC,0xBC,0xBC,0x27,0x22,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x07,0x07,0x07,0x07,0x33,0x00,0x34,0x09,0x00,0x00,0x00,0x10,0x7B,0x05,0xBC,0xBC,0xBC,0xBC,0x20,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x07,0x07,0x2C,0x09,0x39,0x2D,0x44,0x47,0x57,0x6D,0x6C,0xBC,0xBC,0x04,0x05,0xBC,0x3E,0x1F,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x0B,0x02,0x2E,0x00,0x32,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0x76,0x7A,0x10,0x77,0x78,0x3B,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x36,0x2F,0xBC,0xBC,0xBC,0xBC,0xBC,0x66,0x75,0x62,0x70,0x60,0x50,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2A,0x04,0xBC,0xBC,0xBC,0xBC,0xBC,0x79,0x09,0x63,0x07,0x07,0x01,0x29,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x24,0x28,0x3D,0x42,0x11,0x55,0x68,0x07,0x07,0x07,0x07,0x21,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0x06,0x07,0x07,0x07,0x19,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x07,0x07,0x02,0x1C,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x1B,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/ubuntu.png b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/ubuntu.png
new file mode 100644
index 0000000..d041515
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/ubuntu.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/src/main.c b/frontends/calculator/CEdev/examples/gfx_sprite/src/main.c
new file mode 100644
index 0000000..de618be
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite/src/main.c
@@ -0,0 +1,39 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Include the sprite data */
+#include "gfx/logo_gfx.h"
+
+void main(void) {
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette for our sprites */
+ gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0);
+
+ /* Fill the screen with color index 0 */
+ gfx_FillScreen(0);
+
+ /* Draw a bunch of different styled sprites on the screen */
+ gfx_Sprite(ubuntu, 0, 0);
+ gfx_Sprite_NoClip(ubuntu, 32, 32);
+ gfx_TransparentSprite(ubuntu, 64, 64);
+ gfx_TransparentSprite_NoClip(ubuntu, 96, 96);
+ gfx_ScaledSprite_NoClip(ubuntu, 128, 128, 2, 2);
+ gfx_ScaledTransparentSprite_NoClip(ubuntu, 128, 0, 3, 3);
+
+ /* Wait for a key to be pressed */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/autotester.json b/frontends/calculator/CEdev/examples/gfx_sprite_compress/autotester.json
new file mode 100644
index 0000000..553842a
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/autotester.json
@@ -0,0 +1,33 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|1000",
+ "hash|1",
+ "key|enter",
+ "delay|300",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "A green apple will be displayed",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "250E0F47" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/makefile b/frontends/calculator/CEdev/examples/gfx_sprite_compress/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/readme.md b/frontends/calculator/CEdev/examples/gfx_sprite_compress/readme.md
new file mode 100644
index 0000000..bd5fb0e
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/readme.md
@@ -0,0 +1,10 @@
+### GraphX Sprite Compression Demo
+
+An example of decompressing sprites created with ConvPNG.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/screenshot.png b/frontends/calculator/CEdev/examples/gfx_sprite_compress/screenshot.png
new file mode 100644
index 0000000..baeabbd
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.c
new file mode 100644
index 0000000..f546e01
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.c
@@ -0,0 +1,262 @@
+// Converted using ConvPNG
+#include <stdint.h>
+#include "all_gfx.h"
+
+uint16_t all_gfx_pal[256] = {
+ 0xFFFF, // 00 :: rgb(255,255,255)
+ 0x4AA4, // 01 :: rgb(146,169,33)
+ 0xFFFF, // 02 :: rgb(255,255,253)
+ 0xCAA0, // 03 :: rgb(144,173,1)
+ 0xCAA0, // 04 :: rgb(148,176,1)
+ 0xCEC0, // 05 :: rgb(154,183,3)
+ 0xCAC0, // 06 :: rgb(152,181,3)
+ 0xFFFF, // 07 :: rgb(254,255,255)
+ 0xFFFF, // 08 :: rgb(253,254,253)
+ 0x4AC0, // 09 :: rgb(150,178,2)
+ 0xCAA0, // 10 :: rgb(147,174,3)
+ 0xC684, // 11 :: rgb(142,166,29)
+ 0x4AA4, // 12 :: rgb(148,172,32)
+ 0x7BFE, // 13 :: rgb(250,250,250)
+ 0x5301, // 14 :: rgb(166,196,5)
+ 0x4EE0, // 15 :: rgb(158,188,2)
+ 0x4AA3, // 16 :: rgb(146,170,27)
+ 0x4EE0, // 17 :: rgb(156,185,3)
+ 0xFFFF, // 18 :: rgb(255,254,255)
+ 0xC680, // 19 :: rgb(141,167,3)
+ 0xCEE0, // 20 :: rgb(160,190,3)
+ 0xCAA5, // 21 :: rgb(150,173,39)
+ 0xCAA4, // 22 :: rgb(152,175,31)
+ 0x4AA5, // 23 :: rgb(147,169,45)
+ 0xB600, // 24 :: rgb(110,132,3)
+ 0xCA84, // 25 :: rgb(144,167,34)
+ 0x4683, // 26 :: rgb(137,160,22)
+ 0x7FFF, // 27 :: rgb(252,252,251)
+ 0x4683, // 28 :: rgb(140,162,27)
+ 0x4684, // 29 :: rgb(140,161,34)
+ 0x46A0, // 30 :: rgb(143,170,1)
+ 0xC682, // 31 :: rgb(142,167,19)
+ 0x4AA7, // 32 :: rgb(150,172,59)
+ 0x4AA5, // 33 :: rgb(147,169,39)
+ 0xFBDD, // 34 :: rgb(244,245,242)
+ 0xD301, // 35 :: rgb(168,198,5)
+ 0xFBDE, // 36 :: rgb(247,248,245)
+ 0xCAA3, // 37 :: rgb(150,175,24)
+ 0x4280, // 38 :: rgb(135,160,3)
+ 0xBE20, // 39 :: rgb(120,143,3)
+ 0x3600, // 40 :: rgb(107,129,2)
+ 0x3A20, // 41 :: rgb(112,136,2)
+ 0xCAA1, // 42 :: rgb(149,176,6)
+ 0xCAA6, // 43 :: rgb(151,173,46)
+ 0x5722, // 44 :: rgb(173,203,15)
+ 0x4263, // 45 :: rgb(133,154,27)
+ 0xC664, // 46 :: rgb(137,158,30)
+ 0xC241, // 47 :: rgb(129,151,12)
+ 0xC680, // 48 :: rgb(137,164,1)
+ 0x7FFF, // 49 :: rgb(252,252,253)
+ 0xC262, // 50 :: rgb(135,158,18)
+ 0x4AA1, // 51 :: rgb(146,171,8)
+ 0x4AA3, // 52 :: rgb(147,171,23)
+ 0x4AA6, // 53 :: rgb(150,172,52)
+ 0xC260, // 54 :: rgb(131,157,2)
+ 0x6BB3, // 55 :: rgb(214,234,153)
+ 0xD2E0, // 56 :: rgb(162,192,3)
+ 0x4EC2, // 57 :: rgb(153,179,13)
+ 0x4AA2, // 58 :: rgb(146,172,17)
+ 0x5721, // 59 :: rgb(172,202,5)
+ 0xDB22, // 60 :: rgb(177,207,20)
+ 0x3E46, // 61 :: rgb(124,145,53)
+ 0x6FD6, // 62 :: rgb(224,241,178)
+ 0x6BB3, // 63 :: rgb(216,235,159)
+ 0xE791, // 64 :: rgb(207,229,139)
+ 0xBE45, // 65 :: rgb(126,149,40)
+ 0xD702, // 66 :: rgb(170,199,15)
+ 0x4264, // 67 :: rgb(130,152,35)
+ 0xEB92, // 68 :: rgb(211,232,146)
+ 0x3E60, // 69 :: rgb(127,153,1)
+ 0xC243, // 70 :: rgb(129,151,22)
+ 0xEFB5, // 71 :: rgb(223,240,173)
+ 0x5300, // 72 :: rgb(164,194,3)
+ 0x4262, // 73 :: rgb(132,154,16)
+ 0x3E45, // 74 :: rgb(123,145,45)
+ 0xCAA2, // 75 :: rgb(150,175,15)
+ 0xF7BC, // 76 :: rgb(237,238,233)
+ 0xB1C0, // 77 :: rgb(98,118,4)
+ 0xEFB4, // 78 :: rgb(221,238,168)
+ 0xFFFF, // 79 :: rgb(252,253,255)
+ 0xBE40, // 80 :: rgb(123,149,2)
+ 0x4265, // 81 :: rgb(131,153,41)
+ 0x4AA8, // 82 :: rgb(150,172,68)
+ 0x77DD, // 83 :: rgb(241,242,237)
+ 0xC684, // 84 :: rgb(142,164,33)
+ 0x6FB4, // 85 :: rgb(218,236,165)
+ 0x6790, // 86 :: rgb(203,225,133)
+ 0xD2E1, // 87 :: rgb(163,192,11)
+ 0x3E44, // 88 :: rgb(123,145,36)
+ 0x2DC0, // 89 :: rgb(94,113,2)
+ 0x31E0, // 90 :: rgb(101,123,1)
+ 0x73BC, // 91 :: rgb(232,233,228)
+ 0xC681, // 92 :: rgb(139,164,9)
+ 0x3E41, // 93 :: rgb(124,146,6)
+ 0xCEA9, // 94 :: rgb(154,175,75)
+ 0xCA85, // 95 :: rgb(144,167,40)
+ 0x5723, // 96 :: rgb(174,203,28)
+ 0xDB24, // 97 :: rgb(180,208,30)
+ 0xDB43, // 98 :: rgb(183,214,27)
+ 0xBA20, // 99 :: rgb(115,140,2)
+ 0x4264, // 100 :: rgb(135,155,37)
+ 0x3A21, // 101 :: rgb(117,138,6)
+ 0x5B47, // 102 :: rgb(183,212,55)
+ 0xC685, // 103 :: rgb(142,164,38)
+ 0xD721, // 104 :: rgb(175,208,7)
+ 0x73D7, // 105 :: rgb(230,244,191)
+ 0xB5E0, // 106 :: rgb(106,124,4)
+ 0xCEAA, // 107 :: rgb(157,176,86)
+ 0xBE27, // 108 :: rgb(123,143,60)
+ 0xCEA8, // 109 :: rgb(154,175,62)
+ 0x3E42, // 110 :: rgb(126,146,18)
+ 0x73D6, // 111 :: rgb(227,242,183)
+ 0x5F68, // 112 :: rgb(190,217,65)
+ 0x5B49, // 113 :: rgb(184,211,74)
+ 0x636D, // 114 :: rgb(195,220,104)
+ 0xDB26, // 115 :: rgb(178,206,52)
+ 0x5F64, // 116 :: rgb(186,217,37)
+ 0x4ECC, // 117 :: rgb(160,178,98)
+ 0xD2CD, // 118 :: rgb(165,181,109)
+ 0x4249, // 119 :: rgb(129,147,77)
+ 0xDF4C, // 120 :: rgb(189,215,98)
+ 0xBA25, // 121 :: rgb(118,140,45)
+ 0xFFFE, // 122 :: rgb(254,255,249)
+ 0xE36B, // 123 :: rgb(196,223,92)
+ 0x5F69, // 124 :: rgb(191,218,76)
+ 0x5B48, // 125 :: rgb(181,209,65)
+ 0x2DA1, // 126 :: rgb(93,105,5)
+ 0x5302, // 127 :: rgb(166,195,15)
+ 0xDB41, // 128 :: rgb(181,214,11)
+ 0x4AA7, // 129 :: rgb(146,168,56)
+ 0x6F98, // 130 :: rgb(218,228,199)
+ 0x5B45, // 131 :: rgb(182,211,42)
+ 0x678F, // 132 :: rgb(203,226,123)
+ 0xBA24, // 133 :: rgb(119,140,32)
+ 0x6792, // 134 :: rgb(207,227,145)
+ 0xDB25, // 135 :: rgb(177,206,40)
+ 0xE367, // 136 :: rgb(195,223,56)
+ 0xE36E, // 137 :: rgb(197,221,117)
+ 0x6388, // 138 :: rgb(198,225,67)
+ 0x4EE2, // 139 :: rgb(159,187,13)
+ 0xBE44, // 140 :: rgb(127,149,30)
+ 0xBA03, // 141 :: rgb(114,133,22)
+ 0x4EC5, // 142 :: rgb(156,179,40)
+ 0x6B97, // 143 :: rgb(213,225,188)
+ 0x5F66, // 144 :: rgb(188,218,50)
+ 0x3E47, // 145 :: rgb(127,147,61)
+ 0x2960, // 146 :: rgb(80,89,3)
+ 0xBE22, // 147 :: rgb(121,141,15)
+ 0x5B4A, // 148 :: rgb(185,211,85)
+ 0xC246, // 149 :: rgb(128,150,46)
+ 0x5F6A, // 150 :: rgb(191,218,86)
+ 0xEF7A, // 151 :: rgb(222,223,214)
+ 0x6F7A, // 152 :: rgb(218,218,210)
+ 0x56EF, // 153 :: rgb(170,185,121)
+ 0x739B, // 154 :: rgb(227,227,221)
+ 0xE774, // 155 :: rgb(206,223,168)
+ 0x2981, // 156 :: rgb(86,97,5)
+ 0x5F63, // 157 :: rgb(188,219,24)
+ 0x3E43, // 158 :: rgb(123,145,27)
+ 0x7FFE, // 159 :: rgb(251,252,245)
+ 0x3E49, // 160 :: rgb(126,144,71)
+ 0x2101, // 161 :: rgb(69,66,9)
+ 0xEFB5, // 162 :: rgb(219,237,173)
+ 0x424A, // 163 :: rgb(131,147,86)
+ 0x678D, // 164 :: rgb(202,227,110)
+ 0x6758, // 165 :: rgb(208,209,195)
+ 0xDF65, // 166 :: rgb(193,223,41)
+ 0xE776, // 167 :: rgb(208,223,178)
+ 0x6316, // 168 :: rgb(196,195,181)
+ 0x2541, // 169 :: rgb(74,79,5)
+ 0xA903, // 170 :: rgb(79,68,22)
+ 0xC665, // 171 :: rgb(139,159,41)
+ 0x73BA, // 172 :: rgb(229,234,217)
+ 0x678C, // 173 :: rgb(202,228,99)
+ 0x6773, // 174 :: rgb(202,219,159)
+ 0xEB59, // 175 :: rgb(213,213,202)
+ 0xEF99, // 176 :: rgb(224,232,207)
+ 0x5EF5, // 177 :: rgb(190,185,172)
+ 0x638A, // 178 :: rgb(199,226,81)
+ 0x4EC3, // 179 :: rgb(154,180,24)
+ 0xC64C, // 180 :: rgb(136,151,95)
+ 0xB5E3, // 181 :: rgb(106,125,21)
+ 0x3A27, // 182 :: rgb(119,137,59)
+ 0x6737, // 183 :: rgb(203,201,189)
+ 0xBA06, // 184 :: rgb(114,133,53)
+ 0xC66C, // 185 :: rgb(142,157,102)
+ 0x6793, // 186 :: rgb(208,227,154)
+ 0x5B2D, // 187 :: rgb(177,201,103)
+ 0xBA04, // 188 :: rgb(113,134,37)
+ 0xCA6D, // 189 :: rgb(145,159,111)
+ 0xE790, // 190 :: rgb(209,232,128)
+ 0x6370, // 191 :: rgb(195,217,130)
+ 0xDB30, // 192 :: rgb(184,205,130)
+ 0xF7BB, // 193 :: rgb(236,239,223)
+ 0x5F51, // 194 :: rgb(191,211,142)
+ 0x3DCA, // 195 :: rgb(125,115,83)
+ 0x5AD4, // 196 :: rgb(182,177,161)
+ 0xD6F0, // 197 :: rgb(176,189,134)
+ 0x5B2E, // 198 :: rgb(181,204,117)
+ 0x4E4F, // 199 :: rgb(153,147,125)
+ 0x5303, // 200 :: rgb(168,196,27)
+ 0xD271, // 201 :: rgb(163,157,136)
+ 0xDF12, // 202 :: rgb(186,197,151)
+ 0xC1EC, // 203 :: rgb(134,125,96)
+ 0xE755, // 204 :: rgb(202,214,170)
+ 0xCA86, // 205 :: rgb(144,165,47)
+ 0xD692, // 206 :: rgb(174,167,149)
+ 0x5AF2, // 207 :: rgb(178,188,152)
+ 0xCA8E, // 208 :: rgb(151,164,117)
+ 0xB146, // 209 :: rgb(98,86,46)
+ 0x6353, // 210 :: rgb(194,212,154)
+ 0x6372, // 211 :: rgb(199,220,146)
+ 0x31C3, // 212 :: rgb(99,114,23)
+ 0xDF4E, // 213 :: rgb(190,214,115)
+ 0x4AAA, // 214 :: rgb(151,169,83)
+ 0xE334, // 215 :: rgb(195,205,168)
+ 0x6756, // 216 :: rgb(204,212,184)
+ 0xB5E5, // 217 :: rgb(107,124,41)
+ 0x52D2, // 218 :: rgb(168,178,144)
+ 0x4A2E, // 219 :: rgb(144,138,112)
+ 0xD705, // 220 :: rgb(172,199,43)
+ 0xF3D8, // 221 :: rgb(232,245,200)
+ 0x4EE6, // 222 :: rgb(160,185,52)
+ 0x4EAF, // 223 :: rgb(156,168,126)
+ 0x3587, // 224 :: rgb(107,97,59)
+ 0x39A9, // 225 :: rgb(119,106,71)
+ 0x5F15, // 226 :: rgb(187,194,170)
+ 0xC669, // 227 :: rgb(142,159,74)
+ 0xBE09, // 228 :: rgb(120,135,72)
+ 0x52E4, // 229 :: rgb(162,188,30)
+ 0xD2B1, // 230 :: rgb(161,173,136)
+ 0xD70A, // 231 :: rgb(173,200,85)
+ 0xAD24, // 232 :: rgb(88,77,33)
+ 0x4266, // 233 :: rgb(133,152,53)
+ 0x52E9, // 234 :: rgb(163,188,71)
+ 0x52EB, // 235 :: rgb(165,186,92)
+ 0x4687, // 236 :: rgb(142,161,55)
+ 0xEFB7, // 237 :: rgb(226,239,187)
+ 0x5707, // 238 :: rgb(171,196,59)
+ 0xAD84, // 239 :: rgb(94,102,31)
+ 0xFBDC, // 240 :: rgb(249,248,232)
+ 0x35E7, // 241 :: rgb(109,120,58)
+ 0x5A45, // 242 :: rgb(178,146,44)
+ 0xDE48, // 243 :: rgb(190,149,63)
+ 0x6689, // 244 :: rgb(203,161,74)
+ 0x5604, // 245 :: rgb(171,131,29)
+ 0x5628, // 246 :: rgb(169,137,62)
+ 0xC5A3, // 247 :: rgb(136,108,28)
+ 0xEAAB, // 248 :: rgb(214,175,88)
+ 0xC9E4, // 249 :: rgb(152,126,33)
+ 0x5EA8, // 250 :: rgb(186,168,67)
+ 0x3521, // 251 :: rgb(104,73,8)
+ 0x5E8D, // 252 :: rgb(192,163,106)
+ 0x4DE8, // 253 :: rgb(157,122,65)
+ 0xCA09, // 254 :: rgb(146,134,76)
+ 0x566C, // 255 :: rgb(173,152,98)
+}; \ No newline at end of file
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.h
new file mode 100644
index 0000000..514fb34
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.h
@@ -0,0 +1,13 @@
+// Converted using ConvPNG
+// This file contains all the graphics sources for easier inclusion in a project
+#ifndef __all_gfx__
+#define __all_gfx__
+#include <stdint.h>
+
+#define apple_width 220
+#define apple_height 240
+extern uint8_t apple_compressed[21119];
+#define sizeof_all_gfx_pal 512
+extern uint16_t all_gfx_pal[256];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/apple.c b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/apple.c
new file mode 100644
index 0000000..8baf3bf
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/apple.c
@@ -0,0 +1,667 @@
+// Converted using ConvPNG
+#include <stdint.h>
+#include "all_gfx.h"
+
+// 8 bpp image
+uint8_t apple_compressed[21119] = {
+ 0xDC,0x20,0xF0,0x00,0x46,0x00,0x02,0x02,0x1B,0x12,0x12,0x07,0x4F,0x83,0x00,0x0D,0x00,0x12,0x02,0x0A,0x20,0x12,0x00,0x32,0x86,0x00,0x7A,0x12,0x22,0xD6,0x01,0x07,
+ 0x07,0x08,0x02,0x80,0xE4,0x4F,0x12,0x0D,0x20,0x12,0x1B,0x32,0xC0,0xDB,0x24,0x07,0x64,0x31,0xAF,0x7A,0x52,0xF0,0x00,0x02,0x8A,0xBE,0x03,0x34,0xB7,0xA8,0xB4,0x80,
+ 0x7A,0x9F,0xB7,0xC9,0xE1,0xCB,0x3E,0xC7,0xC1,0x0A,0x01,0x03,0x30,0xB7,0x80,0x4F,0x24,0x02,0xF0,0xA8,0xCB,0x51,0xE1,0x00,0xB7,0x9F,0x82,0xE6,0x31,0x03,0x34,0xB7,
+ 0x80,0x4F,0x7A,0x98,0xCB,0xE0,0xF7,0x01,0xF6,0xFD,0xFD,0xCE,0xF0,0x7A,0x02,0xA4,0xA2,0x06,0x58,0xDB,0x64,0xA9,0x9F,0x00,0xCE,0xAA,0xFB,0xFB,0xF6,0xF3,0xFC,0xFC,
+ 0x35,0xCC,0xB0,0xF3,0x40,0x4F,0x65,0x86,0xDB,0xBD,0xE0,0x9F,0xC7,0xE1,0xFD,0xF7,0xF0,0x00,0xDC,0x08,0xFF,0xC4,0xF0,0x1B,0x0C,0xC0,0xDB,0x03,0x07,0x00,0x9F,0xC3,
+ 0xA1,0xD1,0xDA,0x00,0xF9,0xF3,0xF3,0xF6,0x02,0xFC,0xED,0x9F,0x24,0x4F,0x07,0xB2,0xE4,0xA4,0xB9,0x00,0x08,0xF8,0x1B,0x03,0x0B,0xE0,0xDB,0xC8,0xB7,0xCB,0xA1,0x52,
+ 0xA1,0x95,0x00,0xF9,0xF8,0xF3,0xFD,0xFF,0xFC,0xB1,0x3C,0xFC,0xF0,0xE5,0x09,0x1B,0x9F,0x7A,0x31,0x42,0xDB,0x02,0xF4,0xDC,0x00,0x31,0x4F,0x02,0xA5,0xC4,0xC9,0x30,
+ 0xCB,0xE8,0xDC,0x1B,0xF7,0xF4,0xF4,0xD1,0xD2,0x9A,0x01,0x97,0x12,0x08,0x7A,0x0D,0x31,0x61,0xD7,0xC0,0x03,0x5E,0x83,0xDC,0x12,0xCC,0x73,0x22,0x7A,0xBB,0xE5,0xAF,
+ 0x81,0xDD,0xF5,0xF8,0x90,0xBB,0xF5,0xF5,0xFD,0x3C,0xD7,0x9F,0x13,0xDF,0x38,0x00,0x0C,0x27,0xCB,0xF0,0xD2,0x07,0x08,0xC4,0x01,0x4C,0xA8,0xE1,0x92,0xAE,0xF5,0x52,
+ 0xF2,0xF7,0xC0,0x63,0x3B,0xD3,0x12,0xBC,0x7D,0x96,0x2C,0x00,0x08,0xAC,0x18,0xDB,0xD1,0xFB,0xDE,0x68,0x94,0xF4,0xC0,0xDF,0xFC,0xB0,0xC2,0xF0,0x03,0x05,0xEE,0x64,
+ 0xBF,0x03,0x07,0x07,0xE0,0x03,0x22,0x08,0x9B,0x91,0xA5,0xDB,0xE1,0x4A,0xF6,0xF9,0xC8,0xBA,0xF5,0xF6,0x2E,0xC1,0x24,0x1B,0x02,0xF9,0x98,0x1A,0x02,0x00,0x08,0x9A,
+ 0x02,0x00,0xF3,0xD6,0xE9,0x0B,0xF0,0xCC,0xFE,0xEA,0xCC,0xDC,0x02,0xF6,0xF6,0x4C,0x24,0xEE,0x82,0x03,0x2C,0x00,0x0D,0x22,0x19,0xCE,0xC3,0xF9,0xB8,0x2A,0xF5,0xB1,
+ 0x74,0x96,0x69,0x0D,0xA7,0xBC,0xE9,0x06,0x20,0xD6,0x48,0xFE,0x61,0x1B,0x0D,0xF0,0xD7,0xA3,0x94,0xF2,0xDD,0x00,0xF8,0xFD,0xFD,0xC1,0x04,0x02,0x4F,0x0D,0x02,0x1B,
+ 0x06,0x30,0xDB,0x48,0xDD,0x1D,0x8E,0x9C,0xA7,0xFE,0xAD,0x81,0xF2,0xF4,0xF5,0xF7,0xFF,0xF0,0xB1,0x88,0x7A,0x9F,0x01,0x88,0xDA,0x13,0x10,0xBA,0x31,0x02,0x9F,0x0E,
+ 0xB0,0xFE,0xFF,0xF4,0x89,0xE8,0xDC,0x1C,0x9F,0xC4,0xA0,0x4F,0x31,0xC2,0xDB,0xD4,0x04,0x4F,0xE5,0xA2,0xC1,0xFF,0xF9,0xF8,0xC5,0xF7,0xCA,0x20,0x7A,0x31,0x32,0x83,
+ 0xDB,0x05,0xE4,0xAD,0x24,0x4F,0x07,0x7A,0x82,0xFE,0xFC,0xFC,0xE6,0x83,0xF9,0xF7,0xD8,0xB8,0x2B,0x16,0x80,0xC7,0xCF,0x72,0x7A,0x1B,0xB8,0xCD,0x7A,0xAC,0x6A,0xE0,
+ 0xF3,0xF8,0xBC,0xE6,0x40,0x1B,0x63,0x84,0xD8,0x8F,0xCB,0x6B,0xE4,0xA8,0xF3,0xAF,0x7E,0xF9,0x64,0xF4,0xB9,0xF2,0x6F,0xFC,0xCF,0x01,0xA4,0x00,0xC4,0x28,0xD4,0xF9,
+ 0xB9,0x81,0xF6,0xCC,0x12,0x1B,0x9F,0x90,0xCA,0x07,0x0D,0x07,0x4D,0x08,0x00,0x09,0xCC,0xDE,0x5C,0x00,0x05,0x19,0xC4,0x01,0x9F,0x76,0xF9,0xF6,0xFA,0xF2,0x83,0xDC,
+ 0xC1,0xCF,0x70,0x00,0x02,0x08,0x02,0x47,0x07,0x84,0xCB,0x05,0xDE,0xEA,0x3B,0x02,0x89,0x7C,0xF6,0xC4,0xF5,0x03,0xF9,0xCE,0x9F,0x31,0x31,0x07,0xBA,0x24,0x0D,0x3F,
+ 0x32,0x01,0x56,0xDF,0x1C,0xA0,0x98,0xA8,0xFE,0xDA,0x64,0x00,0xFE,0xAC,0x80,0xDB,0x12,0x9C,0xAF,0xA1,0xC4,0x90,0x80,0xA6,0xCF,0x2D,0xD0,0xC2,0x9F,0xC5,0xF6,0xF5,
+ 0x90,0x94,0xCA,0x0D,0x1B,0x12,0x22,0x9F,0xE0,0xCE,0xC9,0x08,0x1B,0xA5,0x00,0x0D,0x54,0x00,0x06,0xE1,0xD1,0x01,0x54,0xDB,0x00,0x00,0xAC,0xE1,0xF6,0xF2,0xC2,0x00,
+ 0xFD,0xA5,0x02,0x24,0xA6,0xBC,0x70,0xBC,0x89,0xD7,0x08,0x80,0xE2,0x89,0xD0,0x08,0x0A,0x12,0xBF,0x90,0xC1,0x30,0xD0,0x1A,0x02,0x22,0x99,0xF0,0xE0,0xDD,0xF9,0x37,
+ 0xFF,0xC1,0xC9,0xE7,0xAD,0x13,0x98,0xA8,0xA6,0x00,0x7C,0x24,0x00,0x04,0x6D,0x12,0x40,0x0D,0x50,0x85,0xDB,0x00,0xB0,0x24,0x53,0xF0,0x05,0xC1,0x24,0x8F,0x93,0xF9,
+ 0x20,0x96,0xF7,0xCA,0x7A,0xCB,0x0F,0x9F,0x24,0x00,0x69,0x22,0x00,0x53,0x95,0x00,0x4C,0x03,0xF3,0x0D,0x00,0x4B,0x16,0x0A,0x41,0xDF,0x03,0xA8,0xDB,0x36,0x02,0x00,
+ 0x7A,0xDC,0x7C,0x04,0x82,0x78,0x08,0x4F,0x12,0x53,0x00,0x07,0x07,0xD8,0x53,0x22,0xF0,0xC8,0x0B,0xAE,0x00,0xC1,0xC1,0xAC,0xAC,0x50,0xB0,0x00,0x82,0x8F,0xA7,0x00,
+ 0xCC,0x9B,0xC2,0xC2,0x9B,0xAE,0xE9,0xF7,0x37,0xF4,0xDE,0xCE,0x30,0xF6,0x55,0x0D,0xAE,0xCC,0xCC,0xA7,0x91,0x00,0x9B,0x52,0x00,0x8C,0x09,0x8F,0x82,0xB0,0x2E,0x5B,
+ 0xAC,0x89,0x00,0xCA,0x3E,0xC1,0x4C,0xF2,0x0C,0xE3,0x0F,0x31,0x4F,0x00,0xEA,0x23,0x4F,0x08,0x6E,0xE9,0x00,0x74,0x1B,0x48,0x6F,0x07,0x17,0xC2,0xDA,0xE7,0x00,0xD2,
+ 0x16,0x07,0x00,0x1B,0xB2,0x8C,0xA0,0xD1,0x50,0xAC,0xCC,0x16,0x8F,0xCC,0x00,0xD2,0x98,0x00,0xC2,0xC0,0x78,0xC6,0x02,0x01,0xBF,0xEB,0xF7,0x07,0xF2,0xFA,0xF3,0xF2,
+ 0xF3,0x0A,0xB8,0x0F,0xC0,0x04,0x8D,0x00,0x20,0xAE,0x83,0xEB,0xA7,0x33,0x61,0x82,0xDD,0x3F,0x00,0x42,0x35,0x00,0x61,0x0A,0xE4,0x82,0xDF,0x9F,0x8A,0xC1,0xF9,0x6E,
+ 0x05,0x0F,0x89,0x6C,0x81,0x74,0xDA,0x2A,0x04,0x8A,0xA7,0x86,0xD1,0xF3,0x6C,0xF4,0xCE,0xDD,0x8A,0xA6,0x42,0xA4,0xF2,0x00,0xA6,0x60,0xCC,0xB1,0xC0,0xA6,0x00,0xC6,
+ 0xC3,0x12,0x98,0x06,0xBB,0xBB,0x03,0xE7,0x94,0xBB,0x58,0xEC,0xDC,0x00,0xF4,0xFC,0xBF,0xBB,0xE7,0xBB,0x78,0x4E,0xD5,0x00,0xBF,0xCB,0x00,0xD3,0xD3,0xDB,0x0A,0x00,
+ 0x4F,0x82,0x00,0xC5,0x46,0x50,0x00,0xE1,0x65,0xC2,0x85,0xDF,0x48,0x70,0x9E,0x77,0x70,0x02,0xF0,0xDB,0x25,0x07,0x83,0x45,0x07,0x06,0xD8,0xAD,0x54,0xFD,0x76,0x8F,
+ 0x16,0xE3,0x7D,0x00,0x95,0xB2,0x82,0xDC,0xC6,0x6C,0x00,0xD9,0x18,0xE7,0x00,0xEE,0x73,0xDC,0x00,0xEE,0xEE,0xF7,0xF9,0xFA,0xFA,0xF8,0xF4,0x0C,0x78,0x7D,0xEE,0x7D,
+ 0x00,0x71,0x71,0x31,0x94,0x78,0x00,0x72,0xD5,0x89,0x60,0xDC,0xAE,0xA4,0x9A,0x8C,0xDB,0x09,0x06,0xA3,0x74,0xB2,0xBC,0x18,0xBE,0x8D,0x22,0x0D,0x9D,0x30,0xDD,0xAD,
+ 0x9F,0xB8,0x7D,0x18,0x8B,0xB7,0xF1,0x5B,0x86,0x49,0x82,0xD9,0xC1,0x8C,0xAE,0x72,0x00,0x22,0x87,0xC0,0x40,0xD5,0xB0,0xD7,0x00,0xEA,0xDE,0xDE,0xEE,0x87,0x57,0x60,
+ 0x57,0x1C,0x8B,0x87,0x16,0xA8,0x81,0xFA,0xF4,0xF3,0xFA,0xEE,0xDC,0x23,0x00,0x73,0xDF,0x0A,0xDD,0x0B,0xB9,0x22,0xC2,0xD3,0x82,0xDD,0xD3,0x94,0x49,0x9D,0x92,0x24,
+ 0x4D,0x89,0x00,0xA6,0x8F,0xDB,0x8D,0xDD,0x0B,0xB8,0x2D,0x86,0x60,0x5D,0xDB,0x0B,0x89,0x45,0x02,0x35,0xDD,0x24,0x89,0xC0,0x89,0x8F,0x99,0x9B,0xEC,0xDB,0x27,0xB5,
+ 0x2B,0xD8,0x0B,0xD9,0x06,0xB3,0x00,0x38,0x1A,0x48,0x57,0x7F,0x02,0x73,0x80,0xD8,0xF4,0xF4,0x00,0xFA,0x7D,0x73,0x66,0x83,0x87,0x60,0x87,0x88,0xDB,0x05,0xC2,0x82,
+ 0xDB,0xA7,0x50,0xD9,0xB8,0x4B,0x97,0xE7,0x94,0xA9,0x6E,0x05,0x40,0xDD,0xD5,0xFA,0x9F,0x3A,0xF5,0xC0,0xB3,0x00,0x42,0xBD,0x7A,0x32,0x24,0xF0,0xB1,0x9C,0x8A,0x27,
+ 0x00,0xB7,0xC2,0xC2,0x8C,0x60,0xDB,0x90,0xB3,0xA8,0xDA,0x00,0xE5,0x8B,0x05,0x03,0x11,0x48,0x06,0x14,0x42,0x60,0xC8,0x73,0x90,0x86,0xF4,0xF8,0x03,0x71,0x30,0x7D,
+ 0x70,0xDC,0xD8,0x00,0x66,0xDB,0x14,0x96,0x96,0x95,0x8B,0xBF,0xD9,0x04,0x8F,0x85,0xAE,0x61,0xD2,0x21,0xF6,0x5B,0xE2,0xCB,0x07,0x7F,0x00,0x20,0x00,0xAC,0x0C,0xCC,
+ 0xDD,0x06,0xF0,0x9F,0x7A,0xCB,0xF0,0x2F,0x86,0xDB,0x8C,0x98,0xE5,0xCE,0xB9,0x69,0xAE,0x95,0x96,0x8F,0x2A,0xF4,0xCA,0xB9,0x56,0x91,0x81,0xE7,0xEB,0xEA,0x6D,0x40,
+ 0xDC,0xE5,0x60,0x11,0xDF,0x57,0x09,0x57,0xDC,0x71,0xDC,0x03,0xDB,0x00,0xD4,0xEB,0x7D,0x66,0x05,0x66,0x90,0x70,0x70,0x71,0xAD,0xF4,0x28,0xF1,0xD3,0xD8,0x82,0xB4,
+ 0xD7,0x63,0xD8,0x97,0xD0,0x00,0xC6,0x68,0xA4,0x56,0xE9,0x02,0xA9,0x2E,0xCD,0x69,0x0C,0xC0,0x34,0xD7,0xE0,0xDC,0x9B,0xF7,0x5F,0xD6,0xC8,0xBA,0x00,0x4F,0x81,0x37,
+ 0xDC,0xE6,0xD3,0x0A,0xD4,0xCA,0xCC,0xCE,0x9E,0x4A,0x0D,0x53,0xB3,0x2C,0xA6,0xA4,0xDE,0x5A,0xDC,0x09,0xA1,0xE4,0xB0,0x79,0x98,0x73,0xAC,0x55,0xFF,0x20,0xDC,0x4C,
+ 0xB7,0x58,0x00,0x06,0x06,0x14,0x53,0x7F,0xCC,0xD3,0xC9,0xA8,0xF3,0xDD,0x00,0xD5,0x94,0x71,0x66,0x74,0x62,0x60,0x74,0xDD,0x66,0xD0,0x95,0xD5,0xD3,0xB3,0xEE,0x9C,
+ 0x93,0x6C,0xA0,0xB0,0xDE,0xA0,0xD8,0x50,0x56,0xDE,0x5A,0xD7,0x2C,0xBF,0xA5,0x57,0xD5,0xEE,0x36,0xDF,0x0A,0xCC,0x2B,0x3A,0xB0,0x53,0x9C,0xC3,0x85,0x83,0x0B,0xC8,
+ 0x88,0x12,0xC3,0xE2,0xAF,0x2D,0xE5,0x6B,0xCC,0x16,0x4F,0xD9,0x16,0x8C,0x1C,0x00,0x4B,0xED,0x59,0xB9,0x4D,0x93,0x8E,0xB0,0x1B,0xC2,0xDD,0x40,0xDC,0xC0,0xDA,0x39,
+ 0x05,0x00,0x11,0x05,0x09,0x11,0x14,0x38,0xC8,0x66,0x53,0x70,0xC9,0xB0,0xF3,0xDA,0x29,0xFA,0x72,0x93,0x05,0x61,0x61,0x83,0x2E,0xEF,0x90,0x8B,0xBA,0x3A,0xA4,0xC9,
+ 0xB2,0xB0,0xE8,0x00,0xD2,0x28,0xB7,0x8B,0xD5,0x78,0xC2,0x97,0x72,0x03,0xF7,0x3F,0xAE,0xB2,0x90,0xC6,0x22,0xF2,0x69,0x98,0x31,0x64,0x97,0x4C,0x24,0xF5,0xC4,0x5E,
+ 0xFF,0x87,0x10,0x26,0x3C,0xD3,0x96,0xDE,0x9F,0xC1,0xD9,0xED,0x20,0xD8,0x13,0xBA,0xBA,0x87,0xDA,0x09,0x4B,0xB3,0xD5,0x0F,0x09,0x85,0xE0,0xAB,0xB9,0xD8,0xE0,0x39,
+ 0x0B,0xBA,0x94,0x40,0x8E,0xB3,0x06,0x09,0x00,0x06,0x05,0x7F,0xC8,0xE5,0xDE,0xE7,0x78,0x0C,0xFA,0xF2,0xF5,0xF5,0xB7,0x8B,0xFA,0x89,0xBB,0x0A,0xE7,0x5B,0x30,0x2D,
+ 0xA2,0x9B,0xC1,0x32,0xA4,0x50,0x89,0x00,0x84,0xD5,0x72,0xE8,0x00,0xD8,0x14,0x94,0xB4,0x9F,0x02,0x03,0xBD,0x00,0xEE,0x00,0xB6,0x3D,0x9D,0xE5,0x47,0x00,0xA2,0xBB,
+ 0xC0,0xDD,0xD8,0xAF,0x30,0xAC,0x24,0xD5,0x81,0x44,0xDB,0x28,0xDD,0x19,0x24,0xB3,0x24,0x8F,0xC1,0x8C,0xD0,0x09,0x37,0xBA,0x64,0x00,0xF2,0x15,0x86,0x5A,0x08,0xA2,
+ 0x49,0x87,0xD7,0xBB,0x34,0xBE,0xB9,0x81,0x62,0xF9,0xDE,0xC0,0xDC,0x4B,0x16,0x69,0x8E,0x90,0xFC,0x00,0xBE,0xEE,0x76,0x21,0x84,0xFA,0xCD,0xE6,0xAE,0x36,0x87,0xA9,
+ 0xD8,0xAE,0xED,0xDE,0x52,0xBF,0x06,0xCE,0xC4,0x14,0x00,0x7C,0xAA,0x07,0xC7,0x91,0x66,0x73,0x73,0xCF,0xCA,0x00,0xF6,0x06,0x00,0x37,0xBB,0xBE,0xFD,0xBB,0x04,0xF9,
+ 0x56,0xCA,0xD4,0xEE,0xAC,0xB0,0x73,0xBC,0xD5,0xA8,0x7A,0x02,0x5A,0xEF,0xF5,0x80,0xD3,0xF6,0xAC,0xB3,0x2B,0xD8,0x09,0x92,0x00,0x86,0x2E,0x00,0xAE,0x08,0x70,0xE4,
+ 0xA5,0xB2,0x90,0xDF,0x28,0xFF,0x3B,0x04,0x9C,0x4C,0x97,0xAC,0x99,0xB2,0xC2,0xFA,0x00,0x03,0xF1,0xAC,0xD4,0x2E,0x13,0xE9,0x12,0x00,0xD5,0x64,0xA6,0x94,0xB7,0xDB,
+ 0xBE,0x00,0xC0,0x5F,0x90,0x03,0x06,0x86,0xD4,0xDD,0x03,0x73,0x61,0x3C,0xB5,0x4B,0xB7,0x4F,0xF6,0xBE,0xF7,0xA4,0x9A,0x88,0x00,0xC3,0xDE,0x4E,0xDD,0xFB,0xC1,0x25,
+ 0x8D,0xC0,0x94,0xDB,0x02,0x08,0x9F,0x22,0xCB,0xB4,0xC9,0x04,0xAE,0xE0,0xD6,0x40,0x29,0x40,0x56,0x00,0xBE,0xEB,0x08,0x07,0x84,0x09,0xE7,0x00,0xE2,0x84,0xC0,0xE7,
+ 0xC8,0x6B,0xA7,0x2E,0x06,0xC7,0x0B,0xC0,0xCE,0xAF,0x1C,0x02,0x6B,0xBF,0x12,0xE7,0xAA,0x29,0x26,0xB1,0xA6,0xB3,0x94,0x00,0x74,0x00,0x83,0xAF,0x02,0x0D,0xD2,0x0C,
+ 0xB0,0xB3,0x16,0x3C,0x68,0xDC,0x00,0x3C,0x87,0x7D,0x96,0x0A,0x94,0x7D,0xDC,0xC8,0xBB,0x27,0xE7,0x30,0x26,0x00,0xA0,0x34,0xBB,0x59,0xBA,0x58,0xDC,0x67,0xC3,0x02,
+ 0x20,0xDB,0x48,0x04,0x1B,0x1C,0x0D,0xC1,0xAC,0x9C,0xA6,0x9B,0xAF,0x24,0x40,0xA0,0xCA,0x84,0x90,0x00,0xA4,0xAD,0x6B,0x7B,0x00,0x72,0x00,0x2A,0x89,0xD5,0xD4,0x82,
+ 0x44,0x84,0x78,0xE7,0xCF,0xE1,0xBA,0x09,0x01,0x8F,0xBB,0x6B,0xDE,0xD1,0x00,0xA5,0x6B,0xE9,0x9D,0x14,0xE7,0x71,0x29,0x15,0xA9,0xE5,0x00,0xA0,0xBB,0xD2,0x62,0x00,
+ 0x74,0x83,0x02,0xD4,0x1A,0x04,0x80,0xD7,0x0B,0x66,0xFC,0x94,0xE0,0x06,0x68,0x3B,0xDC,0x1E,0x01,0xE5,0x14,0xA2,0x98,0xDC,0x29,0xC8,0xD3,0x39,0xF3,0xAE,0x02,0x00,
+ 0x8B,0xFD,0xF7,0x55,0xC2,0x22,0x97,0x24,0xC2,0xDB,0x04,0x6C,0x00,0xDA,0x12,0x24,0x06,0xDA,0xE5,0xA5,0xD3,0x44,0x94,0xA7,0xCA,0x00,0x89,0xD0,0x03,0x7B,0x7C,0xCC,
+ 0x3C,0x00,0x70,0x7C,0xD6,0x00,0x96,0xA4,0xEC,0x56,0xE8,0xE8,0x91,0x2B,0xF7,0xFA,0x05,0xE2,0x0F,0x02,0x12,0xC1,0x8E,0x94,0x58,0x11,0xCA,0x03,0x83,0x60,0x61,0x60,
+ 0x60,0x04,0xD5,0xCB,0x60,0x47,0xF1,0xE1,0x21,0xD9,0x83,0xBE,0x68,0xD1,0x06,0x9D,0x02,0x74,0xA2,0xB8,0x56,0x9D,0x00,0x08,0x70,0x6D,0x8A,0x4B,0x62,0x1B,0x60,0xFA,
+ 0x18,0x19,0x02,0x2C,0xB1,0x26,0x83,0x28,0x23,0x0E,0xDC,0x1A,0xDE,0x00,0xEA,0x45,0x00,0xEB,0x20,0x97,0xCA,0xD7,0x82,0x10,0x4C,0x31,0x12,0x20,0x97,0xB1,0x03,0x52,
+ 0xF3,0x31,0x09,0x4F,0x9F,0xC1,0x8F,0x27,0x93,0xD7,0x0F,0x00,0xA8,0x2A,0x82,0x4C,0x04,0x56,0x89,0xCB,0xB0,0xD6,0x00,0x8A,0xB2,0xB2,0x88,0x1F,0xA6,0xA6,0x88,0x8B,
+ 0x7A,0x02,0x00,0x83,0x83,0x00,0x87,0x62,0x2C,0x42,0xB2,0x5C,0xBF,0x31,0xFA,0x30,0x23,0x23,0xC7,0xAA,0x08,0xF0,0xAD,0x14,0x3C,0xF2,0x0E,0x02,0x2C,0x00,0x80,0x03,
+ 0x62,0x66,0x32,0x78,0x89,0x2D,0x3C,0x80,0xAC,0x00,0xDB,0x31,0x98,0xE9,0x44,0x97,0x32,0xB8,0xB0,0xE6,0x64,0x62,0xAE,0x87,0xE8,0x16,0xB7,0xA8,0x32,0x3C,0xC8,0xC4,
+ 0x92,0x0E,0x23,0xA9,0xE7,0xE6,0xE8,0x93,0x99,0xD3,0xBA,0xC0,0x2E,0xFC,0x4C,0xBB,0xC5,0xDC,0x06,0x8F,0x4C,0x4F,0xF2,0xA3,0x12,0x1B,0x31,0xAF,0x94,0x08,0x1C,0xAF,
+ 0xE8,0x03,0x69,0x05,0x22,0x9E,0xC4,0x55,0xE4,0x52,0xBE,0x86,0x6D,0x00,0xA4,0x88,0x18,0xB2,0xCE,0x19,0x8A,0x8A,0xB7,0x36,0x88,0x00,0xA6,0xF8,0x34,0x9B,0x0A,0x3C,
+ 0x00,0x6A,0x68,0x05,0x61,0xDA,0x3A,0xFA,0x10,0x3B,0x3B,0x2C,0x60,0xB2,0xA3,0xC2,0xAB,0x8F,0xE8,0x15,0xE7,0x10,0x00,0xC3,0xB9,0xCD,0x01,0x7B,0xA4,0x7C,0xE5,0x15,
+ 0xAA,0xE4,0x0A,0xB8,0xA6,0xB2,0xF4,0x61,0x8A,0xDC,0x8C,0xA2,0x80,0xDB,0x80,0x51,0x83,0xBB,0x6D,0x3C,0x2C,0x1A,0x3C,0x86,0x34,0x2C,0x3C,0x60,0x0E,0x00,0x57,0xFF,
+ 0x80,0xDD,0x05,0xEA,0x01,0xDB,0x8E,0x8E,0x44,0xBE,0xEB,0x30,0x76,0xC5,0xDD,0xD0,0x96,0x1B,0x02,0xA2,0xBA,0x70,0x07,0x05,0x6A,0xDA,0x09,0x08,0x03,0xDF,0x41,0x1C,
+ 0x02,0xF0,0xB0,0xF2,0x5E,0xDF,0xC8,0xE7,0xBA,0x89,0x0C,0x56,0xA4,0xB2,0xD2,0x2B,0x02,0x00,0xC2,0xD4,0xF0,0x08,0xD9,0xF0,0x00,0xD8,0xB0,0xA8,0xA0,0xB6,0xA0,0x92,
+ 0x65,0x83,0x15,0x90,0x61,0x02,0xDB,0x68,0xDD,0x91,0x62,0x96,0xB7,0xB0,0x14,0xA7,0xFA,0xD0,0xC4,0x52,0x00,0xD8,0xE0,0xCD,0x96,0x65,0x96,0xF4,0x45,0xAC,0x5B,0x19,
+ 0x2D,0x70,0x0E,0xA2,0xFE,0xE8,0x47,0xB9,0xAB,0x28,0x10,0x90,0xDB,0x16,0x61,0x8E,0xD4,0x45,0x0E,0x19,0x48,0x48,0x14,0x00,0x0F,0x11,0x45,0xB4,0x57,0xD2,0x80,0xDC,
+ 0xDE,0x6D,0x6B,0xC1,0xDD,0x99,0x91,0xBA,0x4C,0x7A,0x7B,0xF2,0xF4,0xCA,0x1D,0x48,0xA4,0x08,0x12,0x07,0x2F,0xF0,0x82,0xD2,0x2B,0xB7,0xC6,0x40,0xBE,0xA4,0xDF,0xAD,
+ 0xAD,0x03,0x96,0x85,0x95,0x03,0x89,0xA6,0x03,0xB0,0xD9,0xC3,0xD7,0xF9,0x1C,0x0A,0x90,0x88,0xA0,0xBC,0x98,0xF4,0xF4,0x84,0x4A,0x90,0xA6,0x56,0xA9,0x1E,0x16,0x05,
+ 0xA6,0xF5,0x07,0xCC,0xB3,0xFF,0xFA,0x05,0x0C,0x9B,0x2B,0xBF,0x42,0x7D,0x7C,0xB1,0x00,0x83,0xF2,0x00,0xE4,0xF0,0x45,0xE9,0xCD,0x84,0x7C,0xC9,0x4A,0xB0,0x39,0x80,
+ 0xD1,0xE5,0x63,0xA0,0x4D,0x9B,0x95,0xB4,0xA0,0x98,0x23,0x48,0x38,0x31,0x14,0x38,0x02,0x0F,0x39,0xE5,0x83,0xDC,0xE5,0x00,0xC0,0xDC,0x6D,0x5E,0xAB,0xD1,0xC8,0xBB,
+ 0xA5,0x53,0x6B,0x7A,0xAB,0x94,0xB7,0x1E,0x60,0xE7,0x07,0x53,0xB0,0xCA,0xB4,0xB1,0xBE,0x86,0x6B,0xE4,0x85,0x81,0x02,0x82,0x70,0xA8,0x00,0xAB,0xB0,0xA2,0xC3,0xD9,
+ 0x00,0x53,0x7C,0x84,0xAC,0xA6,0xBF,0xAC,0xDA,0x25,0xDD,0x0C,0xAB,0xBF,0x00,0x0D,0xBB,0x74,0x90,0xDC,0x00,0x1D,0xD5,0xE7,0x25,0x0D,0xB5,0xA2,0x5B,0x36,0xFB,0xF5,
+ 0x05,0x48,0x95,0xC0,0x4E,0xE6,0xB0,0x37,0xED,0x36,0x99,0x85,0x83,0xA6,0x4D,0xB5,0x96,0xDB,0x8F,0x92,0x0C,0x00,0x68,0x42,0x0E,0xD9,0x29,0x96,0x00,0x14,0x05,0x09,
+ 0xB3,0xDC,0xE5,0x51,0xB3,0xB8,0x00,0xEA,0x6B,0x5E,0x5E,0x6B,0x75,0x76,0x03,0xCF,0x8F,0xF0,0x02,0x4F,0x12,0xF4,0xD8,0x3B,0xD9,0xCA,0x90,0x4C,0xDA,0x16,0xD3,0x8C,
+ 0x99,0xB3,0x51,0xC7,0xF8,0x00,0xA5,0x53,0xBB,0xEB,0x04,0x88,0xD0,0x0B,0xDB,0x0A,0x0E,0xC3,0xE8,0x04,0x9C,0xEF,0xED,0xB3,0x6D,0x00,0x96,0xB5,0x92,0x0A,0x89,0x96,
+ 0xDA,0x99,0xB9,0x00,0xD2,0x48,0x7B,0xC4,0x1D,0x00,0xE5,0x0D,0xFA,0xDF,0x15,0x0B,0x13,0xC8,0x40,0x0F,0xBE,0xEA,0x00,0xCC,0xE9,0xC6,0xB6,0xC2,0xB1,0x85,0x99,0xDC,
+ 0x34,0x98,0xA5,0xF0,0x17,0x42,0x42,0x7F,0x00,0x40,0xDC,0x4B,0xC0,0xD9,0x4B,0x3A,0xB0,0xDC,0x30,0x5E,0x52,0xDB,0xC0,0xDC,0xC5,0x82,0x34,0x9F,0x07,0x94,0x83,0x75,
+ 0xEF,0xB0,0xDB,0x5A,0x24,0xEB,0xAB,0x86,0x95,0xBA,0xEC,0xB5,0xA2,0xC6,0xF5,0x82,0xDA,0x4C,0x00,0xF1,0x6C,0xDD,0x3B,0x00,0x9A,0x45,0xA6,0xBD,0x94,0x86,0x90,0xD7,
+ 0x1B,0xDB,0xAC,0xAD,0x82,0x81,0xAD,0x89,0x40,0x44,0x44,0x52,0xCA,0xBE,0xF0,0x05,0x08,0x37,0x37,0x55,0xA2,0x2F,0xA2,0x40,0x00,0xC2,0x0B,0x10,0x92,0xC3,0xE4,0xE2,
+ 0x04,0x72,0x80,0xD6,0x56,0xF7,0x22,0x00,0xBE,0x1D,0x71,0xA4,0x49,0xEF,0x61,0xDB,0x49,0xD0,0x96,0xFE,0xB5,0x54,0xBC,0x5A,0x94,0x53,0xCD,0xE1,0xDA,0x81,0x00,0x7F,
+ 0xB3,0x3A,0x09,0x04,0x03,0x80,0xE0,0x8E,0x6D,0x6D,0x18,0x20,0x52,0xD6,0x00,0x76,0xCA,0xB0,0x74,0x1B,0xC2,0x12,0x83,0x9B,0x84,0x3C,0x24,0x4C,0xD5,0xA7,0xC6,0xC0,
+ 0xDA,0x89,0x7C,0xBC,0xC2,0xAA,0x00,0x80,0x45,0x90,0xA6,0x86,0xBF,0x77,0xFC,0x52,0xAF,0xF6,0xE1,0x15,0x11,0x6E,0x85,0x8A,0x30,0xAD,0xBE,0xC8,0xC3,0xBC,0xB9,0x02,
+ 0x86,0x9B,0x81,0xCE,0xBA,0x80,0xD5,0x3F,0x55,0x3F,0xB0,0xD9,0x07,0x6F,0x69,0x69,0x4E,0x55,0x00,0xBA,0x0B,0x44,0x12,0x20,0xBA,0x05,0xA9,0x21,0x89,0x89,0x84,0x56,
+ 0x05,0xD8,0x17,0x12,0x20,0xF4,0x61,0xEE,0xDA,0x67,0x93,0x2A,0x80,0x80,0xED,0xB4,0x9D,0x3B,0x01,0x02,0xDC,0x48,0x95,0xF3,0xE5,0xA0,0x91,0x4B,0x09,0x06,0x14,0x04,
+ 0x09,0x39,0xB9,0x4A,0x35,0xDC,0x0C,0xBB,0x81,0xDF,0xE2,0x4C,0x12,0x4F,0x06,0x80,0xDB,0x9F,0xC8,0xEF,0x31,0x7A,0x6B,0x9F,0xEB,0x73,0xA1,0x91,0x80,0x96,0x7D,0xB2,
+ 0xF3,0x7C,0xF9,0xA5,0xA6,0x6F,0x99,0x60,0xD4,0x96,0x5D,0x8A,0x05,0x5B,0x04,0x00,0x90,0xEA,0x3C,0xE5,0x0A,0x70,0x96,0xA6,0x24,0x37,0x8D,0x00,0x3F,0x00,0xA2,0xD0,
+ 0x00,0xCC,0x6E,0x00,0x3E,0x07,0xC1,0xDA,0x69,0x74,0x07,0x12,0xA2,0x29,0xED,0xDD,0x0A,0x4E,0x84,0xE9,0xC1,0xCE,0x41,0xD9,0x23,0x30,0x55,0x08,0xB1,0x94,0xA4,0x96,
+ 0xB4,0xC7,0x79,0x70,0xFB,0x41,0xD6,0xA2,0x95,0x3C,0x50,0xDA,0xC3,0xD9,0xCE,0x70,0x57,0xC8,0x7F,0x05,0x60,0x0A,0xDA,0x09,0x01,0x2A,0x4B,0x16,0x16,0x0C,0x5F,0x81,
+ 0x44,0xB8,0x6B,0x02,0x99,0xD7,0x53,0x07,0x0D,0x12,0xC3,0xDD,0xEC,0xC8,0x2C,0x9B,0x43,0x02,0x07,0x34,0x79,0x9F,0xD7,0x40,0xDA,0xBF,0x7F,0xD5,0xEB,0xE6,0x8D,0xDB,
+ 0x1D,0x00,0x85,0xDB,0xFD,0xC2,0xAA,0xE1,0x8A,0x5B,0x84,0xBB,0x80,0xD9,0x13,0x88,0xAF,0x6A,0xB9,0xAD,0xA0,0xDA,0xA2,0xA7,0xBA,0x00,0xA3,0x2B,0xC8,0x0B,0x00,0x60,
+ 0x3E,0xC9,0x3E,0x60,0xED,0xDA,0xED,0x55,0x6F,0x07,0x81,0xDF,0xDD,0xDD,0xD8,0x0B,0xDB,0x5D,0x00,0x94,0xD4,0xC0,0xDA,0x4E,0xAB,0x05,0xDB,0x0A,0xAE,0x8F,0xFC,0x36,
+ 0x05,0x70,0x97,0x98,0xDB,0x49,0xA7,0x34,0x95,0x94,0xDC,0x0B,0x38,0xDB,0x06,0x8B,0xD9,0x00,0x0A,0x1E,0x04,0x4B,0x25,0x0B,0x16,0x10,0x54,0x81,0x95,0x40,0x75,0xCF,
+ 0x98,0x0D,0x97,0xBB,0xB0,0xDA,0x82,0xDE,0xC3,0x69,0x31,0x31,0xC1,0x40,0xDA,0x78,0x94,0x61,0x71,0xD5,0x51,0xD2,0x7F,0xBC,0x40,0xDA,0x80,0xB0,0xDB,0x56,0x9D,0xD7,
+ 0x60,0xCD,0x7B,0xE8,0x08,0xC4,0xB7,0xCE,0xD0,0x8B,0x84,0x7B,0xB2,0xB4,0x48,0x3F,0xD0,0x18,0xB9,0x73,0x06,0xB0,0x00,0x47,0xD3,0x50,0x6F,0xDA,0x61,0xCF,0xD3,0x01,
+ 0x00,0x3E,0x0C,0x7B,0xDD,0x00,0x06,0x47,0xDB,0x07,0x47,0x0A,0xB9,0x00,0x3E,0x07,0x0A,0xE4,0xAC,0x32,0xE6,0x25,0x94,0x40,0x90,0x7C,0xA4,0x56,0x30,0x72,0x70,0xDB,
+ 0xC3,0xDC,0xD6,0x0A,0x80,0xFE,0x00,0xAC,0x86,0x38,0x48,0x7C,0x8B,0xC1,0x11,0x00,0x11,0x8B,0x06,0x0A,0x03,0x0A,0x3A,0x25,0x03,0x3A,0x1F,0x5F,0x20,0xE3,0xE3,0xDC,
+ 0x0D,0x95,0x04,0x5B,0x7A,0x08,0xF1,0xF7,0x05,0x74,0xFB,0x07,0x1A,0x02,0x4C,0x82,0xEC,0xA8,0xD2,0xDA,0x1C,0x71,0x00,0x94,0xF7,0x90,0xB2,0xB3,0x59,0x62,0xB7,0x54,
+ 0x09,0x97,0x81,0x26,0xE1,0x59,0xC4,0x61,0xD9,0x6F,0xB6,0x4B,0xD9,0x45,0x9A,0x84,0xB5,0xA7,0xFF,0xD8,0x0B,0xBE,0x4A,0xDA,0x0B,0xDD,0x00,0x90,0xDE,0x2F,0x06,0xDB,
+ 0x0C,0xB9,0xA9,0x1C,0x69,0xA6,0x1C,0x55,0xE5,0x2C,0xDC,0x2A,0x07,0x46,0xA9,0x70,0xAD,0xAD,0x66,0x71,0x96,0xB8,0x61,0xDB,0x82,0xD4,0x23,0x92,0x92,0xAC,0x00,0xB7,
+ 0xB9,0xAA,0x30,0x8B,0x05,0xDB,0x60,0x39,0xDA,0x03,0x00,0x33,0x3A,0x33,0x5C,0x0B,0x17,0x81,0xEC,0xC0,0xDC,0xD0,0xDA,0xF1,0xE5,0x0D,0x45,0xB3,0x05,0xF2,0xAC,0x4F,
+ 0x28,0x02,0x53,0xDA,0x28,0xB6,0xA8,0xB5,0xA9,0xC2,0xDC,0x70,0x01,0x81,0xDA,0x85,0xDB,0xBD,0xC5,0x2F,0xF2,0x06,0x41,0xD4,0x86,0xD9,0x8C,0x94,0x8C,0x19,0xD4,0x2A,
+ 0xB2,0xEF,0x2C,0xDB,0x18,0x47,0xD8,0x4B,0x00,0x61,0xE1,0x6A,0xE6,0x69,0x89,0xDA,0x07,0xDD,0x07,0x61,0xDB,0x22,0x9F,0x61,0xDC,0x6A,0x29,0x47,0xAD,0x29,0x0A,0xB4,
+ 0x74,0x9F,0xC9,0xB8,0x56,0x58,0xF4,0x66,0xBD,0x00,0x8D,0x2D,0xEA,0x70,0xDC,0x7E,0x48,0x03,0xE2,0x35,0x48,0xF0,0xE4,0xAA,0x11,0x05,0x60,0x8B,0x00,0x39,0x04,0x0A,
+ 0x33,0x1E,0x0B,0x13,0x30,0x1A,0x19,0xDB,0x00,0xB9,0xD0,0xCA,0x82,0x0C,0x22,0x7A,0x02,0x1B,0xDB,0x20,0xB5,0x92,0x15,0x02,0xFD,0x4A,0x9B,0xA0,0x9C,0xDA,0x11,0x7D,
+ 0x21,0xDB,0x50,0xC0,0x90,0xC0,0xCE,0xB2,0x88,0xD3,0x85,0xB9,0x7B,0xA6,0x9A,0xD2,0x0E,0xF0,0x3B,0x0E,0xE2,0x04,0x44,0x8B,0xB5,0x86,0xB1,0xBD,0x14,0xAB,0x55,0x00,
+ 0xD0,0x09,0xDB,0x48,0xD0,0x11,0x21,0xDB,0x69,0x98,0xD5,0x0C,0x02,0x5A,0x21,0xB8,0x61,0xD3,0x38,0xDB,0x55,0x05,0x95,0xB6,0x5F,0x00,0x6B,0xF2,0x22,0x3C,0x61,0x68,
+ 0xC9,0xB7,0x0E,0x64,0xB5,0x3B,0x64,0x42,0xB8,0x14,0x36,0x11,0x06,0x00,0x11,0xF3,0xAA,0xE5,0x95,0x46,0x33,0xDA,0x00,0x26,0x5C,0x1C,0xCD,0xEC,0xC0,0xDC,0xE3,0xB9,
+ 0x06,0xE6,0xD7,0x5B,0x9F,0x7A,0xDD,0x02,0x08,0x0D,0x07,0x0A,0xC1,0xDB,0x7A,0x6E,0xC7,0xBF,0x02,0xC6,0xD5,0x71,0x7D,0x73,0x7D,0x87,0xCA,0xDD,0xF7,0x90,0x71,0x6F,
+ 0x00,0x7C,0xBC,0x2B,0xCF,0x1E,0x9D,0x02,0xD8,0x14,0x90,0x87,0xBE,0x55,0x98,0x9E,0x07,0xDA,0x1D,0xCC,0x61,0x9D,0x85,0xD8,0x95,0x8B,0x05,0xDB,0x85,0xD9,0xE5,0x0B,
+ 0xA3,0x30,0xDB,0x49,0x07,0x28,0xE5,0x4C,0xDB,0x0B,0x6F,0x21,0xB0,0xDC,0xB9,0xCB,0xB4,0x8E,0x77,0x37,0x02,0xFE,0x9D,0x03,0xEA,0xC5,0x90,0x5A,0xFE,0xEB,0x02,0xDA,
+ 0x30,0xDB,0xEC,0x02,0xDB,0x18,0x05,0xDB,0x51,0xB7,0x05,0xB3,0x39,0x06,0x33,0x80,0xDB,0x26,0x1C,0x1D,0x1D,0xCD,0x81,0xE3,0x00,0x23,0x95,0xC1,0xDC,0x0C,0xB7,0xA0,
+ 0xB7,0xE7,0x34,0x91,0x1C,0xD8,0xAE,0xC2,0xA1,0x86,0xBB,0x73,0x87,0x87,0xA0,0x62,0x73,0x83,0x9D,0x40,0xD9,0xA4,0x8A,0xD7,0x8A,0x83,0x4E,0x0B,0xE6,0xAB,0xA7,0x98,
+ 0x9C,0xC2,0x3F,0x40,0x8B,0xB7,0xBE,0x26,0x40,0x8E,0x9A,0x8F,0x4B,0x92,0x36,0xB6,0x48,0x47,0xA0,0xDB,0xC2,0xEC,0x30,0xDB,0x2B,0x10,0x05,0xB9,0x24,0x1F,0xDB,0x25,
+ 0xB4,0x8C,0xB9,0xA3,0x2F,0xBA,0x86,0xD9,0xB4,0x93,0xE2,0x9F,0x91,0x93,0x83,0x20,0xDB,0x2C,0x3C,0xDB,0x15,0x0E,0x80,0x69,0x48,0x01,0xDB,0x09,0xBC,0x00,0x39,0xDD,
+ 0x60,0x39,0xDA,0x5C,0xB0,0xDB,0x0B,0x2D,0x35,0x5E,0x52,0xB8,0x20,0xB1,0x97,0x22,0x9F,0xC3,0xDB,0xD4,0xA8,0x24,0x8B,0x49,0x4C,0x00,0x9F,0x97,0xB6,0x86,0xC2,0xC0,
+ 0xD5,0x90,0x9F,0x9B,0xE6,0x9F,0x61,0x57,0x62,0xAB,0xD4,0x9F,0xE0,0xE0,0x83,0x52,0x88,0x91,0x50,0xDA,0x5A,0xEE,0xEA,0xEF,0x7C,0xA4,0x8A,0xAC,0x91,0xDC,0xD3,0x7B,
+ 0x72,0x26,0xBE,0x4E,0xE9,0x59,0x53,0x93,0x0C,0x5B,0x4E,0xAD,0xD4,0x0B,0x81,0xD1,0x3A,0xF8,0xCA,0xCB,0xF2,0x05,0xDB,0xB5,0x90,0xCE,0xAF,0xB0,0x56,0xDD,0x14,0xE8,
+ 0xAE,0x40,0x03,0xBB,0xCA,0xCF,0xEA,0xA8,0x93,0x83,0x61,0xFB,0x40,0x68,0x83,0x7C,0x71,0xC0,0xE2,0x3B,0x38,0xC1,0xDC,0x14,0x8C,0x03,0x38,0x11,0x14,0xDB,0x30,0x00,
+ 0x2A,0x0A,0x0A,0x09,0x00,0x8B,0x2A,0x1E,0x30,0x36,0x26,0x36,0x36,0x05,0x2F,0x1A,0x2B,0x6D,0xD6,0x00,0xDC,0xDA,0xD8,0xC1,0xF3,0xE3,0x00,0x82,0x47,0xCE,0x7C,0x1B,
+ 0x27,0xD0,0xE0,0xDA,0x4C,0xC2,0xDA,0x49,0xA2,0x2C,0x73,0x2C,0xDA,0x2E,0x00,0xE7,0xA2,0x05,0x63,0xA6,0xD5,0x4F,0xD2,0x7D,0xB6,0x74,0x00,0xB9,0x5E,0x90,0x32,0x7B,
+ 0xC0,0xE4,0x07,0xDB,0x0B,0xAE,0x0C,0x8B,0xA2,0x56,0x00,0x6F,0xCF,0x13,0x84,0xDA,0xC1,0xE6,0x65,0xC8,0xF2,0x0A,0x00,0x15,0xDA,0x2A,0xE9,0x4E,0xD4,0xED,0x44,0x84,
+ 0xA0,0xD6,0x3C,0x84,0x89,0x04,0x03,0x89,0x78,0xA4,0x93,0x64,0x61,0xB7,0x3C,0x00,0x90,0x96,0x94,0x73,0x60,0x2C,0x42,0x0F,0xA2,0xB6,0xDF,0xCC,0x05,0x2C,0x09,0x04,
+ 0x00,0x09,0x05,0x34,0x2A,0x03,0x92,0xC0,0xD9,0x45,0x45,0x05,0x36,0x5D,0x2D,0x6D,0x6B,0x00,0xDB,0xDF,0xCF,0xAF,0x10,0x53,0x31,0x4F,0x50,0xDB,0x0D,0x4F,0xEC,0x49,
+ 0x53,0x97,0x03,0xDA,0x5D,0x12,0xDC,0x42,0x3C,0x81,0xDA,0x61,0x9D,0x6F,0xC9,0xA4,0x07,0x83,0xBC,0xEC,0xDB,0x16,0x70,0xDB,0x14,0xE8,0xB9,0xC3,0xF4,0x00,0xE2,0x0C,
+ 0x44,0xDB,0x2D,0xBE,0xE7,0xC5,0x7A,0xC6,0x7B,0xB0,0x7B,0xCE,0x09,0x82,0xD3,0xE7,0x0D,0x08,0x96,0x25,0xC3,0xDA,0x00,0xBC,0x06,0xB6,0xB2,0xAD,0x50,0x84,0xD6,0x7E,
+ 0x46,0xDE,0x18,0xA4,0x96,0xBD,0xA4,0x83,0xDB,0x0C,0xB7,0xB5,0x8F,0x1B,0x60,0xDC,0x0F,0x00,0x38,0xDB,0x0C,0xE0,0x37,0xC4,0xE6,0xA1,0x94,0x00,0x09,0xDA,0x19,0xB5,
+ 0x18,0x45,0x50,0xDB,0x05,0x27,0x5D,0xCD,0x5E,0x03,0xDB,0xD0,0xCE,0x71,0xAC,0x24,0x08,0x04,0xA1,0xDB,0x8E,0x82,0x00,0x07,0x0D,0x9F,0xAC,0xD8,0xD2,0xEC,0x5A,0x94,
+ 0x91,0x63,0xB9,0x29,0xB7,0x60,0xD5,0x3C,0xFB,0x03,0x00,0xF2,0x5B,0x88,0xBC,0xDA,0x24,0xB7,0x2F,0x04,0xD7,0xCC,0xDB,0x2C,0xB5,0xB9,0xAE,0x58,0x47,0xDB,0x4E,0xC5,
+ 0xF4,0xC5,0x0C,0xC1,0xDC,0x28,0xC7,0xAC,0xDA,0x39,0x00,0xC2,0xDB,0xE6,0x0A,0xD9,0x04,0xA2,0xE1,0xDB,0x5B,0x87,0xA3,0x97,0xBE,0xFD,0x2C,0xD4,0x30,0xD7,0xBA,0x00,
+ 0xDB,0x07,0x83,0x00,0x86,0xDC,0x76,0xDC,0xF0,0x00,0xDB,0x69,0xC8,0x8F,0x96,0xB3,0xF2,0xB8,0xE0,0x7D,0xBA,0xAE,0xF0,0xDA,0x0C,0x03,0xDA,0x28,0xB6,0xB0,0xDA,0xD9,
+ 0x00,0x45,0x04,0x46,0xCD,0xAA,0xF1,0x77,0xC8,0xB8,0x4C,0x1B,0x82,0x50,0xDB,0xA0,0xDC,0xF9,0xB5,0xC1,0x48,0x91,0xC0,0x12,0xBB,0xE7,0x7D,0x87,0xDB,0x69,0xAF,0x6A,
+ 0x80,0x00,0x91,0x45,0xA6,0x12,0xB6,0x80,0xAE,0x81,0x70,0xDB,0x58,0xB2,0xDB,0x53,0xD2,0x96,0x44,0x3F,0xAB,0x13,0x05,0xDB,0x15,0xC2,0xCA,0x9B,0x6F,0xAC,0x08,0xCB,
+ 0x2C,0xC5,0xAF,0xC4,0xB9,0x00,0xD2,0x8B,0xE6,0xA3,0x59,0x06,0x73,0xD9,0x92,0x4E,0xA1,0x3F,0x46,0x49,0xA3,0x9F,0x06,0xA6,0x9E,0x93,0xA9,0xF0,0x77,0xC9,0x31,0x2C,
+ 0x7F,0x00,0x42,0x42,0x7F,0x96,0xB2,0xDB,0x1B,0x02,0x11,0x00,0xB7,0xCC,0xA4,0x02,0x03,0xA1,0xDB,0x86,0xDA,0x04,0x63,0x76,0x9E,0x86,0x77,0xA7,0xCE,0x04,0xE2,0x97,
+ 0x53,0x1B,0x1B,0x12,0x38,0xCB,0x4F,0x4F,0x07,0x28,0x22,0xB0,0xDA,0x02,0xC6,0xE7,0xEE,0xEE,0x85,0xB8,0x68,0x41,0xDB,0x63,0xC7,0xB3,0xDC,0x68,0xD4,0x07,0xA6,0xB3,
+ 0xEC,0x83,0xBF,0xAC,0xB6,0xAD,0xF1,0x56,0xB2,0xF0,0xB8,0x8D,0x61,0xDA,0x92,0xB5,0x3F,0x50,0xAF,0x94,0xEC,0xD6,0x4E,0xB9,0x57,0xFD,0xF7,0x06,0x2A,0xF7,0xD0,0xDA,
+ 0x65,0x9F,0x25,0x09,0xBD,0xBF,0xD9,0x28,0xB4,0x5A,0xEF,0xC8,0xC9,0xF8,0xDB,0x50,0xD5,0x61,0xD6,0x7F,0x00,0xA9,0xFA,0x62,0x00,0x3C,0xB3,0xD6,0x02,0xBE,0xB7,0xE5,
+ 0xA1,0x11,0x61,0xDB,0x4F,0xC9,0x40,0xD8,0x05,0xEC,0x82,0x4B,0x03,0xB0,0xDB,0x59,0x45,0xBA,0x30,0x63,0xDC,0x1D,0xE9,0xEC,0x91,0x87,0x84,0xCF,0xD8,0x5B,0x0D,0x12,
+ 0x17,0xB7,0xAC,0x66,0x07,0x0D,0xB6,0x52,0x00,0xDA,0xDC,0xC8,0x60,0xCB,0xB6,0xC1,0xDC,0xDB,0x14,0x66,0xC8,0x3D,0xF2,0xA9,0x3C,0x90,0x31,0xD2,0xF6,0xD8,0xD1,0x92,
+ 0xA6,0x77,0x83,0x60,0xDB,0x89,0xE7,0xA3,0x91,0x4C,0xB5,0xB9,0x94,0x56,0x4E,0xAE,0x28,0x47,0xBA,0x12,0x6F,0x84,0xB5,0xA9,0x9B,0x3D,0x00,0x95,0xAF,0x84,0xDB,0xA1,
+ 0xFA,0x55,0x28,0x07,0x84,0xD4,0xBD,0xB4,0xD8,0x00,0xDB,0x4E,0xDA,0x0D,0x96,0xCA,0xDD,0x66,0xF5,0xE3,0xCA,0x83,0xD9,0x3B,0x02,0xD3,0x8F,0xDD,0x07,0x14,0xD6,0x94,
+ 0xDA,0x07,0x05,0x09,0x06,0x53,0xA6,0x76,0x86,0x3A,0x88,0xDB,0x00,0x27,0x63,0x65,0x9E,0x2C,0x95,0xE9,0xB8,0x88,0x98,0x53,0x24,0xDB,0x0F,0x89,0x6C,0xB6,0x8D,0xC2,
+ 0xC6,0x91,0x30,0xDA,0xCE,0x94,0xB0,0x61,0xDB,0x38,0x66,0x70,0xB9,0xD2,0x8B,0xAF,0x88,0xD0,0x7E,0x8B,0xFC,0xDD,0xC2,0xDB,0x8A,0xB6,0x98,0x04,0x7C,0xDC,0x30,0x7C,
+ 0xD7,0xC3,0xDB,0xEC,0x55,0x44,0xFD,0xE3,0x85,0xB2,0xE4,0xB6,0xA0,0xDC,0x4E,0xAF,0xEE,0x98,0xC6,0xAA,0x04,0x5C,0xF2,0xAB,0x04,0x27,0x93,0x16,0x07,0xB0,0xD6,0xAB,
+ 0x03,0xDC,0xC5,0x40,0x4C,0xED,0x84,0xB8,0x71,0xFF,0x99,0xC1,0x2A,0x6C,0xC1,0xDB,0x23,0xCD,0xA1,0x77,0xB5,0xD7,0x80,0x14,0x57,0x05,0x05,0x11,0xEF,0x02,0xB9,0x9A,
+ 0x06,0xED,0xA7,0x0A,0xDB,0x0C,0x00,0x5D,0x50,0xA4,0x94,0x03,0x29,0x65,0x85,0x95,0x91,0xA3,0xB8,0x21,0xB7,0x9A,0x0D,0x04,0x61,0xDB,0xF5,0xE1,0xBE,0xC8,0xB6,0x5A,
+ 0x90,0x19,0xC8,0x57,0x92,0xE1,0xD9,0xAB,0xEF,0x62,0xDB,0x0E,0x96,0x9B,0x66,0xCC,0xE1,0xD8,0x44,0xB8,0x83,0xAE,0xB8,0x5A,0x90,0x91,0x28,0xB2,0xD9,0x29,0xEA,0x41,
+ 0xA4,0xB2,0x96,0x89,0x37,0x65,0xB2,0x28,0xCB,0x58,0xC0,0x4A,0xC4,0xB2,0xCF,0x83,0x0C,0x39,0xBF,0x61,0xEC,0xC8,0x21,0xB7,0x97,0x18,0x3D,0xFB,0x49,0x00,0xF2,0xB7,
+ 0x44,0x89,0xB8,0x78,0xAB,0xEE,0x94,0xEB,0x5D,0x68,0x7C,0x91,0xB9,0x96,0x90,0x9D,0xAD,0xA2,0x92,0x3B,0xC1,0xDC,0x05,0x49,0x8F,0x45,0xB4,0x75,0x00,0x86,0x6A,0x2A,
+ 0x03,0xB4,0x94,0xC0,0xD7,0x27,0x27,0xA2,0xB7,0xA1,0x00,0x8C,0x4A,0x91,0x45,0xB8,0x56,0x87,0x12,0xAE,0xBE,0x21,0x08,0x1B,0xC2,0xBF,0xCB,0x22,0xF0,0x82,0xC8,0x7A,
+ 0x91,0x45,0x0E,0x27,0xEE,0x00,0x4B,0xEF,0x5F,0xA8,0xB2,0xDC,0x3B,0x81,0xDB,0x3C,0x85,0xDB,0x75,0xC6,0x70,0xC3,0xA6,0x74,0xB2,0xAA,0x00,0xFF,0x60,0x72,0xAD,0x96,
+ 0xA4,0x50,0x44,0xD7,0x2E,0xA2,0x03,0x81,0xBA,0x4E,0x38,0xDB,0x72,0x04,0x87,0xDB,0x14,0x2D,0x00,0x95,0xA5,0xAC,0xE1,0x93,0x9D,0x4B,0xE4,0x22,0xE8,0xD5,0x00,0x05,
+ 0xDA,0x72,0xB5,0xA4,0xD4,0xF0,0x94,0x7C,0x90,0xDB,0x33,0x06,0x66,0x2C,0xDC,0x67,0x3B,0x7C,0x87,0xDA,0x00,0xAE,0xEE,0x91,0x97,0xB6,0xD6,0xDF,0x1E,0x04,0xD7,0x14,
+ 0x00,0x1E,0x4A,0x26,0xDB,0x1D,0x00,0x81,0xDB,0x9E,0x58,0x65,0xB8,0x5D,0xC0,0x23,0xAC,0xC3,0xC0,0xDB,0x1B,0x1A,0xAC,0xA7,0xD7,0x92,0x5A,0x91,0x72,0x5D,0x85,0xDB,
+ 0x4A,0xA8,0x3C,0xD2,0x9B,0x97,0xF2,0xF0,0x55,0x80,0x4F,0xA8,0x03,0xA6,0x98,0xEB,0xB6,0xDB,0x17,0xDD,0x0D,0x72,0x93,0x0B,0x37,0x55,0x96,0x2A,0xCE,0xAC,0xB5,0x2C,
+ 0xBB,0x2C,0xC6,0x27,0xBB,0xC9,0xF9,0x00,0x13,0x4A,0xCC,0xC2,0xFB,0xC2,0xD5,0xD1,0x8D,0x44,0x5C,0x00,0xA4,0xE1,0xD9,0xE9,0x01,0x93,0x87,0xD3,0xCF,0x8B,0x71,0x02,
+ 0xA7,0xCD,0x69,0x73,0x8F,0x6F,0xC8,0x6B,0xEE,0xDE,0x81,0x00,0x11,0xB0,0xD6,0xB2,0xBB,0xA0,0xDB,0x3C,0x1E,0x13,0x00,0xDB,0x2D,0x95,0x24,0xD9,0x00,0x29,0x29,0x93,
+ 0x85,0x2D,0x4A,0xA0,0xF1,0x54,0x22,0xB5,0x55,0x02,0x0E,0x80,0xDB,0x53,0x82,0xD7,0x64,0xCA,0xB6,0xEA,0xC1,0xDA,0x38,0x20,0xDB,0x1D,0x60,0x3C,0x00,0x3F,0xD1,0x93,
+ 0x58,0xD7,0x5A,0x93,0x52,0xED,0xD5,0x84,0xE9,0x95,0xF2,0xBB,0x70,0x60,0xDB,0x56,0x72,0xDD,0x51,0xB9,0x61,0xDF,0xE1,0x03,0xDA,0x3B,0xA0,0xAD,0x55,0xA6,0x27,0xD8,
+ 0x09,0x6A,0xE8,0x4E,0x03,0x0B,0xA5,0x16,0xB0,0x2B,0xDA,0x07,0x40,0x02,0xBA,0x05,0x56,0x00,0xDF,0xCA,0xB2,0x2E,0xF2,0xF0,0xDA,0x93,0x03,0xF9,0xBF,0x77,0xDB,0x07,
+ 0x48,0xD6,0x82,0x48,0x23,0x57,0xA9,0xFC,0x05,0x2A,0x92,0x29,0x06,0xCC,0xF0,0xDB,0x57,0x30,0xBB,0x6B,0x00,0x36,0xDB,0x05,0x29,0x00,0xDA,0x18,0x29,0x8D,0x2C,0x58,
+ 0x3D,0xB8,0x99,0x5B,0xB2,0x5D,0x88,0xA1,0x08,0xC5,0xF0,0x28,0xC1,0xA7,0xDA,0x05,0xE7,0xDE,0x7F,0x62,0x59,0xB9,0x42,0xC9,0xAD,0x3C,0xAD,0xF2,0x86,0xDA,0xDB,0x09,
+ 0x62,0x16,0xEF,0xA8,0x04,0xD9,0x32,0xB4,0xC3,0xDC,0xDA,0x0A,0x00,0x57,0xAD,0xC9,0xF6,0x83,0x40,0xC1,0xD8,0x86,0x61,0xDC,0x20,0xBF,0x5A,0xC3,0xC8,0xB0,0xF6,0xA0,
+ 0x52,0x4B,0x13,0x17,0x25,0x0D,0xF3,0x06,0x04,0x87,0xDA,0x00,0x47,0x04,0xBE,0x84,0x02,0x5D,0xB1,0xB5,0xD2,0x56,0x00,0xD1,0x85,0x73,0x66,0x73,0x87,0x56,0x9F,0xEA,
+ 0xBA,0xEB,0xFC,0xB0,0x42,0xC2,0xDB,0x44,0x91,0xB2,0xB4,0xA2,0xBB,0x50,0x2A,0xDB,0x61,0x00,0x26,0x30,0x5C,0x26,0x48,0x94,0x29,0xB0,0x00,0x18,0x28,0x18,0x85,0x5A,
+ 0x79,0xF1,0x92,0x97,0x22,0x02,0xDB,0x07,0x1C,0xA7,0x9E,0xA4,0x64,0xFF,0xA6,0x7F,0x59,0x38,0x94,0xDB,0x29,0x8E,0x29,0xFF,0x3D,0xCB,0xA2,0xC0,0xA0,0xDB,0x1B,0x61,
+ 0x68,0x61,0xC3,0xEE,0xC6,0x96,0x94,0xDB,0x18,0x96,0xDB,0x58,0xDA,0x50,0xFD,0x93,0x86,0x86,0x05,0xDB,0x9D,0xEC,0x05,0xDB,0x4F,0x9A,0xF0,0xF7,0x0A,0x35,0x00,0x17,
+ 0xB2,0x0D,0x52,0x1B,0x3C,0xBD,0x60,0xDB,0x32,0x84,0x40,0xBE,0x72,0x8A,0xB6,0xF1,0xD7,0x66,0x28,0xD9,0x45,0x02,0xDB,0x57,0xD6,0xEE,0x4E,0xB5,0xC9,0x06,0x39,0x2A,
+ 0x00,0xDA,0x26,0x5C,0x8C,0xDB,0x00,0x65,0x8D,0x3D,0xB4,0x01,0xDF,0xCF,0xAF,0x4C,0x7A,0x7A,0x08,0x0F,0x4A,0xA7,0x53,0xB3,0xDB,0x91,0x42,0x8E,0xC8,0x8E,0x8C,0x83,
+ 0xDB,0x8A,0xAB,0xE1,0xC5,0x3C,0x22,0x98,0x68,0xD2,0x9A,0x97,0xEF,0x07,0x61,0x83,0xDB,0x47,0xC1,0x30,0xDB,0x05,0x96,0x72,0x89,0xBE,0x1D,0xD8,0x3D,0x90,0x14,0xB7,
+ 0xA5,0xB3,0x6F,0xA0,0x98,0xFA,0xED,0xED,0xA2,0x9C,0xFB,0xE7,0xDB,0x0B,0x0B,0xCA,0xDE,0xE5,0x2D,0x9D,0x9C,0x8E,0x6C,0xDC,0x28,0xDB,0x36,0x00,0x72,0xE7,0xAC,0x7D,
+ 0xDB,0x2E,0xB5,0x28,0xD9,0x35,0x87,0x7C,0x83,0x6A,0x7B,0xE0,0xDB,0x11,0xE8,0x00,0xD9,0x1C,0x03,0xA0,0xE4,0xB6,0x0A,0x50,0x13,0xDA,0x6B,0xED,0x60,0xDB,0x5D,0x4A,
+ 0x63,0xDB,0x14,0x00,0x28,0x0E,0x79,0x77,0xBD,0xDA,0x86,0xDF,0x24,0x9A,0x64,0xB6,0x12,0x86,0xC3,0xDB,0x80,0xB0,0xCA,0xC6,0xEB,0x6D,0x1F,0x16,0x7F,0x8B,0x51,0x59,
+ 0xD5,0x60,0xE6,0xD8,0xDB,0x6E,0xCF,0x3B,0xA5,0xEF,0xB2,0xB7,0xD7,0xEC,0xBD,0x3C,0xD0,0x04,0x7B,0x88,0x90,0x40,0xDB,0x2C,0x40,0xB3,0x2D,0xB9,0x66,0xA1,0x2E,0x0C,
+ 0xD7,0xFA,0xDA,0x0C,0xDB,0x0F,0xBA,0xBA,0x14,0x01,0x96,0x00,0x90,0x8B,0x37,0xBA,0xEC,0x0D,0xDB,0x2D,0xBD,0x37,0xC2,0x9C,0xDB,0x34,0x92,0x6B,0x89,0x01,0x7B,0xDB,
+ 0x07,0x74,0x65,0x96,0xB9,0xDB,0x1A,0x84,0xE2,0x07,0x42,0x38,0x23,0xE4,0xA3,0x7F,0x42,0x57,0x8B,0xB8,0x79,0xE3,0x41,0xDC,0x2C,0xA2,0xD3,0xC8,0xD0,0xDB,0x28,0x26,
+ 0xDB,0x12,0x27,0x85,0xDB,0x90,0xB9,0x5A,0xBC,0x77,0xD1,0x94,0xA8,0xA6,0x94,0xDB,0x02,0x08,0x4F,0x12,0x15,0x9F,0x9C,0x1A,0x4F,0x07,0x39,0x02,0xF0,0xA4,0xC0,0xDB,
+ 0xEA,0xB3,0x1B,0x8B,0x8B,0x05,0x52,0x48,0x00,0xDF,0xCD,0x8F,0x4F,0x6B,0x6C,0xED,0x02,0xF0,0x7E,0x79,0x00,0x9D,0xD3,0x70,0x4A,0x00,0x8A,0xB9,0xEE,0xA1,0x6B,0xE8,
+ 0x74,0x94,0xB5,0xED,0xC2,0xDB,0xA4,0x00,0x95,0x4B,0x90,0x2B,0x00,0x98,0xD2,0x2E,0x07,0x4A,0x0B,0xFF,0x5C,0xEB,0x28,0xCC,0x2C,0xB1,0x95,0x37,0xD2,0x34,0xE9,0x5B,
+ 0xC3,0xD1,0x33,0x56,0x89,0xB5,0x46,0x84,0x04,0x94,0x25,0x8D,0x24,0x95,0x8D,0xDD,0xBE,0xC8,0x02,0x57,0xA9,0xA0,0x76,0x14,0x00,0x92,0x80,0x8B,0xDC,0x87,0xE5,0x0A,
+ 0x4A,0x0A,0xDA,0x19,0xB6,0x5C,0xA3,0xA9,0x45,0x03,0x27,0x29,0xB5,0x56,0x04,0xDB,0x00,0x5A,0x79,0xE3,0xBD,0xCF,0x19,0x82,0x5B,0x31,0xB5,0x10,0x08,0x7A,0xA0,0xDB,
+ 0x2C,0x31,0xDB,0x0F,0x7A,0xC1,0xDB,0x02,0xCA,0xBB,0xDE,0xB3,0xB7,0xB1,0x5A,0xAA,0x82,0xB9,0xA9,0xFB,0x6E,0x86,0xA4,0x93,0xF7,0x00,0xC5,0x74,0x61,0x02,0x93,0x94,
+ 0xDA,0x14,0x9E,0xAA,0x8A,0xDB,0x0E,0xDE,0x14,0x70,0xCA,0xF8,0xA0,0x5D,0xC7,0x58,0xDB,0x79,0x00,0x9A,0x4E,0x9B,0x49,0xBA,0x8E,0xF9,0x60,0xE7,0xA5,0xFE,0xDE,0xEF,
+ 0x89,0xA6,0xBA,0x56,0x14,0x83,0x3F,0x25,0x33,0x5E,0x00,0x04,0xDB,0x03,0x7B,0x89,0x89,0x93,0x4A,0xDB,0x0B,0x95,0x4A,0xCA,0x19,0x00,0xDE,0x7F,0x48,0xB2,0xAF,0x50,
+ 0x57,0xDE,0x60,0xDC,0xE5,0x09,0xC8,0x8B,0x0A,0x06,0x82,0xDA,0x4A,0xFF,0x5E,0x45,0xDF,0x25,0x63,0xDB,0x0A,0x92,0x46,0x4D,0xB8,0x40,0xA0,0xB4,0xDA,0xA5,0x5B,0x10,
+ 0x0D,0x07,0x4F,0xB0,0xDB,0x36,0x12,0x8A,0xC0,0xDB,0x22,0x82,0xC0,0xDA,0xC0,0xEB,0x0C,0x15,0x39,0x06,0x11,0xB9,0x96,0x57,0xDB,0x1A,0xFB,0x12,0x61,0x60,0xCA,0xA9,
+ 0x3B,0x40,0xE2,0x3C,0x80,0x68,0x05,0xE0,0x6D,0x00,0x7C,0x20,0xDB,0x14,0x7C,0xAD,0xDB,0x16,0xA7,0x14,0xDA,0x14,0xC3,0x1A,0x85,0x6F,0x02,0x86,0x00,0x06,0xF4,0x05,
+ 0x02,0x3F,0xF9,0xC3,0x7A,0x00,0xA1,0x69,0x93,0x69,0x84,0x7D,0x15,0x23,0xA4,0x90,0xA1,0xDC,0x87,0xDB,0xD0,0x81,0x94,0x78,0x94,0x7D,0x41,0xDB,0x4F,0xC6,0x51,0x61,
+ 0xA1,0xDB,0x8F,0xE2,0x07,0x86,0x8A,0x91,0x94,0xDB,0x09,0x1E,0x02,0xDB,0xFA,0xB8,0xB2,0xDD,0x60,0xDB,0x78,0x28,0x01,0x00,0x5A,0x4D,0xB5,0x0D,0xB6,0xA3,0xDF,0xD7,
+ 0x94,0x10,0x4F,0xB8,0xDB,0x34,0x02,0xAD,0x1A,0x12,0x07,0x53,0xED,0xD2,0x92,0x38,0x25,0x93,0x35,0x11,0xC8,0x58,0x38,0x03,0xDC,0x7F,0xFB,0x47,0x60,0x6A,0x82,0xE3,
+ 0x48,0xC2,0xE4,0xAE,0x79,0x8C,0xF7,0xD0,0xAA,0x00,0xDC,0x09,0x03,0xDB,0x97,0x49,0x03,0xDB,0x01,0xE4,0x02,0xC2,0x5A,0x02,0xBA,0x08,0x06,0x52,0xBA,0xD5,0xD8,0xE9,
+ 0x4D,0x0D,0x2C,0x99,0xA9,0x56,0xB8,0x0B,0x3F,0xBA,0x8B,0x19,0x43,0xDC,0x8E,0x42,0x72,0x94,0xB1,0xD3,0x7D,0x77,0x80,0x73,0xA1,0xB7,0xDA,0x6E,0x5E,0xB0,0x0E,0xEC,
+ 0x7B,0xB9,0xD4,0x57,0xB5,0x57,0xBB,0xD8,0xDB,0x6F,0xCB,0xDC,0x00,0xA4,0xF5,0xFE,0x20,0xDB,0x25,0x27,0x93,0x4B,0xD8,0x00,0x6A,0x6A,0x4D,0x59,0x3E,0x4D,0xD9,0xBF,
+ 0xD1,0x94,0x4C,0xAC,0xED,0x30,0xDB,0x19,0x03,0x07,0xAC,0xDF,0x80,0xA5,0x25,0xDE,0x33,0x01,0xDB,0xDC,0xC8,0xD0,0x58,0xDC,0x35,0x7F,0x6B,0x7F,0x0A,0x6A,0x3B,0x23,
+ 0xDC,0xC2,0x8A,0xD6,0x15,0x23,0x21,0x9B,0x80,0x62,0x59,0xE8,0x20,0xDB,0x66,0xCF,0x7C,0x6A,0x78,0x04,0x84,0xB1,0x05,0x44,0x84,0xDC,0xC1,0xDA,0x20,0xCD,0x76,0x0D,
+ 0xA1,0x56,0xE1,0xB7,0xE7,0x5C,0x00,0xD5,0x15,0x29,0x41,0xEF,0x41,0xD3,0x27,0x2D,0x06,0xBA,0xC6,0x78,0x50,0xD8,0xFB,0x00,0x5F,0xDB,0x0C,0xC1,0x68,0xDA,0x2B,0xB6,
+ 0x92,0x0F,0x63,0x00,0xE0,0x4C,0xF7,0x05,0xC1,0xDA,0x04,0x4A,0xEF,0x0A,0xCA,0xB7,0x70,0xDB,0x61,0x27,0xDB,0x65,0xB6,0x6B,0xEA,0x58,0x00,0xDB,0x0C,0x59,0xD9,0xE4,
+ 0xB8,0xBE,0xBE,0x7C,0x31,0xBA,0x02,0x86,0x00,0xDB,0x24,0xB0,0x61,0xD7,0xDA,0xA3,0x92,0x0A,0xF2,0x95,0x8B,0x86,0xDB,0xDC,0x07,0x57,0x7F,0x00,0x60,0xDB,0x23,0xA0,
+ 0xDB,0x63,0x70,0xD7,0xF2,0xB8,0x42,0xF9,0xC6,0x80,0x82,0x81,0x62,0xC3,0xDB,0xA7,0x57,0x78,0xE8,0x94,0xF0,0xB4,0x84,0x56,0x9A,0xF6,0x89,0x5C,0x06,0xDF,0x00,0x13,
+ 0x0B,0x65,0xB5,0x3D,0x0F,0xF7,0x12,0x13,0x00,0x2A,0x8C,0x5A,0xB9,0x50,0xDB,0x18,0x89,0xD5,0xDB,0x51,0xB1,0x2C,0x73,0xB6,0xAC,0xDB,0x33,0xA6,0xE4,0x03,0xDB,0x0C,
+ 0xD2,0x35,0x02,0x05,0xCD,0xA2,0x75,0xB5,0x03,0xD7,0x0A,0x02,0xF9,0xB8,0x13,0x49,0x92,0x68,0x93,0x50,0x8B,0xDB,0x02,0x4D,0x4D,0x83,0xDC,0x94,0x40,0xE4,0xB9,0xCA,
+ 0x97,0x42,0x24,0xC0,0xDB,0x02,0xDF,0xCA,0xF2,0x52,0x4C,0x8F,0xAC,0x80,0xEA,0x0C,0xAB,0xC9,0x0A,0xE5,0xEE,0xE5,0x8B,0xCD,0x7A,0xD8,0x07,0x0E,0x6A,0xD7,0x8F,0xEA,
+ 0x9F,0x78,0x9E,0x56,0x93,0x9D,0x00,0x2F,0xF1,0xAB,0x56,0x93,0x8A,0x96,0x83,0x75,0x96,0x86,0xDB,0x84,0x4A,0x37,0x9B,0x75,0x56,0x87,0xB3,0x02,0x36,0x00,0xCD,0x5C,
+ 0x0B,0xF6,0x00,0x0F,0xBE,0x92,0x15,0x67,0x0C,0xBF,0x08,0x28,0xDB,0x6A,0x40,0x72,0xDB,0x0C,0x59,0x73,0x7D,0x52,0x73,0x91,0x58,0xD8,0x59,0xB7,0x6B,0x81,0x4F,0xC2,
+ 0x41,0xDB,0x4B,0xEC,0xA6,0x90,0xE7,0x2D,0x04,0xE9,0x55,0x03,0x02,0xA9,0x00,0x13,0xC9,0xFB,0x00,0x91,0x4D,0x00,0x63,0x3A,0x93,0x50,0xDB,0x61,0x03,0xD4,0xB8,0xB6,
+ 0x77,0xB8,0xCD,0x53,0x08,0x1B,0x85,0x01,0xDB,0x7A,0x8D,0x00,0x12,0x4F,0x5B,0xEE,0x72,0xB6,0x30,0x6D,0x34,0xDB,0x28,0x4B,0xDE,0xDB,0x2A,0x85,0xC2,0x7F,0xC8,0x3B,
+ 0x48,0xD3,0xFF,0xEE,0xBA,0x72,0x91,0xD1,0xF0,0xDE,0x79,0x61,0xE4,0x61,0xDA,0xC8,0x00,0xDB,0x0C,0x94,0xDB,0x35,0x06,0x56,0x66,0xC9,0xA8,0x12,0x16,0x99,0x89,0x5D,
+ 0x00,0x1F,0xE9,0x19,0xC5,0x05,0x85,0xCD,0x1D,0xFD,0xDD,0x0F,0x23,0x2C,0x1E,0xBF,0xB6,0xA6,0xDB,0x02,0x94,0x71,0x92,0x8C,0xC1,0xDB,0xDC,0x41,0xD7,0x4C,0x00,0xC8,
+ 0xCF,0x6B,0xB5,0xA9,0x8F,0x69,0xC7,0xF3,0x02,0x09,0x05,0xB2,0x25,0x09,0xCA,0xA1,0x13,0x81,0xDC,0x30,0x61,0xD9,0x30,0xDB,0x4E,0xCB,0xED,0x5A,0x90,0x2C,0xDB,0x06,
+ 0xD9,0xB8,0xE4,0x94,0x82,0x4C,0x1B,0x0D,0x15,0xB7,0x2E,0x9C,0xEA,0xA5,0x40,0xCC,0xCA,0x99,0xEB,0x8E,0x2A,0xC8,0xB6,0x39,0xE5,0x0C,0xE5,0x39,0x09,0x0F,0x65,0xC8,
+ 0xDC,0xC3,0xD6,0xC2,0xE2,0x2C,0x7F,0x9F,0xD5,0xD9,0x0D,0x98,0x32,0xB3,0xB7,0xCB,0xC2,0xDD,0xC8,0xB8,0x90,0x66,0xDE,0xC7,0xAB,0xBB,0xBD,0x2E,0xA9,0x73,0xD8,0x48,
+ 0xD3,0xC3,0xB8,0xD2,0x61,0xBB,0x92,0x87,0x94,0x81,0x00,0x96,0x7B,0xD5,0xD5,0x72,0x56,0x00,0xE8,0x19,0xA5,0x2A,0xBF,0x1B,0xAE,0x02,0x0B,0xAA,0x00,0x13,0x8A,0xB7,
+ 0x5A,0xFF,0xEC,0x2D,0xDB,0x28,0xB7,0xBC,0x03,0xD4,0x2B,0xC9,0x76,0xD7,0x74,0x0E,0x00,0x91,0x98,0xDA,0x3D,0x8B,0x00,0xC7,0xE9,0x94,0x37,0xC7,0x51,0x0A,0xB4,0x57,
+ 0xB4,0x61,0xDB,0xA4,0x03,0x5C,0xDE,0xC2,0x63,0x63,0x80,0xDC,0x2F,0x27,0xA0,0xD9,0x91,0x93,0x2A,0x02,0x90,0x94,0xD9,0xB6,0x1D,0xB4,0xE2,0x9A,0x85,0xA1,0x08,0x40,
+ 0xDB,0xA7,0xC9,0x60,0x53,0xDB,0xC5,0x0C,0x76,0xEA,0x16,0x2A,0x00,0x39,0x8B,0xC0,0xDB,0x04,0x05,0x03,0x14,0x7F,0xDC,0x73,0x2C,0x48,0x05,0xAA,0x91,0xD3,0x99,0xD1,
+ 0x05,0x2C,0xD6,0x9C,0x80,0x16,0xDB,0x16,0xBB,0x42,0x66,0x71,0x78,0x83,0xC8,0x94,0x4B,0xC1,0x09,0x8B,0x99,0x08,0xEC,0x00,0xD2,0x1D,0x78,0x00,0xBD,0xA5,0x3F,0x19,
+ 0xD5,0x02,0x03,0x00,0xF9,0x03,0x06,0xEC,0x00,0xF2,0x30,0xEE,0xAF,0x02,0x03,0x22,0xF9,0x00,0xA6,0xA5,0xE8,0xC3,0xDB,0xDA,0x0E,0x66,0xFB,0x60,0x69,0xC8,0x7C,0xDC,
+ 0x18,0x8B,0xD8,0xFF,0xBF,0x4B,0x00,0x09,0xC6,0x7C,0xDA,0x2E,0x00,0xF9,0xB9,0x45,0x22,0x8D,0x58,0xDD,0x51,0xB8,0x48,0x91,0x9C,0xA4,0xDB,0x00,0xB5,0x94,0x40,0xA3,
+ 0xCF,0x98,0x24,0x21,0x07,0x07,0x60,0xDB,0x6A,0x4F,0xEE,0xD7,0x68,0xC5,0x92,0x16,0xF2,0x4E,0xB9,0x7F,0x06,0x58,0x03,0xD9,0x63,0xC8,0x73,0x23,0x69,0xA7,0xD0,0xC5,
+ 0xCC,0xC8,0x47,0xB1,0x61,0xDB,0x79,0x80,0x40,0xDC,0x62,0xA2,0xB9,0xC1,0xDC,0x96,0x54,0x00,0x9E,0x0B,0xA4,0xC0,0x09,0x51,0x8A,0x84,0x74,0x08,0x8E,0x57,0x00,0xE5,
+ 0xB6,0x86,0xE5,0xB3,0x97,0x0D,0xCD,0x21,0x00,0x7A,0x18,0x0D,0xD5,0x5B,0x00,0x19,0x69,0x71,0x8C,0xB1,0xCA,0x83,0x73,0x6F,0xC2,0xAD,0xE8,0x25,0x8F,0xBD,0xC7,0x2B,
+ 0xE8,0xC8,0x00,0x35,0x8B,0x06,0x00,0x04,0x3D,0xC6,0x04,0xDC,0xA1,0xD9,0x61,0xDA,0x69,0x8D,0x36,0x00,0xB8,0x52,0x86,0xDB,0x95,0x94,0xDB,0x0D,0xBC,0x94,0x1A,0xE6,
+ 0xF0,0xC2,0xE0,0xDB,0x4F,0x6A,0x0D,0xEE,0xD2,0xC0,0xDB,0x35,0x25,0x78,0x2A,0x4F,0xDE,0x7E,0x5F,0x60,0xDB,0x1F,0x92,0xF4,0x65,0xDB,0x19,0xB8,0x52,0x99,0x5E,0x7C,
+ 0xDC,0x0A,0x61,0x00,0x90,0xDE,0x19,0x74,0xBA,0x28,0x73,0xDC,0x2C,0xBB,0xBF,0xD9,0xAE,0x07,0x08,0xCB,0x92,0xC8,0x0E,0x0F,0x42,0xB8,0xAC,0xB4,0xD9,0x00,0x70,0x93,
+ 0x1A,0x94,0x7C,0x1B,0x7C,0x8A,0xDD,0xAE,0x1B,0x17,0x50,0xF5,0xAB,0x2B,0xDE,0x0B,0x27,0xD1,0x92,0x73,0x8E,0xB6,0xB8,0x58,0xDF,0x56,0xD7,0x7B,0xCD,0xA9,0x6A,0x48,
+ 0xEC,0x6F,0x7B,0x79,0xCB,0xB7,0x9B,0x5C,0xDA,0x25,0x00,0xB0,0xDA,0x2E,0x26,0x30,0xA3,0x67,0xDB,0x0C,0xBC,0xA5,0xDB,0x0B,0x01,0x50,0x59,0xDD,0x52,0xF0,0x88,0xBD,
+ 0xA8,0x5B,0x60,0xDB,0x0C,0x24,0xAC,0xDB,0x01,0x99,0xEA,0x2B,0x3A,0x04,0x60,0xDB,0x05,0xB6,0xC9,0x6B,0x06,0xF7,0xA8,0x06,0x57,0xDB,0x0E,0x57,0x0F,0xA9,0x6A,0xBE,
+ 0x3C,0xE7,0x5D,0x3B,0xA6,0x5F,0xBA,0xD0,0xDC,0x1A,0x61,0x87,0xF2,0xB0,0x7B,0xD8,0x15,0x96,0x7D,0x7C,0xA1,0x9A,0xF8,0xD9,0xA5,0x35,0x94,0x06,0x7C,0x7B,0xE6,0x78,
+ 0xE2,0x77,0x7D,0xC7,0x2B,0x70,0xD7,0xAF,0xBD,0x24,0x00,0xD2,0xBF,0xF5,0x14,0x00,0x7B,0x4F,0x24,0x00,0x75,0x0A,0x28,0x41,0xDB,0x9F,0x49,0xDC,0xDC,0x58,0x60,0x8B,
+ 0xBC,0xC8,0x92,0xAE,0x76,0xCE,0x00,0x8B,0x39,0x00,0xBA,0xB0,0x45,0xEC,0xE4,0x00,0xB6,0x2E,0xFF,0xAD,0xED,0x6D,0x8C,0x26,0x00,0x99,0xEF,0x72,0xB5,0xBC,0xE1,0xC0,
+ 0xDB,0xB9,0xE2,0x42,0xAC,0xA1,0xDB,0xD8,0x82,0x1B,0x53,0xB0,0x2C,0xCC,0xC2,0xDB,0x14,0x2A,0x93,0x8C,0x04,0x8E,0xF0,0xDD,0xA6,0x03,0x8B,0xF9,0x8F,0x57,0x00,0x04,
+ 0x79,0x14,0xE2,0x4C,0xE7,0x48,0xFB,0x04,0x7E,0xB5,0x2D,0xD1,0xE8,0xDC,0x3F,0xC3,0x61,0x83,0xDB,0x41,0xCC,0xAB,0xAC,0x87,0x00,0xB0,0xE7,0xB5,0xBB,0xD9,0x0C,0x7D,
+ 0xA5,0x79,0x00,0xB3,0x65,0xB0,0x41,0xD6,0xCF,0xCC,0x04,0x7E,0x12,0x00,0xD6,0x1F,0x12,0x05,0x43,0x81,0x2A,0xAE,0x73,0x23,0x55,0x07,0x1F,0x4E,0x9C,0xDB,0x15,0x82,
+ 0x75,0xC6,0xB9,0xA0,0xF9,0x6B,0xB6,0x5A,0xE7,0xB4,0x06,0x8A,0x54,0x06,0xA0,0xA4,0x04,0xEB,0x5B,0x03,0xDE,0xC8,0xEE,0x81,0xF2,0xDC,0x42,0xB5,0xB9,0xA4,0xD1,0x00,
+ 0x6A,0x00,0xDB,0xD4,0xB5,0xF0,0x10,0x97,0x1B,0x4F,0xB0,0xDB,0x1F,0x4C,0xAF,0xB9,0x14,0x99,0x6D,0xDB,0x18,0xB1,0xBD,0x2A,0x57,0xEE,0x5E,0x06,0x61,0xBF,0x39,0x6A,
+ 0x8B,0x57,0xDB,0x8D,0x0F,0xB2,0x2E,0x78,0x82,0xDB,0x95,0x7D,0x3B,0xCE,0x17,0x00,0x6C,0x06,0x61,0xB2,0x30,0xAF,0xC3,0xD9,0xE3,0x8A,0xC9,0x27,0x87,0x0B,0x41,0xDA,
+ 0xC6,0xF2,0xC8,0x0A,0x71,0xDC,0x0A,0x03,0x74,0x7C,0x0D,0xBC,0x58,0xD1,0x57,0x99,0x77,0x12,0x00,0x7F,0xFF,0xDF,0x0C,0x1F,0x00,0x77,0x03,0x00,0xF5,0x15,0x25,0xB2,
+ 0xD8,0xDA,0x50,0xE2,0x52,0x8F,0x58,0xC7,0xD8,0xDA,0x51,0x7E,0x0A,0x04,0x56,0x03,0xB7,0x52,0xB8,0xC6,0x13,0x3A,0x33,0x74,0x26,0xFF,0x36,0x60,0x50,0xDB,0x5D,0xA0,
+ 0xDC,0x73,0x27,0x03,0x04,0xDB,0x81,0xD8,0xF6,0x02,0x85,0x79,0xC0,0xDB,0xDA,0xAF,0x42,0x24,0xC0,0xDB,0x0D,0x00,0x4C,0xA5,0xCA,0xC0,0x76,0x20,0x2B,0x34,0x18,0x4B,
+ 0xE5,0xB3,0xDB,0x56,0x59,0xCB,0xFD,0x66,0x86,0xDF,0xCB,0x38,0xE1,0x1D,0x42,0x8B,0x75,0xB1,0xE8,0x0E,0x68,0x5A,0x00,0x99,0x65,0xBF,0x53,0xAF,0x58,0xEC,0x73,0x35,
+ 0xE7,0x66,0xA9,0x3A,0x87,0x62,0x0B,0xD0,0xEC,0x9E,0x28,0xA6,0x15,0x61,0xBE,0x34,0x94,0x98,0xDC,0x51,0x90,0x57,0xEE,0x59,0xB1,0x52,0x98,0x69,0xB5,0x20,0xC4,0x79,
+ 0x0E,0x9F,0x32,0x2C,0xA3,0xEB,0x28,0x22,0x0F,0x8A,0xDB,0x0E,0xEA,0xC0,0x73,0xEE,0xEE,0xC8,0x57,0x38,0xEC,0x5F,0xDA,0x3C,0x74,0xDA,0x3B,0x7E,0x00,0xE6,0x06,0xDB,
+ 0x0D,0x90,0x06,0x5C,0x4B,0x3A,0xD8,0x16,0xB5,0x52,0xAC,0xEE,0xC1,0xDB,0x69,0x93,0x61,0xDB,0xD0,0x02,0xDB,0x3E,0xE4,0xBD,0x85,0x40,0xDB,0x4F,0x07,0xD7,0xEE,0x81,
+ 0xB0,0x99,0x75,0x6D,0x8E,0x07,0x1F,0x3A,0xDE,0xDE,0x2A,0x56,0xAB,0x63,0x09,0x65,0x01,0xED,0x02,0xDC,0xA9,0xD2,0xFF,0x78,0xCF,0x72,0xB7,0xA2,0xAE,0xD1,0x95,0x80,
+ 0x41,0xDE,0x85,0xDD,0x67,0x8D,0x0E,0xA5,0xA4,0x3D,0xDE,0x5B,0x0A,0x81,0x5F,0x00,0x05,0xBD,0xE1,0x85,0xD8,0x59,0x0A,0xEB,0x95,0x83,0x3C,0x05,0x53,0x86,0xAE,0xEF,
+ 0xCA,0x54,0x9F,0x5F,0x0D,0x3E,0xAC,0x14,0x66,0xE2,0x95,0x71,0x24,0x54,0x04,0xD5,0x45,0x87,0x7F,0x25,0xF8,0x56,0xF2,0xE3,0xBE,0xCF,0xF8,0x0A,0xD1,0xD4,0x9E,0xB9,
+ 0x03,0x7F,0x27,0xA3,0xDB,0x0B,0xEC,0x5A,0xE9,0x5F,0x00,0x04,0x5C,0x45,0x00,0xAA,0xEF,0x27,0x30,0x2F,0x5D,0xDB,0xF0,0x01,0xD9,0x57,0x28,0xBB,0x5E,0x00,0xB7,0x42,
+ 0xB5,0xA0,0xA3,0xA6,0xA8,0x16,0xDB,0x01,0x22,0xB0,0xD7,0x40,0xDB,0x17,0x64,0x0C,0xFD,0x8E,0x7A,0x8E,0xA8,0x04,0xB0,0xD8,0xB0,0xD9,0xF0,0x00,0xD7,0xB9,0x03,0x80,
+ 0xDB,0x23,0x3C,0xA0,0xAD,0xC1,0xCA,0x68,0xBA,0x08,0x42,0x05,0x04,0xE8,0x03,0xC1,0xBD,0x09,0x06,0x42,0x5E,0x00,0x19,0x1A,0x60,0xB9,0xBD,0xE6,0xA1,0xC3,0xE6,0x0D,
+ 0xB0,0xEB,0xCB,0xBE,0x02,0xB0,0xDB,0xCA,0xC7,0xF3,0xC0,0x2B,0xB2,0xB9,0xB7,0xDD,0xB2,0xB2,0xE4,0x05,0xDB,0x07,0x48,0x3A,0x69,0x8C,0xED,0xC9,0x1E,0xA2,0xA7,0x74,
+ 0xD7,0x0B,0x04,0xB8,0x2C,0xB2,0xAA,0x80,0xEE,0xA4,0x6C,0xDB,0x1C,0x36,0x01,0x50,0xDB,0x2B,0x5D,0xBA,0x8A,0x28,0x18,0x92,0x4E,0x01,0x4B,0x84,0xCD,0x00,0xB5,0xD4,
+ 0x93,0x04,0xE6,0xB7,0x4C,0x28,0xDB,0x0A,0x07,0xB9,0xEB,0xDB,0x00,0x19,0x34,0x13,0x33,0x12,0xB3,0x25,0x13,0x85,0xDB,0x0F,0xC1,0x6B,0xF7,0x6C,0x07,0xB5,0x2E,0x38,
+ 0x00,0x95,0xEF,0x23,0x41,0x9A,0x4C,0xF6,0x3B,0xEB,0x09,0x8E,0x29,0xDA,0xEC,0xE3,0x32,0xC9,0xED,0x08,0xEA,0xD5,0x42,0xF0,0x19,0xC0,0x24,0x87,0x91,0x29,0x26,0xCE,
+ 0xDA,0x99,0xC2,0xDB,0x8B,0xBA,0x13,0xD6,0xD0,0xAA,0x2F,0x00,0xE4,0x41,0x82,0x6C,0xDA,0x2D,0xE6,0x7C,0x00,0xF3,0x3A,0x57,0xBA,0x2B,0xED,0xBE,0x8F,0xA9,0xE2,0xAA,
+ 0xC8,0x3A,0x02,0x00,0x90,0xDB,0x2F,0xB9,0xAC,0xDB,0x12,0x45,0x87,0xDA,0x00,0xAC,0xEF,0x84,0xB7,0x65,0xC3,0xDB,0x00,0x94,0xDC,0x26,0xDB,0x00,0xB8,0xA3,0xDF,0xE2,
+ 0x21,0x5B,0x08,0x40,0xDB,0x52,0x02,0xEE,0x83,0xC5,0x76,0xEB,0x10,0x3A,0xDD,0x46,0x3A,0xB7,0xDB,0xC6,0x2D,0x06,0x00,0x09,0x24,0xB2,0x76,0x00,0xB7,0x49,0x14,0x43,
+ 0xDB,0xC0,0x01,0x73,0x70,0x83,0xC6,0xD2,0xC8,0x0E,0x2C,0x0B,0xC3,0xDB,0x09,0xB0,0xD8,0xF4,0x00,0xA6,0xF5,0x12,0xED,0xB0,0xDB,0xB5,0xF8,0xC2,0xC8,0xE6,0xCD,0xBA,
+ 0x16,0x2E,0xDB,0x06,0x3C,0xC6,0x94,0xD6,0xBD,0x34,0x55,0x30,0x34,0xD0,0x12,0xD6,0x6A,0x02,0x60,0x4A,0xAC,0x08,0xB7,0xAA,0xF7,0xBA,0x60,0x02,0xFD,0x03,0x6A,0x99,
+ 0x2A,0x75,0xDA,0xEE,0x97,0xEB,0x93,0x45,0x2A,0x05,0xDC,0xF2,0xB5,0x30,0x60,0xD8,0x34,0x50,0x2F,0x8D,0xC8,0xB2,0x29,0x65,0xEC,0x03,0xDB,0x2B,0xE0,0x26,0xCD,0x79,
+ 0x00,0xDB,0xD0,0xE2,0x42,0x97,0xA0,0xDB,0x1B,0x09,0xC1,0xD8,0xCA,0x99,0x03,0xDB,0x93,0x8C,0xBA,0xA5,0xA9,0x9F,0x02,0x65,0x92,0x00,0xEA,0x77,0x88,0xE4,0xDB,0x06,
+ 0xC8,0x90,0x18,0xA6,0x76,0x07,0xAD,0x5B,0x00,0x7F,0xBB,0x95,0x48,0x83,0xE3,0x2C,0xFA,0xC6,0x23,0xB1,0x99,0xAC,0x14,0x60,0x68,0x94,0x97,0x00,0x69,0xA8,0x7D,0x00,
+ 0x0E,0x25,0x99,0x22,0xC1,0xC8,0xFF,0xF6,0x3E,0xBB,0x07,0xDB,0x0B,0x00,0xE7,0x98,0xDF,0x55,0xDC,0x37,0x00,0x60,0xC4,0x77,0x38,0x5E,0xD4,0x8A,0x05,0x8A,0x42,0x8B,
+ 0x8B,0xD6,0x8C,0x92,0x94,0xD1,0x8E,0x0A,0x6F,0xCB,0x60,0xDB,0x5C,0xB0,0xD7,0xA5,0x00,0x27,0x85,0xDB,0x12,0xB8,0x65,0x70,0xDB,0xB7,0xCC,0xB0,0xDD,0xC0,0x01,0xD9,
+ 0xA3,0xBD,0xC4,0xAF,0x7A,0x85,0xC3,0xDB,0x92,0x40,0xEB,0x6B,0x19,0x1F,0xEA,0x48,0xD0,0xFE,0xBD,0x76,0x09,0x57,0xDB,0x14,0xD3,0xD7,0xB1,0x3D,0x7B,0x84,0xDD,0xA9,
+ 0x93,0xCB,0x99,0xDC,0x87,0x29,0x41,0xDB,0x0E,0x30,0xDB,0x65,0xC4,0x5D,0x05,0x1D,0x06,0xB7,0xCD,0x16,0xF1,0x7D,0xE9,0x4C,0xDA,0x0E,0x3B,0xC3,0x70,0xCD,0xF5,0x0A,
+ 0x24,0x48,0xE1,0x1D,0xCC,0x6D,0x92,0x7B,0x00,0xB4,0xBE,0xC8,0x02,0x4D,0xC4,0x88,0xDC,0xC8,0xD1,0x8E,0x38,0xCA,0x02,0xDA,0x1E,0x00,0xD2,0xF6,0xE5,0xDD,0x7D,0xF4,
+ 0xB4,0xD3,0xA3,0x40,0xDA,0x30,0xBE,0xB5,0xA0,0xDA,0xB9,0x00,0xB9,0xBC,0x18,0x28,0xDB,0x58,0xD9,0x26,0x5A,0xDB,0x0A,0xA8,0x98,0x50,0xDB,0x0A,0x9F,0xC1,0xEE,0x50,
+ 0x6B,0x52,0x5F,0x1C,0xE9,0x47,0x54,0x33,0x5B,0xB8,0x41,0xDB,0xA7,0xF9,0x01,0x61,0xDB,0x6E,0xCC,0x11,0x90,0xDB,0x32,0x9F,0xCB,0xB8,0xC8,0xFC,0xAE,0x29,0x94,0x30,
+ 0xDB,0xC3,0xB0,0xAC,0x0E,0x12,0xEF,0x00,0xD3,0xF9,0x03,0x79,0x0A,0x9C,0xA0,0xDC,0xB7,0xE8,0xB9,0xCB,0xC9,0xC7,0x7F,0xF8,0x07,0x28,0x82,0xE9,0xD0,0x45,0xE4,0xD3,
+ 0x34,0xED,0xDB,0xF5,0xBA,0x7F,0x39,0x0D,0xAB,0x0F,0xDB,0x0A,0x59,0xE5,0x02,0xD5,0xCE,0x6F,0xEC,0x81,0x0A,0x39,0xFA,0xBA,0x40,0xDA,0xC3,0xD5,0x02,0xB4,0x00,0x26,
+ 0x81,0xDA,0x3D,0x81,0xCE,0xDA,0x12,0xF5,0xBB,0x4A,0xA4,0x6A,0xF3,0xE0,0x93,0x46,0xB4,0xCC,0xE8,0x53,0x60,0xDB,0x00,0x76,0x5E,0x81,0x35,0x19,0x1A,0xCB,0xB5,0x8C,
+ 0x3D,0xF0,0x58,0x2A,0xDB,0x5A,0xF6,0x4C,0xDB,0x0B,0x06,0x87,0xB5,0x14,0x4F,0xA7,0x02,0x96,0xAB,0xED,0x3C,0xD6,0x61,0xAB,0x40,0x9C,0x38,0xE4,0x04,0xAA,0x2D,0x12,
+ 0x7F,0x6F,0xD2,0xF6,0x07,0x00,0xD1,0xF9,0xD7,0x69,0x00,0x23,0x13,0xA9,0x00,0xAA,0x32,0xD4,0x9C,0xC9,0x28,0xDB,0x2C,0xE3,0xAE,0x26,0xAE,0x11,0x29,0xB5,0x00,0x14,
+ 0x57,0x22,0x95,0xC8,0x8D,0x91,0x05,0x75,0xF9,0x67,0xA7,0xF8,0x6F,0x73,0xD7,0x14,0x06,0x39,0xC9,0xF9,0xB8,0xCA,0xD8,0x16,0xDA,0x14,0xDB,0x09,0x27,0xC3,0xDB,0xD6,
+ 0x0B,0x00,0x9B,0xDE,0x22,0x00,0xDB,0xB5,0xB6,0x60,0xB4,0xDB,0xA8,0x42,0x4C,0x97,0x83,0xE5,0xDE,0x38,0xCA,0x6B,0x81,0xCD,0x29,0x0B,0x1F,0xEE,0x5B,0x4B,0x5F,0x33,
+ 0xDB,0x0F,0x6A,0x61,0xAB,0x6F,0xCB,0x71,0x8B,0xE5,0x57,0x28,0xDD,0x28,0x0F,0xFC,0xE8,0xD0,0x3C,0x02,0xB4,0x32,0x80,0xC2,0x9B,0x9F,0xE1,0x07,0x51,0x2C,0xC0,0x50,
+ 0xD5,0x57,0x0E,0x0B,0x87,0xF6,0x00,0xAD,0x0F,0x0E,0xF6,0xE4,0x93,0x4C,0xA7,0xA5,0xD0,0x2C,0x86,0x67,0xB5,0x4A,0x87,0x8A,0x2D,0xFB,0x37,0x33,0x3E,0x5C,0x57,0x9F,
+ 0xD1,0x94,0xD9,0x9B,0xAD,0x09,0xBD,0xFB,0x00,0xDA,0xC2,0x0A,0x2A,0x44,0x94,0xC2,0xD5,0xD0,0x90,0x5C,0x26,0x95,0xEC,0x6E,0xFF,0x9A,0x63,0x88,0x1E,0x27,0x93,0xD8,
+ 0x50,0xD6,0x4C,0xDA,0x16,0xC8,0xF4,0x04,0xD4,0x51,0xD9,0xB7,0x08,0xDA,0xA8,0x5B,0x50,0xB7,0xA5,0xDB,0x01,0x52,0x35,0x01,0x60,0xDB,0x33,0x7D,0x0A,0x52,0x87,0xF6,
+ 0x60,0x68,0x11,0x6B,0x57,0x82,0xC3,0xBC,0xC8,0xE2,0x6D,0x08,0x7F,0x79,0xE3,0x56,0x02,0xA2,0x1E,0x05,0xC1,0x14,0xC0,0x0B,0x48,0x0C,0xBA,0x08,0x91,0x2A,0xAB,0x7E,
+ 0xF2,0xB0,0xCB,0x90,0xEC,0xED,0x85,0xA9,0x0F,0x3B,0x5D,0xC2,0x74,0x1F,0xEE,0x55,0x22,0x54,0x03,0xEB,0x15,0x33,0x61,0xD8,0x74,0x4B,0xC4,0xF5,0xE4,0x76,0x8D,0x95,
+ 0x02,0x5F,0x00,0x6F,0x03,0x35,0x07,0x25,0x94,0xAA,0xEB,0x26,0x48,0x00,0x95,0xED,0xAC,0xD6,0xC1,0xDF,0x18,0x28,0xD7,0x22,0x6A,0x41,0xDB,0x4D,0x30,0xDB,0x21,0x4C,
+ 0x60,0xDB,0x79,0xCF,0xDD,0x81,0xDB,0x20,0x15,0x81,0xDB,0x5C,0x13,0x43,0xB1,0x69,0x99,0xE1,0x00,0xDE,0x63,0xD0,0x40,0xDF,0x87,0x75,0x57,0x04,0xDA,0xB4,0xB8,0x57,
+ 0x8D,0x74,0x94,0xF4,0x9F,0x1A,0x08,0x0E,0x50,0xD6,0xAB,0x04,0xF0,0x5B,0xDF,0x0A,0xCA,0x0A,0xFE,0x3B,0xFD,0xC9,0x42,0xF2,0xD6,0xDD,0x44,0x20,0x0E,0xB2,0x29,0x77,
+ 0x16,0x00,0x0E,0x61,0xDA,0xAD,0xE8,0xED,0xC0,0x75,0x03,0xF9,0x95,0xA8,0xC4,0xB7,0x89,0x99,0x79,0xDD,0x45,0xB7,0x22,0x8E,0x5F,0xB5,0x56,0xDB,0x4E,0xC7,0xF4,0x90,
+ 0x9A,0xEB,0xCC,0xDB,0x12,0x2A,0xEE,0x5A,0x50,0xDC,0x87,0x08,0xB7,0x22,0xB0,0xA0,0xDB,0x60,0x5E,0xDB,0x01,0x79,0x5C,0x50,0xB8,0x50,0xB5,0xD9,0x94,0xDD,0xE1,0xBC,
+ 0x2A,0x6A,0xD5,0x70,0xDB,0xDB,0x7C,0x0F,0xC4,0xD9,0xBD,0xFF,0xBE,0x87,0xD4,0x00,0x5E,0xC8,0x0E,0xA8,0xDF,0xA5,0xC8,0xB9,0xAB,0xA0,0xCD,0xB0,0xAF,0xB7,0x9C,0xC3,
+ 0xFF,0x09,0xBA,0xEB,0xCA,0xA0,0xD2,0xA3,0xD3,0x8B,0x14,0xEC,0x22,0xF1,0xB1,0x94,0xF2,0x07,0xFA,0xA9,0x0A,0x37,0xA8,0x30,0xB0,0xDA,0xB7,0xC2,0x5D,0x11,0x00,0x86,
+ 0xDB,0xEB,0xB2,0xC9,0x00,0xB8,0xDE,0x00,0xB7,0x53,0x05,0xDC,0x86,0xDA,0xD5,0x13,0xBD,0xC7,0x4F,0x9E,0x00,0x28,0xDB,0x5F,0x05,0x03,0x7C,0xBA,0x4D,0x60,0xD9,0xDB,
+ 0x77,0x86,0x01,0xDB,0x53,0x28,0xDB,0x6F,0xCB,0xA4,0xDD,0xA1,0xDB,0x69,0xEF,0xAF,0xF2,0x70,0x32,0xEF,0xE2,0xCE,0x0F,0x0C,0x7F,0xE5,0x8B,0x38,0xE2,0x5B,0x11,0x80,
+ 0xD0,0xED,0xF8,0x03,0xA6,0x61,0x99,0xBC,0x01,0x57,0x00,0xBA,0x30,0xA3,0xB2,0x83,0x9D,0xC1,0x64,0xCE,0x0C,0xDA,0x25,0xC0,0x2B,0xD9,0x0F,0x04,0x24,0xEA,0x14,0x2D,
+ 0x8A,0xF8,0xCA,0xAF,0x4B,0xCE,0xBA,0x30,0xF9,0xAB,0x95,0x39,0x6D,0x00,0x88,0x25,0x08,0xDE,0xC4,0xF2,0xD7,0x5C,0xD8,0xB7,0xC7,0x4C,0x36,0xB5,0x52,0xCD,0xA2,0xE4,
+ 0xD7,0xA5,0xB8,0x27,0x04,0x0A,0x28,0xDB,0x0D,0xB8,0xB6,0xA0,0xCB,0xD0,0xE2,0xB0,0xDB,0x25,0x82,0xDB,0x0C,0xB7,0xB1,0xA9,0xEA,0x55,0x85,0xFA,0x5D,0x06,0xEE,0x63,
+ 0x68,0x91,0x97,0x39,0x9A,0xA9,0x11,0xB6,0xD6,0xCA,0xB7,0x4C,0xEA,0xD4,0x07,0x57,0xA1,0x9D,0x06,0x65,0x03,0xA8,0xD8,0x03,0xD8,0x58,0xC9,0x5A,0x06,0x14,0xF2,0x0E,
+ 0xE3,0x9C,0xA0,0xAD,0x91,0x25,0xDD,0x59,0x4B,0xB4,0x33,0x92,0x40,0xE9,0x00,0xEC,0x7D,0x53,0xCD,0xA4,0x86,0x4B,0xDC,0x0E,0x68,0xD5,0xF5,0x2A,0xD9,0x70,0xB5,0x6E,
+ 0xC3,0x1F,0xD6,0x9E,0x40,0xDA,0x92,0xA5,0x67,0xDA,0x0B,0xB7,0x24,0x29,0x81,0xDC,0x77,0x82,0x30,0xDB,0x14,0xD4,0xB5,0xDB,0x0A,0xE4,0xDB,0x04,0xAC,0x34,0xDB,0x0A,
+ 0x5E,0xDB,0x0E,0x4F,0x95,0xEC,0x33,0x24,0xA9,0x76,0x07,0xC1,0x36,0xAC,0x6E,0x39,0x76,0xF2,0x04,0xBC,0xF2,0x00,0xB9,0xC3,0xCE,0x00,0x2E,0x8B,0x57,0x00,0xA2,0xE7,
+ 0x4C,0x00,0xB1,0x2C,0xBD,0x16,0x48,0xB3,0xF2,0x05,0xBD,0xDB,0x21,0xF5,0xCB,0x8E,0x32,0x27,0xB2,0x00,0xFD,0x12,0xB1,0x7D,0xA4,0x61,0xD8,0x52,0x05,0x3D,0xC6,0xDB,
+ 0x49,0xC7,0xE5,0xB3,0x61,0xDB,0xF1,0x05,0xBE,0xCA,0x00,0xB5,0x58,0xDA,0x09,0x0C,0x25,0x13,0x82,0xDA,0x7A,0xFD,0x93,0xD7,0x2D,0xF0,0x67,0xDD,0xCD,0xCF,0xCA,0x8D,
+ 0x28,0xDB,0xC5,0xD4,0x20,0x92,0xE4,0xE4,0xB9,0x85,0x89,0xB7,0x02,0x41,0xDB,0xCE,0xA6,0xDB,0x04,0xCD,0x19,0xA1,0xDB,0xB0,0x01,0x2A,0xC9,0xBD,0x65,0xF0,0x7C,0x75,
+ 0xD9,0x71,0xD1,0xBA,0x9C,0x72,0x39,0x7F,0x15,0xB9,0x11,0x80,0x60,0x7F,0x61,0xDE,0x5F,0x04,0x0E,0x11,0x77,0x9B,0x41,0xC9,0xD5,0x05,0x02,0xAC,0xC9,0xB5,0xD7,0x72,
+ 0x0E,0xD5,0x04,0x05,0x86,0xE0,0x30,0x8B,0xAD,0x93,0xBF,0x84,0xED,0x03,0xC0,0xED,0xEC,0x3B,0x12,0xDA,0x0B,0x00,0x99,0xC2,0xEB,0x00,0x04,0xA8,0xCB,0xC8,0xB6,0x0C,
+ 0x8E,0x11,0x8E,0x1F,0x45,0x29,0x92,0x20,0xD9,0x28,0x65,0xDB,0x11,0x29,0x60,0xDB,0xB5,0x13,0x8D,0xB5,0x4D,0x00,0xDB,0xA3,0xBD,0xE6,0x85,0x54,0xEF,0x0D,0x4C,0x60,
+ 0x8F,0xDB,0x76,0x64,0xEB,0xB7,0x5C,0xA5,0x4D,0x30,0x26,0x8E,0xF3,0xA3,0x39,0x39,0x2A,0x63,0xAB,0x69,0xCE,0x7D,0xF7,0x6E,0xA5,0xAC,0xB7,0xF0,0x8E,0xE7,0x00,0xD3,
+ 0x3A,0x00,0xB2,0xA1,0x94,0xC7,0x25,0xAF,0x25,0x14,0xDB,0x07,0xF2,0xD1,0xC8,0x54,0x1C,0x96,0x0B,0x8E,0x33,0xA6,0x89,0xA4,0xD6,0xB6,0x5D,0x03,0xFD,0xFE,0x87,0xCD,
+ 0x4E,0x2A,0xE8,0xA5,0x09,0x06,0xA3,0xA1,0x90,0xB6,0xB1,0xDD,0xD5,0x99,0x5C,0x56,0x00,0xB3,0x53,0x4D,0xA4,0xC9,0xA1,0x65,0x65,0x4E,0x04,0x63,0x05,0xD2,0x99,0xE8,
+ 0x00,0xB7,0x98,0xB5,0xDB,0x52,0x91,0x61,0xDA,0x28,0xDB,0x08,0x4C,0x08,0x08,0x44,0xDB,0x05,0x24,0x4C,0xA5,0x80,0xDB,0x6B,0x35,0x1A,0xC5,0xB0,0x26,0x28,0xDB,0x25,
+ 0x4B,0xDB,0x0B,0xCE,0xDA,0xCF,0x16,0x06,0xE0,0x32,0x8F,0xE9,0x04,0xF3,0x03,0x09,0x85,0xDD,0xD5,0xBF,0x24,0xA4,0xAF,0x99,0x7D,0x13,0x07,0xD5,0x16,0xAC,0xCA,0xF8,
+ 0xB5,0x14,0x7F,0x00,0x21,0x02,0x76,0x00,0xB2,0x55,0x1C,0xCB,0x08,0x93,0xF6,0xE6,0xB6,0xE3,0x15,0x04,0xD6,0x01,0x69,0x0F,0x1E,0xC5,0xD1,0x33,0xCC,0x7B,0xE7,0xB6,
+ 0xDB,0x16,0xDC,0x12,0x94,0xB7,0x95,0xFD,0x65,0xBB,0x41,0xDB,0x65,0xB7,0x2B,0xCF,0xBA,0xB5,0x00,0xB5,0x2B,0xB6,0x24,0xB4,0x30,0xDB,0x06,0xC1,0xD8,0xEF,0xB4,0xDB,
+ 0x02,0x20,0x1C,0x30,0xD2,0x93,0xC0,0xDB,0x2A,0x4B,0xBB,0x89,0x9B,0x00,0xB7,0x2A,0xE0,0x5B,0xD6,0x0B,0xC1,0x3A,0xEC,0x19,0x1E,0xD2,0x57,0x8E,0xB5,0xFF,0x49,0x7F,
+ 0xF4,0x12,0x14,0xA7,0xAB,0xED,0x73,0x87,0x33,0xAF,0xDC,0x29,0xCB,0xDD,0xDB,0x00,0xBD,0xFF,0x87,0xCD,0x05,0x94,0x36,0x8A,0x93,0xD6,0x08,0x65,0xA1,0x61,0x34,0xE5,
+ 0xE5,0x25,0x45,0xAF,0x27,0xB0,0x60,0xDB,0x1F,0xE2,0x04,0x92,0x93,0xC2,0xDB,0x70,0xDA,0x4D,0x18,0xAB,0x2B,0xB5,0x00,0xA0,0xDB,0xE4,0xA5,0xA3,0xB9,0x10,0xD0,0xDA,
+ 0xB7,0xA8,0xDB,0x25,0x5B,0xDB,0x02,0x52,0x0B,0xF4,0xAD,0x30,0x33,0xA0,0xDE,0x29,0x33,0x33,0xD1,0xAF,0xBF,0xA4,0xB6,0x86,0x03,0xB8,0x54,0xEC,0x32,0xD5,0xB2,0xFF,
+ 0xC7,0x00,0x28,0xDE,0x4A,0xB7,0xF2,0x25,0x98,0x9C,0xED,0xA1,0xC7,0x84,0xBF,0xD3,0xAE,0x20,0xDB,0x5D,0x00,0x4E,0x06,0xDB,0x18,0xBD,0x52,0xE2,0xDB,0xBE,0x4A,0xD2,
+ 0x12,0x5A,0x07,0x0F,0x2A,0xD9,0x00,0x25,0x1D,0xB3,0x5C,0x6D,0xF2,0x75,0xFD,0x41,0xE3,0x3B,0xCA,0x89,0x5D,0x5D,0x27,0x16,0xEE,0xD6,0xF5,0xD1,0x91,0x29,0x20,0xDC,
+ 0x2C,0x6A,0xDB,0x0A,0xBC,0xBC,0x91,0x45,0xB6,0x16,0xB6,0xDB,0x04,0xA5,0x53,0x32,0xB7,0x4D,0x75,0xCD,0xDB,0x5F,0x50,0x1F,0x57,0x57,0x33,0xC0,0x49,0x00,0x59,0xE7,
+ 0x25,0x00,0x15,0xC1,0x06,0x80,0xAE,0x56,0xBA,0x56,0xD1,0x76,0xC1,0x52,0x95,0x91,0x2D,0xCB,0x3C,0xA4,0xAB,0xD7,0x69,0xA3,0x2D,0x00,0x95,0xC5,0xB2,0x8A,0x14,0x62,
+ 0xAF,0xA9,0x27,0x3A,0x30,0x02,0xDB,0x04,0x39,0x9F,0xFB,0x32,0x8A,0x49,0x06,0x22,0x90,0x32,0x39,0x00,0x4B,0x33,0xA9,0x00,0xEB,0x68,0xD8,0x3C,0x04,0xD4,0x2C,0xD7,
+ 0x24,0xB7,0x20,0x5D,0x2F,0x2F,0x5D,0x59,0x63,0xB3,0x5C,0xA8,0xDE,0xDF,0x55,0x07,0x24,0x00,0xB5,0xDA,0x05,0xB8,0x05,0xDA,0xA3,0x92,0xDF,0xDB,0x08,0x5D,0x93,0x12,
+ 0xCA,0x00,0xDB,0x17,0x0B,0x15,0x30,0x2B,0x34,0xD8,0x4D,0x30,0x00,0x61,0xDD,0x41,0xDE,0x5F,0x02,0x7C,0x7D,0x8D,0xF4,0x0C,0xE2,0xB1,0xE1,0xCA,0x00,0xBA,0x56,0xB2,
+ 0x0F,0x57,0xCD,0x30,0xDE,0x97,0xF8,0x2B,0x1C,0x02,0xAB,0x13,0xF3,0x09,0x53,0x93,0x2C,0xE5,0x0D,0x0F,0x9A,0xF7,0xA8,0xC2,0x12,0x04,0xBD,0xBA,0x84,0xD7,0xD3,0xA2,
+ 0xAC,0x5E,0x2A,0xDA,0x17,0x4B,0xD4,0xAB,0x13,0xB6,0x2C,0xDB,0x32,0xB4,0x4B,0x45,0x00,0x40,0xDA,0x5D,0x30,0x32,0x49,0xDB,0xD2,0x90,0x77,0xC5,0x48,0x18,0x00,0x8D,
+ 0xA6,0x00,0xBC,0x00,0x79,0xA0,0xDB,0x08,0xE4,0x77,0xB9,0xB9,0x78,0xDB,0x28,0xDC,0x01,0x35,0x5F,0x20,0x6D,0x0C,0xBD,0xCF,0x05,0xD4,0xAC,0xF7,0x40,0xDC,0x55,0x8B,
+ 0xC9,0xC3,0xD6,0xDB,0x17,0xB1,0x33,0x06,0xDD,0x85,0x56,0xB4,0x09,0x8B,0x42,0xDB,0x50,0xDC,0xBE,0x14,0x00,0x64,0xB3,0xEE,0x02,0x31,0x5B,0x0A,0x11,0xE6,0x0E,0x80,
+ 0x49,0x4A,0xB7,0x22,0xFA,0xA4,0xEC,0x5C,0xD9,0x0E,0x3A,0x4B,0xBE,0x2F,0x78,0x00,0x90,0xDB,0x22,0x25,0xA5,0x5D,0x44,0xB7,0x27,0x95,0xEC,0x65,0xB7,0x29,0x25,0x00,
+ 0xDA,0x09,0x0B,0xB6,0xED,0x56,0xBD,0x92,0x84,0xDF,0xE6,0x2C,0xDB,0x0C,0xAC,0xDB,0x16,0xC5,0xB8,0x40,0x20,0xCD,0x20,0x5E,0x21,0xE6,0x5A,0xDB,0x09,0x82,0xDC,0x8A,
+ 0xB8,0x96,0x7E,0x03,0x8E,0x16,0xED,0xB7,0xBA,0x53,0x15,0xB9,0xCE,0xB3,0x04,0xB3,0x78,0xB3,0xE9,0x11,0xAA,0x0A,0x95,0x4B,0xC2,0x0B,0xF6,0x7E,0x05,0xE6,0x00,0xFA,
+ 0x79,0x42,0xDA,0xF9,0x30,0x0D,0x7A,0xA4,0xD2,0x83,0xE6,0xA7,0xC2,0xE4,0xAA,0x0B,0xA5,0x7F,0xAE,0xCE,0x00,0x3A,0x3A,0x6D,0x5E,0xAF,0xAB,0x04,0x07,0x58,0x50,0xDB,
+ 0x53,0xC8,0xE5,0xB4,0xE1,0x00,0xD4,0x6F,0xC7,0x69,0x8C,0x1E,0xDB,0x1A,0x91,0x60,0xDB,0xD0,0xA0,0xDB,0x21,0xDA,0xAF,0x62,0xB7,0x32,0xA5,0xD7,0xB8,0x60,0x75,0xDB,
+ 0x52,0x0E,0xCD,0x17,0x17,0x19,0x88,0xC6,0x1A,0x1F,0x1F,0xD7,0x0B,0x13,0xFB,0x4D,0xFB,0x69,0xEB,0x57,0x03,0xC3,0x15,0xFE,0x77,0xFC,0x74,0xBE,0x53,0xBD,0xD4,0x84,
+ 0xDD,0xD7,0x94,0xE9,0x03,0x01,0x57,0x82,0xDA,0x97,0xD2,0xC8,0x29,0x02,0xF6,0x4E,0xF2,0xB0,0xDC,0xA5,0x15,0x11,0x4D,0x27,0xC8,0x73,0x87,0xDC,0x1E,0xD4,0x01,0xA9,
+ 0x56,0x0A,0x95,0x7D,0x65,0xAD,0xEA,0x8D,0xD1,0xCD,0xA2,0xDF,0x00,0x07,0x02,0x69,0x92,0x95,0xB3,0x05,0xDB,0xBA,0xCB,0x27,0x7E,0xB8,0xCA,0xC3,0x50,0xD9,0x52,0xB8,
+ 0x91,0x2D,0xB6,0xED,0x70,0xDB,0xCA,0xB6,0x9E,0xCB,0x13,0xBB,0xE4,0x9F,0xC0,0xDB,0xEB,0x00,0x52,0x81,0x35,0x2B,0x21,0x1F,0x5C,0x01,0x16,0x0C,0x25,0x3A,0xD7,0xD6,
+ 0xE0,0x13,0xBC,0xCF,0xB7,0x8C,0x49,0x9E,0x35,0xB7,0x4C,0xDB,0x17,0x07,0x2A,0xA6,0x67,0xF1,0xCC,0xA1,0x9A,0x09,0xB9,0xF3,0x8B,0x6D,0x98,0xDD,0x0B,0x2A,0x95,0xB7,
+ 0x5C,0x03,0x19,0x85,0xBD,0x69,0x86,0x5C,0x49,0x46,0xF5,0x09,0x0B,0x49,0xF8,0x7C,0x6C,0x00,0xB5,0xFD,0x15,0x00,0x21,0xB9,0x27,0x63,0xDB,0x0E,0x09,0x24,0xDB,0x16,
+ 0x85,0xDB,0x09,0xB6,0x01,0xDB,0xB4,0x28,0xDB,0x21,0xAF,0x60,0xDB,0x50,0xAF,0xDB,0x57,0xBD,0x30,0x5E,0xDB,0x6E,0x35,0xCF,0x1F,0x0B,0x19,0x0C,0x10,0x3A,0x00,0x90,
+ 0xDB,0x17,0x13,0xE7,0x92,0x8F,0xDF,0x05,0x73,0x06,0xBC,0x84,0xA9,0x9A,0x2A,0xA7,0x58,0xB9,0x5A,0xD9,0xDE,0x12,0x86,0x4A,0x39,0x1B,0xE7,0x00,0x87,0x9E,0x16,0xE5,
+ 0x24,0xEE,0xA9,0x56,0xE0,0x64,0x45,0x09,0xE3,0xAF,0xFC,0x62,0x66,0x6B,0xF3,0xA0,0x12,0xD7,0x19,0x03,0x49,0x32,0x4F,0xC7,0x86,0xD2,0x01,0x65,0xFB,0x01,0x00,0xC2,
+ 0xEB,0xC4,0xEB,0xDA,0x05,0x85,0xBD,0xC7,0x86,0xDB,0xC9,0xF4,0xDB,0x14,0xEE,0xA2,0xC4,0xAF,0x22,0x14,0xDB,0x04,0x5B,0xA0,0xDB,0x75,0xC3,0xDB,0xDC,0x0D,0x94,0x06,
+ 0x1F,0x67,0x19,0xDF,0x00,0x1F,0x34,0x25,0x25,0x33,0xB8,0xB7,0xC3,0xDE,0xE3,0x65,0x2A,0x1D,0xBC,0x24,0x97,0xA5,0xC0,0x59,0x8C,0x3E,0xF5,0xCD,0x00,0x5F,0xE1,0xC8,
+ 0x0E,0x98,0x96,0xDE,0x1F,0x0B,0x29,0x65,0xD4,0x73,0x17,0x54,0xEC,0x44,0x99,0xF4,0x00,0xAA,0x57,0x47,0x24,0x0E,0xBB,0xBC,0x65,0xB4,0xE5,0x66,0xB4,0x16,0xB7,0x52,
+ 0xCE,0xA3,0x07,0x32,0x0C,0x1D,0x1D,0x1A,0x2F,0xB9,0xA6,0x00,0xB2,0xB6,0xB2,0xC0,0xB0,0xDA,0x8C,0xDB,0x0B,0xCA,0x71,0xC4,0x97,0x24,0x09,0x81,0xDB,0x0D,0x4C,0x38,
+ 0xDB,0x30,0x20,0x00,0x81,0x5F,0x0B,0x2B,0x24,0x15,0x01,0xDB,0x0B,0xF5,0x5C,0x00,0x3A,0xB3,0xE1,0xC3,0x0A,0x60,0x82,0x13,0x99,0x9B,0x12,0x04,0x9C,0xD1,0xB2,0x03,
+ 0x85,0xDC,0xAF,0xF6,0x01,0x28,0xF1,0x44,0x85,0xF6,0x84,0xC8,0xC1,0xD2,0x11,0xD3,0x96,0x86,0x92,0x50,0x46,0xA1,0xF5,0x04,0x55,0x47,0x96,0x2A,0xEB,0xB6,0x5C,0xDE,
+ 0x9A,0x00,0x40,0xDA,0x90,0xE3,0x18,0x1A,0xDB,0x25,0x2E,0xDB,0x05,0x5D,0x50,0x00,0xDC,0x5A,0xF1,0xAC,0x29,0xDA,0x14,0x79,0x00,0xB8,0x2D,0x6C,0xB6,0xCA,0xCB,0xB4,
+ 0xB9,0xDB,0x01,0xE2,0x97,0x9F,0x0C,0x02,0xDB,0xC5,0xEC,0x84,0x52,0x6D,0x35,0x52,0x20,0xF1,0xCF,0x00,0x0B,0x1A,0xC4,0x8A,0x34,0x34,0xA3,0xFA,0xAE,0x30,0x25,0x8E,
+ 0xB3,0x25,0xAB,0x83,0xB0,0xDD,0x5B,0x03,0x86,0xDB,0xD1,0xC8,0xB9,0x51,0x41,0xC5,0x6F,0xAA,0x5B,0x80,0x6F,0xBE,0x2A,0xAB,0x5D,0x1A,0x75,0xA5,0xD5,0x0E,0x05,0xFC,
+ 0xF4,0xD3,0x9D,0xD8,0x08,0xD1,0x2B,0x33,0x02,0x07,0xE5,0x08,0x00,0x48,0x13,0xDC,0xDC,0x6C,0x81,0xD8,0xC5,0x74,0x00,0xDB,0x32,0x1A,0x1A,0x44,0x32,0x07,0xDB,0x04,
+ 0xA0,0x96,0x93,0x93,0x8D,0xCA,0xB7,0x60,0xDA,0x18,0x79,0xB6,0x6C,0xDC,0x59,0xB7,0x58,0xDB,0x04,0xDA,0xA8,0x9A,0x1B,0x26,0xDB,0x02,0x1B,0x53,0x98,0x60,0xDB,0x00,
+ 0x5E,0x52,0x5E,0x6D,0x35,0x21,0x54,0x0B,0xF0,0x51,0xDB,0xFA,0x00,0x03,0xDA,0x00,0x3A,0x16,0xDE,0xDE,0x16,0x8E,0x4B,0x04,0xCD,0x78,0xE1,0xCA,0xD4,0x6B,0x0A,0xB4,
+ 0x59,0xCA,0xA1,0x45,0xF5,0x59,0x8B,0xB5,0x6A,0x05,0x8B,0x12,0x95,0x8D,0x2E,0x00,0x74,0x89,0x96,0x31,0xC6,0x92,0x92,0x3F,0x39,0x4C,0x94,0xA4,0xAF,0x1E,0x9C,0xDB,
+ 0x2E,0x00,0xC2,0xDA,0x70,0xDB,0xB0,0xDC,0x92,0xAC,0x69,0xEE,0x7C,0xDC,0x4C,0x5D,0x92,0x94,0xF1,0xA3,0x93,0x9E,0x9E,0x90,0x44,0x9E,0xC1,0xDA,0x28,0xDB,0x76,0x81,
+ 0xB4,0xAC,0xDE,0xDC,0xCA,0xB7,0x5B,0x85,0x41,0xDB,0x22,0x61,0xDB,0xA0,0x94,0x6B,0xD6,0x52,0xAF,0x00,0xC0,0x85,0x15,0x15,0x10,0x82,0xD9,0x5C,0xC1,0xDB,0x2A,0x20,
+ 0xDB,0x16,0x3A,0x1E,0x9D,0x1F,0x04,0x83,0x37,0xB7,0x52,0xC4,0xE9,0x89,0x83,0xCE,0x04,0xDB,0x14,0xBA,0xFC,0x1D,0xAD,0x89,0x2A,0xE7,0xEB,0xF6,0xBC,0xE3,0x8D,0x9E,
+ 0x34,0xE5,0xD9,0xF8,0x65,0xF0,0xA5,0x23,0x0A,0xE0,0x5F,0x5A,0xAA,0x29,0xC2,0xD9,0xDE,0xC7,0x28,0xDB,0x24,0xDC,0x09,0xAF,0x87,0xA7,0x9B,0xB1,0x29,0x67,0xAB,0xB4,
+ 0x21,0x9E,0x43,0x58,0x55,0xFE,0x30,0xDA,0x60,0xDB,0x91,0x90,0xDB,0x32,0xB6,0xA9,0xA6,0x08,0xCF,0xA5,0x5B,0x0D,0x4C,0xDB,0x01,0x7A,0x22,0x97,0xD8,0xCF,0x27,0xBC,
+ 0x64,0xB8,0x6D,0xD6,0xF0,0x47,0xD0,0x72,0x01,0xAA,0x1F,0xA7,0xC7,0x92,0xAF,0x42,0x19,0x16,0xB3,0x2A,0xC1,0xD0,0x03,0xA7,0x9F,0xBC,0x9C,0x0A,0x8B,0xC2,0x65,0xB8,
+ 0x7F,0xCF,0x39,0xB9,0x7A,0x00,0xBE,0xCB,0x8A,0x35,0x02,0x28,0xCE,0x4F,0xBB,0x7F,0x0D,0x26,0xDB,0x34,0xB5,0xD5,0x07,0xA4,0x93,0xB7,0xDE,0xDF,0x5C,0x9A,0xD3,0xC1,
+ 0xD8,0xDD,0x48,0xE6,0xB8,0xDE,0x2D,0x5C,0x00,0x32,0x6F,0xCC,0x7D,0xB8,0x65,0xB4,0x64,0xB5,0x5D,0xBA,0x05,0x8E,0x4C,0xDA,0x04,0x41,0x41,0x58,0xA9,0x90,0x4F,0xC9,
+ 0x44,0xB4,0x6C,0x2D,0xA0,0xE4,0x92,0x16,0xB9,0xEE,0xB8,0xDB,0x21,0x7A,0x50,0xDB,0x2C,0x9A,0xD8,0xB7,0xBC,0xE1,0xD3,0x93,0xF1,0x55,0x20,0xDB,0x88,0x5F,0x87,0xBB,
+ 0xBB,0x25,0x3A,0xB8,0xD3,0xB3,0x8E,0x8E,0xE5,0xB2,0x1E,0x77,0x82,0x95,0xB7,0x05,0xDB,0xD4,0xBA,0xAF,0x98,0xAC,0xC7,0xEF,0xBD,0x2F,0xF0,0xD8,0xDA,0x4E,0xB7,0x56,
+ 0x8A,0x35,0x00,0x32,0x8E,0x4B,0x0C,0x61,0xDB,0xD5,0x0B,0x06,0x97,0xB6,0x00,0x65,0xB7,0x94,0xC4,0xA1,0xE3,0x95,0xB4,0x15,0xB7,0xCD,0xA8,0x04,0xDB,0xAF,0xCE,0x64,
+ 0xBA,0x2F,0xBF,0x00,0xBE,0xAC,0xDB,0x28,0xD9,0x27,0xDB,0x01,0x58,0x79,0x4A,0x20,0xDB,0x24,0x91,0xEE,0x55,0xA3,0xAE,0xEE,0x92,0x82,0xA8,0xAF,0x4C,0x15,0xDB,0x01,
+ 0x24,0xAC,0xA5,0x41,0xDB,0x65,0xB8,0x60,0xDB,0x20,0xB0,0xDB,0x53,0x5F,0xD1,0x8D,0x1F,0x10,0x10,0xD0,0xC6,0x25,0x16,0x16,0xDB,0x0C,0xB3,0x8D,0x16,0x0A,0x8D,0xE2,
+ 0x39,0xB3,0xE5,0x93,0x95,0xED,0x39,0x8D,0xF4,0x09,0x2B,0xAE,0xDD,0x0D,0xA7,0xAB,0x0D,0x2D,0xF7,0x76,0x00,0xF5,0x17,0x93,0xB2,0xB4,0x9B,0xA9,0x90,0xA6,0x0D,0x1E,
+ 0xBE,0x79,0x82,0xDB,0x82,0xD1,0xFB,0x03,0x04,0xDB,0x0A,0xB2,0x29,0x6D,0x84,0x5C,0x77,0x03,0x89,0x6A,0x49,0xDE,0x0B,0xDB,0x0C,0xC2,0xB2,0x03,0x46,0x6E,0xF5,0x00,
+ 0xEC,0x59,0x58,0x00,0x41,0x4A,0x40,0xDB,0x79,0x18,0x3D,0x91,0x91,0xD9,0x49,0xA5,0x32,0x00,0xDB,0xD8,0x98,0x53,0x85,0x14,0xEF,0x08,0x24,0x0B,0xC1,0x82,0xE2,0xC5,
+ 0xB8,0x2B,0xF0,0x55,0x20,0x05,0x00,0x35,0xCD,0xCD,0x17,0x70,0xC5,0x01,0x0C,0x16,0x30,0x0C,0x25,0xDE,0x32,0x0C,0x8E,0xAD,0x5C,0x33,0x9C,0xA8,0x04,0xF8,0x70,0xC0,
+ 0xB5,0xD7,0xA0,0xBC,0xAA,0x03,0x09,0xB0,0xDB,0x9D,0xB1,0xFE,0x0D,0x0E,0xC2,0xF6,0xEA,0xE0,0xE6,0x10,0xE8,0x59,0x79,0xA1,0x1E,0x22,0x94,0x76,0x02,0xAC,0x55,0xF2,
+ 0x5C,0x06,0xBB,0xBC,0x75,0x0A,0x00,0x26,0xDD,0x72,0x01,0xD3,0x00,0xC3,0xF4,0x01,0xC6,0xF3,0x95,0xB7,0x84,0xD9,0xE0,0xDB,0x4A,0xD4,0x00,0x41,0xB7,0x4B,0x79,0xDB,
+ 0x0E,0x80,0xCB,0xA0,0xA0,0xA5,0x9D,0xEE,0x5A,0xDA,0xEE,0x88,0x97,0x22,0x07,0x4C,0xDB,0x1D,0x07,0x84,0x96,0x97,0xD7,0xDB,0x16,0xB7,0x56,0xEF,0xAA,0x20,0x04,0x63,
+ 0x35,0x00,0x19,0x21,0x0C,0x00,0x68,0x34,0x97,0x34,0x60,0x16,0xDB,0x4B,0x58,0x33,0xAE,0x50,0xA1,0x55,0x06,0xAA,0xB5,0x39,0xA5,0x00,0xCC,0x08,0x97,0xBF,0xB4,0x13,
+ 0x2A,0xAB,0xD2,0xDC,0x00,0x98,0xCF,0x00,0x69,0x8B,0x54,0x06,0xCD,0x13,0x65,0xD0,0xCD,0xAA,0x83,0xDB,0x5C,0xD0,0x69,0x02,0xDC,0x5E,0xB6,0x8A,0xDB,0x0C,0xD8,0x24,
+ 0xA2,0x97,0x49,0x03,0x38,0xDB,0x54,0x04,0xA0,0xDA,0x79,0x95,0xCA,0xD4,0x3D,0x90,0x94,0xDB,0x17,0xA5,0x38,0xDB,0x35,0xCF,0xEE,0xFA,0xBA,0x15,0xDB,0x0E,0x84,0xD6,
+ 0xAC,0xDB,0x15,0xA9,0x34,0xF0,0xB2,0x02,0xDB,0x35,0x82,0xDB,0xB0,0xE8,0x19,0x0B,0xD2,0x95,0x9D,0xCC,0x25,0x4C,0x00,0x4B,0xC3,0x2D,0x9F,0xEC,0xA6,0x13,0x39,0x58,
+ 0x00,0xE0,0x4B,0xEC,0x5D,0x00,0x94,0xBC,0xC1,0xDB,0x56,0x04,0x8F,0x91,0xA0,0xDB,0x2A,0xF0,0x05,0xCA,0x98,0xDC,0x17,0x33,0x00,0x7A,0x0D,0x88,0x6D,0xD1,0x69,0x94,
+ 0x65,0xB6,0x38,0xDB,0x52,0x93,0x59,0xB3,0x58,0xD5,0x50,0xDB,0x14,0x2D,0x46,0x05,0x46,0x4D,0x9E,0x00,0x61,0xDB,0x4F,0xC7,0x2C,0xA4,0xFA,0x00,0xEF,0xC9,0xB8,0xDB,
+ 0xCA,0xA8,0xE6,0xDB,0x3C,0xDE,0x85,0x40,0xDB,0x4F,0x22,0x5C,0xAC,0xA8,0xCF,0x85,0x76,0xBC,0x47,0x17,0x17,0x89,0x6A,0x2B,0xDB,0x0B,0xDA,0x0D,0x00,0x34,0x60,0xDB,
+ 0x2A,0xBE,0xBA,0xC0,0xB9,0x4B,0x4B,0x88,0xD8,0x09,0x82,0xDB,0x42,0xCA,0xEE,0x19,0x11,0x6E,0x1D,0x0D,0x2E,0x00,0xEB,0xFA,0x11,0x92,0xED,0xA4,0xFE,0xA9,0xC1,0xDB,
+ 0x0A,0x5A,0xBC,0x16,0x4A,0x3A,0xFC,0xAB,0x5C,0x86,0xBA,0x04,0xA9,0xA6,0xBE,0xB0,0xC3,0xD9,0x01,0xC0,0xD3,0x46,0x2D,0xF0,0x00,0x04,0x46,0x8C,0x8C,0x9E,0xAA,0x02,
+ 0x00,0x91,0xEA,0x6D,0xEB,0x52,0x3D,0x02,0xDC,0xA0,0xD3,0x92,0xB5,0x25,0xB9,0x58,0x81,0xE2,0xAF,0x5B,0x42,0x07,0xE0,0xDB,0xC1,0xB0,0xDB,0x99,0xF0,0x7E,0xBF,0xED,
+ 0x89,0x81,0x4E,0xCC,0x0C,0x61,0x2B,0xDC,0x49,0x92,0xE3,0x7B,0xDC,0xB9,0xD0,0x25,0x3A,0x41,0xBC,0x49,0x94,0x4F,0xCE,0x85,0xE6,0x05,0xC0,0x84,0xC2,0xE1,0xDC,0xF7,
+ 0x18,0x02,0x8F,0x64,0xB3,0xB3,0xA1,0xDB,0xF6,0x06,0x11,0x94,0x92,0x4D,0xAD,0x3E,0x00,0x33,0x0E,0x11,0x57,0xC0,0x90,0xD4,0x30,0xE0,0x4A,0x0A,0xF2,0xB1,0x41,0xDB,
+ 0x84,0xDC,0xCA,0x00,0x1A,0xD9,0x0A,0xDB,0x0B,0xB8,0x20,0x2D,0x2E,0x1D,0xAB,0x50,0x64,0xDC,0x30,0x43,0xD9,0x90,0xDB,0x25,0xC6,0x7A,0x8E,0x49,0x81,0xDB,0x6C,0x69,
+ 0x92,0x45,0xB7,0xBD,0xC9,0x03,0xDB,0x4C,0xC5,0x04,0x00,0x29,0x00,0xAB,0xF0,0x98,0xCC,0x77,0x99,0x00,0x85,0xDB,0x26,0x95,0x91,0x8A,0x6D,0x88,0xB0,0xCD,0x35,0x6D,
+ 0x5F,0x1B,0x2B,0x15,0x0B,0xCB,0x8B,0x3A,0x5C,0x0A,0xDB,0x0D,0x02,0x8E,0xE3,0xE6,0x4B,0xD9,0x3A,0xC1,0x0D,0x02,0x8E,0x41,0xC5,0xD0,0x04,0xC2,0x30,0x06,0xB5,0xB0,
+ 0xD1,0xB0,0xCB,0xA9,0xB5,0xAF,0x0B,0x27,0x0E,0xC2,0xDF,0xDF,0xD1,0xC5,0x05,0x03,0x3D,0xE3,0x55,0x17,0x1D,0x05,0xD9,0xA6,0xA6,0x12,0x3A,0xDA,0xB7,0xE6,0xAA,0xDA,
+ 0x8D,0xB3,0x05,0x0E,0x10,0x15,0xBD,0x1B,0xA5,0xF9,0x83,0xD7,0xCC,0x00,0x67,0x67,0x1C,0x32,0x30,0x1C,0x1A,0xD8,0x18,0x32,0x2E,0xAB,0xD7,0x28,0x64,0x03,0x2D,0x6E,
+ 0x12,0x5D,0x8C,0x43,0x12,0xB5,0x41,0x83,0xDB,0x03,0x9C,0xDB,0x29,0x91,0x32,0xB5,0x94,0xDC,0x28,0xDA,0x1A,0xA8,0xEE,0x90,0x08,0x08,0xA4,0xA7,0x96,0x00,0x1B,0xCC,
+ 0xF2,0x5C,0x84,0x81,0xDB,0x79,0xE4,0xA9,0xF0,0x20,0x17,0x40,0xDB,0x10,0xC1,0xDB,0x1F,0x82,0x82,0x0C,0x80,0xDB,0x8E,0xDE,0xAB,0x8B,0xC1,0xB5,0x4B,0x49,0x9E,0x57,
+ 0x97,0x82,0xC1,0xB3,0xB2,0x03,0xB5,0xA0,0xBA,0x48,0x25,0xBC,0xFF,0x04,0x1A,0xF9,0x18,0x20,0xB7,0x30,0x2A,0xC0,0xEE,0x0B,0xD2,0x68,0xDB,0x28,0xD4,0x2A,0x10,0x74,
+ 0xA2,0x91,0x8C,0x2A,0xAE,0x6A,0x8C,0xEC,0xC7,0x94,0x03,0xDB,0x15,0xAC,0x15,0xC7,0xB3,0x80,0xDB,0x1C,0x67,0x1D,0x61,0x1D,0xD9,0xE8,0x01,0x97,0x2E,0x0B,0x2E,0x64,
+ 0x43,0x64,0x00,0xDD,0xC3,0x5D,0xA4,0x91,0x8A,0xED,0x41,0xF2,0xD9,0xD6,0xF0,0x70,0xDB,0xB2,0xB6,0x88,0xDB,0x00,0xB7,0x9A,0x24,0x02,0x42,0x02,0x61,0xDB,0xDD,0x98,
+ 0x3E,0xCC,0x94,0x96,0xDB,0x02,0x75,0xEB,0x6B,0x97,0xEC,0xB8,0x2B,0xAD,0x9D,0xCC,0xE8,0xDB,0x29,0xF0,0x70,0xDB,0xEF,0x85,0xCC,0x0A,0xDB,0x02,0xEA,0xDE,0x83,0xDC,
+ 0xCA,0x06,0x0C,0x9C,0x58,0xF1,0x5A,0xDA,0xAD,0xB3,0xD9,0x69,0x9E,0x2E,0xF7,0x24,0xDB,0x0C,0xC7,0x12,0x25,0x85,0xDB,0xAA,0xF0,0x04,0xC3,0xF7,0x12,0xA8,0x89,0xC2,
+ 0xCF,0x50,0xFB,0xE4,0x00,0xDB,0x07,0x03,0x03,0x7F,0x2B,0x00,0x35,0xB7,0xC8,0xAB,0x07,0x1F,0x13,0x22,0x20,0xDD,0x6A,0xEC,0x1A,0x0A,0x0B,0x19,0x1D,0x2E,0xDA,0x0C,
+ 0xBF,0xB2,0xC0,0xA4,0x8C,0xD5,0xEC,0x64,0x45,0x05,0x6E,0x2F,0xAA,0xED,0x8C,0xC3,0xDB,0x00,0xB9,0xA8,0x48,0x4A,0x91,0x8A,0x6C,0x00,0xB5,0xF0,0x94,0xDB,0x04,0xA5,
+ 0x5B,0x0D,0x2A,0xDB,0x19,0xB7,0x53,0xCC,0x85,0x8F,0xCA,0xE6,0x76,0x80,0xDB,0xEB,0x5E,0x81,0xBC,0xE1,0xD2,0x93,0xE5,0xA9,0x15,0xBB,0xCC,0x0C,0x7D,0xC8,0xB6,0x15,
+ 0x8E,0xB0,0xDB,0x61,0xEB,0xDC,0xE9,0x06,0x8A,0xBB,0x00,0x16,0x13,0xEF,0x59,0x9E,0xD5,0x47,0xA7,0x55,0x2A,0x0E,0x48,0x10,0xA0,0x9A,0x04,0x4B,0x52,0xAA,0xE8,0x0F,
+ 0xE5,0xB2,0xE4,0xE8,0x05,0xDC,0x28,0xD5,0xAA,0x07,0xAC,0x00,0xBE,0xAE,0x0A,0xA9,0xFD,0x1E,0x51,0xA5,0x84,0xDA,0x50,0xDB,0x0B,0x1C,0x0B,0x1C,0xEF,0x5D,0xE8,0x56,
+ 0x64,0xE8,0xB3,0xE0,0x00,0xD8,0x43,0x69,0x43,0x8C,0x45,0xB5,0x41,0xDC,0x61,0xDB,0x69,0x96,0x30,0xDA,0x58,0xDB,0x30,0xD0,0xDB,0x6B,0xA8,0xEE,0x0A,0x74,0xB9,0x8E,
+ 0xCD,0x24,0x29,0x5B,0x82,0x94,0x1D,0x76,0x00,0x02,0xDB,0x52,0x40,0xDA,0x90,0xDB,0x37,0xCC,0x93,0xBE,0xB7,0xD5,0xA0,0xDB,0x4A,0x16,0xDB,0x18,0xE2,0x52,0x9B,0x69,
+ 0xA8,0xC4,0x00,0xBE,0xCF,0xC7,0x16,0xF9,0x75,0x0E,0x49,0x93,0xF6,0x00,0x0E,0xF1,0xB4,0xF3,0xB6,0xC2,0x14,0xD9,0x1B,0xA7,0x52,0xC5,0x5A,0x21,0x4B,0x70,0xDD,0x92,
+ 0x08,0x92,0x41,0x1F,0x61,0x00,0xDB,0x76,0x05,0xDB,0x17,0xA1,0x2A,0x1C,0x90,0x4A,0xB6,0x2A,0xB0,0x28,0x90,0xDB,0xC8,0xB6,0x51,0xE9,0x60,0x51,0xD8,0x9E,0xB0,0xDC,
+ 0x98,0xB6,0xB0,0xDB,0xFA,0xBA,0x42,0xB6,0xAC,0xDF,0xC3,0xDB,0x92,0x41,0x98,0x53,0x08,0x0A,0xAA,0xEF,0x02,0xDC,0xCC,0x82,0xCC,0x58,0xCA,0xDB,0x2F,0x75,0xE2,0x26,
+ 0xDB,0x05,0x2B,0x1A,0x00,0x21,0x15,0x00,0x34,0x42,0xB7,0xC1,0xA3,0x6D,0x61,0xD6,0x38,0xDB,0x59,0xB9,0x2C,0xB3,0xCA,0x12,0x0A,0x4C,0xA5,0xA1,0xAF,0x85,0xDB,0x01,
+ 0xC7,0x33,0x39,0x5B,0x08,0x8C,0x74,0x23,0xBA,0xF6,0xDA,0x1F,0x3B,0x13,0x4B,0xDE,0x2E,0xA5,0xD8,0xD3,0x77,0x06,0x3F,0xA5,0x00,0x10,0xDC,0x0C,0xD5,0x25,0x05,0xBA,
+ 0xFE,0xC2,0xD7,0x9D,0xC8,0x54,0xA4,0x98,0x81,0xD8,0x82,0xDE,0x49,0x40,0xD9,0xC5,0x02,0x51,0xEC,0x95,0x04,0xDB,0x8F,0xC9,0x85,0xDA,0xE1,0x00,0xDA,0xC8,0x00,0xB6,
+ 0x4C,0xA3,0xB6,0x8A,0xDF,0xDA,0xDD,0xCD,0xCA,0xD0,0x4F,0xA5,0x83,0x87,0x02,0x08,0x12,0x4F,0xA8,0x25,0xD8,0xD7,0x2A,0xF0,0x76,0x57,0xCC,0xB5,0xEE,0xB2,0xB7,0xD4,
+ 0x00,0x5F,0xDC,0x0A,0x25,0xDB,0x0A,0xB4,0x06,0x16,0x05,0x8E,0xED,0x02,0x00,0x25,0x61,0xBC,0x41,0xA7,0x72,0x95,0x4B,0xB5,0xEA,0x90,0x95,0xBA,0x0C,0xB0,0x4E,0x16,
+ 0xAE,0xAD,0x9F,0xEC,0x24,0xD2,0x37,0x33,0x07,0xDC,0x07,0x4B,0x2A,0x0A,0x13,0xA6,0xB4,0xD5,0x09,0x34,0x39,0xAE,0x00,0x34,0x00,0xB5,0xBE,0x1F,0x4C,0xCE,0x5C,0x98,
+ 0xE1,0x17,0x26,0xFD,0x57,0x00,0xBE,0xD0,0xDF,0x17,0xB2,0xD2,0x00,0xE0,0x8C,0x41,0x95,0xD3,0x94,0xB7,0x26,0x95,0x92,0x9C,0x09,0x97,0x82,0x20,0xDA,0x5C,0x00,0xA5,
+ 0xB7,0x79,0xDD,0x6A,0xEE,0x00,0x85,0x80,0xDB,0x1B,0x12,0x09,0x07,0x53,0x97,0xD8,0x13,0x94,0xBD,0xEB,0xDB,0x0E,0x00,0x40,0xDB,0xE5,0xA8,0x17,0xD1,0x93,0x15,0x21,
+ 0xCD,0x91,0x06,0xDB,0x94,0x0A,0x10,0xA8,0x05,0x21,0x05,0xDC,0x06,0xA2,0xCA,0x15,0x91,0x79,0x97,0x78,0x13,0xA9,0x61,0xDB,0x2C,0x81,0xDC,0xA4,0xC8,0x8B,0xD8,0xF0,
+ 0x7B,0x83,0xD9,0x08,0xF3,0x5D,0xF3,0x64,0xF3,0x0C,0x5E,0x01,0x9C,0xD8,0xDB,0x2B,0x15,0x39,0x10,0xAB,0x39,0xDB,0x0C,0x4E,0x10,0x17,0xBF,0x9B,0xB9,0xA6,0x9C,0xDB,
+ 0x2A,0x06,0x89,0xB8,0x0B,0x95,0xB6,0x77,0xBB,0xBC,0xC5,0x49,0x6E,0x80,0xDB,0x43,0xE9,0xE9,0x64,0x6E,0xB1,0xE9,0x60,0x4A,0xDB,0x43,0x98,0xDB,0x12,0x91,0x05,0xDA,
+ 0xDA,0x83,0xE4,0x81,0xDB,0xBD,0x41,0xDB,0xAB,0xEE,0x5B,0xEE,0x58,0x50,0xDA,0x24,0xF1,0x0D,0xCC,0xD2,0xAF,0xCE,0xA9,0xB7,0x5D,0x00,0x75,0xBF,0x83,0xDC,0x52,0xC1,
+ 0xE7,0x19,0xC3,0xCD,0x0C,0xCA,0xF2,0xB7,0xDD,0xD5,0x0C,0x41,0x90,0x63,0xFA,0x44,0x00,0x2B,0x0C,0xA4,0x8E,0x09,0xB3,0xE8,0xBE,0x95,0xD1,0x86,0x1E,0xE5,0xCF,0x54,
+ 0x13,0xCA,0x96,0x6D,0x2B,0xFC,0x16,0x00,0x0C,0xA3,0xF2,0xB3,0xFF,0xF9,0x36,0xE7,0xF0,0x0D,0xFA,0xB2,0xF7,0xEA,0x13,0x17,0xA8,0x20,0xD9,0x29,0x53,0x17,0x60,0xDC,
+ 0x1F,0xB2,0xB7,0xC2,0xCF,0xB5,0x07,0x00,0x1A,0xA9,0xEF,0x1C,0x2E,0x4A,0xF2,0x2D,0xB5,0xEE,0x1B,0x2F,0x6E,0x6E,0xC5,0xE5,0xB2,0xAA,0xEB,0x41,0xF9,0xB8,0x41,0xDA,
+ 0x00,0xEC,0xD2,0x8C,0x51,0xB8,0x5D,0x81,0x94,0x77,0x77,0xC9,0xFA,0xEE,0xAD,0xE6,0xEE,0x42,0x22,0x08,0x31,0x12,0x14,0xDB,0x04,0x08,0xC0,0xDB,0xCA,0x4D,0xC5,0xE1,
+ 0x95,0x00,0x6B,0xF1,0x9F,0x04,0x17,0x5F,0x00,0x75,0x61,0xDB,0x61,0x90,0x84,0x8F,0xA0,0xB4,0x16,0xB3,0xF5,0xF3,0x97,0xD7,0xCA,0xD4,0xEB,0xA7,0x76,0x33,0x08,0x03,
+ 0xA5,0xC7,0xB0,0xDB,0xC9,0x00,0x2B,0x16,0xBC,0x00,0x35,0xDA,0x3B,0x00,0xA2,0x2A,0x2C,0x7A,0x10,0x09,0x1D,0x2B,0x60,0xDB,0x4A,0x16,0xDB,0x07,0x15,0xCD,0x5C,0x20,
+ 0xDB,0x2E,0x0B,0x00,0xE6,0xA0,0x60,0xDB,0xB9,0xA9,0xB9,0x00,0x40,0xDB,0x95,0x95,0xC1,0xDB,0x58,0x41,0xDB,0xD4,0xFE,0x50,0xDB,0x5A,0x91,0x61,0xDB,0x49,0x91,0xAD,
+ 0xEE,0x80,0xDB,0x97,0x22,0x07,0x85,0x82,0xDB,0xC9,0x00,0x24,0xC1,0xC3,0xDB,0x00,0xB0,0xDB,0x50,0x6D,0xDB,0x14,0x5E,0x20,0xDA,0x36,0xDB,0x0B,0x21,0x8A,0x4B,0xDB,
+ 0x0B,0xDC,0x0D,0x04,0x25,0x5E,0xF1,0x4B,0xB7,0xA9,0xC2,0xB9,0xDE,0xB3,0xAB,0xE1,0xB2,0xCB,0xB1,0x7E,0x0E,0xD2,0x93,0x49,0x9A,0xB7,0x26,0x16,0x1F,0x7D,0x21,0x03,
+ 0x05,0xDB,0x0E,0x89,0xF8,0x15,0xED,0x3F,0x14,0x0A,0x68,0x9A,0x34,0xA2,0x06,0x15,0x67,0x50,0xDB,0xFC,0x00,0xD6,0xD8,0x00,0x0B,0xD1,0x4E,0xDD,0x14,0xD2,0xEB,0x2D,
+ 0xBB,0xEB,0xED,0x59,0x41,0xDB,0x41,0xE2,0xDE,0x85,0x20,0xDB,0x12,0x6C,0x3D,0xCA,0x85,0xDA,0xE6,0xDC,0x92,0x92,0x3E,0xCA,0xFC,0x70,0xA8,0xD7,0x5E,0xF4,0x35,0x7A,
+ 0xF0,0x11,0xA5,0xD7,0xCF,0x20,0xDB,0x52,0xB4,0x93,0xC8,0xB7,0x17,0x35,0xA0,0xDC,0x4A,0x21,0xDB,0x09,0x0C,0x75,0x00,0xA7,0xA0,0xDB,0xCB,0xB1,0x00,0x4A,0x33,0xA3,
+ 0x96,0xB9,0x5E,0xA8,0x0B,0xEA,0xEA,0x8E,0xEB,0x05,0x16,0xBF,0xE2,0x04,0x71,0x2C,0x21,0xDB,0xD8,0x18,0xCF,0x13,0x2B,0x6D,0x7C,0x43,0x0B,0x06,0x81,0xDB,0x87,0xDA,
+ 0xE2,0x74,0xDB,0x0C,0x3A,0xCE,0x1E,0x19,0x61,0xDC,0x16,0xD3,0x17,0xA8,0x29,0x54,0x03,0xDB,0x85,0xB5,0x51,0xAA,0xED,0x51,0x82,0xDB,0x91,0x8D,0x58,0x4B,0x00,0x4A,
+ 0xB8,0xE5,0x91,0x86,0xDB,0xB4,0x4B,0x91,0xD9,0x05,0xA0,0xDF,0x80,0xA5,0x2A,0xDA,0xEE,0x54,0x24,0x2C,0xEE,0xAB,0x00,0xD1,0xE0,0x02,0x22,0x9A,0xAF,0x65,0xD7,0xB8,
+ 0x87,0xDB,0x00,0x4F,0xCD,0x60,0xDA,0x20,0x50,0x6D,0xDB,0x1F,0x2B,0x20,0x03,0x78,0x86,0x86,0x90,0xFE,0xE8,0x73,0x04,0x98,0x00,0x3A,0x13,0xD7,0x50,0xE2,0x76,0x08,
+ 0xD9,0x15,0x03,0x90,0xB7,0x16,0xEA,0xEB,0x25,0x8E,0x3A,0xAB,0x99,0x82,0xDB,0x92,0xC0,0x92,0x8E,0xEA,0xF7,0x86,0x84,0x50,0xDB,0x55,0x2B,0x05,0xD4,0x3E,0x48,0x85,
+ 0xB8,0xA5,0x58,0x01,0xE6,0x5C,0xDB,0x28,0xC3,0x70,0xDC,0x4A,0x32,0xDC,0x0C,0x54,0xBB,0x96,0x2E,0xDB,0x0D,0x43,0x95,0x16,0x43,0xDB,0x18,0xD8,0x47,0x06,0xDB,0xDC,
+ 0x12,0x05,0xDA,0xA5,0x92,0x06,0xDB,0xCA,0xFA,0xEE,0xDF,0xB9,0x10,0x08,0x02,0xB8,0xDB,0x68,0x94,0x5B,0x50,0x98,0xDB,0x26,0x99,0xDB,0x05,0x81,0x86,0xDB,0x93,0x9C,
+ 0xAA,0xD8,0xDB,0x65,0xBD,0x86,0x8D,0x90,0xA8,0x01,0x80,0xDB,0x6E,0x21,0xA5,0x3A,0x61,0x10,0xF0,0x25,0xDD,0x59,0xBB,0x50,0xD4,0x28,0x8E,0xB7,0x93,0x25,0xCB,0x00,
+ 0xED,0x55,0x05,0x57,0x2B,0x08,0x69,0x93,0x40,0xCA,0x35,0xB0,0xDB,0xA0,0xF2,0x94,0xDB,0x1D,0x10,0x09,0xAD,0xE6,0x3E,0xBF,0xCB,0xF9,0x99,0xE5,0x6E,0xCD,0x67,0x94,
+ 0xAF,0x9D,0xBE,0xCD,0xA7,0x86,0xDB,0xD7,0x1D,0x02,0x84,0xDB,0xA1,0xD8,0x41,0xDA,0x60,0xDB,0x95,0x50,0x3D,0xDA,0x4A,0xB6,0x57,0xB7,0xD2,0x83,0xDB,0xAF,0xEE,0x52,
+ 0x31,0x07,0x16,0xDB,0x05,0x7A,0x93,0x15,0x1B,0x4C,0x5C,0x85,0x49,0xB7,0x14,0x5E,0x6D,0xDB,0x15,0xAC,0x35,0xCF,0x19,0x86,0x44,0x16,0xB7,0x9F,0x05,0x01,0x1F,0x1F,
+ 0xE5,0x0F,0xF6,0x10,0x11,0x9A,0x52,0x4F,0xB5,0xCE,0x9C,0x17,0x78,0xDC,0x56,0xE2,0x49,0x15,0x2A,0xEF,0xE2,0x92,0x15,0xA9,0x33,0x81,0xDB,0x10,0x87,0xDB,0x00,0x28,
+ 0xDB,0x64,0xB7,0x34,0x28,0x01,0x17,0xCB,0x6B,0xD5,0x24,0xDA,0x0C,0xB4,0x8B,0xAB,0xAB,0xB3,0x2F,0x00,0xBA,0x29,0x41,0xDB,0x41,0x16,0xDB,0x09,0x3D,0x82,0xDB,0xB3,
+ 0xDB,0xDA,0x0C,0xDB,0x2D,0xCA,0xDA,0x98,0xEE,0xB5,0x4F,0xEE,0x43,0x1B,0x40,0xDB,0x53,0x60,0x9A,0xDB,0xCA,0xC3,0xDB,0x00,0x92,0xA8,0x6C,0xB8,0xAC,0xDB,0x34,0x98,
+ 0x50,0x35,0xDB,0x50,0x94,0x60,0xBE,0x2B,0x98,0xDA,0x31,0xFB,0xC3,0xDB,0xAE,0x0C,0x9A,0x14,0x34,0xCE,0x54,0xF1,0x77,0x87,0x25,0x01,0x19,0x15,0xA0,0xBD,0xE5,0x69,
+ 0x00,0x09,0x34,0x13,0xA8,0x17,0xDD,0xBC,0x2B,0x41,0xDC,0x53,0xA3,0x69,0x9F,0xA2,0x0F,0x0B,0x03,0xDB,0x37,0xF2,0x3C,0xAC,0xA0,0xDB,0xFE,0x44,0x4B,0x27,0x50,0xDB,
+ 0x4E,0xCD,0xDB,0x0C,0x2D,0xDA,0x25,0xDB,0x0E,0x07,0xC9,0xB8,0x41,0x53,0x00,0x86,0xDB,0xFB,0xB6,0xC7,0xF3,0x84,0xDB,0x85,0xB7,0x91,0xB6,0xD7,0x97,0xE4,0xDD,0x30,
+ 0xDB,0x09,0x08,0x05,0x02,0x0D,0x4C,0x98,0x12,0xB8,0x76,0xCB,0xB8,0xB9,0x2D,0x00,0x20,0x45,0xB8,0x5D,0xC3,0x5C,0xC0,0x17,0xA6,0x08,0x2B,0xF4,0x2B,0x0C,0x86,0x0B,
+ 0xBB,0xA5,0x17,0x50,0x07,0xEC,0xD0,0xE6,0x5F,0xDC,0xD0,0xC3,0x55,0xDA,0x55,0x06,0xDD,0xA1,0xCB,0x08,0x83,0x36,0xAF,0x5E,0x33,0xDC,0x16,0xFF,0x6F,0x10,0x07,0x45,
+ 0x7F,0x21,0x1A,0x1D,0x00,0x70,0x8C,0x21,0xB6,0xC0,0x98,0xB7,0xAC,0xBA,0xB4,0x84,0x7B,0x54,0xC7,0x92,0xB6,0x64,0xE6,0xA5,0x49,0xA1,0x9A,0x00,0x8A,0xB4,0xCA,0xB7,
+ 0x54,0x95,0xB9,0xA3,0xEE,0x00,0xFF,0xAD,0xCA,0xD6,0xA0,0xDA,0x0C,0xB9,0xDB,0x29,0x92,0x39,0xA5,0xD1,0x92,0x08,0xAD,0xEF,0x43,0x02,0x41,0xDB,0xCD,0xA9,0x14,0xB8,
+ 0x40,0xDB,0x6F,0xC8,0x12,0xDB,0x1E,0x00,0xDB,0x0B,0x21,0xF3,0x1A,0x90,0x0C,0x96,0x0B,0x2B,0x10,0x96,0xE4,0x10,0xC1,0xD8,0x59,0x00,0xFB,0xF7,0x0C,0x09,0x33,0xBD,
+ 0xA4,0x34,0xA8,0xBA,0x1F,0xA4,0x92,0xB4,0xC7,0xEF,0x10,0xA7,0x92,0x01,0x04,0xDB,0x92,0xE8,0x19,0xAD,0x4C,0xC5,0xE6,0x00,0xEF,0x49,0x05,0x83,0xBC,0xDB,0x16,0x1D,
+ 0xB4,0x49,0x1A,0x41,0xDB,0x43,0x26,0x00,0xDA,0x14,0xD8,0x17,0xB4,0xD6,0xDA,0x16,0xDB,0x08,0x91,0x80,0xDB,0xB9,0xA4,0xA4,0x93,0xA9,0xA6,0xE7,0xA5,0x92,0x4B,0xD8,
+ 0x08,0x64,0xDB,0x35,0x03,0x1B,0x4A,0xA9,0xD8,0x54,0x94,0x9C,0xDC,0x2C,0xDB,0x15,0x17,0x87,0x75,0x00,0x86,0xDC,0xCB,0xF4,0x84,0x4A,0x0B,0x92,0x2B,0xC4,0x7E,0xD4,
+ 0x1D,0x0B,0xDB,0x65,0xBB,0x5D,0x85,0x55,0x04,0x1B,0xCC,0xB4,0x81,0xEA,0x25,0x05,0x4B,0x15,0x07,0xD8,0x2F,0xDB,0x5A,0xDB,0xB0,0x15,0xCD,0xD2,0x05,0x3A,0xB7,0xAF,
+ 0xF1,0x3C,0x96,0x6A,0x04,0x19,0x00,0xD5,0x08,0x1C,0xB3,0xD5,0x03,0x66,0x04,0x54,0x54,0x93,0x96,0xEC,0xB5,0x00,0x27,0xB8,0x2B,0x8C,0x00,0xDD,0x0B,0xD7,0x0B,0x03,
+ 0xA4,0x8D,0xA0,0xDB,0x2C,0xE9,0xE9,0xDA,0x26,0x82,0xBB,0xDB,0x0D,0x92,0x2C,0xB6,0xAA,0xA5,0x61,0xE0,0xDB,0xC1,0xFB,0xC1,0x32,0x94,0x4C,0xDB,0x1A,0x82,0xCA,0xDB,
+ 0x0B,0x2B,0xDA,0x0A,0xB8,0x23,0x15,0x6D,0x0C,0xC2,0x8F,0xCB,0x8C,0x0D,0xAC,0xF5,0xEA,0xDA,0xC2,0xDB,0xC3,0xD1,0xEF,0x3A,0x94,0x24,0x3A,0xBC,0x00,0xC1,0xF6,0x10,
+ 0xD2,0x56,0xC5,0x58,0xDB,0x5B,0xA7,0x75,0x02,0x0B,0xD4,0x00,0x21,0x89,0x92,0x86,0xDA,0x97,0x39,0x03,0x01,0x5F,0xF4,0x00,0x36,0xDB,0x13,0x04,0xDF,0x94,0x00,0xB2,
+ 0x56,0x00,0x1D,0xA0,0xD9,0xAE,0xB5,0x92,0x00,0xD6,0xEC,0x40,0xDF,0x73,0x95,0x00,0x02,0xDB,0x91,0x82,0xDB,0xFA,0xB8,0x45,0xED,0xA0,0xDB,0xC9,0xB6,0x22,0x61,0xD8,
+ 0x61,0xC2,0x0C,0x07,0xDB,0x03,0x7D,0xBE,0x79,0xE2,0xF4,0xBD,0x70,0xDB,0x26,0x17,0xDB,0x0F,0xA1,0x2C,0xDB,0x38,0xF0,0xF5,0x0F,0x12,0x01,0x84,0xDB,0xA4,0xA8,0x21,
+ 0xB0,0xDB,0xE4,0x00,0xDA,0x0A,0x88,0x6B,0xE6,0x7A,0xE0,0x0E,0xBA,0x4E,0x35,0x15,0x17,0xC2,0xDB,0xAF,0x10,0x12,0x1A,0xD2,0x05,0x01,0x93,0xB0,0x01,0x32,0xA3,0x8E,
+ 0x15,0x21,0x54,0x0B,0x0F,0x61,0xD5,0x95,0xAF,0xD0,0x03,0xD6,0x75,0xFE,0x39,0xB8,0x52,0x92,0x30,0x9E,0xDB,0x9B,0xBB,0xA8,0xB6,0x90,0xE9,0x90,0xDB,0x3D,0xD0,0x00,
+ 0x92,0x1B,0x98,0xC9,0xCE,0xC2,0x10,0xB5,0x00,0x8B,0x18,0x9F,0xAC,0xAF,0xB8,0x24,0x75,0xA1,0xDC,0xCC,0xAB,0xE9,0x93,0x54,0x00,0xDB,0x19,0xAD,0x50,0xDB,0x61,0x8B,
+ 0x62,0xF9,0x21,0xD6,0x0F,0x15,0xCE,0x12,0xB0,0x00,0x1F,0xAB,0xA5,0xFF,0xAA,0xD4,0xB0,0xD9,0xA0,0xC0,0xB5,0xE2,0xED,0x15,0xC0,0xFA,0x2E,0x88,0x69,0x2E,0xBB,0x70,
+ 0xDB,0xA0,0xD8,0x5E,0x21,0x00,0xB3,0x55,0x53,0x28,0xE6,0x2D,0x0B,0x87,0x2C,0xDB,0x0E,0x32,0x64,0xFC,0x92,0x67,0x04,0xDC,0x95,0xFF,0x81,0xD5,0x8C,0x9E,0x61,0xDB,
+ 0x85,0xD0,0x06,0xDB,0xDC,0x1D,0x00,0xAC,0xEE,0x78,0xDB,0x01,0xDF,0xCF,0xA5,0x9A,0x53,0x08,0x0F,0x05,0xDB,0x81,0xDE,0x9F,0x4C,0x64,0xB8,0x99,0xB0,0xDC,0x90,0xB8,
+ 0xA7,0xCB,0x7A,0x00,0xC1,0x8D,0x2B,0x78,0x00,0xD1,0x2C,0x0B,0xAA,0x2F,0xEB,0x28,0xE5,0x25,0xD9,0x0F,0x00,0xCA,0xAB,0xD2,0x0F,0x11,0x0B,0xBE,0x05,0x00,0xBA,0xD6,
+ 0xE7,0x9B,0x3E,0x98,0xDB,0x2E,0x94,0x6E,0x00,0x40,0xDB,0xAB,0x49,0x53,0xE7,0x97,0x94,0x47,0x54,0x0B,0xAE,0xE5,0xA1,0x8B,0x1A,0xAD,0x2B,0xB7,0x24,0xAB,0x48,0xDB,
+ 0x7C,0xB7,0x51,0xCA,0x00,0x46,0x9E,0xF0,0x5A,0xB0,0x2B,0xDB,0x0B,0xA4,0x97,0x79,0x02,0x61,0xDA,0x28,0xDB,0x30,0xA3,0xDB,0x68,0xBD,0x93,0xDA,0x64,0xD7,0xB6,0x0D,
+ 0x70,0x08,0x00,0xF1,0xB5,0x6F,0x1D,0x9F,0xE2,0x12,0xAF,0x84,0xDB,0xB3,0xAA,0x12,0xDB,0x18,0x89,0x58,0xDB,0x48,0xA4,0x12,0x87,0xAA,0x02,0x9A,0xCE,0x15,0x60,0xDA,
+ 0x97,0x00,0xCC,0x0F,0x0F,0x04,0xB7,0xE6,0xC2,0xBE,0xAF,0x81,0x26,0x58,0x6D,0xDB,0x69,0xA8,0x53,0xA4,0x45,0xE3,0x65,0xCC,0xD2,0x0C,0x93,0x78,0x1C,0xDA,0x5D,0x54,
+ 0x4E,0x96,0xBC,0xE6,0x5F,0x21,0xCA,0x18,0xDD,0x2B,0x32,0x0B,0x8D,0x4A,0xDC,0x0C,0xDA,0x1D,0xCD,0x02,0x07,0xD9,0x01,0x44,0xAF,0xE9,0xE6,0x00,0xDB,0x09,0x1E,0xC7,
+ 0xC1,0xDC,0x79,0xD9,0x00,0xBA,0x77,0x03,0x80,0x72,0x2E,0xEE,0xB6,0x4F,0xD8,0xDC,0x1B,0x07,0xA9,0xC3,0x61,0xDB,0x37,0xC3,0x64,0xB8,0x98,0xC9,0xB8,0x99,0x85,0xDC,
+ 0xAE,0xF2,0xB6,0x53,0x26,0x96,0x87,0x0C,0x6D,0xDB,0x30,0x91,0xB9,0xAE,0x92,0xC8,0xB3,0xCD,0xA0,0xA3,0xB3,0xE5,0xB2,0x8D,0xB8,0xF1,0x65,0x1D,0xB8,0x8D,0xFC,0x23,
+ 0x94,0x15,0xEE,0x5F,0xBA,0x2E,0xD4,0x56,0x01,0xCB,0x19,0xB6,0x29,0xEA,0xF1,0xEC,0xF4,0xE6,0x2D,0x2D,0x21,0x5F,0xEB,0x6C,0xD6,0xA9,0x48,0x21,0x54,0xF4,0x67,0x50,
+ 0x54,0xDF,0x28,0x54,0xA6,0xA8,0xAE,0xAC,0xDE,0x30,0xDF,0xBA,0x04,0x8F,0x4B,0xDB,0x0D,0x9F,0x12,0x51,0xDC,0x00,0xA4,0xCA,0xDA,0x16,0xB4,0x5A,0x00,0x6C,0x62,0xB5,
+ 0xA2,0xB6,0xAB,0x80,0xE4,0xA5,0x5B,0x24,0x20,0x7A,0x00,0x88,0x00,0x7A,0x1B,0xB7,0xCD,0x47,0xC5,0x86,0xDB,0x00,0xCD,0xCA,0xB6,0xE6,0xAD,0x50,0xDB,0xCE,0xEC,0xD2,
+ 0x8F,0x4C,0xAB,0xB0,0xDB,0xC1,0xA5,0x54,0x40,0xDB,0x19,0xB2,0xB8,0xCB,0xA3,0x0F,0xB4,0xBF,0x92,0xEA,0xAD,0xEE,0x6D,0xD9,0x6A,0x2C,0xE9,0x2D,0xA3,0xB9,0x3D,0x43,
+ 0xDC,0x09,0xCF,0x86,0x8A,0x44,0x67,0xC1,0xDB,0x45,0xB2,0x49,0x8B,0x61,0xD5,0x16,0xDB,0x16,0xE8,0xB5,0x9F,0x32,0x85,0xDC,0xCA,0xA3,0x4A,0x60,0xDA,0xB0,0xDC,0xB2,
+ 0xB5,0xE4,0x00,0xED,0x50,0xB7,0x98,0x4C,0x9F,0x82,0x40,0xDB,0x09,0x02,0x08,0x24,0x5B,0xB1,0xE2,0x75,0x30,0xDB,0x4A,0xDC,0x14,0xB7,0x54,0x90,0x55,0x82,0x76,0x83,
+ 0x55,0x87,0xD4,0x82,0x56,0x09,0x16,0xA0,0xB2,0xF0,0x0E,0xB0,0x2F,0x1A,0x0B,0xBE,0x3E,0x0B,0x02,0xEB,0xDD,0x92,0x6E,0x19,0xEB,0x00,0xFC,0xFB,0x02,0xE1,0xC4,0x0B,
+ 0xAF,0xFF,0x82,0xEB,0x21,0x60,0xDC,0xCA,0xCD,0x94,0xE6,0x5F,0xCD,0x45,0xCD,0x85,0xDB,0xAC,0xE5,0xE1,0xDB,0xD8,0x00,0xDB,0x5E,0xD8,0x4A,0xB9,0x5A,0x9D,0x5B,0xC9,
+ 0xCC,0xDA,0x14,0xDC,0x16,0xC8,0xF6,0xC9,0xEA,0xDF,0xDC,0xCE,0x80,0xC8,0x7A,0x08,0x24,0xDB,0x0C,0xDC,0x13,0x4C,0x65,0xE2,0x92,0xB8,0x5E,0x79,0xAB,0x52,0x6D,0x97,
+ 0x56,0x8E,0x65,0x87,0x59,0xC8,0x56,0x83,0x2B,0xEE,0x0E,0x08,0x40,0xDB,0xBC,0xB0,0xAF,0xD5,0xF7,0x0F,0xA8,0xFF,0x05,0x0D,0x0A,0x0D,0xB7,0xDB,0xBC,0xC9,0xA0,0xDA,
+ 0xEC,0x00,0xDB,0x29,0xBE,0xFF,0x03,0x22,0xA2,0x1A,0xAB,0xB9,0x3F,0x00,0x06,0x0E,0xAB,0x1B,0xDB,0x09,0x52,0x00,0xAB,0xE8,0x06,0x9B,0x64,0x88,0xB8,0xED,0xE8,0x6C,
+ 0xB6,0xB2,0xB1,0xAB,0x82,0xA9,0x05,0xA6,0xA4,0xE6,0xA1,0xC2,0xDC,0x50,0xDB,0xAE,0xB7,0x3E,0xCF,0xA8,0xB7,0x61,0x9F,0xB5,0x04,0x61,0xDB,0x42,0x80,0x22,0xDC,0xCD,
+ 0xCC,0xCF,0xB4,0x94,0xF0,0x00,0xDC,0xB4,0x98,0x90,0xDB,0x28,0xB1,0xAF,0xEB,0x68,0xDB,0x3A,0x00,0xB8,0xEB,0x0F,0xC3,0x9F,0xD8,0x0A,0x92,0x2B,0xC6,0x0D,0x03,0x01,
+ 0x5D,0x86,0x28,0xDB,0x6B,0xF8,0x61,0xDB,0xD1,0x11,0x9D,0x61,0xFA,0x2A,0x8E,0x73,0x03,0x85,0xDB,0xD8,0x09,0xD7,0x65,0xEA,0xD9,0x04,0xB7,0x22,0x1D,0xA9,0x00,0xA2,
+ 0x32,0xBD,0x69,0x64,0x00,0x2E,0xC2,0xDA,0xF2,0xD8,0xEC,0x00,0xDB,0x2D,0x92,0x2E,0xFB,0xAE,0xA2,0x66,0xDB,0x06,0xB4,0xDB,0x16,0xED,0xB9,0xB6,0x20,0x08,0x9C,0xDB,
+ 0x03,0x07,0x0D,0x4C,0x82,0x94,0x49,0x14,0xF1,0xEB,0xEB,0x72,0x6B,0x00,0x95,0xB8,0x5D,0x8C,0x2C,0xBA,0x99,0xE6,0xC8,0x02,0xDB,0x1D,0x07,0xAD,0xC8,0x92,0xB3,0x10,
+ 0xF2,0xDA,0x94,0xF4,0x1F,0x5C,0xB2,0xAE,0xA3,0xF1,0xA0,0xDC,0x93,0xA1,0xBE,0x1D,0x00,0xCA,0xC7,0x4E,0x0B,0x15,0xD2,0x93,0x50,0xDB,0xBA,0x05,0x82,0x1A,0xCB,0x09,
+ 0x12,0x83,0x60,0xDA,0x76,0xCD,0x00,0xDA,0x14,0x00,0x43,0xB7,0xC9,0x91,0x8C,0x27,0xDB,0x04,0xE9,0xCA,0xEE,0x6C,0xE2,0x01,0x41,0xDB,0xB9,0x65,0xB6,0xAD,0xED,0x5C,
+ 0x80,0x12,0x06,0xDB,0x24,0x4F,0x04,0x4F,0x53,0xB0,0x8F,0xD7,0x48,0xDB,0x4C,0xB8,0x53,0xF2,0xC2,0x2B,0x9E,0x9F,0xC3,0xDC,0x00,0xB3,0xED,0x90,0xBD,0x2F,0xDA,0x28,
+ 0xCC,0x13,0x0B,0x85,0xDB,0x85,0xB7,0xBF,0xB7,0x07,0xA4,0xB4,0xC0,0xDB,0x21,0xB2,0xDC,0xB9,0x13,0x53,0x92,0x39,0xFA,0x08,0x23,0xF2,0x54,0x1D,0x68,0xDB,0x4E,0xDA,
+ 0x1C,0x00,0xA0,0xDB,0x95,0x88,0x00,0x98,0xDB,0x09,0x79,0x6C,0x96,0xF0,0x62,0xB6,0x91,0xED,0x42,0x07,0x00,0x1B,0x00,0x09,0x40,0x00,0x31,0x07,0x24,0xAC,0x8F,0xCC,
+ 0xC2,0xDB,0xF3,0xE3,0xDB,0x05,0xD6,0xAD,0xF4,0x05,0xDC,0x16,0xBC,0xDB,0x15,0xD0,0x57,0xAB,0x36,0xB9,0x54,0xC0,0xF6,0xDB,0x0B,0x21,0xEA,0xCB,0xB6,0x2A,0xD6,0x0C,
+ 0xDB,0x0B,0x13,0x1F,0x92,0x4D,0xF4,0xE8,0xB8,0x2C,0xA3,0xA8,0xC8,0x24,0xAF,0xEC,0xD2,0xB4,0x00,0x1F,0xDD,0x08,0x31,0x97,0xC3,0x34,0x76,0x1C,0xCE,0x49,0x2E,0x81,
+ 0xDB,0x67,0x61,0xDA,0x1E,0xDB,0x16,0x8A,0x93,0xA2,0x00,0x3D,0xA6,0xA6,0x50,0xDB,0xE7,0xA5,0xDB,0x01,0xC5,0xE2,0xAF,0xF4,0xB7,0x13,0x83,0xDB,0x4F,0x02,0x35,0x1B,
+ 0x9F,0xF1,0x27,0xA5,0xCA,0xF1,0x59,0x03,0xDB,0x91,0x49,0x25,0x00,0xC4,0xEA,0xB1,0x2C,0xBE,0x2B,0x9C,0xAF,0xD0,0xED,0xA8,0xFC,0x0B,0xDB,0x3C,0xD5,0x9B,0x00,0xAE,
+ 0x9A,0xAF,0x7A,0xA1,0x2D,0x9A,0xBB,0x28,0x85,0x1A,0xB2,0x47,0x19,0x31,0x57,0x13,0x9D,0x3D,0x01,0xBD,0xDB,0xAE,0x1B,0x2B,0xE8,0x7A,0x00,0xD1,0x09,0xD6,0xEA,0xE9,
+ 0x05,0xE8,0x64,0xE5,0x5E,0x00,0x83,0xDD,0xE2,0x0B,0x05,0x4C,0x41,0xDF,0x12,0x65,0xDD,0xF6,0xB3,0x01,0xE3,0x57,0xE3,0xB7,0x29,0xA0,0xC9,0xE5,0xA4,0x9D,0xC8,0xD8,
+ 0x1B,0xDA,0x41,0x40,0xDB,0x7C,0xBF,0xC1,0x2D,0xAF,0xD7,0xF1,0x65,0xDB,0x04,0x6B,0x50,0xDB,0x50,0x93,0x5B,0xCE,0xDB,0xCD,0xF4,0x06,0xAE,0x12,0x15,0xBB,0xCA,0x97,
+ 0x10,0x54,0x99,0x50,0x1F,0xDB,0x75,0x17,0xB5,0x37,0xFB,0xF7,0xD4,0x3B,0xEA,0xCA,0xDB,0x15,0x2B,0xE1,0x29,0xDC,0x6B,0xED,0x72,0x36,0x50,0x44,0xDB,0x54,0x00,0xCF,
+ 0xC5,0x87,0xD8,0x01,0x94,0xB0,0x50,0xDB,0x27,0x43,0xDB,0x04,0x41,0x58,0xDB,0x2C,0x3D,0xDB,0x30,0xD9,0xA5,0xEE,0xBB,0x80,0x35,0xCF,0xD7,0xED,0x60,0x7A,0xDB,0x08,
+ 0x82,0x50,0xDB,0x5D,0x07,0x86,0x89,0x7A,0x53,0x9A,0x9E,0xCD,0x28,0xDB,0x25,0xC2,0xEA,0xDD,0x09,0x11,0x99,0x6D,0x34,0xA8,0xD9,0xE5,0xCC,0xDB,0x09,0x0B,0x81,0xDB,
+ 0x2B,0x61,0xDB,0x4B,0xD2,0x6D,0x92,0x6F,0xD7,0x87,0xC9,0x08,0x10,0xDB,0x1C,0x00,0xB9,0xE1,0x29,0xBF,0x69,0x85,0x20,0xDE,0x7E,0x00,0x06,0xD9,0x16,0x8B,0x88,0x51,
+ 0xA0,0xDB,0x95,0x0D,0x41,0x73,0x00,0x04,0xDB,0x96,0x00,0xC6,0xF6,0xC9,0xEB,0xB9,0xA4,0x91,0xD8,0x5B,0x22,0x59,0xB5,0x61,0xB6,0x04,0xB9,0x00,0x2C,0x02,0x24,0xC9,
+ 0xAA,0xD7,0xCF,0x6B,0xF1,0x3A,0x94,0x24,0x5E,0xDC,0x09,0xC2,0xDB,0x87,0xF6,0x10,0xB9,0xB8,0xB0,0xAA,0xB0,0xDC,0xCA,0xB3,0xE6,0x90,0xFB,0x00,0x94,0xA0,0xDB,0xC3,
+ 0xE1,0x11,0xA2,0xBA,0xBB,0x00,0xC8,0x0B,0xDE,0x94,0x15,0xA9,0x0D,0x15,0x72,0xDD,0xEC,0x17,0xDB,0x34,0x17,0x67,0xD5,0x00,0xBF,0xC6,0x64,0xAB,0xD3,0x09,0xE9,0xC2,
+ 0xDB,0xD6,0xF3,0x91,0x06,0x41,0x41,0xDB,0x28,0xDC,0x6F,0xCC,0x49,0x91,0x39,0xB6,0x04,0xD8,0x82,0x22,0x0D,0x15,0x87,0xDB,0xD0,0x38,0x2D,0x0D,0x22,0xAC,0x2C,0xA5,
+ 0xE2,0xB8,0xA3,0x41,0xDB,0x20,0x22,0x96,0x5B,0xCB,0xD8,0xDB,0x55,0x07,0x05,0xA3,0x95,0x80,0xF5,0xBF,0xE4,0xC4,0xA0,0xDB,0x17,0x61,0x01,0xDB,0x78,0x0A,0xAE,0x39,
+ 0x54,0x04,0x89,0xA4,0x5F,0x28,0xDB,0x2A,0x19,0x06,0x4A,0xFF,0x92,0x38,0xF6,0xAF,0x7C,0xDB,0x6F,0x54,0xD1,0xE5,0xDB,0x4C,0x98,0xE1,0xDB,0xDC,0x01,0x09,0xC1,0xD9,
+ 0xA7,0x02,0x4A,0xDB,0x0A,0xA7,0x9A,0xDA,0x05,0xA3,0x92,0xB6,0xD0,0xB1,0xDB,0xAC,0xD5,0xFF,0x04,0xB0,0x14,0x15,0xB4,0xBC,0x2A,0x1B,0xE3,0x45,0x97,0x26,0x95,0xDC,
+ 0x16,0xDB,0x16,0xB8,0x4B,0x6D,0xBA,0x2B,0xD1,0x7B,0x0C,0xA7,0xD3,0x26,0x19,0x0C,0xDC,0x0A,0xAE,0x9E,0x0A,0xAB,0x00,0xC3,0x95,0x5F,0xC3,0xD5,0x00,0xCF,0xAF,0x1D,
+ 0x53,0x05,0x48,0x00,0xAA,0x57,0x08,0x32,0x8E,0x5D,0xA8,0xF7,0x83,0xC4,0x02,0x75,0xB8,0x86,0xDB,0xE1,0xB1,0x89,0x93,0x12,0xDB,0x09,0x4A,0xA7,0x00,0xB6,0x2A,0xC8,
+ 0x76,0xBD,0x92,0x95,0xDB,0x8D,0x53,0xEB,0x7C,0x00,0xB4,0x88,0x12,0x12,0x24,0xDB,0x0E,0x2A,0xC9,0xE2,0x4F,0x68,0x95,0xC5,0xB0,0xDC,0x8C,0xDB,0x0B,0x95,0x49,0x23,
+ 0xFE,0x04,0xBA,0x05,0xA3,0x09,0x01,0xDB,0x15,0x7D,0xC3,0xDF,0x03,0x00,0xDE,0x9A,0xBA,0xD2,0xF8,0xD8,0xD4,0x73,0xCC,0x61,0xDD,0x72,0x00,0x87,0xDB,0x00,0x55,0x09,
+ 0x13,0x69,0xA2,0xAF,0xE9,0x26,0xC8,0xE6,0x0B,0x1C,0x1C,0x5D,0x2E,0x81,0xDF,0x04,0xA3,0x28,0x2E,0xD7,0xCB,0x9C,0xD9,0x2D,0x00,0x4A,0x3D,0x00,0x85,0xDB,0x84,0xDA,
+ 0xC4,0xB6,0x5B,0x94,0xB2,0x90,0x12,0x4A,0xDB,0x16,0xDA,0x16,0x2C,0x4F,0xD2,0x95,0xC9,0xB8,0x99,0x39,0xB8,0x4E,0xDB,0x09,0x6D,0x82,0xDB,0xED,0x8A,0x17,0x64,0xB1,
+ 0x01,0xA5,0xCE,0xA2,0xB4,0x94,0x94,0xB5,0x05,0x34,0x85,0xDB,0xE2,0xE5,0x19,0xD7,0xC5,0x1F,0x3A,0x1A,0x1C,0x00,0x99,0x4F,0x86,0x68,0xD8,0x2B,0x09,0xD5,0x2E,0x34,
+ 0xEB,0x3C,0xCB,0x3C,0x1D,0x10,0x1A,0x32,0x88,0xDB,0x05,0x2D,0x11,0x00,0x46,0x46,0x00,0xDB,0x41,0x98,0xDB,0x38,0x04,0xE0,0xDB,0x2C,0x6C,0xA0,0xDA,0x32,0xB6,0x48,
+ 0xB9,0xB6,0x48,0x12,0x2B,0xDB,0x08,0x94,0x9B,0x52,0x53,0x95,0x61,0xDA,0x64,0xB8,0x5E,0x24,0x6B,0xEB,0xE4,0xCB,0xB6,0x2C,0x04,0x81,0x81,0xA7,0xCF,0x2C,0x15,0x5F,
+ 0xA1,0x28,0x83,0xAE,0xF9,0x24,0xAF,0x29,0x5D,0xCC,0x01,0x9D,0xE6,0x9E,0xEB,0x05,0x5F,0xBA,0x04,0x03,0x50,0x1C,0xFA,0x78,0x0B,0xED,0x74,0x15,0xFC,0xAC,0x1A,0xE9,
+ 0x2A,0xB2,0xED,0xC2,0xD6,0xCD,0xF2,0xB7,0xB5,0xDA,0x88,0x5D,0x81,0xF8,0x09,0xD5,0x49,0xB3,0xC4,0x46,0x51,0xDB,0x00,0xBD,0xD9,0xBC,0x09,0x8C,0x8C,0x95,0x41,0xDA,
+ 0x79,0x2D,0x83,0xAC,0x91,0xDA,0x2B,0xDB,0x37,0xC8,0xDE,0xC9,0xB1,0xDB,0x4C,0x82,0xD5,0x00,0x0C,0xAA,0x00,0xAB,0x5F,0x5B,0xC0,0x4E,0x94,0x88,0x6B,0xA0,0xDB,0xEF,
+ 0x04,0xE5,0x2F,0xFF,0x6C,0xDC,0x2C,0xAC,0xA6,0x00,0xB3,0xF2,0xB5,0xC2,0x8A,0x00,0xDF,0xCE,0xCD,0x0A,0xC8,0x2A,0xD6,0x05,0x21,0xE5,0x19,0xB8,0x68,0x94,0x67,0xB0,
+ 0xDB,0xFB,0x0E,0x00,0xC2,0x72,0x67,0xAB,0x5E,0xB3,0xB0,0xDA,0xF2,0x00,0xB9,0x99,0x8D,0x25,0xB5,0x25,0x8C,0x06,0xDB,0xDC,0x04,0x58,0x58,0xEB,0xEC,0x61,0xDC,0x73,
+ 0xA4,0x41,0xDB,0x4A,0xED,0xB7,0x20,0x9A,0x0D,0xD8,0xDB,0x32,0xE6,0x18,0x22,0xB0,0xCC,0xDC,0x45,0x86,0xDB,0x94,0x86,0x35,0x81,0xDA,0x12,0x81,0xDC,0xCD,0x17,0x29,
+ 0xB8,0x59,0x9D,0x49,0xFB,0x12,0xBC,0xA8,0xB3,0x0E,0x50,0x00,0xCF,0x28,0x1C,0xAA,0xB0,0xBF,0x4D,0x67,0x16,0x2A,0xFA,0xF5,0x0E,0x38,0x74,0x29,0xDC,0x1D,0x0C,0xA4,
+ 0x91,0x50,0xDB,0x22,0x43,0x70,0x00,0xD4,0xC9,0x00,0x41,0xE9,0x03,0xDB,0xD5,0x09,0x9E,0xC8,0x81,0xDB,0xA0,0x3E,0xDB,0x02,0xAF,0x22,0x00,0x31,0x4F,0x0D,0x80,0xDB,
+ 0x1B,0x4C,0x11,0x8F,0xD7,0xCA,0x39,0xE3,0x85,0xDC,0x2D,0xF1,0x07,0xDB,0x04,0x61,0xDC,0x73,0xAB,0x61,0xDC,0x3C,0xF9,0x73,0xB3,0x74,0x06,0xA2,0x53,0x82,0xD8,0x0B,
+ 0x46,0x04,0x1C,0xD6,0xF7,0xB0,0x36,0x83,0x33,0x84,0xDB,0x8D,0x86,0xA4,0x02,0x19,0xDB,0x04,0x54,0xA1,0xDB,0xD2,0x00,0xE8,0xE1,0xDA,0x6B,0xF1,0x22,0xF3,0xAA,0x8C,
+ 0x00,0xC0,0xDB,0x4A,0x95,0x8D,0xDB,0x0A,0x92,0x4A,0xDB,0x0B,0xA4,0x96,0xE6,0xED,0xA7,0xAC,0x7A,0xCF,0x48,0x00,0x36,0xDB,0x02,0x12,0x24,0xDE,0xCE,0x26,0xAA,0x6F,
+ 0xAE,0xAA,0x00,0xA7,0x05,0x88,0xBA,0xDB,0x09,0x03,0xCE,0xA8,0x92,0x15,0x2B,0x49,0x80,0xC2,0xB3,0x74,0x8C,0x98,0xA3,0xB9,0xB2,0xB0,0xDC,0xDA,0x1B,0xCD,0x8E,0x69,
+ 0x98,0x6B,0x00,0x21,0xFB,0xA9,0x41,0xD8,0x54,0x16,0xDB,0x12,0x91,0xB6,0x2D,0x49,0x28,0xDC,0x60,0xD9,0x9E,0xB0,0xDB,0x58,0x41,0xDA,0x76,0x06,0xCA,0xE5,0x79,0x79,
+ 0x84,0xDA,0xC1,0xDB,0x21,0xB6,0x0A,0x98,0x24,0x02,0xA6,0x08,0x35,0xDB,0x0C,0xEF,0x8E,0x08,0x53,0x87,0xEC,0xDC,0x32,0xB8,0x9C,0xDB,0x25,0xBF,0xE9,0x52,0x97,0xF0,
+ 0x00,0xD8,0xC3,0xCE,0x03,0xCB,0x84,0xDA,0x04,0x15,0x40,0xDB,0x24,0x54,0x9A,0x49,0x26,0x95,0x4A,0x00,0x06,0xA2,0xAB,0x61,0x2E,0xDB,0x6A,0x10,0x1C,0xA7,0x9B,0x1F,
+ 0x5B,0x1C,0xC7,0xDA,0xEF,0xF2,0x19,0xAB,0xEE,0xAB,0x00,0xA0,0xDB,0x2C,0x49,0x2F,0xDB,0x29,0x8F,0x28,0xDB,0x14,0x8C,0xD4,0x1C,0xA6,0xF9,0x02,0xB6,0x5B,0xCB,0xF8,
+ 0x00,0xDA,0x4C,0xDB,0x14,0xB6,0x40,0xDF,0xE6,0xC4,0xB7,0x4C,0x3F,0x7A,0x07,0xE5,0x83,0x42,0xB8,0xA2,0xB6,0x05,0x31,0x12,0x7A,0xC1,0xAF,0xA4,0x95,0xE1,0xDB,0x65,
+ 0xB8,0x61,0xD8,0x12,0xDB,0x19,0xB7,0x77,0x01,0x00,0x57,0x86,0x6B,0xEF,0x4B,0xC5,0x61,0xD7,0x53,0x9D,0x85,0xCA,0x58,0x00,0xD8,0x5E,0xC3,0x74,0x08,0xBF,0x09,0x54,
+ 0x43,0xDB,0x29,0xB0,0xDB,0xE6,0xB1,0xAA,0xF3,0xC1,0xDC,0x54,0x33,0xC9,0xE1,0xDB,0x22,0xED,0xA7,0x2F,0xDB,0x0C,0xD1,0x26,0x00,0x48,0x4A,0x05,0x79,0x8C,0xDB,0x0A,
+ 0xA3,0x90,0xDA,0xA8,0x97,0x9F,0xC3,0xD8,0xDB,0x04,0x9F,0x19,0x82,0xDB,0x31,0xC1,0xDB,0x02,0xE2,0xE4,0xD7,0xDE,0xCE,0x34,0xDB,0x24,0xCF,0x7A,0xE7,0xCF,0xA2,0x2D,
+ 0x94,0x26,0x00,0xDE,0xCD,0x82,0xC9,0x82,0xD5,0x70,0xDB,0xA7,0xC3,0xB0,0xDA,0x56,0x1A,0xED,0x69,0x97,0x81,0xD5,0x1D,0x1C,0xC9,0x14,0x11,0x49,0xC4,0x5D,0x24,0x17,
+ 0xF4,0xAB,0x8F,0xC5,0x2B,0xC9,0x94,0x2E,0x8C,0xAB,0x49,0x46,0x42,0xDB,0x92,0x0A,0x51,0x83,0xDB,0x9E,0x00,0x8F,0xDB,0x02,0x6C,0xE4,0xC0,0xDB,0xDA,0xCF,0x3E,0xA5,
+ 0x53,0x88,0x55,0x4F,0xCD,0x20,0x00,0xE0,0x00,0x0D,0x22,0x2D,0x8F,0xCC,0x94,0x26,0xB9,0x29,0x96,0xEF,0xC2,0xDF,0x65,0xEF,0xD6,0xE6,0xAC,0x00,0x88,0xAA,0x05,0xE9,
+ 0xE1,0x1D,0x85,0xDF,0x65,0xAF,0x71,0x99,0xEC,0xAB,0xB5,0x87,0xAF,0xEC,0x05,0x29,0xBF,0x55,0x15,0x96,0xC2,0xF2,0x14,0xE8,0x17,0xB9,0x2C,0xAB,0xD1,0x06,0x32,0x32,
+ 0x49,0xD3,0x0C,0xAB,0xAC,0x8C,0x49,0x32,0xDB,0x2D,0xE2,0x75,0xE7,0xD7,0x0B,0x6E,0xC1,0xDF,0x00,0x0C,0x82,0xD7,0x85,0x40,0xD5,0x4E,0x41,0xDA,0x14,0x00,0xB8,0x35,
+ 0xB8,0xB6,0xEC,0x19,0xE4,0x77,0xB4,0xB6,0x02,0xC4,0xA8,0x22,0x0D,0x08,0x0E,0x41,0xD6,0x08,0x69,0x3B,0x1B,0x9E,0xCE,0x59,0xAA,0x45,0x52,0x2D,0xF0,0x94,0xB2,0xDD,
+ 0xBE,0xDC,0x00,0x95,0xAD,0x01,0xE0,0x6B,0xA0,0x95,0x54,0x8A,0xC9,0xCD,0x7E,0xF6,0xD6,0xF3,0x60,0xDB,0xE7,0x15,0xDB,0x0C,0xBD,0xBB,0x00,0xD6,0xCC,0xAE,0x94,0x1A,
+ 0xDB,0x1F,0xBB,0x48,0xC0,0xF5,0x82,0x76,0xB6,0x54,0xD6,0x12,0xCD,0xAA,0x4A,0xA6,0x9E,0xC0,0xD4,0x85,0x85,0xB4,0x03,0x85,0xA0,0xDA,0xB6,0xAA,0x00,0x92,0x45,0xB4,
+ 0xBF,0xC8,0xDA,0x92,0x2A,0xE9,0x08,0x0D,0xC2,0xDB,0xCD,0x38,0x08,0xF0,0xCE,0xD1,0xCF,0x05,0xB8,0x77,0x85,0x34,0x00,0xB7,0x82,0x84,0xD6,0xA1,0xDB,0x73,0x94,0x92,
+ 0xA5,0x1A,0xDE,0xB8,0x60,0xDB,0xA5,0xCA,0x5E,0x1C,0x00,0x93,0x97,0x07,0x73,0x92,0xDC,0x00,0x0F,0xC1,0xDC,0x73,0x9D,0xE5,0x0B,0xB6,0x61,0xDB,0x72,0x99,0x64,0xB0,
+ 0xDB,0x89,0x00,0xA0,0xDB,0x94,0xDA,0x17,0x85,0x03,0x40,0xDC,0x4A,0x94,0xDB,0x34,0x90,0xCB,0xB6,0x91,0x40,0xDF,0xC4,0xAF,0x7A,0x4E,0x08,0xA3,0x10,0x72,0xDB,0x1A,
+ 0xD1,0x37,0x4C,0xCE,0x4C,0xC5,0xDB,0x15,0xBD,0xCE,0x6D,0x03,0x2C,0xDB,0x30,0xD9,0x76,0x67,0x02,0xB6,0x54,0x9C,0x45,0x10,0x1F,0x85,0xB5,0xAA,0xF3,0x67,0xB2,0x00,
+ 0x95,0xBC,0x00,0xC0,0x2C,0xDB,0x3C,0x07,0xEF,0x27,0xDB,0x0D,0x88,0x3B,0x0D,0x07,0x97,0xD4,0x34,0x02,0x43,0x85,0xA8,0xD2,0x08,0x92,0x69,0x90,0x5D,0x00,0x05,0xCC,
+ 0x06,0x93,0x93,0x82,0xDA,0xBC,0x44,0x91,0x94,0xDB,0x00,0xA3,0xBD,0xD0,0xC9,0xB7,0x53,0x4E,0x7A,0xDB,0x70,0x6E,0x95,0x92,0x4A,0xAF,0x0D,0xD2,0x95,0x40,0xDC,0x61,
+ 0xD6,0xDC,0x74,0x00,0xD8,0x0E,0x81,0x00,0x62,0xB7,0xB0,0xDB,0x44,0x5F,0x06,0xDB,0xB5,0x1A,0x01,0x54,0x50,0xDC,0xCE,0xF0,0x82,0xC5,0xA7,0x89,0x09,0xB0,0xDB,0xA7,
+ 0xCB,0x9B,0x00,0x14,0xBE,0x00,0x07,0xC2,0xF7,0xDD,0xC5,0x8C,0x94,0xB2,0xE8,0x89,0x6E,0x89,0xDB,0x0D,0xC3,0xE8,0xDB,0x2E,0x00,0x44,0x91,0xC3,0xDB,0x00,0xC3,0xDA,
+ 0x00,0xA0,0xDB,0x53,0xE4,0xC8,0x81,0xC9,0xE2,0xC1,0x02,0x31,0x00,0x02,0x10,0x00,0x12,0x00,0x22,0x4A,0x97,0x95,0x98,0xDB,0x28,0xD6,0xD9,0x28,0xDF,0x2C,0xDA,0x2C,
+ 0xDB,0x16,0x2B,0xDB,0x12,0x86,0xDA,0x00,0x1D,0xE8,0x04,0xD8,0x32,0x8E,0xB0,0xDB,0xBE,0x93,0x94,0xFD,0xEB,0x9A,0xAA,0x07,0x52,0xAB,0x46,0x1A,0x75,0x00,0x13,0x9C,
+ 0x38,0xDB,0x51,0xB1,0x56,0xD8,0x58,0xDD,0x4E,0xB5,0x52,0x60,0x07,0xDB,0x8C,0xB0,0xDB,0x25,0x8D,0x85,0xB6,0x2A,0x00,0x58,0xB8,0xDB,0x29,0xE4,0xC8,0xC1,0xBD,0xC7,
+ 0xC4,0xAC,0x08,0xD4,0xC4,0xE5,0xB4,0x07,0xAA,0x00,0x1B,0xC1,0xE2,0xC5,0xC5,0xC2,0xDB,0x72,0xB8,0x98,0xDB,0x26,0x80,0xBC,0x98,0xAF,0xF1,0xEC,0xCD,0x2D,0xEC,0x6C,
+ 0xDC,0x24,0xE0,0x59,0x03,0xCB,0x07,0xB2,0xBF,0xB8,0x00,0xD0,0xDA,0xAA,0x10,0xC0,0x77,0x64,0x2D,0x28,0xDB,0x30,0x43,0xD0,0xCA,0x01,0x93,0x93,0xDB,0x07,0x8C,0x03,
+ 0x28,0xDB,0x48,0xB6,0x44,0x8D,0x8D,0xE1,0xDA,0x30,0xDB,0x2B,0x77,0xB7,0x83,0xE6,0xAF,0x1B,0x4F,0x9E,0xC9,0xDE,0x8F,0x0E,0x26,0xA6,0xFD,0x00,0xA0,0xF8,0xC1,0xD8,
+ 0xCF,0xA4,0x95,0xB0,0xDB,0x58,0x5E,0xDD,0x4E,0xDA,0x16,0xD7,0x08,0x67,0x80,0xDB,0xF0,0x00,0xC9,0xFE,0xFF,0x82,0xDB,0xDE,0xB0,0xF2,0xD0,0x70,0xD5,0x15,0x49,0x26,
+ 0x26,0x04,0x20,0xCF,0x58,0xED,0x26,0x2E,0xDA,0x0A,0xDB,0x01,0xAB,0xCD,0x2E,0x55,0xF4,0x6F,0xC6,0x61,0xCF,0x61,0xDB,0x84,0xD2,0xE1,0xDB,0x28,0xD6,0x4E,0xDA,0x17,
+ 0xFF,0x56,0xB6,0x58,0xDA,0x68,0x92,0xA8,0x56,0x24,0xF9,0xD9,0xB7,0x58,0xA5,0x20,0x1B,0xCD,0xC7,0xE7,0x00,0xD8,0xB4,0x12,0x4F,0x61,0x0D,0xDC,0x3A,0x95,0x2C,0xE3,
+ 0xB8,0x86,0x81,0xEC,0xEC,0xDD,0x0F,0xCD,0xC0,0x16,0x67,0xCD,0xAC,0x19,0xDC,0x1B,0xAB,0x07,0x19,0xB7,0x0B,0xFD,0x8E,0x08,0x65,0xD5,0xF3,0xB3,0x00,0x96,0x04,0x72,
+ 0xA6,0x54,0x49,0x97,0xE7,0x0C,0x1D,0x49,0x27,0x2D,0x0E,0x5F,0x00,0xB7,0x4B,0x97,0x34,0xD9,0x18,0xCE,0x56,0xE2,0x12,0x93,0x27,0x87,0xE5,0x00,0x20,0xD6,0x2B,0x8D,
+ 0x01,0x02,0xB0,0xDC,0x4A,0xD9,0xB7,0x43,0xB4,0xDB,0xC7,0xC7,0x77,0x9F,0xB0,0xC4,0x4F,0x12,0xE1,0xAA,0x07,0x80,0xDB,0x02,0x62,0x12,0x00,0x24,0xB0,0xD8,0xB3,0xE4,
+ 0xDA,0x09,0xC2,0xDB,0xC2,0xDA,0x95,0x00,0x17,0xFD,0x17,0x86,0xC9,0xAB,0x0A,0xB4,0xDE,0x9D,0x40,0xDB,0xB0,0xCC,0x9C,0xB3,0xB0,0xCA,0x89,0xDB,0x05,0x2E,0xE0,0x04,
+ 0xEF,0x1A,0x94,0xD8,0x0A,0x2F,0x2F,0xDD,0x5B,0xA9,0xE9,0x5E,0xC3,0x83,0xDB,0x00,0xC1,0xD2,0x5D,0xCB,0x08,0x00,0x61,0xD9,0x35,0x00,0x84,0xDA,0x81,0xDB,0x44,0xB6,
+ 0xBD,0x18,0xB1,0x9A,0x9F,0x92,0x10,0x00,0x31,0x23,0x85,0xDB,0x09,0xA4,0x22,0xAC,0x76,0x88,0xD6,0x94,0xDC,0x16,0x81,0xB7,0x58,0x02,0xCD,0x81,0x35,0x48,0xCD,0xD6,
+ 0x1D,0x03,0xE6,0xAC,0xEC,0x76,0xB3,0xF6,0xDA,0x13,0x85,0xD9,0x82,0xC5,0x2F,0x50,0xDA,0x90,0xA5,0xBE,0xA3,0x3F,0x45,0x2F,0x03,0x00,0x0D,0xF5,0x16,0x0D,0x49,0x83,
+ 0xD1,0x2F,0x10,0x98,0xDA,0x3B,0x00,0xDA,0x08,0x84,0x00,0x65,0xE0,0xD8,0xB5,0x94,0xDA,0x03,0xD9,0xF1,0xB8,0xF1,0xDA,0x00,0xCB,0xDB,0xC4,0x5B,0xA0,0xDA,0x39,0x02,
+ 0x08,0xA6,0x81,0x14,0xDB,0x36,0xB8,0xC1,0xDC,0x31,0xC9,0xAC,0xE2,0xE6,0x20,0xDC,0x14,0xE3,0xE3,0xED,0xB8,0xD7,0x12,0xCD,0xEC,0xA6,0x97,0x98,0x92,0x83,0xDB,0x32,
+ 0xDD,0x09,0x56,0xE1,0xCE,0xF2,0x50,0xBF,0xA2,0xA1,0xF0,0x0A,0xC4,0xB4,0x98,0xA2,0xA4,0xF0,0x08,0xDB,0x58,0x2F,0xDB,0x7D,0x09,0x0F,0x54,0x0D,0xA2,0xD0,0xD9,0x73,
+ 0x00,0x01,0xDA,0x65,0x65,0x4B,0xED,0x30,0xD6,0x5A,0x04,0x8D,0x2C,0xDB,0x16,0xD9,0xDB,0x0A,0xF1,0xED,0x50,0xDB,0xDA,0xAC,0x7A,0xC3,0x90,0x81,0x7D,0xE6,0x60,0x46,
+ 0xDB,0x0C,0xA4,0x70,0xDC,0xC0,0xDF,0x0D,0x98,0x16,0xE2,0xDA,0xD0,0xDB,0x1D,0x00,0x06,0xD6,0xDB,0x14,0xB8,0x5A,0x00,0xAB,0xC2,0xDB,0xC9,0xBB,0x1A,0x85,0xAB,0x74,
+ 0x9A,0xCF,0xAE,0x28,0xDB,0x61,0xB6,0x39,0xFE,0xDD,0x00,0x83,0xDB,0x46,0xDB,0x04,0x49,0xE1,0xDB,0x65,0xC5,0x69,0x15,0x2F,0x8A,0xB5,0x24,0xDB,0x34,0x09,0x65,0x50,
+ 0xDA,0x61,0xDB,0x38,0xDA,0x60,0xDB,0xC3,0x14,0xDB,0xCE,0x98,0x8E,0x02,0x0D,0x1B,0x02,0x04,0x60,0xDB,0xB2,0x00,0x07,0x12,0x98,0x00,0x22,0xDC,0x14,0xDF,0xD0,0xB9,
+ 0x56,0xDB,0x16,0xB4,0x56,0xD8,0x16,0xDB,0x15,0x03,0x44,0xB6,0x2F,0xF2,0x03,0x89,0xB2,0xAA,0x9D,0xA7,0xE4,0xAA,0x29,0xEE,0x0C,0x0E,0x60,0xDB,0xBB,0x16,0x1C,0xBC,
+ 0x07,0x06,0x5D,0x5D,0x9C,0xAD,0xA9,0xEA,0x56,0x27,0xD5,0x1F,0x03,0x00,0x38,0xD6,0x5E,0x00,0xD9,0x13,0x80,0xDA,0xE4,0xCB,0xC9,0xC1,0xDA,0x7A,0x85,0xD6,0x86,0xD7,
+ 0x04,0x08,0x85,0xA0,0x00,0xB8,0xDB,0x31,0xAB,0xE9,0x00,0x12,0x24,0x49,0x96,0x69,0x95,0x30,0xDC,0x79,0x95,0x59,0x98,0xDD,0x03,0x04,0x03,0xD5,0x2F,0x03,0xD2,0x04,
+ 0x46,0xA5,0x8B,0x82,0xB7,0x50,0x49,0x05,0x81,0xE4,0x45,0xAC,0x00,0x36,0xDB,0x1A,0x5D,0x93,0x61,0xDF,0x2B,0x00,0x5D,0x00,0xBC,0x06,0xD8,0x11,0x6E,0x2B,0xE2,0x20,
+ 0xD6,0x04,0x65,0x29,0x18,0x18,0x48,0xD9,0x51,0x00,0xD9,0xD4,0x30,0xDB,0x61,0xDA,0xE7,0xD8,0xD5,0x14,0xC4,0x77,0xFA,0x50,0x22,0x03,0xDB,0x12,0x47,0x3A,0x7A,0x9F,
+ 0x00,0xE5,0x4C,0x15,0x98,0xCF,0xD6,0xF2,0x74,0x95,0x30,0x64,0x51,0xD3,0xB0,0xD6,0x94,0xDB,0x30,0xAB,0x58,0x46,0xC6,0x55,0xCD,0x4C,0xBA,0x09,0x27,0xCA,0x9B,0xC2,
+ 0xE7,0xE8,0x00,0xDB,0x0D,0x6E,0x5D,0x05,0x6E,0x77,0x1C,0x1F,0x61,0xDB,0xE5,0x2F,0xB5,0x16,0xD8,0x16,0xD7,0x12,0x30,0x00,0x28,0xD2,0xE5,0x02,0x00,0x55,0xD4,0x00,
+ 0x86,0xDA,0xDB,0x03,0xBD,0xB7,0x7A,0xDA,0x05,0x12,0xA9,0xA0,0x1B,0x0D,0x06,0xA1,0xDB,0x0B,0xD6,0x33,0xE7,0x02,0x12,0x0D,0xB0,0xCF,0xD0,0xC2,0xDB,0x50,0xDD,0x29,
+ 0xE9,0x51,0x00,0x64,0x4F,0x00,0x43,0xA7,0x28,0xEF,0xE6,0x98,0x79,0xD6,0xC2,0xD6,0xD8,0x72,0xA2,0xB0,0xC8,0xF8,0x0E,0x08,0x4D,0x00,0x27,0x22,0x00,0x65,0x69,0x00,
+ 0x41,0xD9,0x6A,0x53,0x00,0x06,0xD8,0xB6,0x53,0x00,0xDB,0xE1,0xDB,0xB7,0x02,0x0D,0x07,0x0D,0x24,0x24,0x1B,0x26,0x00,0x04,0x80,0xDB,0x31,0x9F,0x08,0xAF,0x02,0x00,
+ 0x24,0x82,0xE2,0xB9,0xB9,0x81,0xDC,0xE9,0x74,0x00,0xD9,0x0A,0x43,0x00,0xC3,0xDB,0x03,0xD2,0x8F,0x62,0xB6,0xC2,0xC0,0x70,0xDB,0x88,0xF9,0x3B,0xBF,0x09,0x52,0x81,
+ 0x11,0xD2,0x09,0x24,0x06,0xB0,0x24,0x29,0xE0,0xDA,0x28,0x98,0xDB,0x13,0x4D,0x12,0xB3,0xEF,0x55,0xEE,0x57,0xC3,0xB3,0x18,0x24,0x22,0xD9,0x17,0x24,0x0D,0x00,0x38,
+ 0xDC,0x40,0x92,0xDB,0x00,0x0D,0x12,0x02,0x9F,0xC1,0x12,0xCF,0xDF,0xB4,0x83,0xDB,0x95,0xDA,0x06,0x41,0xD5,0x0A,0x8C,0xDC,0x0A,0xCF,0xFC,0xB0,0xA7,0xA0,0x79,0xC1,
+ 0xBC,0x2F,0x16,0xC6,0x11,0xE0,0xD2,0x5D,0xB0,0xD1,0xB8,0x09,0xC4,0x89,0xA0,0xD5,0xB4,0x00,0x6A,0x84,0xB6,0x4D,0x4C,0xD4,0x00,0xEF,0x58,0xEF,0xDA,0x03,0xDB,0xA5,
+ 0xC1,0x0D,0x22,0xDB,0x0A,0x02,0xB9,0x00,0xC2,0xDF,0x04,0x70,0xDB,0x52,0x02,0xEA,0x7C,0xC4,0x1B,0x24,0x53,0xB7,0xDC,0x03,0x3D,0x95,0x00,0x1D,0x41,0x41,0x8C,0x00,
+ 0x05,0xDF,0x05,0xDB,0x87,0xDD,0x00,0x09,0x9F,0xF1,0x02,0x38,0xCF,0x4D,0x08,0x12,0xD4,0x12,0x4C,0x04,0xD5,0x14,0xDF,0x13,0x04,0xD5,0xA1,0xDA,0x10,0xDB,0x0C,0xEF,
+ 0x00,0xF1,0xE0,0x00,0xE1,0xC7,0xA5,0x4C,0x5B,0x5B,0x4C,0x22,0x0A,0x53,0x4C,0x53,0x22,0x00,0x8B,0xDE,0x0E,0x00,0x04,0x10,0xDB,0xDE,0x42,0x00,0xE4,0x7F,0x4E,0xC6,
+ 0x06,0x22,0xB7,0xD0,0xA3,0xDC,0x00,0x91,0x3D,0x3D,0x4A,0x4A,0x3F,0x58,0x58,0xCB,0xE8,0x03,0xE1,0x32,0x06,0x8C,0x6E,0x38,0xDB,0x24,0xAB,0x28,0xC0,0xC5,0x8D,0x00,
+ 0x4B,0x29,0x05,0x41,0xD1,0x39,0xB1,0x4C,0xD6,0x05,0x5A,0x4D,0xCE,0x00,0xD8,0x16,0xD9,0x00,0xE0,0xC3,0xC9,0xA8,0xAC,0x14,0x9A,0x9A,0x5B,0x00,0x4C,0xC2,0xDC,0x93,
+ 0x00,0x22,0x94,0xBE,0xE1,0xDE,0x07,0xC0,0xDB,0x4F,0xB0,0xD7,0xA0,0xDC,0xE8,0x84,0x53,0xA5,0x02,0xDA,0xB4,0x77,0x77,0x6C,0x6C,0x80,0xDD,0x58,0x85,0xBC,0x00,0xE1,
+ 0x3A,0x00,0xDF,0x0B,0xF3,0x84,0x27,0x64,0x00,0x58,0xC5,0x55,0x07,0xDC,0x00,0x06,0xFC,0x0C,0x00,0x81,0xD4,0x21,0xB0,0x25,0x5A,0xD7,0x0F,0x00,0xD6,0x05,0x59,0xBB,
+ 0x00,0x7E,0x00,0xD9,0x0D,0x00,0xE0,0x80,0x00,0xCB,0xCE,0xA5,0xAF,0xA5,0x98,0x98,0xC1,0xDC,0x97,0xB0,0x02,0x9A,0xDD,0xB0,0xDF,0x9C,0xBE,0xA2,0x56,0xFD,0x1F,0x9B,
+ 0x48,0x74,0xDB,0x3F,0x48,0x41,0x04,0xC6,0x00,0x12,0x9F,0x98,0xDC,0x00,0xA3,0xA0,0x6C,0xB6,0xB6,0x2C,0x79,0xBC,0xDA,0x18,0x8D,0x02,0x93,0x85,0x9E,0xB0,0xE0,0xBA,
+ 0xCB,0x8F,0x9B,0x29,0x8E,0xF2,0xAE,0x00,0x07,0x79,0x0D,0xCA,0xAB,0x65,0xDF,0xB0,0xD2,0x49,0x4D,0x04,0xE1,0x00,0xD6,0x3C,0x00,0x80,0xDB,0xD1,0xE4,0xA0,0xCE,0xB7,
+ 0x6C,0xA5,0x01,0xAF,0x00,0x98,0x97,0xE6,0x00,0xBD,0x2F,0x00,0xDD,0x08,0xD2,0xBD,0x83,0xB0,0xDB,0xD4,0xEB,0x31,0x24,0xB6,0x4B,0xF0,0xF4,0x98,0x06,0xC1,0xCA,0xB9,
+ 0x05,0xA0,0xE4,0xB6,0xB8,0xBC,0x26,0x00,0x85,0xC4,0xFB,0xE5,0x05,0x93,0x84,0xCE,0xE5,0xA0,0x84,0xBF,0x50,0xC0,0x45,0xF1,0x0B,0x00,0x6F,0xB4,0x29,0xAD,0x4E,0xD7,
+ 0x13,0x11,0xB2,0x7E,0x9C,0x72,0x00,0x07,0xDB,0xA0,0x25,0xB1,0xA8,0x30,0x00,0xB7,0xDD,0xC1,0xE0,0xAF,0x45,0xBC,0x53,0x00,0xA4,0x9B,0x60,0xDC,0x41,0x00,0xDB,0x42,
+ 0xEB,0xEB,0x49,0x00,0x0D,0x3B,0x46,0x4D,0xCF,0x6C,0x59,0x9A,0x98,0x38,0xBD,0xA3,0xBD,0x75,0xB8,0x9D,0x84,0xDC,0x9F,0xC3,0x28,0xDF,0x65,0x90,0x2D,0xC6,0x58,0xBD,
+ 0x61,0xB2,0x73,0x05,0x85,0xC7,0xDC,0x0D,0x06,0x4C,0x07,0xE9,0x00,0x4D,0xE6,0x00,0xD5,0x09,0x82,0xD7,0xC7,0x00,0x92,0xE8,0xD1,0x9F,0x2C,0xC4,0x00,0xB1,0xB1,0x9C,
+ 0xDE,0x28,0xBB,0xB2,0xBC,0x9C,0xDE,0x24,0xF9,0x59,0x06,0xEF,0x09,0x12,0x97,0x1F,0xDA,0x0E,0x49,0xB0,0x4F,0xD9,0xF0,0x58,0xDB,0x14,0x8F,0xDA,0xCB,0xDC,0x05,0xBC,
+ 0xD9,0xEC,0xE2,0xE1,0xDA,0x79,0x9C,0x2C,0xEF,0x46,0x15,0x94,0xCE,0x06,0xD3,0x09,0x28,0xD6,0xD6,0x72,0xAB,0x4C,0x59,0xAB,0x51,0xA0,0xD8,0x92,0xEC,0x00,0xDA,0x02,
+ 0xCB,0xC9,0xCE,0xCE,0x50,0xDC,0xE5,0x00,0xBB,0x2B,0xDC,0x08,0xD2,0xBA,0x9C,0xDC,0x21,0xF9,0xB3,0x86,0x03,0xD9,0x00,0x98,0xB4,0xAC,0xD9,0x29,0x5B,0x97,0x81,0x62,
+ 0xA5,0xC4,0xBD,0xE4,0xEF,0xD4,0x61,0xDB,0x34,0x00,0xA1,0xCB,0x7B,0xFA,0x39,0xE8,0xCE,0xEA,0x76,0x00,0x5A,0x89,0xEC,0x09,0x02,0xD1,0x49,0x04,0xE3,0x00,0x0A,0xAD,
+ 0x46,0x00,0xA9,0x01,0xE8,0x30,0xE0,0xDB,0xDA,0xE3,0x00,0x82,0xDD,0x45,0xF6,0x98,0xDC,0x28,0xDD,0x23,0x83,0xDB,0x00,0x82,0xB0,0xDB,0x98,0xDA,0x13,0x0D,0x87,0xDA,
+ 0x53,0x20,0xD9,0x29,0xAF,0xDF,0x87,0xC4,0xC7,0xE4,0xA0,0x53,0xEC,0xE2,0xA1,0xC1,0x14,0xBE,0x11,0x67,0xEC,0x77,0x00,0x09,0x3C,0x06,0x58,0xD4,0x47,0x14,0xAE,0x81,
+ 0xD8,0x4A,0x00,0xAA,0x8F,0x40,0xC9,0xC7,0xC7,0xC9,0xE2,0x00,0x02,0xDD,0x64,0x97,0x4C,0x98,0xDC,0x12,0xCC,0xB1,0x44,0xAE,0xC1,0xA8,0xDB,0x49,0xE8,0x31,0x45,0xB5,
+ 0x82,0xDA,0xAF,0x98,0xD8,0xA8,0xB1,0xC2,0x70,0xCE,0xDB,0xC3,0xEF,0x4C,0x00,0xDB,0x2C,0xA1,0x11,0x59,0x67,0xE3,0x08,0x04,0xBF,0xB3,0x08,0xCF,0x0F,0x00,0x18,0xD4,
+ 0x16,0xD7,0x12,0x86,0xDB,0xB4,0x58,0xDA,0x68,0x00,0xC7,0xF0,0xDC,0x95,0x96,0x20,0x4A,0xDB,0x09,0x4A,0xB7,0x28,0xDA,0x28,0xB5,0xA5,0xDA,0x06,0xCE,0xD9,0x20,0xC3,
+ 0xE1,0xE0,0xD1,0xE8,0x48,0xE8,0xA0,0x08,0x7E,0x7E,0x00,0xE3,0x24,0x8A,0xA9,0x30,0xD9,0x13,0xA9,0x32,0x00,0xAA,0xB4,0xC1,0xDA,0xCB,0xD0,0x00,0xDC,0x23,0xDB,0x03,
+ 0xDD,0xDC,0x09,0xC2,0xDB,0x74,0x93,0x8F,0x92,0x48,0x3A,0xDB,0x0A,0x52,0xB2,0xB6,0x98,0xB5,0xBC,0x74,0x79,0xDB,0xCB,0x58,0xC3,0xDC,0x2C,0xE8,0x9B,0x2C,0xA6,0x2A,
+ 0x03,0x38,0xB9,0x26,0xBF,0x08,0xF8,0x0F,0xD4,0x00,0xA9,0xEE,0x00,0xA1,0x00,0xC1,0xDA,0xE1,0xD8,0x00,0xDD,0x26,0xCB,0xBB,0x29,0xC2,0xDB,0x64,0x93,0xB2,0xB6,0x99,
+ 0xCB,0xEE,0xE1,0x23,0xD6,0xED,0x0A,0xC2,0xDB,0x57,0xCB,0x9C,0xDB,0x30,0xDA,0x88,0xDB,0x07,0xC7,0x7A,0xA4,0x7E,0xC3,0xBA,0x29,0xC1,0x9B,0x92,0x0E,0xC3,0x00,0x01,
+ 0xD3,0x30,0xD7,0x58,0xD9,0x72,0x9F,0xE0,0xF0,0x00,0xDA,0xAB,0x00,0xDB,0x04,0xDB,0xE1,0xDB,0x29,0xB6,0x5B,0xCB,0xC5,0x4C,0xA7,0xE1,0xDA,0x06,0xD7,0x83,0x38,0xDB,
+ 0x5E,0xDA,0x71,0x00,0x24,0xB7,0xCE,0x89,0xDB,0x0C,0xDC,0x24,0xBB,0x24,0xAA,0x52,0x00,0xA9,0x0B,0x13,0x00,0xA1,0xA9,0x00,0xAA,0x46,0xD1,0x20,0xDB,0x58,0xDC,0x59,
+ 0xB8,0x4E,0xDB,0x11,0xE5,0xB5,0x3C,0xA3,0xDA,0x91,0x4E,0xD7,0x10,0x69,0xDF,0x93,0x5C,0x83,0xEB,0xF0,0x2A,0xEF,0xDA,0x93,0x4E,0xB8,0x58,0xDB,0x78,0x00,0x95,0x46,
+ 0x02,0xDF,0xA1,0x0B,0xA4,0x00,0x34,0xAA,0x41,0x49,0xB0,0xDA,0xB0,0xDB,0x9C,0xDA,0x25,0xB5,0x28,0x9B,0x80,0x8D,0xFE,0xAC,0xDA,0x20,0xE4,0xDB,0x24,0x97,0x47,0x9F,
+ 0x46,0x3A,0xF2,0xC6,0xAC,0xF1,0x81,0xDD,0x84,0x89,0xA1,0xDE,0x30,0xE0,0x58,0xE3,0x42,0xD0,0x00,0xD0,0xD9,0x5C,0x36,0xE4,0xB4,0xE1,0x98,0xB4,0x93,0xDB,0x94,0xB4,
+ 0x52,0x8E,0x4F,0xB5,0xD6,0xD8,0x11,0xE1,0xD9,0x05,0x81,0xDB,0x3D,0x13,0x42,0x44,0x21,0xDD,0x29,0xBB,0x58,0xDE,0x4A,0x9A,0x96,0xE1,0x1C,0x00,0xC1,0xE5,0x04,0x41,
+ 0xE8,0x2D,0x00,0xCD,0x21,0x30,0x18,0x8C,0x91,0x2B,0xE9,0x49,0x8D,0x16,0xD8,0x09,0x22,0xCA,0xB2,0x3D,0xE6,0x60,0xBC,0xDB,0x11,0x00,0x72,0xAF,0x24,0x95,0xD2,0xE2,
+ 0x42,0xDE,0x6B,0x8A,0x94,0xE1,0x2C,0xE2,0x2C,0xE4,0x2C,0xE6,0x27,0xE8,0x08,0xC0,0xEB,0xB0,0xEE,0x8A,0x0B,0x44,0xD1,0x4B,0x20,0x2F,0xC6,0x37,0x04,0xD6,0xEF,0xC1,
+ 0x84,0xD8,0xF5,0xF7,0x16,0xE5,0xB1,0xE1,0xD5,0x06,0xC9,0x93,0x1E,0xF9,0xB1,0x05,0xBD,0x59,0xEA,0x5D,0xC5,0x65,0xC0,0x61,0xE2,0x61,0xE3,0x61,0xE4,0x61,0xE6,0x38,
+ 0xE8,0x4C,0xEB,0x13,0x22,0x00,0xE1,0x82,0xC3,0x69,0x00,0xFB,0x25,0x00,0x33,0x45,0xC7,0x74,0xAD,0xFD,0xAC,0x13,0xAB,0xD3,0xCD,0x97,0xCE,0x00,0xD7,0x10,0x24,0x05,
+ 0xDB,0x28,0x00,0x31,0xDE,0x2D,0x60,0x22,0x39,0xBF,0x4B,0xCC,0xCB,0xAF,0xE3,0x0A,0xC6,0x2B,0xE6,0x0A,0xE7,0x09,0x02,0xE9,0x60,0xEC,0x98,0xEF,0x26,0x00,0xC2,0xBE,
+ 0x2A,0x00,0x6C,0x1E,0xCB,0x26,0x00,0x4F,0xC4,0xFF,0xF6,0xD3,0x16,0xDF,0xB1,0x40,0xD6,0x53,0x9D,0xB9,0xE1,0xDA,0xEF,0x83,0x60,0xDB,0x90,0x22,0x4F,0x4F,0xAA,0x58,
+ 0x60,0x94,0xDF,0x22,0x83,0xE1,0xE2,0x0B,0xC6,0x24,0x98,0xA1,0xE7,0x69,0x00,0xB7,0x42,0xEC,0x64,0x00,0xB1,0x2D,0x00,0x3D,0x1F,0xD8,0x2D,0xCF,0x54,0x02,0xA1,0xD3,
+ 0x41,0xD4,0x61,0xD5,0x61,0xD7,0x32,0xDE,0xD1,0x78,0x31,0x4F,0x38,0xD5,0x40,0x9C,0xDB,0x11,0xE9,0x9E,0x15,0xD6,0xD6,0xE3,0x16,0xE5,0x16,0xE7,0x17,0x00,0x84,0x96,
+ 0xC1,0xED,0x10,0x00,0x98,0x86,0xA5,0x00,0x21,0x96,0x33,0x5E,0x3F,0x47,0x3A,0xE6,0x91,0x0D,0xF0,0x7F,0x58,0x8F,0x90,0x5C,0xDB,0x11,0xF8,0xFC,0x24,0x9C,0xC8,0xA5,
+ 0xCC,0x29,0xC2,0xEA,0x25,0x00,0x5B,0x0C,0xC4,0x00,0x26,0x23,0x53,0x00,0x91,0x44,0x24,0x1E,0x83,0x90,0x38,0x04,0xDB,0xE1,0xE0,0x39,0xC8,0x24,0x9F,0x00,0xC2,0x95,
+ 0xE3,0x04,0x10,0x00,0x22,0xD4,0x00,0x92,0x1E,0xC8,0x26,0x3E,0x7A,0xE3,0x00,0xC2,0xCE,0x07,0x70,0xDB,0x8B,0x3A,0x4B,0x0D,0x00,0x3A,0xB0,0x47,0x61,0x00,0xBB,0x1F,
+ 0x11,0x1D,0x10,0x38,0xD0,0x21,0x1B,0x70,0xA4,0x83,0x00,0xD3,0x81,0x28,0xDB,0x24,0x00,0x4F,0x02,0x00,0x3C,0x0A,0xF1,0x0D,0xB1,0x0F,0x73,0x13,0xCE,0x1A,0xCB,0xD3,
+ 0x9C,0x90,0xF0,0x5A,0x3B,0x85,0xDB,0x90,0x00,0x07,0x07,0xAC,0x42,0x7C,0x5A,0x2F,0x72,0x1F,0x12,0x3D,0x19,0xC0,0x07,0xFE,0xDB,0x13,0xA3,0x42,0x1B,0xA3,0x00,0xA6,
+ 0xD7,0x19,0xAF,0x69,0xA3,0x23,0x82,0xE0,0x1F,0x95,0x08,0x17,0x02,0xDB,0x76,0x35,0x07,0x00,0x4F,0xB9,0x00,0xE3,0x46,0xE3,0x66,0xE1,0x10,0xD8,0x7E,0x98,0x0B,0x2F,
+ 0x97,0x08,0x7E,0x5F,0x02,0xEE,0x00,0x01,0xD3,0xDB,0x09,0xE0,0x00,0x34,0xC2,0xD3,0x01,0xBF,0xDB,0x09,0xE0,0x00,0x34,0xC2,0xD3,0x03,0x0C,0xDB,0x20,0x00,0x10,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/apple.png b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/apple.png
new file mode 100644
index 0000000..fc30924
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/apple.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/convpng.ini
new file mode 100644
index 0000000..4662a3b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/convpng.ini
@@ -0,0 +1,5 @@
+#GroupC : all_gfx
+#Compression : zx7
+#PNGImages :
+ apple
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/main.c b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/main.c
new file mode 100644
index 0000000..e269869
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/main.c
@@ -0,0 +1,45 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <compression.h>
+#include <graphx.h>
+
+/* Include the graphics file */
+#include "gfx/all_gfx.h"
+
+/* Put all your code here */
+void main(void) {
+ /* Define our sprite */
+ gfx_sprite_t *apple;
+
+ /* Allocate space for the decompressed sprite */
+ apple = gfx_MallocSprite(apple_width, apple_height); /* Same as: gfx_AllocSprite(apple_width, apple_height, malloc) */
+
+ /* Decompress the sprite */
+ zx7_Decompress(apple, apple_compressed);
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette */
+ gfx_SetPalette(all_gfx_pal, sizeof_all_gfx_pal, 0);
+ gfx_FillScreen(0);
+
+ /* Draw the decompressed sprite */
+ gfx_Sprite(apple, (LCD_WIDTH - 220) / 2, (LCD_HEIGHT - 240) / 2);
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Please, don't forget to free the apple image memory :) */
+ free(apple);
+
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/autotester.json b/frontends/calculator/CEdev/examples/gfx_sprite_keys/autotester.json
new file mode 100644
index 0000000..b4ba88a
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/autotester.json
@@ -0,0 +1,31 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|clear",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Make sure the sprite is displayed",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "F9825FDD" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/makefile b/frontends/calculator/CEdev/examples/gfx_sprite_keys/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/readme.md b/frontends/calculator/CEdev/examples/gfx_sprite_keys/readme.md
new file mode 100644
index 0000000..9ee2c1b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/readme.md
@@ -0,0 +1,10 @@
+### GraphX/KeypadC Sprite with Keys
+
+Demonstrates using the GraphX and KeypadC library together to move a sprite
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/screenshot.gif b/frontends/calculator/CEdev/examples/gfx_sprite_keys/screenshot.gif
new file mode 100644
index 0000000..41a7b4b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/convpng.ini
new file mode 100644
index 0000000..7bd3158
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/convpng.ini
@@ -0,0 +1,4 @@
+#GroupC : logo_gfx
+#TransparentColor : 255,255,255
+#PNGImages :
+ ubuntu
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.c
new file mode 100644
index 0000000..4086cdc
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.c
@@ -0,0 +1,195 @@
+// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+uint16_t logo_gfx_pal[189] = {
+ 0xFFFF, // 00 :: rgb(255,255,255)
+ 0x7E20, // 01 :: rgb(251,139,1)
+ 0xFE20, // 02 :: rgb(251,140,4)
+ 0xFFFF, // 03 :: rgb(255,253,253)
+ 0x6800, // 04 :: rgb(212,2,2)
+ 0xE821, // 05 :: rgb(213,11,11)
+ 0x7E20, // 06 :: rgb(251,139,2)
+ 0x7E20, // 07 :: rgb(251,139,0)
+ 0x7920, // 08 :: rgb(244,72,0)
+ 0xFFFF, // 09 :: rgb(255,254,254)
+ 0xFFFF, // 10 :: rgb(255,254,253)
+ 0xFECC, // 11 :: rgb(252,182,97)
+ 0x7A90, // 12 :: rgb(249,163,128)
+ 0x7FDC, // 13 :: rgb(254,244,231)
+ 0xF985, // 14 :: rgb(245,100,40)
+ 0x7F9A, // 15 :: rgb(253,225,213)
+ 0x7FDD, // 16 :: rgb(253,242,242)
+ 0x6D6B, // 17 :: rgb(226,90,90)
+ 0xFFBC, // 18 :: rgb(254,239,233)
+ 0xF921, // 19 :: rgb(244,77,7)
+ 0x7EED, // 20 :: rgb(252,187,107)
+ 0xFF99, // 21 :: rgb(254,231,203)
+ 0xFFFE, // 22 :: rgb(255,253,250)
+ 0xFF16, // 23 :: rgb(251,199,177)
+ 0xF921, // 24 :: rgb(244,78,8)
+ 0xFE87, // 25 :: rgb(251,167,61)
+ 0xFFBA, // 26 :: rgb(254,237,216)
+ 0x7F31, // 27 :: rgb(253,204,143)
+ 0xFF76, // 28 :: rgb(253,222,183)
+ 0x7B7B, // 29 :: rgb(249,220,220)
+ 0xFAF7, // 30 :: rgb(244,192,192)
+ 0x7FDD, // 31 :: rgb(252,241,241)
+ 0xF18C, // 32 :: rgb(229,102,102)
+ 0xFE87, // 33 :: rgb(251,164,56)
+ 0x7B5A, // 34 :: rgb(247,212,212)
+ 0xFF76, // 35 :: rgb(253,221,181)
+ 0xF652, // 36 :: rgb(237,151,151)
+ 0x7652, // 37 :: rgb(236,145,145)
+ 0x6D29, // 38 :: rgb(224,74,74)
+ 0xE800, // 39 :: rgb(212,3,3)
+ 0x718C, // 40 :: rgb(228,98,98)
+ 0xFF54, // 41 :: rgb(253,214,165)
+ 0x7673, // 42 :: rgb(237,153,153)
+ 0xFF32, // 43 :: rgb(252,205,148)
+ 0x7EA8, // 44 :: rgb(251,169,68)
+ 0x6CC6, // 45 :: rgb(219,48,48)
+ 0x7FBA, // 46 :: rgb(254,234,211)
+ 0xE842, // 47 :: rgb(215,20,20)
+ 0xFB7B, // 48 :: rgb(250,224,224)
+ 0xFF77, // 49 :: rgb(253,224,187)
+ 0xF652, // 50 :: rgb(237,149,149)
+ 0x7F75, // 51 :: rgb(253,218,175)
+ 0x7FFE, // 52 :: rgb(254,249,249)
+ 0x7EEC, // 53 :: rgb(252,185,102)
+ 0x7FBD, // 54 :: rgb(252,236,236)
+ 0xFFFF, // 55 :: rgb(255,253,251)
+ 0x7EED, // 56 :: rgb(252,188,109)
+ 0x7FFF, // 57 :: rgb(254,252,252)
+ 0xFAF7, // 58 :: rgb(243,189,189)
+ 0x7B9B, // 59 :: rgb(250,225,225)
+ 0x7AD2, // 60 :: rgb(250,179,149)
+ 0xED09, // 61 :: rgb(224,70,70)
+ 0xECA5, // 62 :: rgb(218,43,43)
+ 0xFAF4, // 63 :: rgb(250,190,165)
+ 0x6D4A, // 64 :: rgb(225,82,82)
+ 0xED08, // 65 :: rgb(223,69,69)
+ 0x6D08, // 66 :: rgb(222,63,63)
+ 0x76D6, // 67 :: rgb(242,178,178)
+ 0xECC6, // 68 :: rgb(220,51,51)
+ 0xF1AD, // 69 :: rgb(229,109,109)
+ 0xFFDD, // 70 :: rgb(254,246,235)
+ 0x718C, // 71 :: rgb(228,97,97)
+ 0xFFBC, // 72 :: rgb(254,239,234)
+ 0xFF77, // 73 :: rgb(253,223,187)
+ 0x76D6, // 74 :: rgb(242,179,179)
+ 0x6863, // 75 :: rgb(216,26,26)
+ 0x7AB1, // 76 :: rgb(249,169,136)
+ 0xE843, // 77 :: rgb(215,21,21)
+ 0xFF9C, // 78 :: rgb(251,230,230)
+ 0xF9A6, // 79 :: rgb(245,108,51)
+ 0x7F97, // 80 :: rgb(253,225,189)
+ 0x7942, // 81 :: rgb(244,81,13)
+ 0x7FBA, // 82 :: rgb(254,236,215)
+ 0xFE21, // 83 :: rgb(251,143,11)
+ 0x7FBC, // 84 :: rgb(251,234,234)
+ 0xFB18, // 85 :: rgb(245,197,197)
+ 0x76D6, // 86 :: rgb(242,177,177)
+ 0x71AD, // 87 :: rgb(229,106,106)
+ 0xFAB2, // 88 :: rgb(249,176,144)
+ 0x7F9A, // 89 :: rgb(253,227,217)
+ 0x7FDD, // 90 :: rgb(254,242,237)
+ 0x7FDE, // 91 :: rgb(253,243,243)
+ 0x7AB1, // 92 :: rgb(249,171,139)
+ 0xFFBB, // 93 :: rgb(254,239,221)
+ 0xF694, // 94 :: rgb(240,167,167)
+ 0xFF7A, // 95 :: rgb(253,224,213)
+ 0x7F0E, // 96 :: rgb(253,193,117)
+ 0xFA6F, // 97 :: rgb(249,159,121)
+ 0x7FFE, // 98 :: rgb(255,251,247)
+ 0xFEAA, // 99 :: rgb(251,175,80)
+ 0x7694, // 100 :: rgb(239,161,161)
+ 0x7AF3, // 101 :: rgb(250,186,160)
+ 0xE801, // 102 :: rgb(213,5,5)
+ 0xFA6F, // 103 :: rgb(249,159,122)
+ 0x7FDB, // 104 :: rgb(254,241,224)
+ 0xF920, // 105 :: rgb(244,75,4)
+ 0x7A8F, // 106 :: rgb(249,160,123)
+ 0x7694, // 107 :: rgb(239,163,163)
+ 0xE822, // 108 :: rgb(214,14,14)
+ 0x6D29, // 109 :: rgb(223,71,71)
+ 0xFF55, // 110 :: rgb(253,215,169)
+ 0x7A8F, // 111 :: rgb(249,161,124)
+ 0xFF32, // 112 :: rgb(253,207,151)
+ 0x7FBB, // 113 :: rgb(253,233,224)
+ 0xF694, // 114 :: rgb(239,165,165)
+ 0xFFBC, // 115 :: rgb(254,238,231)
+ 0xFB39, // 116 :: rgb(247,208,208)
+ 0x7B38, // 117 :: rgb(246,201,201)
+ 0x6842, // 118 :: rgb(214,16,16)
+ 0x7FFF, // 119 :: rgb(254,251,251)
+ 0xFB7B, // 120 :: rgb(250,223,223)
+ 0xF16C, // 121 :: rgb(227,95,95)
+ 0x7672, // 122 :: rgb(237,152,152)
+ 0x7631, // 123 :: rgb(235,138,138)
+ 0xFE87, // 124 :: rgb(251,165,60)
+ 0xFFDD, // 125 :: rgb(254,245,240)
+ 0xFF33, // 126 :: rgb(252,208,154)
+ 0x7F79, // 127 :: rgb(252,220,207)
+ 0x7E41, // 128 :: rgb(251,144,12)
+ 0x7E42, // 129 :: rgb(251,146,19)
+ 0x7F36, // 130 :: rgb(251,202,182)
+ 0x7FDC, // 131 :: rgb(254,243,230)
+ 0x7963, // 132 :: rgb(244,89,24)
+ 0x7F0E, // 133 :: rgb(252,193,119)
+ 0xFE87, // 134 :: rgb(251,164,57)
+ 0x7A2B, // 135 :: rgb(247,138,92)
+ 0xFA6E, // 136 :: rgb(249,157,119)
+ 0xFF9B, // 137 :: rgb(253,229,219)
+ 0x7920, // 138 :: rgb(244,74,3)
+ 0xFFDE, // 139 :: rgb(254,246,243)
+ 0xF964, // 140 :: rgb(245,95,32)
+ 0xF921, // 141 :: rgb(244,76,6)
+ 0xFAD3, // 142 :: rgb(250,183,155)
+ 0xFAD3, // 143 :: rgb(250,182,154)
+ 0xF985, // 144 :: rgb(245,103,44)
+ 0x7FFE, // 145 :: rgb(255,252,250)
+ 0x7FFE, // 146 :: rgb(255,251,250)
+ 0x6800, // 147 :: rgb(212,1,1)
+ 0x7B18, // 148 :: rgb(245,195,195)
+ 0x7AD2, // 149 :: rgb(250,178,148)
+ 0x7ECB, // 150 :: rgb(251,179,87)
+ 0x7EA8, // 151 :: rgb(251,169,69)
+ 0xFEAA, // 152 :: rgb(251,176,82)
+ 0x7652, // 153 :: rgb(236,146,146)
+ 0xF942, // 154 :: rgb(244,83,16)
+ 0xF9E9, // 155 :: rgb(246,126,76)
+ 0xFFDD, // 156 :: rgb(254,246,242)
+ 0x71EF, // 157 :: rgb(231,120,120)
+ 0xFB39, // 158 :: rgb(247,206,206)
+ 0xFF37, // 159 :: rgb(252,208,190)
+ 0x6D08, // 160 :: rgb(222,65,65)
+ 0x7FDE, // 161 :: rgb(253,244,244)
+ 0x7A4D, // 162 :: rgb(248,147,106)
+ 0xFB5A, // 163 :: rgb(248,216,216)
+ 0x7F79, // 164 :: rgb(253,220,206)
+ 0xFAD3, // 165 :: rgb(250,181,153)
+ 0x7F15, // 166 :: rgb(251,196,173)
+ 0x7F31, // 167 :: rgb(252,201,137)
+ 0xF9C8, // 168 :: rgb(246,116,62)
+ 0xFAB2, // 169 :: rgb(250,176,145)
+ 0xFF10, // 170 :: rgb(252,198,131)
+ 0x7A6E, // 171 :: rgb(248,155,117)
+ 0xFF9B, // 172 :: rgb(253,232,224)
+ 0xFFBB, // 173 :: rgb(254,240,221)
+ 0x7920, // 174 :: rgb(244,74,2)
+ 0x7FDC, // 175 :: rgb(254,243,229)
+ 0xFE21, // 176 :: rgb(251,141,6)
+ 0x7F53, // 177 :: rgb(253,210,155)
+ 0xF9E9, // 178 :: rgb(247,127,77)
+ 0xFF58, // 179 :: rgb(252,213,197)
+ 0xFE87, // 180 :: rgb(251,164,58)
+ 0xFF54, // 181 :: rgb(253,213,164)
+ 0xFEA9, // 182 :: rgb(251,174,78)
+ 0xFE21, // 183 :: rgb(251,143,10)
+ 0x79E8, // 184 :: rgb(246,120,67)
+ 0x7E87, // 185 :: rgb(251,163,54)
+ 0xFFDD, // 186 :: rgb(254,248,240)
+ 0x7F57, // 187 :: rgb(252,210,193)
+ 0x6800, // 188 :: rgb(212,0,0)
+}; \ No newline at end of file
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.h
new file mode 100644
index 0000000..eba6d22
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.h
@@ -0,0 +1,17 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __logo_gfx__
+#define __logo_gfx__
+#include <stdint.h>
+
+#define logo_gfx_transparent_color_index 0
+
+#define ubuntu_width 32
+#define ubuntu_height 32
+#define ubuntu_size 1026
+extern uint8_t ubuntu_data[1026];
+#define ubuntu ((gfx_sprite_t*)ubuntu_data)
+#define sizeof_logo_gfx_pal 378
+extern uint16_t logo_gfx_pal[189];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/ubuntu.c b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/ubuntu.c
new file mode 100644
index 0000000..ac4f3b9
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/ubuntu.c
@@ -0,0 +1,40 @@
+// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+// 8 bpp image
+uint8_t ubuntu_data[1026] = {
+ 32,32, // width,height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x43,0x25,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x11,0xBC,0xBC,0x05,0x1E,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x59,0x3F,0x4C,0x0C,0x8E,0x12,0xA3,0xBC,0xBC,0xBC,0xBC,0x26,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x0E,0x08,0x08,0x08,0x08,0x08,0xA6,0x9E,0xBC,0xBC,0xBC,0xBC,0x41,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x89,0x13,0x08,0x08,0x08,0x08,0x08,0xA2,0x09,0xA0,0xBC,0xBC,0x93,0x56,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x81,0x0D,0x00,0x88,0x08,0x08,0x08,0x08,0x08,0x13,0xA4,0xA1,0x99,0x9D,0x94,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x01,0x07,0x0B,0x00,0x7D,0x84,0x69,0x8C,0x90,0x18,0x08,0x9A,0xA5,0x9C,0x92,0x0F,0x5C,0x09,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5D,0x53,0x07,0x07,0x06,0x15,0x00,0x5F,0x5A,0x00,0x00,0x91,0x9F,0x9B,0x08,0x08,0x8D,0x08,0x08,0x3C,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x07,0x07,0x07,0x07,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x8F,0x8A,0x08,0x08,0x08,0x51,0x48,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAD,0x01,0x07,0x07,0x07,0x7C,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x08,0x08,0x08,0x08,0x0C,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB5,0x07,0x07,0x07,0x06,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x4F,0x08,0x08,0x08,0x0E,0x09,0x00,0x00,
+ 0x00,0x00,0x00,0x8B,0xA9,0xAB,0xBB,0x00,0x14,0x07,0x07,0x97,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0x08,0x08,0x08,0x08,0x12,0x00,0x00,
+ 0x00,0x00,0x0A,0xA8,0x08,0x08,0xAE,0x17,0xBA,0xB7,0x07,0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x6F,0x6A,0x67,0x61,0x71,0x00,0x00,
+ 0x00,0x00,0x7F,0x08,0x08,0x08,0x08,0xB8,0x00,0xB4,0x07,0xB1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x0F,0x08,0x08,0x08,0x08,0xB2,0x00,0xB9,0x07,0xA7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5B,0x64,0x6B,0x72,0x5E,0x54,0x00,0x00,
+ 0x00,0x00,0x09,0x87,0x08,0x08,0x18,0xB3,0xAF,0xB0,0x07,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4A,0xBC,0xBC,0xBC,0xBC,0x4E,0x00,0x00,
+ 0x00,0x00,0x00,0x0A,0x17,0x95,0xAC,0x16,0xB6,0x07,0x07,0x80,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xBC,0xBC,0xBC,0x4B,0x03,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x07,0x07,0x07,0x07,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3A,0x04,0xBC,0xBC,0xBC,0x45,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x86,0x07,0x07,0x07,0x07,0x2B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x4D,0xBC,0xBC,0xBC,0x27,0x22,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x07,0x07,0x07,0x07,0x33,0x00,0x34,0x09,0x00,0x00,0x00,0x10,0x7B,0x05,0xBC,0xBC,0xBC,0xBC,0x20,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x07,0x07,0x2C,0x09,0x39,0x2D,0x44,0x47,0x57,0x6D,0x6C,0xBC,0xBC,0x04,0x05,0xBC,0x3E,0x1F,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x0B,0x02,0x2E,0x00,0x32,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0x76,0x7A,0x10,0x77,0x78,0x3B,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x36,0x2F,0xBC,0xBC,0xBC,0xBC,0xBC,0x66,0x75,0x62,0x70,0x60,0x50,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2A,0x04,0xBC,0xBC,0xBC,0xBC,0xBC,0x79,0x09,0x63,0x07,0x07,0x01,0x29,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x24,0x28,0x3D,0x42,0x11,0x55,0x68,0x07,0x07,0x07,0x07,0x21,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0x06,0x07,0x07,0x07,0x19,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x07,0x07,0x02,0x1C,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x1B,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/ubuntu.png b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/ubuntu.png
new file mode 100644
index 0000000..d041515
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/ubuntu.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/main.c b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/main.c
new file mode 100644
index 0000000..0939a9d
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/main.c
@@ -0,0 +1,89 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+#include <keypadc.h>
+
+/* Include the sprite data */
+#include "gfx/logo_gfx.h"
+
+/* Function for drawing the main sprite */
+void draw_sprite(int x, int y) {
+ /* Fill the screen with color index 0
+ /* Note that this is a super inefficient way to
+ /* redraw, but it demonstrates a simple way of clearing past data */
+ gfx_FillScreen(0);
+
+ /* Draw a bunch of different styled sprites on the screen */
+ gfx_Sprite(ubuntu, x, y);
+
+ /* Copy the buffer to the screen */
+ gfx_BlitBuffer(); // This is the same as gfx_Blit(gfx_buffer)
+}
+
+void main(void) {
+ bool right;
+ bool left;
+ bool up;
+ bool down;
+ kb_key_t arrows;
+
+ /* Coordinates used for the sprite */
+ int x, y;
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette for our sprites */
+ gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0);
+
+ /* Start at 0, 0 */
+ x = 0;
+ y = 0;
+
+ gfx_SetDrawBuffer();
+
+ draw_sprite(x, y);
+
+ do {
+ /* Scan the keypad to update kb_Data */
+ kb_Scan();
+
+ /* Get the arrow key statuses */
+ arrows = kb_Data[7];
+
+ /* Convert the data to booleans so we can read them easier */
+ right = arrows & kb_Right;
+ left = arrows & kb_Left;
+ down = arrows & kb_Down;
+ up = arrows & kb_Up;
+
+ /* If any arrows are pressed, do this */
+ if (arrows) {
+ /* Do different directions depending on the keypress */
+ if (right) {
+ x++;
+ }
+ if (left) {
+ x--;
+ }
+ if (down) {
+ y++;
+ }
+ if (up) {
+ y--;
+ }
+ draw_sprite(x, y);
+ }
+ } while (kb_Data[6] != kb_Clear);
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/autotester.json b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/autotester.json
new file mode 100644
index 0000000..3a75731
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/autotester.json
@@ -0,0 +1,33 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|300",
+ "hash|1",
+ "key|enter",
+ "delay|300",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Make sure the rotated sprites are displayed properly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "14098FC" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/makefile b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/readme.md b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/readme.md
new file mode 100644
index 0000000..79a6b5d
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/readme.md
@@ -0,0 +1,10 @@
+### GraphX Sprite Rotation Demo
+
+Demonstrates rotating and flipping sprites.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/screenshot.png b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/screenshot.png
new file mode 100644
index 0000000..fdcbe14
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/convpng.ini
new file mode 100644
index 0000000..10642ba
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/convpng.ini
@@ -0,0 +1,4 @@
+#GroupC : logo_gfx
+#PNGImages :
+ ubuntu
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.c
new file mode 100644
index 0000000..4e62af6
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.c
@@ -0,0 +1,196 @@
+// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+uint16_t logo_gfx_pal[190] = {
+ 0xFFFF, // 00 :: rgb(255,255,255)
+ 0xE821, // 01 :: rgb(213,11,11)
+ 0x7E20, // 02 :: rgb(251,139,2)
+ 0x7E20, // 03 :: rgb(251,139,1)
+ 0xFFFF, // 04 :: rgb(255,254,254)
+ 0xFFFF, // 05 :: rgb(255,255,254)
+ 0x6800, // 06 :: rgb(212,2,2)
+ 0x6800, // 07 :: rgb(212,0,0)
+ 0x7E20, // 08 :: rgb(251,139,0)
+ 0x7920, // 09 :: rgb(244,72,0)
+ 0xFE20, // 10 :: rgb(251,140,4)
+ 0xFFFF, // 11 :: rgb(255,253,253)
+ 0xFFFF, // 12 :: rgb(255,254,253)
+ 0xFECC, // 13 :: rgb(252,182,97)
+ 0x7A90, // 14 :: rgb(249,163,128)
+ 0x7FDC, // 15 :: rgb(254,244,231)
+ 0xF985, // 16 :: rgb(245,100,40)
+ 0x7F9A, // 17 :: rgb(253,225,213)
+ 0x7FDD, // 18 :: rgb(253,242,242)
+ 0x6D6B, // 19 :: rgb(226,90,90)
+ 0xFFBC, // 20 :: rgb(254,239,233)
+ 0xF921, // 21 :: rgb(244,77,7)
+ 0x7EED, // 22 :: rgb(252,187,107)
+ 0xFF99, // 23 :: rgb(254,231,203)
+ 0xFFFE, // 24 :: rgb(255,253,250)
+ 0xFF16, // 25 :: rgb(251,199,177)
+ 0xF921, // 26 :: rgb(244,78,8)
+ 0xFE87, // 27 :: rgb(251,167,61)
+ 0xFFBA, // 28 :: rgb(254,237,216)
+ 0x7F31, // 29 :: rgb(253,204,143)
+ 0xFF76, // 30 :: rgb(253,222,183)
+ 0x7B7B, // 31 :: rgb(249,220,220)
+ 0xFAF7, // 32 :: rgb(244,192,192)
+ 0x7FDD, // 33 :: rgb(252,241,241)
+ 0xF18C, // 34 :: rgb(229,102,102)
+ 0xFE87, // 35 :: rgb(251,164,56)
+ 0x7B5A, // 36 :: rgb(247,212,212)
+ 0xFF76, // 37 :: rgb(253,221,181)
+ 0xF652, // 38 :: rgb(237,151,151)
+ 0x7652, // 39 :: rgb(236,145,145)
+ 0x6D29, // 40 :: rgb(224,74,74)
+ 0xE800, // 41 :: rgb(212,3,3)
+ 0x718C, // 42 :: rgb(228,98,98)
+ 0xFF54, // 43 :: rgb(253,214,165)
+ 0xFB7B, // 44 :: rgb(250,224,224)
+ 0x7673, // 45 :: rgb(237,153,153)
+ 0xFF32, // 46 :: rgb(252,205,148)
+ 0x7EA8, // 47 :: rgb(251,169,68)
+ 0x6CC6, // 48 :: rgb(219,48,48)
+ 0x7FBA, // 49 :: rgb(254,234,211)
+ 0xE842, // 50 :: rgb(215,20,20)
+ 0xFF77, // 51 :: rgb(253,224,187)
+ 0xF652, // 52 :: rgb(237,149,149)
+ 0x7F75, // 53 :: rgb(253,218,175)
+ 0x7FFE, // 54 :: rgb(254,249,249)
+ 0x7EEC, // 55 :: rgb(252,185,102)
+ 0x7FBD, // 56 :: rgb(252,236,236)
+ 0xFFFF, // 57 :: rgb(255,253,251)
+ 0x7EED, // 58 :: rgb(252,188,109)
+ 0x7FFF, // 59 :: rgb(254,252,252)
+ 0xFAF7, // 60 :: rgb(243,189,189)
+ 0x7B9B, // 61 :: rgb(250,225,225)
+ 0x7AD2, // 62 :: rgb(250,179,149)
+ 0xED09, // 63 :: rgb(224,70,70)
+ 0xECA5, // 64 :: rgb(218,43,43)
+ 0xFAF4, // 65 :: rgb(250,190,165)
+ 0x6D4A, // 66 :: rgb(225,82,82)
+ 0xED08, // 67 :: rgb(223,69,69)
+ 0x6D08, // 68 :: rgb(222,63,63)
+ 0x76D6, // 69 :: rgb(242,178,178)
+ 0xECC6, // 70 :: rgb(220,51,51)
+ 0xF1AD, // 71 :: rgb(229,109,109)
+ 0xFFDD, // 72 :: rgb(254,246,235)
+ 0x718C, // 73 :: rgb(228,97,97)
+ 0xFFBC, // 74 :: rgb(254,239,234)
+ 0xFF77, // 75 :: rgb(253,223,187)
+ 0x76D6, // 76 :: rgb(242,179,179)
+ 0x6863, // 77 :: rgb(216,26,26)
+ 0x7AB1, // 78 :: rgb(249,169,136)
+ 0xE843, // 79 :: rgb(215,21,21)
+ 0xFF9C, // 80 :: rgb(251,230,230)
+ 0xF9A6, // 81 :: rgb(245,108,51)
+ 0x7F97, // 82 :: rgb(253,225,189)
+ 0x7942, // 83 :: rgb(244,81,13)
+ 0x7FBA, // 84 :: rgb(254,236,215)
+ 0xFE21, // 85 :: rgb(251,143,11)
+ 0x7FBC, // 86 :: rgb(251,234,234)
+ 0xFB18, // 87 :: rgb(245,197,197)
+ 0x76D6, // 88 :: rgb(242,177,177)
+ 0x71AD, // 89 :: rgb(229,106,106)
+ 0xFAB2, // 90 :: rgb(249,176,144)
+ 0x7F9A, // 91 :: rgb(253,227,217)
+ 0x7FDD, // 92 :: rgb(254,242,237)
+ 0x7FDE, // 93 :: rgb(253,243,243)
+ 0x7AB1, // 94 :: rgb(249,171,139)
+ 0xFFBB, // 95 :: rgb(254,239,221)
+ 0xF694, // 96 :: rgb(240,167,167)
+ 0x7AF3, // 97 :: rgb(250,186,160)
+ 0xFF7A, // 98 :: rgb(253,224,213)
+ 0x7F0E, // 99 :: rgb(253,193,117)
+ 0xFA6F, // 100 :: rgb(249,159,121)
+ 0x7FFE, // 101 :: rgb(255,251,247)
+ 0xFEAA, // 102 :: rgb(251,175,80)
+ 0x7694, // 103 :: rgb(239,161,161)
+ 0xE801, // 104 :: rgb(213,5,5)
+ 0xFA6F, // 105 :: rgb(249,159,122)
+ 0x7FDB, // 106 :: rgb(254,241,224)
+ 0xF920, // 107 :: rgb(244,75,4)
+ 0x7A8F, // 108 :: rgb(249,160,123)
+ 0x7694, // 109 :: rgb(239,163,163)
+ 0xE822, // 110 :: rgb(214,14,14)
+ 0x6D29, // 111 :: rgb(223,71,71)
+ 0xFF55, // 112 :: rgb(253,215,169)
+ 0x7A8F, // 113 :: rgb(249,161,124)
+ 0xFF32, // 114 :: rgb(253,207,151)
+ 0x7FBB, // 115 :: rgb(253,233,224)
+ 0xF694, // 116 :: rgb(239,165,165)
+ 0xFFBC, // 117 :: rgb(254,238,231)
+ 0xFB39, // 118 :: rgb(247,208,208)
+ 0x7B38, // 119 :: rgb(246,201,201)
+ 0x6842, // 120 :: rgb(214,16,16)
+ 0x7FFF, // 121 :: rgb(254,251,251)
+ 0xFB7B, // 122 :: rgb(250,223,223)
+ 0xF16C, // 123 :: rgb(227,95,95)
+ 0x7672, // 124 :: rgb(237,152,152)
+ 0x7631, // 125 :: rgb(235,138,138)
+ 0xFE87, // 126 :: rgb(251,165,60)
+ 0xFFDD, // 127 :: rgb(254,245,240)
+ 0xFF33, // 128 :: rgb(252,208,154)
+ 0x7F79, // 129 :: rgb(252,220,207)
+ 0x7E41, // 130 :: rgb(251,144,12)
+ 0x7E42, // 131 :: rgb(251,146,19)
+ 0x7F36, // 132 :: rgb(251,202,182)
+ 0x7FDC, // 133 :: rgb(254,243,230)
+ 0x7963, // 134 :: rgb(244,89,24)
+ 0x7F0E, // 135 :: rgb(252,193,119)
+ 0xFE87, // 136 :: rgb(251,164,57)
+ 0x7A2B, // 137 :: rgb(247,138,92)
+ 0xFA6E, // 138 :: rgb(249,157,119)
+ 0xFF9B, // 139 :: rgb(253,229,219)
+ 0x7920, // 140 :: rgb(244,74,3)
+ 0xFFDE, // 141 :: rgb(254,246,243)
+ 0xF964, // 142 :: rgb(245,95,32)
+ 0xF921, // 143 :: rgb(244,76,6)
+ 0xFAD3, // 144 :: rgb(250,183,155)
+ 0xFAD3, // 145 :: rgb(250,182,154)
+ 0xF985, // 146 :: rgb(245,103,44)
+ 0x7FFE, // 147 :: rgb(255,252,250)
+ 0x7FFE, // 148 :: rgb(255,251,250)
+ 0x6800, // 149 :: rgb(212,1,1)
+ 0x7B18, // 150 :: rgb(245,195,195)
+ 0x7AD2, // 151 :: rgb(250,178,148)
+ 0x7ECB, // 152 :: rgb(251,179,87)
+ 0x7EA8, // 153 :: rgb(251,169,69)
+ 0xFEAA, // 154 :: rgb(251,176,82)
+ 0x7652, // 155 :: rgb(236,146,146)
+ 0xF942, // 156 :: rgb(244,83,16)
+ 0xF9E9, // 157 :: rgb(246,126,76)
+ 0xFFDD, // 158 :: rgb(254,246,242)
+ 0x71EF, // 159 :: rgb(231,120,120)
+ 0xFB39, // 160 :: rgb(247,206,206)
+ 0xFF37, // 161 :: rgb(252,208,190)
+ 0x6D08, // 162 :: rgb(222,65,65)
+ 0x7FDE, // 163 :: rgb(253,244,244)
+ 0x7A4D, // 164 :: rgb(248,147,106)
+ 0xFB5A, // 165 :: rgb(248,216,216)
+ 0x7F79, // 166 :: rgb(253,220,206)
+ 0xFAD3, // 167 :: rgb(250,181,153)
+ 0x7F15, // 168 :: rgb(251,196,173)
+ 0x7F31, // 169 :: rgb(252,201,137)
+ 0xF9C8, // 170 :: rgb(246,116,62)
+ 0xFAB2, // 171 :: rgb(250,176,145)
+ 0xFF10, // 172 :: rgb(252,198,131)
+ 0x7A6E, // 173 :: rgb(248,155,117)
+ 0xFF9B, // 174 :: rgb(253,232,224)
+ 0xFFBB, // 175 :: rgb(254,240,221)
+ 0x7920, // 176 :: rgb(244,74,2)
+ 0x7FDC, // 177 :: rgb(254,243,229)
+ 0xFE21, // 178 :: rgb(251,141,6)
+ 0x7F53, // 179 :: rgb(253,210,155)
+ 0xF9E9, // 180 :: rgb(247,127,77)
+ 0xFF58, // 181 :: rgb(252,213,197)
+ 0xFE87, // 182 :: rgb(251,164,58)
+ 0xFF54, // 183 :: rgb(253,213,164)
+ 0xFEA9, // 184 :: rgb(251,174,78)
+ 0xFE21, // 185 :: rgb(251,143,10)
+ 0x79E8, // 186 :: rgb(246,120,67)
+ 0x7E87, // 187 :: rgb(251,163,54)
+ 0xFFDD, // 188 :: rgb(254,248,240)
+ 0x7F57, // 189 :: rgb(252,210,193)
+}; \ No newline at end of file
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.h
new file mode 100644
index 0000000..28d30ce
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.h
@@ -0,0 +1,15 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __logo_gfx__
+#define __logo_gfx__
+#include <stdint.h>
+
+#define ubuntu_width 32
+#define ubuntu_height 32
+#define ubuntu_size 1026
+extern uint8_t ubuntu_data[1026];
+#define ubuntu ((gfx_sprite_t*)ubuntu_data)
+#define sizeof_logo_gfx_pal 380
+extern uint16_t logo_gfx_pal[190];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/ubuntu.c b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/ubuntu.c
new file mode 100644
index 0000000..f2060ae
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/ubuntu.c
@@ -0,0 +1,40 @@
+// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+// 8 bpp image
+uint8_t ubuntu_data[1026] = {
+ 32,32, // width,height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0B,0x45,0x27,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x13,0x07,0x07,0x01,0x20,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x5B,0x41,0x4E,0x0E,0x90,0x14,0xA5,0x07,0x07,0x07,0x07,0x28,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0x09,0x09,0x09,0x09,0x09,0xA8,0xA0,0x07,0x07,0x07,0x07,0x43,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x00,0x8B,0x15,0x09,0x09,0x09,0x09,0x09,0xA4,0x04,0xA2,0x07,0x07,0x95,0x58,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x83,0x0F,0x00,0x8A,0x09,0x09,0x09,0x09,0x09,0x15,0xA6,0xA3,0x9B,0x9F,0x96,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x03,0x08,0x0D,0x00,0x7F,0x86,0x6B,0x8E,0x92,0x1A,0x09,0x9C,0xA7,0x9E,0x94,0x11,0x5E,0x04,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5F,0x55,0x08,0x08,0x02,0x17,0x00,0x62,0x5C,0x05,0x00,0x93,0xA1,0x9D,0x09,0x09,0x8F,0x09,0x09,0x3E,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x9A,0x08,0x08,0x08,0x08,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x91,0x8C,0x09,0x09,0x09,0x53,0x4A,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAF,0x03,0x08,0x08,0x08,0x7E,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0x09,0x09,0x09,0x09,0x0E,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB7,0x08,0x08,0x08,0x02,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x51,0x09,0x09,0x09,0x10,0x04,0x00,0x00,
+ 0x00,0x00,0x00,0x8D,0xAB,0xAD,0xBD,0x05,0x16,0x08,0x08,0x99,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x09,0x09,0x09,0x09,0x14,0x00,0x00,
+ 0x00,0x00,0x0C,0xAA,0x09,0x09,0xB0,0x19,0xBC,0xB9,0x08,0xAC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x75,0x71,0x6C,0x69,0x64,0x73,0x00,0x00,
+ 0x00,0x00,0x81,0x09,0x09,0x09,0x09,0xBA,0x00,0xB6,0x08,0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x11,0x09,0x09,0x09,0x09,0xB4,0x00,0xBB,0x08,0xA9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5D,0x67,0x6D,0x74,0x60,0x56,0x00,0x00,
+ 0x00,0x00,0x04,0x89,0x09,0x09,0x1A,0xB5,0xB1,0xB2,0x08,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x07,0x07,0x07,0x07,0x50,0x00,0x00,
+ 0x00,0x00,0x00,0x0C,0x19,0x97,0xAE,0x18,0xB8,0x08,0x08,0x82,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x07,0x07,0x07,0x4D,0x0B,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x08,0x08,0x08,0x08,0x37,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x06,0x07,0x07,0x07,0x47,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x88,0x08,0x08,0x08,0x08,0x2E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x4F,0x07,0x07,0x07,0x29,0x24,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4B,0x08,0x08,0x08,0x08,0x35,0x00,0x36,0x04,0x00,0x00,0x00,0x12,0x7D,0x01,0x07,0x07,0x07,0x07,0x22,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x3A,0x08,0x08,0x2F,0x04,0x3B,0x30,0x46,0x49,0x59,0x6F,0x6E,0x07,0x07,0x06,0x01,0x07,0x40,0x21,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x0D,0x0A,0x31,0x00,0x34,0x07,0x07,0x07,0x07,0x07,0x07,0x78,0x7C,0x12,0x79,0x7A,0x3D,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x33,0x00,0x38,0x32,0x07,0x07,0x07,0x07,0x07,0x68,0x77,0x65,0x72,0x63,0x52,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2D,0x06,0x07,0x07,0x07,0x07,0x07,0x7B,0x04,0x66,0x08,0x08,0x03,0x2B,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0x26,0x2A,0x3F,0x44,0x13,0x57,0x6A,0x08,0x08,0x08,0x08,0x23,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x02,0x08,0x08,0x08,0x1B,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x08,0x08,0x0A,0x1E,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x25,0x1D,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/ubuntu.png b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/ubuntu.png
new file mode 100644
index 0000000..d041515
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/ubuntu.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/main.c b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/main.c
new file mode 100644
index 0000000..9e4611b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/main.c
@@ -0,0 +1,37 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+#include "gfx/logo_gfx.h"
+
+void main(void) {
+ /* Create a buffer the same size as the ubuntu sprite */
+ gfx_UninitedSprite(sprite_buffer, ubuntu_width, ubuntu_height);
+
+ gfx_Begin();
+
+ /* Setup the palette used by the sprites*/
+ gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0);
+
+ gfx_Sprite(ubuntu, 42, 42);
+ gfx_Sprite(gfx_FlipSpriteY(ubuntu, sprite_buffer), 74, 74);
+ gfx_Sprite(gfx_RotateSpriteC(ubuntu, sprite_buffer), 106, 106);
+
+ /* Draw these ones without any clipping. Clipping refers to wether or not when it hits the edge of the window if */
+ /* the sprite will be draw partially onscreen. These routines are usually faster, because edge detection doesn't occur */
+ gfx_Sprite_NoClip(gfx_RotateSpriteCC(ubuntu, sprite_buffer), 138, 138);
+ gfx_Sprite_NoClip(gfx_RotateSpriteHalf(ubuntu, sprite_buffer), 170, 170);
+
+ /* Wait for a key to be pressed */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/autotester.json b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/autotester.json
new file mode 100644
index 0000000..c8d5d5c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/autotester.json
@@ -0,0 +1,33 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|8000",
+ "hash|1",
+ "key|enter",
+ "delay|300",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Make sure the rotated and scaled sprites are displayed properly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "27D90BD4" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/makefile b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/readme.md b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/readme.md
new file mode 100644
index 0000000..036af22
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/readme.md
@@ -0,0 +1,9 @@
+### GraphX Sprite Rotation and Scaling Demo
+
+Demonstrates rotating sprites and scaling sprites when rotating.
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/screenshot.gif b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/screenshot.gif
new file mode 100644
index 0000000..e1fca96
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/convpng.ini
new file mode 100644
index 0000000..10642ba
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/convpng.ini
@@ -0,0 +1,4 @@
+#GroupC : logo_gfx
+#PNGImages :
+ ubuntu
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.c
new file mode 100644
index 0000000..4e62af6
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.c
@@ -0,0 +1,196 @@
+// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+uint16_t logo_gfx_pal[190] = {
+ 0xFFFF, // 00 :: rgb(255,255,255)
+ 0xE821, // 01 :: rgb(213,11,11)
+ 0x7E20, // 02 :: rgb(251,139,2)
+ 0x7E20, // 03 :: rgb(251,139,1)
+ 0xFFFF, // 04 :: rgb(255,254,254)
+ 0xFFFF, // 05 :: rgb(255,255,254)
+ 0x6800, // 06 :: rgb(212,2,2)
+ 0x6800, // 07 :: rgb(212,0,0)
+ 0x7E20, // 08 :: rgb(251,139,0)
+ 0x7920, // 09 :: rgb(244,72,0)
+ 0xFE20, // 10 :: rgb(251,140,4)
+ 0xFFFF, // 11 :: rgb(255,253,253)
+ 0xFFFF, // 12 :: rgb(255,254,253)
+ 0xFECC, // 13 :: rgb(252,182,97)
+ 0x7A90, // 14 :: rgb(249,163,128)
+ 0x7FDC, // 15 :: rgb(254,244,231)
+ 0xF985, // 16 :: rgb(245,100,40)
+ 0x7F9A, // 17 :: rgb(253,225,213)
+ 0x7FDD, // 18 :: rgb(253,242,242)
+ 0x6D6B, // 19 :: rgb(226,90,90)
+ 0xFFBC, // 20 :: rgb(254,239,233)
+ 0xF921, // 21 :: rgb(244,77,7)
+ 0x7EED, // 22 :: rgb(252,187,107)
+ 0xFF99, // 23 :: rgb(254,231,203)
+ 0xFFFE, // 24 :: rgb(255,253,250)
+ 0xFF16, // 25 :: rgb(251,199,177)
+ 0xF921, // 26 :: rgb(244,78,8)
+ 0xFE87, // 27 :: rgb(251,167,61)
+ 0xFFBA, // 28 :: rgb(254,237,216)
+ 0x7F31, // 29 :: rgb(253,204,143)
+ 0xFF76, // 30 :: rgb(253,222,183)
+ 0x7B7B, // 31 :: rgb(249,220,220)
+ 0xFAF7, // 32 :: rgb(244,192,192)
+ 0x7FDD, // 33 :: rgb(252,241,241)
+ 0xF18C, // 34 :: rgb(229,102,102)
+ 0xFE87, // 35 :: rgb(251,164,56)
+ 0x7B5A, // 36 :: rgb(247,212,212)
+ 0xFF76, // 37 :: rgb(253,221,181)
+ 0xF652, // 38 :: rgb(237,151,151)
+ 0x7652, // 39 :: rgb(236,145,145)
+ 0x6D29, // 40 :: rgb(224,74,74)
+ 0xE800, // 41 :: rgb(212,3,3)
+ 0x718C, // 42 :: rgb(228,98,98)
+ 0xFF54, // 43 :: rgb(253,214,165)
+ 0xFB7B, // 44 :: rgb(250,224,224)
+ 0x7673, // 45 :: rgb(237,153,153)
+ 0xFF32, // 46 :: rgb(252,205,148)
+ 0x7EA8, // 47 :: rgb(251,169,68)
+ 0x6CC6, // 48 :: rgb(219,48,48)
+ 0x7FBA, // 49 :: rgb(254,234,211)
+ 0xE842, // 50 :: rgb(215,20,20)
+ 0xFF77, // 51 :: rgb(253,224,187)
+ 0xF652, // 52 :: rgb(237,149,149)
+ 0x7F75, // 53 :: rgb(253,218,175)
+ 0x7FFE, // 54 :: rgb(254,249,249)
+ 0x7EEC, // 55 :: rgb(252,185,102)
+ 0x7FBD, // 56 :: rgb(252,236,236)
+ 0xFFFF, // 57 :: rgb(255,253,251)
+ 0x7EED, // 58 :: rgb(252,188,109)
+ 0x7FFF, // 59 :: rgb(254,252,252)
+ 0xFAF7, // 60 :: rgb(243,189,189)
+ 0x7B9B, // 61 :: rgb(250,225,225)
+ 0x7AD2, // 62 :: rgb(250,179,149)
+ 0xED09, // 63 :: rgb(224,70,70)
+ 0xECA5, // 64 :: rgb(218,43,43)
+ 0xFAF4, // 65 :: rgb(250,190,165)
+ 0x6D4A, // 66 :: rgb(225,82,82)
+ 0xED08, // 67 :: rgb(223,69,69)
+ 0x6D08, // 68 :: rgb(222,63,63)
+ 0x76D6, // 69 :: rgb(242,178,178)
+ 0xECC6, // 70 :: rgb(220,51,51)
+ 0xF1AD, // 71 :: rgb(229,109,109)
+ 0xFFDD, // 72 :: rgb(254,246,235)
+ 0x718C, // 73 :: rgb(228,97,97)
+ 0xFFBC, // 74 :: rgb(254,239,234)
+ 0xFF77, // 75 :: rgb(253,223,187)
+ 0x76D6, // 76 :: rgb(242,179,179)
+ 0x6863, // 77 :: rgb(216,26,26)
+ 0x7AB1, // 78 :: rgb(249,169,136)
+ 0xE843, // 79 :: rgb(215,21,21)
+ 0xFF9C, // 80 :: rgb(251,230,230)
+ 0xF9A6, // 81 :: rgb(245,108,51)
+ 0x7F97, // 82 :: rgb(253,225,189)
+ 0x7942, // 83 :: rgb(244,81,13)
+ 0x7FBA, // 84 :: rgb(254,236,215)
+ 0xFE21, // 85 :: rgb(251,143,11)
+ 0x7FBC, // 86 :: rgb(251,234,234)
+ 0xFB18, // 87 :: rgb(245,197,197)
+ 0x76D6, // 88 :: rgb(242,177,177)
+ 0x71AD, // 89 :: rgb(229,106,106)
+ 0xFAB2, // 90 :: rgb(249,176,144)
+ 0x7F9A, // 91 :: rgb(253,227,217)
+ 0x7FDD, // 92 :: rgb(254,242,237)
+ 0x7FDE, // 93 :: rgb(253,243,243)
+ 0x7AB1, // 94 :: rgb(249,171,139)
+ 0xFFBB, // 95 :: rgb(254,239,221)
+ 0xF694, // 96 :: rgb(240,167,167)
+ 0x7AF3, // 97 :: rgb(250,186,160)
+ 0xFF7A, // 98 :: rgb(253,224,213)
+ 0x7F0E, // 99 :: rgb(253,193,117)
+ 0xFA6F, // 100 :: rgb(249,159,121)
+ 0x7FFE, // 101 :: rgb(255,251,247)
+ 0xFEAA, // 102 :: rgb(251,175,80)
+ 0x7694, // 103 :: rgb(239,161,161)
+ 0xE801, // 104 :: rgb(213,5,5)
+ 0xFA6F, // 105 :: rgb(249,159,122)
+ 0x7FDB, // 106 :: rgb(254,241,224)
+ 0xF920, // 107 :: rgb(244,75,4)
+ 0x7A8F, // 108 :: rgb(249,160,123)
+ 0x7694, // 109 :: rgb(239,163,163)
+ 0xE822, // 110 :: rgb(214,14,14)
+ 0x6D29, // 111 :: rgb(223,71,71)
+ 0xFF55, // 112 :: rgb(253,215,169)
+ 0x7A8F, // 113 :: rgb(249,161,124)
+ 0xFF32, // 114 :: rgb(253,207,151)
+ 0x7FBB, // 115 :: rgb(253,233,224)
+ 0xF694, // 116 :: rgb(239,165,165)
+ 0xFFBC, // 117 :: rgb(254,238,231)
+ 0xFB39, // 118 :: rgb(247,208,208)
+ 0x7B38, // 119 :: rgb(246,201,201)
+ 0x6842, // 120 :: rgb(214,16,16)
+ 0x7FFF, // 121 :: rgb(254,251,251)
+ 0xFB7B, // 122 :: rgb(250,223,223)
+ 0xF16C, // 123 :: rgb(227,95,95)
+ 0x7672, // 124 :: rgb(237,152,152)
+ 0x7631, // 125 :: rgb(235,138,138)
+ 0xFE87, // 126 :: rgb(251,165,60)
+ 0xFFDD, // 127 :: rgb(254,245,240)
+ 0xFF33, // 128 :: rgb(252,208,154)
+ 0x7F79, // 129 :: rgb(252,220,207)
+ 0x7E41, // 130 :: rgb(251,144,12)
+ 0x7E42, // 131 :: rgb(251,146,19)
+ 0x7F36, // 132 :: rgb(251,202,182)
+ 0x7FDC, // 133 :: rgb(254,243,230)
+ 0x7963, // 134 :: rgb(244,89,24)
+ 0x7F0E, // 135 :: rgb(252,193,119)
+ 0xFE87, // 136 :: rgb(251,164,57)
+ 0x7A2B, // 137 :: rgb(247,138,92)
+ 0xFA6E, // 138 :: rgb(249,157,119)
+ 0xFF9B, // 139 :: rgb(253,229,219)
+ 0x7920, // 140 :: rgb(244,74,3)
+ 0xFFDE, // 141 :: rgb(254,246,243)
+ 0xF964, // 142 :: rgb(245,95,32)
+ 0xF921, // 143 :: rgb(244,76,6)
+ 0xFAD3, // 144 :: rgb(250,183,155)
+ 0xFAD3, // 145 :: rgb(250,182,154)
+ 0xF985, // 146 :: rgb(245,103,44)
+ 0x7FFE, // 147 :: rgb(255,252,250)
+ 0x7FFE, // 148 :: rgb(255,251,250)
+ 0x6800, // 149 :: rgb(212,1,1)
+ 0x7B18, // 150 :: rgb(245,195,195)
+ 0x7AD2, // 151 :: rgb(250,178,148)
+ 0x7ECB, // 152 :: rgb(251,179,87)
+ 0x7EA8, // 153 :: rgb(251,169,69)
+ 0xFEAA, // 154 :: rgb(251,176,82)
+ 0x7652, // 155 :: rgb(236,146,146)
+ 0xF942, // 156 :: rgb(244,83,16)
+ 0xF9E9, // 157 :: rgb(246,126,76)
+ 0xFFDD, // 158 :: rgb(254,246,242)
+ 0x71EF, // 159 :: rgb(231,120,120)
+ 0xFB39, // 160 :: rgb(247,206,206)
+ 0xFF37, // 161 :: rgb(252,208,190)
+ 0x6D08, // 162 :: rgb(222,65,65)
+ 0x7FDE, // 163 :: rgb(253,244,244)
+ 0x7A4D, // 164 :: rgb(248,147,106)
+ 0xFB5A, // 165 :: rgb(248,216,216)
+ 0x7F79, // 166 :: rgb(253,220,206)
+ 0xFAD3, // 167 :: rgb(250,181,153)
+ 0x7F15, // 168 :: rgb(251,196,173)
+ 0x7F31, // 169 :: rgb(252,201,137)
+ 0xF9C8, // 170 :: rgb(246,116,62)
+ 0xFAB2, // 171 :: rgb(250,176,145)
+ 0xFF10, // 172 :: rgb(252,198,131)
+ 0x7A6E, // 173 :: rgb(248,155,117)
+ 0xFF9B, // 174 :: rgb(253,232,224)
+ 0xFFBB, // 175 :: rgb(254,240,221)
+ 0x7920, // 176 :: rgb(244,74,2)
+ 0x7FDC, // 177 :: rgb(254,243,229)
+ 0xFE21, // 178 :: rgb(251,141,6)
+ 0x7F53, // 179 :: rgb(253,210,155)
+ 0xF9E9, // 180 :: rgb(247,127,77)
+ 0xFF58, // 181 :: rgb(252,213,197)
+ 0xFE87, // 182 :: rgb(251,164,58)
+ 0xFF54, // 183 :: rgb(253,213,164)
+ 0xFEA9, // 184 :: rgb(251,174,78)
+ 0xFE21, // 185 :: rgb(251,143,10)
+ 0x79E8, // 186 :: rgb(246,120,67)
+ 0x7E87, // 187 :: rgb(251,163,54)
+ 0xFFDD, // 188 :: rgb(254,248,240)
+ 0x7F57, // 189 :: rgb(252,210,193)
+}; \ No newline at end of file
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.h
new file mode 100644
index 0000000..28d30ce
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.h
@@ -0,0 +1,15 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __logo_gfx__
+#define __logo_gfx__
+#include <stdint.h>
+
+#define ubuntu_width 32
+#define ubuntu_height 32
+#define ubuntu_size 1026
+extern uint8_t ubuntu_data[1026];
+#define ubuntu ((gfx_sprite_t*)ubuntu_data)
+#define sizeof_logo_gfx_pal 380
+extern uint16_t logo_gfx_pal[190];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/ubuntu.c b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/ubuntu.c
new file mode 100644
index 0000000..f2060ae
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/ubuntu.c
@@ -0,0 +1,40 @@
+// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+// 8 bpp image
+uint8_t ubuntu_data[1026] = {
+ 32,32, // width,height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0B,0x45,0x27,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x13,0x07,0x07,0x01,0x20,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x5B,0x41,0x4E,0x0E,0x90,0x14,0xA5,0x07,0x07,0x07,0x07,0x28,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0x09,0x09,0x09,0x09,0x09,0xA8,0xA0,0x07,0x07,0x07,0x07,0x43,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x00,0x8B,0x15,0x09,0x09,0x09,0x09,0x09,0xA4,0x04,0xA2,0x07,0x07,0x95,0x58,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x83,0x0F,0x00,0x8A,0x09,0x09,0x09,0x09,0x09,0x15,0xA6,0xA3,0x9B,0x9F,0x96,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x03,0x08,0x0D,0x00,0x7F,0x86,0x6B,0x8E,0x92,0x1A,0x09,0x9C,0xA7,0x9E,0x94,0x11,0x5E,0x04,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5F,0x55,0x08,0x08,0x02,0x17,0x00,0x62,0x5C,0x05,0x00,0x93,0xA1,0x9D,0x09,0x09,0x8F,0x09,0x09,0x3E,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x9A,0x08,0x08,0x08,0x08,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x91,0x8C,0x09,0x09,0x09,0x53,0x4A,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAF,0x03,0x08,0x08,0x08,0x7E,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0x09,0x09,0x09,0x09,0x0E,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB7,0x08,0x08,0x08,0x02,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x51,0x09,0x09,0x09,0x10,0x04,0x00,0x00,
+ 0x00,0x00,0x00,0x8D,0xAB,0xAD,0xBD,0x05,0x16,0x08,0x08,0x99,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x09,0x09,0x09,0x09,0x14,0x00,0x00,
+ 0x00,0x00,0x0C,0xAA,0x09,0x09,0xB0,0x19,0xBC,0xB9,0x08,0xAC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x75,0x71,0x6C,0x69,0x64,0x73,0x00,0x00,
+ 0x00,0x00,0x81,0x09,0x09,0x09,0x09,0xBA,0x00,0xB6,0x08,0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x11,0x09,0x09,0x09,0x09,0xB4,0x00,0xBB,0x08,0xA9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5D,0x67,0x6D,0x74,0x60,0x56,0x00,0x00,
+ 0x00,0x00,0x04,0x89,0x09,0x09,0x1A,0xB5,0xB1,0xB2,0x08,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x07,0x07,0x07,0x07,0x50,0x00,0x00,
+ 0x00,0x00,0x00,0x0C,0x19,0x97,0xAE,0x18,0xB8,0x08,0x08,0x82,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x07,0x07,0x07,0x4D,0x0B,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x08,0x08,0x08,0x08,0x37,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x06,0x07,0x07,0x07,0x47,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x88,0x08,0x08,0x08,0x08,0x2E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x4F,0x07,0x07,0x07,0x29,0x24,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4B,0x08,0x08,0x08,0x08,0x35,0x00,0x36,0x04,0x00,0x00,0x00,0x12,0x7D,0x01,0x07,0x07,0x07,0x07,0x22,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x3A,0x08,0x08,0x2F,0x04,0x3B,0x30,0x46,0x49,0x59,0x6F,0x6E,0x07,0x07,0x06,0x01,0x07,0x40,0x21,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x0D,0x0A,0x31,0x00,0x34,0x07,0x07,0x07,0x07,0x07,0x07,0x78,0x7C,0x12,0x79,0x7A,0x3D,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x33,0x00,0x38,0x32,0x07,0x07,0x07,0x07,0x07,0x68,0x77,0x65,0x72,0x63,0x52,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2D,0x06,0x07,0x07,0x07,0x07,0x07,0x7B,0x04,0x66,0x08,0x08,0x03,0x2B,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0x26,0x2A,0x3F,0x44,0x13,0x57,0x6A,0x08,0x08,0x08,0x08,0x23,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x02,0x08,0x08,0x08,0x1B,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x08,0x08,0x0A,0x1E,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x25,0x1D,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/ubuntu.png b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/ubuntu.png
new file mode 100644
index 0000000..d041515
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/ubuntu.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/main.c b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/main.c
new file mode 100644
index 0000000..7e9de0b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/main.c
@@ -0,0 +1,44 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+#include "gfx/logo_gfx.h"
+
+/* Create some buffers used for storing the rotated and scaled sprites */
+gfx_UninitedSprite(rotate_sprite, ubuntu_width, ubuntu_height);
+
+void main(void) {
+ uint8_t x;
+
+ /* Start the graphics */
+ gfx_Begin();
+
+ /* Setup the palette used by the sprites*/
+ gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0);
+
+ /* Loop for a bunch of times */
+ for (x = 0; ++x;) {
+ /* Rotate the sprite */
+ gfx_RotateSprite(ubuntu, rotate_sprite, x);
+
+ /* Rotate and scale the sprite */
+ gfx_RotatedScaledSprite_NoClip(ubuntu, 0, 0, 256 - x, 128);
+
+ /* Draw the new rotated buffer sprite */
+ gfx_Sprite_NoClip(rotate_sprite, LCD_WIDTH / 2, LCD_HEIGHT / 2);
+ }
+
+ /* Wait for a key to be pressed */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/autotester.json b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/autotester.json
new file mode 100644
index 0000000..d246692
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/autotester.json
@@ -0,0 +1,31 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp",
+ "src/gfx/var_gfx.8xv"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Make sure the sprites are displayed properly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "A3ED6457" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44", "43BF8092", "5ACF1C01" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/makefile b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/readme.md b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/readme.md
new file mode 100644
index 0000000..428bc83
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/readme.md
@@ -0,0 +1,10 @@
+### GraphX Appvars Demo
+
+Demonstrates easily extracting and using images placed into an appvar
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/screenshot.png b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/screenshot.png
new file mode 100644
index 0000000..dcbcdf7
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.c
new file mode 100644
index 0000000..9f77108
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.c
@@ -0,0 +1,4 @@
+// convpng
+#include <stdint.h>
+#include "all_gfx.h"
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.h
new file mode 100644
index 0000000..37f0480
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.h
@@ -0,0 +1,8 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __all_gfx__
+#define __all_gfx__
+#include <stdint.h>
+
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/convpng.ini
new file mode 100644
index 0000000..8dc89f4
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/convpng.ini
@@ -0,0 +1,16 @@
+// #AppvarC -- The name of the appvar we are making
+// #IncludePalettes -- List of comma separated groups with palettes
+
+#AppvarC : var_gfx
+#IncludePalettes : all_gfx
+#PNGImages :
+ ubuntu
+ mint
+
+// The main conversion group
+
+#GroupC : all_gfx
+#PNGImages :
+ ubuntu
+ mint
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/mint.c b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/mint.c
new file mode 100644
index 0000000..9f77108
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/mint.c
@@ -0,0 +1,4 @@
+// convpng
+#include <stdint.h>
+#include "all_gfx.h"
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/mint.png b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/mint.png
new file mode 100644
index 0000000..f626cd0
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/mint.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/ubuntu.c b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/ubuntu.c
new file mode 100644
index 0000000..9f77108
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/ubuntu.c
@@ -0,0 +1,4 @@
+// convpng
+#include <stdint.h>
+#include "all_gfx.h"
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/ubuntu.png b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/ubuntu.png
new file mode 100644
index 0000000..d041515
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/ubuntu.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.8xv b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.8xv
new file mode 100644
index 0000000..e6bb018
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.8xv
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.c
new file mode 100644
index 0000000..b0d3117
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.c
@@ -0,0 +1,27 @@
+// convpng
+#include <stdint.h>
+#include "var_gfx.h"
+
+#include <fileioc.h>
+uint8_t *var_gfx[3] = {
+ (uint8_t*)0,
+ (uint8_t*)1026,
+ (uint8_t*)2052,
+};
+
+bool var_gfx_init(void) {
+ unsigned int data, i;
+ ti_var_t appvar;
+
+ ti_CloseAll();
+
+ appvar = ti_Open("var_gfx", "r");
+ data = (unsigned int)ti_GetDataPtr(appvar) - (unsigned int)var_gfx[0];
+ for (i = 0; i < var_gfx_num; i++) {
+ var_gfx[i] += data;
+ }
+
+ ti_CloseAll();
+
+ return (bool)appvar;
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.h
new file mode 100644
index 0000000..49afcb0
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.h
@@ -0,0 +1,18 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __var_gfx__
+#define __var_gfx__
+#include <stdint.h>
+
+#include <stdbool.h>
+
+#define var_gfx_num 3
+
+extern uint8_t *var_gfx[3];
+#define ubuntu ((gfx_sprite_t*)var_gfx[0])
+#define mint ((gfx_sprite_t*)var_gfx[1])
+#define sizeof_all_gfx_pal 512
+#define all_gfx_pal ((uint16_t*)var_gfx[2])
+bool var_gfx_init(void);
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/main.c b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/main.c
new file mode 100644
index 0000000..7c18c3a
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/main.c
@@ -0,0 +1,42 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+#include <fileioc.h>
+
+/* Include the sprite data */
+#include "gfx/all_gfx.h"
+#include "gfx/var_gfx.h"
+
+void main(void) {
+ /* This function is automatically created by convpng */
+ /* Simply call it to load in graphics from the appvar */
+ /* The common function name is <appvar name>_init */
+ var_gfx_init();
+
+ /* Initialize the graphics */
+ gfx_Begin();
+
+ /* Set up the palette for the sprite */
+ gfx_SetPalette(all_gfx_pal, sizeof_all_gfx_pal, 0);
+
+ /* Fill the screen with color index 0 */
+ gfx_FillScreen(0);
+
+ /* Draw the sprites directly from the appvar */
+ gfx_Sprite(ubuntu, LCD_WIDTH / 2 - 16, LCD_HEIGHT / 2 - 16);
+ gfx_Sprite(mint, LCD_WIDTH / 2 + 16, LCD_HEIGHT / 2 - 16);
+
+ /* Wait for a key to be pressed */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_template/iconc.png b/frontends/calculator/CEdev/examples/gfx_template/iconc.png
new file mode 100644
index 0000000..125ca62
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_template/iconc.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_template/makefile b/frontends/calculator/CEdev/examples/gfx_template/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_template/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_template/readme.md b/frontends/calculator/CEdev/examples/gfx_template/readme.md
new file mode 100644
index 0000000..9d807e1
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_template/readme.md
@@ -0,0 +1,12 @@
+### GraphX Template
+
+You can clone this directory for your own GraphX-based projects.
+
+To add code, fill in the begin, end, step, and draw functions in main.c. You can also create your own .c and .h files and add them to the directory; the Makefile included in this template will automatically find and compile the new .c files.
+
+In addition, you can also add your own .asm files, which will be detected and
+added appropriately to the proper segment.
+
+---
+
+This template is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/gfx_template/src/main.c b/frontends/calculator/CEdev/examples/gfx_template/src/main.c
new file mode 100644
index 0000000..2904b0a
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_template/src/main.c
@@ -0,0 +1,64 @@
+/*
+ *--------------------------------------
+ * Program Name:
+ * Author:
+ * License:
+ * Description:
+ *--------------------------------------
+*/
+
+/* Keep these headers */
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+/* Standard headers (recommended) */
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Put your function prototypes here */
+void begin();
+void end();
+bool step();
+void draw();
+
+/* Put all your globals here */
+bool partial_redraw;
+
+void main() {
+ begin(); // No rendering allowed!
+ gfx_Begin();
+ gfx_SetDrawBuffer(); // Draw to the buffer to avoid rendering artifats
+
+ while (step()) { // No rendering allowed in step!
+ if (partial_redraw) // Only want to redraw part of the previous frame?
+ gfx_BlitScreen(); // Copy previous frame as a base for this frame
+ draw(); // As little non-rendering logic as possible
+ gfx_SwapDraw(); // Queue the buffered frame to be displayed
+ }
+
+ gfx_End();
+ end();
+}
+
+/* Put other functions here */
+void begin() {
+ /* Implement me! */
+}
+
+void end() {
+ /* Implement me! */
+}
+
+bool step() {
+ /* Implement me! */
+}
+
+void draw() {
+ /* Implement me! */
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/autotester.json b/frontends/calculator/CEdev/examples/gfx_tilemap/autotester.json
new file mode 100644
index 0000000..30af614
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap/autotester.json
@@ -0,0 +1,43 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "delay|100",
+ "key|right",
+ "key|right",
+ "key|down",
+ "key|down",
+ "hashWait|2",
+ "key|enter",
+ "hashWait|3"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Initial sprite map state (top left)",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "3C2D7C36" ]
+ },
+ "2": {
+ "description": "Moving a bit to the bottom right",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "F0C14AE9" ]
+ },
+ "3": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/makefile b/frontends/calculator/CEdev/examples/gfx_tilemap/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/readme.md b/frontends/calculator/CEdev/examples/gfx_tilemap/readme.md
new file mode 100644
index 0000000..298dc25
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap/readme.md
@@ -0,0 +1,10 @@
+### GraphX Simple Tilemap Demo
+
+An example of tilemaping using a sequence of tiles and the keypad.
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/screenshot.gif b/frontends/calculator/CEdev/examples/gfx_tilemap/screenshot.gif
new file mode 100644
index 0000000..741067c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/convpng.ini
new file mode 100644
index 0000000..b8068e4
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/convpng.ini
@@ -0,0 +1,5 @@
+#GroupC : tiles_gfx
+#TransparentColor : 255,201,14,255
+#Tilemap : 16,16,true
+#PNGImages :
+ tileset
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.c b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.c
new file mode 100644
index 0000000..2d1e613
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.c
@@ -0,0 +1,82 @@
+// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
+uint16_t tiles_gfx_pal[76] = {
+ 0x7F22, // 00 :: rgb(255,201,14)
+ 0xC30C, // 01 :: rgb(132,198,99)
+ 0x212D, // 02 :: rgb(65,72,106)
+ 0x1D40, // 03 :: rgb(56,80,0)
+ 0x1E46, // 04 :: rgb(57,146,49)
+ 0xDBD1, // 05 :: rgb(184,248,136)
+ 0xEB7B, // 06 :: rgb(216,224,224)
+ 0x318F, // 07 :: rgb(99,96,123)
+ 0x7771, // 08 :: rgb(239,219,140)
+ 0x650A, // 09 :: rgb(206,64,81)
+ 0x5F3C, // 10 :: rgb(189,203,231)
+ 0x6F9D, // 11 :: rgb(222,227,239)
+ 0x25D5, // 12 :: rgb(73,113,173)
+ 0x52D8, // 13 :: rgb(165,178,198)
+ 0xD353, // 14 :: rgb(168,216,160)
+ 0x6DAC, // 15 :: rgb(222,105,98)
+ 0x4211, // 16 :: rgb(132,130,140)
+ 0x3AFE, // 17 :: rgb(115,186,247)
+ 0x764E, // 18 :: rgb(239,146,114)
+ 0xE319, // 19 :: rgb(199,199,207)
+ 0x5A0D, // 20 :: rgb(184,128,111)
+ 0xE6F0, // 21 :: rgb(208,192,128)
+ 0x7EF0, // 22 :: rgb(255,186,132)
+ 0x4EDB, // 23 :: rgb(156,178,222)
+ 0x6EAE, // 24 :: rgb(222,170,114)
+ 0x49AD, // 25 :: rgb(148,105,106)
+ 0x32BD, // 26 :: rgb(99,170,239)
+ 0xFFFF, // 27 :: rgb(255,255,255)
+ 0x0E8D, // 28 :: rgb(23,162,107)
+ 0x666A, // 29 :: rgb(206,154,81)
+ 0x6ACD, // 30 :: rgb(214,178,106)
+ 0x22D1, // 31 :: rgb(65,178,140)
+ 0x18C2, // 32 :: rgb(48,48,14)
+ 0x5A30, // 33 :: rgb(182,138,130)
+ 0xB27A, // 34 :: rgb(96,159,215)
+ 0x7BAE, // 35 :: rgb(245,233,112)
+ 0x6E2C, // 36 :: rgb(224,136,95)
+ 0x2A37, // 37 :: rgb(79,136,192)
+ 0x39A6, // 38 :: rgb(112,104,47)
+ 0x0420, // 39 :: rgb(8,8,4)
+ 0xEAF3, // 40 :: rgb(214,191,154)
+ 0x2CE8, // 41 :: rgb(89,56,65)
+ 0xEF12, // 42 :: rgb(224,200,144)
+ 0xDEAD, // 43 :: rgb(191,175,110)
+ 0x5A51, // 44 :: rgb(184,144,136)
+ 0x6F30, // 45 :: rgb(222,203,132)
+ 0xCB3E, // 46 :: rgb(151,207,247)
+ 0xE35C, // 47 :: rgb(199,215,231)
+ 0x7399, // 48 :: rgb(231,227,206)
+ 0x7794, // 49 :: rgb(239,227,165)
+ 0x7AD0, // 50 :: rgb(247,178,132)
+ 0x3D29, // 51 :: rgb(123,73,73)
+ 0x32BC, // 52 :: rgb(96,168,232)
+ 0x3DF0, // 53 :: rgb(123,123,132)
+ 0x7337, // 54 :: rgb(228,201,192)
+ 0x1CC5, // 55 :: rgb(56,48,40)
+ 0x252B, // 56 :: rgb(71,71,87)
+ 0x1A05, // 57 :: rgb(46,130,39)
+ 0xE6AD, // 58 :: rgb(208,176,103)
+ 0xCF77, // 59 :: rgb(160,224,192)
+ 0x356B, // 60 :: rgb(107,88,89)
+ 0xCB58, // 61 :: rgb(144,216,200)
+ 0xC32A, // 62 :: rgb(135,207,79)
+ 0x2505, // 63 :: rgb(78,65,39)
+ 0x6BBF, // 64 :: rgb(214,235,255)
+ 0x5085, // 65 :: rgb(167,31,39)
+ 0xAD4D, // 66 :: rgb(87,87,110)
+ 0xDB1B, // 67 :: rgb(184,200,224)
+ 0x25D4, // 68 :: rgb(71,112,168)
+ 0x4E23, // 69 :: rgb(155,139,24)
+ 0x6149, // 70 :: rgb(199,79,71)
+ 0x91CA, // 71 :: rgb(37,117,83)
+ 0x2DD7, // 72 :: rgb(89,113,189)
+ 0xC76C, // 73 :: rgb(142,221,101)
+ 0xFB33, // 74 :: rgb(247,207,159)
+ 0xBB13, // 75 :: rgb(112,199,159)
+}; \ No newline at end of file
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.h b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.h
new file mode 100644
index 0000000..6e8db9f
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.h
@@ -0,0 +1,271 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __tiles_gfx__
+#define __tiles_gfx__
+#include <stdint.h>
+
+#define tiles_gfx_transparent_color_index 0
+
+extern uint8_t tileset_tile_0_data[];
+#define tileset_tile_0 ((gfx_sprite_t*)tileset_tile_0_data)
+extern uint8_t tileset_tile_1_data[];
+#define tileset_tile_1 ((gfx_sprite_t*)tileset_tile_1_data)
+extern uint8_t tileset_tile_2_data[];
+#define tileset_tile_2 ((gfx_sprite_t*)tileset_tile_2_data)
+extern uint8_t tileset_tile_3_data[];
+#define tileset_tile_3 ((gfx_sprite_t*)tileset_tile_3_data)
+extern uint8_t tileset_tile_4_data[];
+#define tileset_tile_4 ((gfx_sprite_t*)tileset_tile_4_data)
+extern uint8_t tileset_tile_5_data[];
+#define tileset_tile_5 ((gfx_sprite_t*)tileset_tile_5_data)
+extern uint8_t tileset_tile_6_data[];
+#define tileset_tile_6 ((gfx_sprite_t*)tileset_tile_6_data)
+extern uint8_t tileset_tile_7_data[];
+#define tileset_tile_7 ((gfx_sprite_t*)tileset_tile_7_data)
+extern uint8_t tileset_tile_8_data[];
+#define tileset_tile_8 ((gfx_sprite_t*)tileset_tile_8_data)
+extern uint8_t tileset_tile_9_data[];
+#define tileset_tile_9 ((gfx_sprite_t*)tileset_tile_9_data)
+extern uint8_t tileset_tile_10_data[];
+#define tileset_tile_10 ((gfx_sprite_t*)tileset_tile_10_data)
+extern uint8_t tileset_tile_11_data[];
+#define tileset_tile_11 ((gfx_sprite_t*)tileset_tile_11_data)
+extern uint8_t tileset_tile_12_data[];
+#define tileset_tile_12 ((gfx_sprite_t*)tileset_tile_12_data)
+extern uint8_t tileset_tile_13_data[];
+#define tileset_tile_13 ((gfx_sprite_t*)tileset_tile_13_data)
+extern uint8_t tileset_tile_14_data[];
+#define tileset_tile_14 ((gfx_sprite_t*)tileset_tile_14_data)
+extern uint8_t tileset_tile_15_data[];
+#define tileset_tile_15 ((gfx_sprite_t*)tileset_tile_15_data)
+extern uint8_t tileset_tile_16_data[];
+#define tileset_tile_16 ((gfx_sprite_t*)tileset_tile_16_data)
+extern uint8_t tileset_tile_17_data[];
+#define tileset_tile_17 ((gfx_sprite_t*)tileset_tile_17_data)
+extern uint8_t tileset_tile_18_data[];
+#define tileset_tile_18 ((gfx_sprite_t*)tileset_tile_18_data)
+extern uint8_t tileset_tile_19_data[];
+#define tileset_tile_19 ((gfx_sprite_t*)tileset_tile_19_data)
+extern uint8_t tileset_tile_20_data[];
+#define tileset_tile_20 ((gfx_sprite_t*)tileset_tile_20_data)
+extern uint8_t tileset_tile_21_data[];
+#define tileset_tile_21 ((gfx_sprite_t*)tileset_tile_21_data)
+extern uint8_t tileset_tile_22_data[];
+#define tileset_tile_22 ((gfx_sprite_t*)tileset_tile_22_data)
+extern uint8_t tileset_tile_23_data[];
+#define tileset_tile_23 ((gfx_sprite_t*)tileset_tile_23_data)
+extern uint8_t tileset_tile_24_data[];
+#define tileset_tile_24 ((gfx_sprite_t*)tileset_tile_24_data)
+extern uint8_t tileset_tile_25_data[];
+#define tileset_tile_25 ((gfx_sprite_t*)tileset_tile_25_data)
+extern uint8_t tileset_tile_26_data[];
+#define tileset_tile_26 ((gfx_sprite_t*)tileset_tile_26_data)
+extern uint8_t tileset_tile_27_data[];
+#define tileset_tile_27 ((gfx_sprite_t*)tileset_tile_27_data)
+extern uint8_t tileset_tile_28_data[];
+#define tileset_tile_28 ((gfx_sprite_t*)tileset_tile_28_data)
+extern uint8_t tileset_tile_29_data[];
+#define tileset_tile_29 ((gfx_sprite_t*)tileset_tile_29_data)
+extern uint8_t tileset_tile_30_data[];
+#define tileset_tile_30 ((gfx_sprite_t*)tileset_tile_30_data)
+extern uint8_t tileset_tile_31_data[];
+#define tileset_tile_31 ((gfx_sprite_t*)tileset_tile_31_data)
+extern uint8_t tileset_tile_32_data[];
+#define tileset_tile_32 ((gfx_sprite_t*)tileset_tile_32_data)
+extern uint8_t tileset_tile_33_data[];
+#define tileset_tile_33 ((gfx_sprite_t*)tileset_tile_33_data)
+extern uint8_t tileset_tile_34_data[];
+#define tileset_tile_34 ((gfx_sprite_t*)tileset_tile_34_data)
+extern uint8_t tileset_tile_35_data[];
+#define tileset_tile_35 ((gfx_sprite_t*)tileset_tile_35_data)
+extern uint8_t tileset_tile_36_data[];
+#define tileset_tile_36 ((gfx_sprite_t*)tileset_tile_36_data)
+extern uint8_t tileset_tile_37_data[];
+#define tileset_tile_37 ((gfx_sprite_t*)tileset_tile_37_data)
+extern uint8_t tileset_tile_38_data[];
+#define tileset_tile_38 ((gfx_sprite_t*)tileset_tile_38_data)
+extern uint8_t tileset_tile_39_data[];
+#define tileset_tile_39 ((gfx_sprite_t*)tileset_tile_39_data)
+extern uint8_t tileset_tile_40_data[];
+#define tileset_tile_40 ((gfx_sprite_t*)tileset_tile_40_data)
+extern uint8_t tileset_tile_41_data[];
+#define tileset_tile_41 ((gfx_sprite_t*)tileset_tile_41_data)
+extern uint8_t tileset_tile_42_data[];
+#define tileset_tile_42 ((gfx_sprite_t*)tileset_tile_42_data)
+extern uint8_t tileset_tile_43_data[];
+#define tileset_tile_43 ((gfx_sprite_t*)tileset_tile_43_data)
+extern uint8_t tileset_tile_44_data[];
+#define tileset_tile_44 ((gfx_sprite_t*)tileset_tile_44_data)
+extern uint8_t tileset_tile_45_data[];
+#define tileset_tile_45 ((gfx_sprite_t*)tileset_tile_45_data)
+extern uint8_t tileset_tile_46_data[];
+#define tileset_tile_46 ((gfx_sprite_t*)tileset_tile_46_data)
+extern uint8_t tileset_tile_47_data[];
+#define tileset_tile_47 ((gfx_sprite_t*)tileset_tile_47_data)
+extern uint8_t tileset_tile_48_data[];
+#define tileset_tile_48 ((gfx_sprite_t*)tileset_tile_48_data)
+extern uint8_t tileset_tile_49_data[];
+#define tileset_tile_49 ((gfx_sprite_t*)tileset_tile_49_data)
+extern uint8_t tileset_tile_50_data[];
+#define tileset_tile_50 ((gfx_sprite_t*)tileset_tile_50_data)
+extern uint8_t tileset_tile_51_data[];
+#define tileset_tile_51 ((gfx_sprite_t*)tileset_tile_51_data)
+extern uint8_t tileset_tile_52_data[];
+#define tileset_tile_52 ((gfx_sprite_t*)tileset_tile_52_data)
+extern uint8_t tileset_tile_53_data[];
+#define tileset_tile_53 ((gfx_sprite_t*)tileset_tile_53_data)
+extern uint8_t tileset_tile_54_data[];
+#define tileset_tile_54 ((gfx_sprite_t*)tileset_tile_54_data)
+extern uint8_t tileset_tile_55_data[];
+#define tileset_tile_55 ((gfx_sprite_t*)tileset_tile_55_data)
+extern uint8_t tileset_tile_56_data[];
+#define tileset_tile_56 ((gfx_sprite_t*)tileset_tile_56_data)
+extern uint8_t tileset_tile_57_data[];
+#define tileset_tile_57 ((gfx_sprite_t*)tileset_tile_57_data)
+extern uint8_t tileset_tile_58_data[];
+#define tileset_tile_58 ((gfx_sprite_t*)tileset_tile_58_data)
+extern uint8_t tileset_tile_59_data[];
+#define tileset_tile_59 ((gfx_sprite_t*)tileset_tile_59_data)
+extern uint8_t tileset_tile_60_data[];
+#define tileset_tile_60 ((gfx_sprite_t*)tileset_tile_60_data)
+extern uint8_t tileset_tile_61_data[];
+#define tileset_tile_61 ((gfx_sprite_t*)tileset_tile_61_data)
+extern uint8_t tileset_tile_62_data[];
+#define tileset_tile_62 ((gfx_sprite_t*)tileset_tile_62_data)
+extern uint8_t tileset_tile_63_data[];
+#define tileset_tile_63 ((gfx_sprite_t*)tileset_tile_63_data)
+extern uint8_t tileset_tile_64_data[];
+#define tileset_tile_64 ((gfx_sprite_t*)tileset_tile_64_data)
+extern uint8_t tileset_tile_65_data[];
+#define tileset_tile_65 ((gfx_sprite_t*)tileset_tile_65_data)
+extern uint8_t tileset_tile_66_data[];
+#define tileset_tile_66 ((gfx_sprite_t*)tileset_tile_66_data)
+extern uint8_t tileset_tile_67_data[];
+#define tileset_tile_67 ((gfx_sprite_t*)tileset_tile_67_data)
+extern uint8_t tileset_tile_68_data[];
+#define tileset_tile_68 ((gfx_sprite_t*)tileset_tile_68_data)
+extern uint8_t tileset_tile_69_data[];
+#define tileset_tile_69 ((gfx_sprite_t*)tileset_tile_69_data)
+extern uint8_t tileset_tile_70_data[];
+#define tileset_tile_70 ((gfx_sprite_t*)tileset_tile_70_data)
+extern uint8_t tileset_tile_71_data[];
+#define tileset_tile_71 ((gfx_sprite_t*)tileset_tile_71_data)
+extern uint8_t tileset_tile_72_data[];
+#define tileset_tile_72 ((gfx_sprite_t*)tileset_tile_72_data)
+extern uint8_t tileset_tile_73_data[];
+#define tileset_tile_73 ((gfx_sprite_t*)tileset_tile_73_data)
+extern uint8_t tileset_tile_74_data[];
+#define tileset_tile_74 ((gfx_sprite_t*)tileset_tile_74_data)
+extern uint8_t tileset_tile_75_data[];
+#define tileset_tile_75 ((gfx_sprite_t*)tileset_tile_75_data)
+extern uint8_t tileset_tile_76_data[];
+#define tileset_tile_76 ((gfx_sprite_t*)tileset_tile_76_data)
+extern uint8_t tileset_tile_77_data[];
+#define tileset_tile_77 ((gfx_sprite_t*)tileset_tile_77_data)
+extern uint8_t tileset_tile_78_data[];
+#define tileset_tile_78 ((gfx_sprite_t*)tileset_tile_78_data)
+extern uint8_t tileset_tile_79_data[];
+#define tileset_tile_79 ((gfx_sprite_t*)tileset_tile_79_data)
+extern uint8_t tileset_tile_80_data[];
+#define tileset_tile_80 ((gfx_sprite_t*)tileset_tile_80_data)
+extern uint8_t tileset_tile_81_data[];
+#define tileset_tile_81 ((gfx_sprite_t*)tileset_tile_81_data)
+extern uint8_t tileset_tile_82_data[];
+#define tileset_tile_82 ((gfx_sprite_t*)tileset_tile_82_data)
+extern uint8_t tileset_tile_83_data[];
+#define tileset_tile_83 ((gfx_sprite_t*)tileset_tile_83_data)
+extern uint8_t tileset_tile_84_data[];
+#define tileset_tile_84 ((gfx_sprite_t*)tileset_tile_84_data)
+extern uint8_t tileset_tile_85_data[];
+#define tileset_tile_85 ((gfx_sprite_t*)tileset_tile_85_data)
+extern uint8_t tileset_tile_86_data[];
+#define tileset_tile_86 ((gfx_sprite_t*)tileset_tile_86_data)
+extern uint8_t tileset_tile_87_data[];
+#define tileset_tile_87 ((gfx_sprite_t*)tileset_tile_87_data)
+extern uint8_t tileset_tile_88_data[];
+#define tileset_tile_88 ((gfx_sprite_t*)tileset_tile_88_data)
+extern uint8_t tileset_tile_89_data[];
+#define tileset_tile_89 ((gfx_sprite_t*)tileset_tile_89_data)
+extern uint8_t tileset_tile_90_data[];
+#define tileset_tile_90 ((gfx_sprite_t*)tileset_tile_90_data)
+extern uint8_t tileset_tile_91_data[];
+#define tileset_tile_91 ((gfx_sprite_t*)tileset_tile_91_data)
+extern uint8_t tileset_tile_92_data[];
+#define tileset_tile_92 ((gfx_sprite_t*)tileset_tile_92_data)
+extern uint8_t tileset_tile_93_data[];
+#define tileset_tile_93 ((gfx_sprite_t*)tileset_tile_93_data)
+extern uint8_t tileset_tile_94_data[];
+#define tileset_tile_94 ((gfx_sprite_t*)tileset_tile_94_data)
+extern uint8_t tileset_tile_95_data[];
+#define tileset_tile_95 ((gfx_sprite_t*)tileset_tile_95_data)
+extern uint8_t tileset_tile_96_data[];
+#define tileset_tile_96 ((gfx_sprite_t*)tileset_tile_96_data)
+extern uint8_t tileset_tile_97_data[];
+#define tileset_tile_97 ((gfx_sprite_t*)tileset_tile_97_data)
+extern uint8_t tileset_tile_98_data[];
+#define tileset_tile_98 ((gfx_sprite_t*)tileset_tile_98_data)
+extern uint8_t tileset_tile_99_data[];
+#define tileset_tile_99 ((gfx_sprite_t*)tileset_tile_99_data)
+extern uint8_t tileset_tile_100_data[];
+#define tileset_tile_100 ((gfx_sprite_t*)tileset_tile_100_data)
+extern uint8_t tileset_tile_101_data[];
+#define tileset_tile_101 ((gfx_sprite_t*)tileset_tile_101_data)
+extern uint8_t tileset_tile_102_data[];
+#define tileset_tile_102 ((gfx_sprite_t*)tileset_tile_102_data)
+extern uint8_t tileset_tile_103_data[];
+#define tileset_tile_103 ((gfx_sprite_t*)tileset_tile_103_data)
+extern uint8_t tileset_tile_104_data[];
+#define tileset_tile_104 ((gfx_sprite_t*)tileset_tile_104_data)
+extern uint8_t tileset_tile_105_data[];
+#define tileset_tile_105 ((gfx_sprite_t*)tileset_tile_105_data)
+extern uint8_t tileset_tile_106_data[];
+#define tileset_tile_106 ((gfx_sprite_t*)tileset_tile_106_data)
+extern uint8_t tileset_tile_107_data[];
+#define tileset_tile_107 ((gfx_sprite_t*)tileset_tile_107_data)
+extern uint8_t tileset_tile_108_data[];
+#define tileset_tile_108 ((gfx_sprite_t*)tileset_tile_108_data)
+extern uint8_t tileset_tile_109_data[];
+#define tileset_tile_109 ((gfx_sprite_t*)tileset_tile_109_data)
+extern uint8_t tileset_tile_110_data[];
+#define tileset_tile_110 ((gfx_sprite_t*)tileset_tile_110_data)
+extern uint8_t tileset_tile_111_data[];
+#define tileset_tile_111 ((gfx_sprite_t*)tileset_tile_111_data)
+extern uint8_t tileset_tile_112_data[];
+#define tileset_tile_112 ((gfx_sprite_t*)tileset_tile_112_data)
+extern uint8_t tileset_tile_113_data[];
+#define tileset_tile_113 ((gfx_sprite_t*)tileset_tile_113_data)
+extern uint8_t tileset_tile_114_data[];
+#define tileset_tile_114 ((gfx_sprite_t*)tileset_tile_114_data)
+extern uint8_t tileset_tile_115_data[];
+#define tileset_tile_115 ((gfx_sprite_t*)tileset_tile_115_data)
+extern uint8_t tileset_tile_116_data[];
+#define tileset_tile_116 ((gfx_sprite_t*)tileset_tile_116_data)
+extern uint8_t tileset_tile_117_data[];
+#define tileset_tile_117 ((gfx_sprite_t*)tileset_tile_117_data)
+extern uint8_t tileset_tile_118_data[];
+#define tileset_tile_118 ((gfx_sprite_t*)tileset_tile_118_data)
+extern uint8_t tileset_tile_119_data[];
+#define tileset_tile_119 ((gfx_sprite_t*)tileset_tile_119_data)
+extern uint8_t tileset_tile_120_data[];
+#define tileset_tile_120 ((gfx_sprite_t*)tileset_tile_120_data)
+extern uint8_t tileset_tile_121_data[];
+#define tileset_tile_121 ((gfx_sprite_t*)tileset_tile_121_data)
+extern uint8_t tileset_tile_122_data[];
+#define tileset_tile_122 ((gfx_sprite_t*)tileset_tile_122_data)
+extern uint8_t tileset_tile_123_data[];
+#define tileset_tile_123 ((gfx_sprite_t*)tileset_tile_123_data)
+extern uint8_t tileset_tile_124_data[];
+#define tileset_tile_124 ((gfx_sprite_t*)tileset_tile_124_data)
+extern uint8_t tileset_tile_125_data[];
+#define tileset_tile_125 ((gfx_sprite_t*)tileset_tile_125_data)
+extern uint8_t tileset_tile_126_data[];
+#define tileset_tile_126 ((gfx_sprite_t*)tileset_tile_126_data)
+extern uint8_t tileset_tile_127_data[];
+#define tileset_tile_127 ((gfx_sprite_t*)tileset_tile_127_data)
+#define tileset_tiles_num 128
+extern uint8_t *tileset_tiles_data[128];
+#define tileset_tiles ((gfx_sprite_t**)tileset_tiles_data)
+#define sizeof_tiles_gfx_pal 152
+extern uint16_t tiles_gfx_pal[76];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tileset.c b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tileset.c
new file mode 100644
index 0000000..077ec44
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tileset.c
@@ -0,0 +1,2694 @@
+// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
+uint8_t tileset_tile_0_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x3D,0x4B,0x4B,0x3D,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_1_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x3D,0x4B,0x4B,0x3D,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,0x3D,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x4B,
+};
+uint8_t tileset_tile_2_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3B,0x4B,0x4B,0x3B,0x4B,0x4B,0x3B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3B,0x4B,0x4B,0x4B,0x3B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_3_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_4_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x01,
+ 0x4B,0x1C,0x03,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x01,
+ 0x4B,0x1F,0x1C,0x03,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,
+ 0x4B,0x1F,0x1F,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,
+ 0x4B,0x4B,0x1F,0x1C,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x05,
+ 0x4B,0x1F,0x1C,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x04,0x03,0x03,0x04,0x05,
+ 0x1F,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x03,0x01,0x05,
+ 0x1C,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x05,0x05,
+ 0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x01,0x05,0x05,
+ 0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x01,0x01,0x05,0x01,0x05,0x05,
+ 0x1C,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x05,0x05,0x01,0x05,0x05,0x05,
+ 0x1C,0x1C,0x1C,0x04,0x04,0x04,0x04,0x04,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x05,
+ 0x1F,0x1F,0x1C,0x1C,0x04,0x04,0x04,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x1F,0x1C,0x1C,0x03,0x05,0x05,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x4B,0x1F,0x1C,0x04,0x04,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x4B,0x1F,0x03,0x01,0x05,0x05,0x04,0x05,0x04,0x05,0x05,0x05,0x05,0x05,
+};
+uint8_t tileset_tile_5_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x4B,
+ 0x01,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x03,0x1C,0x4B,
+ 0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x1C,0x1F,0x4B,
+ 0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x1F,0x1F,0x4B,
+ 0x05,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x1C,0x1F,0x4B,0x4B,
+ 0x05,0x04,0x03,0x03,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x04,0x1C,0x1F,0x4B,
+ 0x05,0x01,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x1F,
+ 0x05,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x1C,
+ 0x05,0x01,0x01,0x05,0x05,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,
+ 0x05,0x01,0x01,0x01,0x01,0x01,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,
+ 0x05,0x01,0x05,0x01,0x01,0x05,0x04,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x1C,
+ 0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1C,
+ 0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x04,0x01,0x04,0x04,0x04,0x1C,0x1C,0x1F,0x1F,
+ 0x05,0x05,0x05,0x01,0x05,0x01,0x01,0x04,0x05,0x05,0x03,0x1C,0x1C,0x1F,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x04,0x04,0x1C,0x1F,0x4B,0x4B,0x4B,
+ 0x05,0x05,0x05,0x01,0x05,0x04,0x05,0x04,0x05,0x05,0x01,0x03,0x1F,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_6_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0x05,0x01,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x01,0x01,0x05,0x01,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x05,0x05,0x01,0x05,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x03,0x01,0x05,0x05,0x04,0x05,0x04,0x05,0x05,0x05,0x05,0x05,
+};
+uint8_t tileset_tile_7_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x01,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x01,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x01,0x01,0x05,0x05,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x01,0x01,0x01,0x01,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x01,0x05,0x01,0x01,0x05,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x04,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x05,0x05,0x01,0x05,0x01,0x01,0x04,0x05,0x05,0x03,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x05,0x05,0x01,0x05,0x04,0x05,0x04,0x05,0x05,0x01,0x03,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_8_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,
+ 0x07,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,
+ 0x07,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x07,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x07,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,
+ 0x07,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x07,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x07,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,
+ 0x07,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x07,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x07,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x07,0x14,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+};
+uint8_t tileset_tile_9_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,
+ 0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+};
+uint8_t tileset_tile_10_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,
+ 0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+};
+uint8_t tileset_tile_11_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,
+ 0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x02,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x02,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x02,
+ 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x02,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x02,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x02,
+ 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x02,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x02,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x02,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x02,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x14,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+};
+uint8_t tileset_tile_12_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x16,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x00,0x00,0x00,0x00,0x00,0x09,0x16,0x16,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x00,0x00,0x00,0x00,0x09,0x16,0x16,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x00,0x00,0x00,0x09,0x09,0x16,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x00,0x00,0x09,0x16,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x00,0x09,0x16,0x16,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x09,0x16,0x16,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+};
+uint8_t tileset_tile_13_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x16,0x09,0x16,0x16,0x16,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x00,0x00,0x00,0x00,0x00,0x07,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x00,0x00,0x00,0x07,0x07,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x00,0x00,0x07,0x07,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x00,0x07,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x07,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+};
+uint8_t tileset_tile_14_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x07,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x07,0x07,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x07,0x07,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x07,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x07,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+};
+uint8_t tileset_tile_15_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x09,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x09,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x09,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x09,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,
+};
+uint8_t tileset_tile_16_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x04,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,
+ 0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x1F,0x04,0x3B,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,
+ 0x4B,0x4B,0x04,0x04,0x04,0x1F,0x1F,0x3B,0x3B,0x04,0x1F,0x03,0x04,0x03,0x4B,0x4B,
+ 0x4B,0x1C,0x3B,0x3B,0x3B,0x04,0x04,0x3B,0x4B,0x04,0x03,0x3B,0x3B,0x3B,0x03,0x1F,
+ 0x4B,0x4B,0x1C,0x3B,0x3B,0x3B,0x04,0x4B,0x4B,0x03,0x1F,0x4B,0x3B,0x03,0x04,0x1F,
+ 0x4B,0x4B,0x4B,0x1C,0x4B,0x4B,0x4B,0x04,0x1F,0x03,0x1F,0x1F,0x04,0x04,0x1F,0x4B,
+ 0x4B,0x1C,0x1C,0x1C,0x04,0x04,0x4B,0x04,0x04,0x04,0x1F,0x03,0x03,0x03,0x03,0x4B,
+ 0x04,0x3B,0x3B,0x3B,0x4B,0x04,0x04,0x4B,0x03,0x1F,0x03,0x1F,0x4B,0x4B,0x4B,0x03,
+ 0x1F,0x04,0x3B,0x4B,0x4B,0x1F,0x04,0x04,0x03,0x03,0x1F,0x1F,0x1F,0x1F,0x03,0x1F,
+ 0x4B,0x1F,0x04,0x1F,0x1F,0x1F,0x1F,0x03,0x03,0x04,0x04,0x04,0x03,0x03,0x04,0x04,
+ 0x4B,0x4B,0x1F,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x1F,
+ 0x4B,0x1F,0x04,0x4B,0x4B,0x1F,0x03,0x04,0x03,0x03,0x04,0x1F,0x1F,0x03,0x1F,0x4B,
+ 0x4B,0x04,0x4B,0x4B,0x1F,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x1F,0x03,0x1F,
+ 0x1F,0x04,0x03,0x03,0x03,0x03,0x1F,0x1F,0x1F,0x04,0x03,0x03,0x03,0x03,0x03,0x04,
+ 0x1F,0x1F,0x04,0x04,0x04,0x04,0x03,0x1F,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x4B,0x4B,0x1F,0x1F,0x04,0x04,0x04,0x03,0x03,0x04,0x04,0x04,0x1F,0x1F,0x4B,0x4B,
+};
+uint8_t tileset_tile_17_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x39,0x39,0x3E,0x20,0x00,
+ 0x00,0x00,0x20,0x20,0x20,0x00,0x00,0x00,0x20,0x39,0x39,0x39,0x3E,0x3E,0x3E,0x20,
+ 0x00,0x20,0x3E,0x3E,0x39,0x20,0x20,0x00,0x20,0x20,0x39,0x39,0x3E,0x3E,0x3E,0x20,
+ 0x20,0x3E,0x3E,0x39,0x39,0x39,0x20,0x20,0x20,0x20,0x39,0x39,0x39,0x3E,0x39,0x20,
+ 0x20,0x3E,0x39,0x3E,0x39,0x20,0x20,0x20,0x20,0x39,0x20,0x39,0x39,0x39,0x20,0x00,
+ 0x00,0x20,0x39,0x39,0x39,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x39,0x39,0x39,0x20,
+ 0x20,0x39,0x39,0x39,0x20,0x20,0x20,0x20,0x20,0x3F,0x3F,0x20,0x20,0x20,0x20,0x00,
+ 0x20,0x20,0x20,0x20,0x20,0x3F,0x3F,0x20,0x3F,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x20,0x20,0x00,0x20,0x45,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x45,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x39,0x20,0x20,0x3F,0x45,0x3F,0x20,0x39,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x39,0x20,0x33,0x45,0x3F,0x45,0x45,0x3F,0x20,0x39,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x39,0x20,0x20,0x33,0x45,0x3F,0x45,0x20,0x20,0x39,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x39,0x20,0x20,0x20,0x20,0x20,0x20,0x39,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_18_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x04,0x04,0x05,0x01,0x01,0x05,0x04,0x04,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,0x00,0x00,
+ 0x00,0x00,0x04,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x04,0x00,0x00,
+ 0x00,0x04,0x01,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x01,0x04,0x00,
+ 0x00,0x01,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,0x01,0x1F,
+ 0x00,0x03,0x01,0x04,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x04,0x01,0x03,0x1C,
+ 0x00,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x1C,
+ 0x00,0x03,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x03,0x1C,
+ 0x00,0x03,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x03,0x1C,
+ 0x00,0x1F,0x03,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x03,0x1C,0x1F,
+ 0x00,0x00,0x1C,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x1C,0x1F,0x00,
+ 0x00,0x00,0x00,0x1C,0x1C,0x1C,0x03,0x03,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x1F,0x1C,0x1C,0x1C,0x1C,0x1C,0x1F,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_19_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0x2C,0x2C,0x33,0x33,0x33,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x33,0x2C,0x36,0x36,0x36,0x2C,0x19,0x2C,0x33,0x2C,0x00,0x00,
+ 0x00,0x00,0x00,0x2C,0x2C,0x36,0x36,0x36,0x36,0x2C,0x19,0x36,0x36,0x28,0x33,0x00,
+ 0x00,0x00,0x33,0x2C,0x36,0x36,0x36,0x28,0x2C,0x19,0x36,0x36,0x28,0x28,0x33,0x00,
+ 0x00,0x19,0x2C,0x36,0x36,0x28,0x36,0x28,0x28,0x28,0x36,0x36,0x28,0x28,0x2C,0x00,
+ 0x00,0x33,0x36,0x36,0x28,0x28,0x36,0x28,0x28,0x28,0x28,0x28,0x2C,0x2C,0x2C,0x19,
+ 0x00,0x33,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2C,0x28,0x28,0x28,0x2C,0x28,0x29,
+ 0x35,0x33,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x19,0x2C,0x28,0x2C,0x28,0x2C,0x29,
+ 0x19,0x33,0x28,0x28,0x28,0x2C,0x19,0x28,0x28,0x2C,0x19,0x2C,0x28,0x2C,0x2C,0x29,
+ 0x29,0x33,0x19,0x28,0x28,0x19,0x28,0x2C,0x2C,0x19,0x29,0x19,0x19,0x29,0x29,0x29,
+ 0x29,0x33,0x33,0x19,0x19,0x19,0x2C,0x2C,0x19,0x33,0x29,0x33,0x33,0x29,0x29,0x29,
+ 0x29,0x33,0x33,0x2C,0x33,0x19,0x19,0x19,0x29,0x33,0x29,0x33,0x33,0x29,0x29,0x29,
+ 0x35,0x29,0x29,0x33,0x29,0x33,0x33,0x29,0x29,0x33,0x29,0x33,0x29,0x29,0x29,0x35,
+ 0x00,0x35,0x29,0x29,0x29,0x33,0x33,0x29,0x29,0x29,0x33,0x29,0x29,0x29,0x35,0x35,
+ 0x00,0x00,0x35,0x35,0x29,0x29,0x29,0x29,0x29,0x35,0x29,0x29,0x29,0x35,0x35,0x00,
+ 0x00,0x00,0x00,0x00,0x35,0x29,0x29,0x29,0x19,0x35,0x35,0x35,0x35,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_20_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x1F,0x03,0x05,0x05,0x04,0x01,0x04,0x05,0x05,0x05,0x05,0x04,0x05,
+ 0x4B,0x1F,0x4B,0x1C,0x1C,0x04,0x01,0x05,0x05,0x04,0x05,0x01,0x01,0x05,0x01,0x05,
+ 0x1F,0x1C,0x1C,0x1C,0x03,0x05,0x05,0x05,0x01,0x01,0x04,0x04,0x04,0x01,0x05,0x05,
+ 0x1C,0x1C,0x03,0x03,0x03,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x04,0x05,0x01,
+ 0x1C,0x1C,0x03,0x01,0x01,0x03,0x01,0x03,0x05,0x05,0x05,0x05,0x01,0x01,0x04,0x04,
+ 0x1C,0x1C,0x1C,0x04,0x01,0x03,0x04,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x01,
+ 0x1F,0x1C,0x03,0x01,0x04,0x04,0x03,0x05,0x04,0x05,0x05,0x01,0x05,0x05,0x05,0x05,
+ 0x1F,0x1F,0x04,0x04,0x04,0x01,0x04,0x04,0x05,0x05,0x04,0x05,0x05,0x05,0x01,0x05,
+ 0x1F,0x1F,0x03,0x04,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,
+ 0x1F,0x03,0x03,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x04,0x04,0x05,0x04,0x05,0x05,
+ 0x1C,0x04,0x01,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x04,0x03,0x01,0x05,0x01,
+ 0x1C,0x03,0x04,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x04,0x01,0x01,
+ 0x1C,0x03,0x04,0x03,0x03,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,
+ 0x1C,0x1F,0x03,0x01,0x04,0x03,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x01,0x04,0x01,
+ 0x1C,0x03,0x01,0x04,0x04,0x03,0x03,0x03,0x03,0x01,0x04,0x04,0x01,0x01,0x04,0x01,
+ 0x1C,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x01,0x01,0x04,0x01,0x04,
+};
+uint8_t tileset_tile_21_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x05,0x04,0x05,0x01,0x05,0x05,0x04,0x01,0x04,0x05,0x05,0x03,0x1F,0x4B,0x4B,0x4B,
+ 0x05,0x01,0x05,0x05,0x01,0x04,0x01,0x01,0x05,0x01,0x04,0x1C,0x1C,0x4B,0x1F,0x4B,
+ 0x05,0x05,0x05,0x01,0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x03,0x04,0x04,0x1C,0x1F,
+ 0x01,0x05,0x04,0x04,0x01,0x01,0x01,0x04,0x01,0x05,0x05,0x03,0x03,0x03,0x1C,0x1C,
+ 0x04,0x04,0x01,0x01,0x01,0x05,0x01,0x05,0x03,0x01,0x03,0x01,0x01,0x03,0x04,0x1C,
+ 0x01,0x04,0x01,0x01,0x05,0x01,0x05,0x01,0x05,0x04,0x03,0x01,0x04,0x04,0x04,0x1C,
+ 0x05,0x05,0x01,0x05,0x01,0x05,0x01,0x05,0x05,0x03,0x04,0x04,0x01,0x03,0x1C,0x1F,
+ 0x05,0x01,0x05,0x01,0x05,0x04,0x05,0x05,0x04,0x04,0x01,0x04,0x04,0x04,0x1F,0x1F,
+ 0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x04,0x03,0x1F,0x1F,
+ 0x05,0x05,0x04,0x05,0x04,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x03,0x03,0x1F,
+ 0x01,0x05,0x01,0x03,0x04,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x04,0x1C,
+ 0x01,0x01,0x04,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x04,0x03,0x1C,
+ 0x04,0x04,0x01,0x39,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x03,0x03,0x04,0x03,0x1C,
+ 0x01,0x04,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x03,0x04,0x01,0x03,0x1C,0x1C,
+ 0x01,0x04,0x01,0x01,0x04,0x04,0x01,0x03,0x03,0x03,0x03,0x04,0x04,0x01,0x03,0x1C,
+ 0x04,0x01,0x04,0x01,0x01,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x1C,
+};
+uint8_t tileset_tile_22_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x03,0x05,0x05,0x04,0x01,0x04,0x05,0x05,0x05,0x05,0x04,0x05,
+ 0x4B,0x4B,0x4B,0x1F,0x4B,0x04,0x01,0x05,0x05,0x04,0x05,0x01,0x01,0x05,0x01,0x05,
+ 0x4B,0x4B,0x4B,0x1F,0x03,0x05,0x05,0x05,0x01,0x01,0x04,0x04,0x04,0x01,0x05,0x05,
+ 0x4B,0x1F,0x03,0x03,0x03,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x04,0x05,0x01,
+ 0x4B,0x4B,0x03,0x01,0x01,0x03,0x01,0x03,0x05,0x05,0x05,0x05,0x01,0x01,0x04,0x04,
+ 0x4B,0x4B,0x4B,0x04,0x01,0x03,0x04,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x01,
+ 0x4B,0x4B,0x03,0x01,0x04,0x04,0x03,0x05,0x04,0x05,0x05,0x01,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x04,0x04,0x04,0x01,0x04,0x04,0x05,0x05,0x04,0x05,0x05,0x05,0x01,0x05,
+ 0x4B,0x4B,0x03,0x04,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x03,0x03,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x04,0x04,0x05,0x04,0x05,0x05,
+ 0x4B,0x04,0x01,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x04,0x03,0x01,0x05,0x01,
+ 0x4B,0x03,0x04,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x04,0x01,0x01,
+ 0x4B,0x03,0x04,0x03,0x03,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,
+ 0x4B,0x4B,0x03,0x01,0x04,0x03,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x01,0x04,0x01,
+ 0x4B,0x03,0x01,0x04,0x04,0x03,0x03,0x03,0x03,0x01,0x04,0x04,0x01,0x01,0x04,0x01,
+ 0x4B,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x01,0x01,0x04,0x01,0x04,
+};
+uint8_t tileset_tile_23_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x05,0x04,0x05,0x01,0x05,0x05,0x04,0x01,0x04,0x05,0x05,0x03,0x4B,0x4B,0x4B,0x4B,
+ 0x05,0x01,0x05,0x05,0x01,0x04,0x01,0x01,0x05,0x01,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x05,0x05,0x05,0x01,0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x03,0x4B,0x3D,0x4B,0x4B,
+ 0x01,0x05,0x04,0x04,0x01,0x01,0x01,0x04,0x01,0x05,0x05,0x03,0x03,0x03,0x4B,0x4B,
+ 0x04,0x04,0x01,0x01,0x01,0x05,0x01,0x05,0x03,0x01,0x03,0x01,0x01,0x03,0x4B,0x4B,
+ 0x01,0x04,0x01,0x01,0x05,0x01,0x05,0x01,0x05,0x04,0x03,0x01,0x04,0x4B,0x4B,0x4B,
+ 0x05,0x05,0x01,0x05,0x01,0x05,0x01,0x05,0x05,0x03,0x04,0x04,0x01,0x03,0x4B,0x4B,
+ 0x05,0x01,0x05,0x01,0x05,0x04,0x05,0x05,0x04,0x04,0x01,0x04,0x04,0x04,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x04,0x03,0x4B,0x4B,
+ 0x05,0x05,0x04,0x05,0x04,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x03,0x03,0x4B,
+ 0x01,0x05,0x01,0x03,0x04,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x04,0x4B,
+ 0x01,0x01,0x04,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x04,0x03,0x4B,
+ 0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x03,0x03,0x04,0x03,0x4B,
+ 0x01,0x04,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x03,0x04,0x01,0x03,0x4B,0x4B,
+ 0x01,0x04,0x01,0x01,0x04,0x04,0x01,0x03,0x03,0x03,0x03,0x04,0x04,0x01,0x03,0x4B,
+ 0x04,0x01,0x04,0x01,0x01,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x4B,
+};
+uint8_t tileset_tile_24_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+};
+uint8_t tileset_tile_25_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+};
+uint8_t tileset_tile_26_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+};
+uint8_t tileset_tile_27_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+};
+uint8_t tileset_tile_28_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x0F,0x07,0x07,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x0F,0x0F,0x0F,0x07,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_29_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x07,0x07,0x07,0x07,0x07,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x0F,0x0F,0x09,0x12,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x0F,0x0F,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x0F,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x0A,0x0B,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0A,0x0B,0x0B,0x0B,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0A,0x0B,0x0B,0x0A,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0B,0x0B,0x0A,0x09,0x12,0x0B,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0A,0x0B,0x0B,0x09,0x12,0x0B,0x0B,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x0B,0x0B,0x0B,
+};
+uint8_t tileset_tile_30_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x07,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x12,0x09,0x0F,0x0F,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x0F,0x0F,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x0F,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0B,0x0A,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0B,0x0B,0x0B,0x0A,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x0A,0x0B,0x0B,0x0A,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0B,0x12,0x09,0x0A,0x0B,0x0B,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0B,0x0B,0x12,0x09,0x0B,0x0B,0x0A,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0B,0x0B,0x0B,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_31_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x07,0x07,0x0F,0x12,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x07,0x0F,0x0F,0x0F,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x02,
+};
+uint8_t tileset_tile_32_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x15,0x15,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x15,0x15,0x15,0x15,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_33_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x15,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x15,0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x15,0x15,
+ 0x08,0x15,0x15,0x08,0x08,0x15,0x15,0x08,0x08,0x08,0x15,0x15,0x15,0x15,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_34_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,
+ 0x15,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,
+ 0x08,0x15,0x15,0x08,0x08,0x15,0x15,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+};
+uint8_t tileset_tile_35_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x20,0x20,0x26,0x2B,0x2B,0x26,0x2B,0x26,0x20,0x20,0x00,0x00,0x00,
+ 0x00,0x00,0x20,0x26,0x2B,0x2B,0x2B,0x2B,0x2B,0x26,0x2B,0x26,0x20,0x20,0x00,0x00,
+ 0x00,0x20,0x26,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x26,0x26,0x26,0x20,0x20,0x00,
+ 0x00,0x20,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x26,0x2B,0x26,0x20,0x26,0x20,0x00,
+ 0x20,0x26,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x26,0x26,0x26,0x20,0x20,0x27,
+ 0x20,0x26,0x26,0x2B,0x2B,0x2B,0x2B,0x26,0x2B,0x26,0x26,0x26,0x26,0x20,0x20,0x27,
+ 0x20,0x26,0x2B,0x26,0x2B,0x26,0x2B,0x2B,0x26,0x2B,0x26,0x26,0x20,0x26,0x20,0x27,
+ 0x20,0x26,0x26,0x2B,0x26,0x2B,0x26,0x26,0x2B,0x26,0x26,0x20,0x26,0x20,0x20,0x27,
+ 0x20,0x20,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x20,0x26,0x20,0x27,
+ 0x20,0x20,0x26,0x26,0x26,0x20,0x26,0x26,0x20,0x26,0x20,0x26,0x20,0x20,0x20,0x27,
+ 0x20,0x20,0x20,0x26,0x20,0x26,0x20,0x26,0x26,0x20,0x26,0x20,0x20,0x20,0x27,0x27,
+ 0x00,0x27,0x20,0x20,0x20,0x20,0x26,0x20,0x20,0x26,0x20,0x20,0x20,0x27,0x27,0x00,
+ 0x00,0x27,0x27,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x27,0x27,0x27,0x00,
+ 0x00,0x00,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_36_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x1F,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x01,
+ 0x4B,0x4B,0x03,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x01,
+ 0x4B,0x4B,0x4B,0x03,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,
+ 0x4B,0x4B,0x4B,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,
+ 0x4B,0x4B,0x4B,0x1C,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,
+ 0x4B,0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x04,0x03,0x03,0x04,0x04,
+ 0x4B,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x04,
+ 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x03,0x03,0x04,
+ 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x3C,0x3C,0x03,
+ 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x3C,0x3C,0x3C,
+ 0x4B,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x3C,0x3C,
+ 0x4B,0x1F,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x37,
+ 0x4B,0x4B,0x1F,0x1C,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x4B,0x4B,0x4B,0x1F,0x1C,0x1C,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x1C,0x1C,0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x1F,0x1C,0x1C,0x1C,0x04,0x04,0x04,0x04,
+};
+uint8_t tileset_tile_37_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x4B,
+ 0x01,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x03,0x4B,0x4B,
+ 0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x1F,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x4B,0x4B,0x4B,
+ 0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x1C,0x4B,0x4B,0x4B,
+ 0x04,0x04,0x03,0x03,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,0x4B,
+ 0x04,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B,
+ 0x04,0x03,0x03,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,
+ 0x03,0x3C,0x3C,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,
+ 0x3C,0x3C,0x3C,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,
+ 0x3C,0x3C,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B,
+ 0x37,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x1F,0x4B,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x1C,0x1F,0x4B,0x4B,
+ 0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1F,0x4B,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1C,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x1C,0x1C,0x1C,0x1F,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_38_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x1F,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x01,
+ 0x4B,0x4B,0x03,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x01,
+ 0x4B,0x4B,0x4B,0x03,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,
+ 0x4B,0x4B,0x4B,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,
+ 0x4B,0x4B,0x4B,0x1C,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x05,
+ 0x4B,0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x04,0x03,0x03,0x04,0x05,
+ 0x4B,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x03,0x01,0x05,
+ 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x05,0x05,
+ 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x01,0x05,0x05,
+ 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x01,0x01,0x05,0x01,0x05,0x05,
+ 0x4B,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x05,0x05,0x01,0x05,0x05,0x05,
+ 0x4B,0x4B,0x1C,0x04,0x04,0x04,0x04,0x04,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x4B,0x1C,0x04,0x04,0x04,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x4B,0x4B,0x1C,0x03,0x05,0x05,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x04,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x4B,0x4B,0x03,0x01,0x05,0x05,0x04,0x05,0x04,0x05,0x05,0x05,0x05,0x05,
+};
+uint8_t tileset_tile_39_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x4B,
+ 0x01,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x03,0x4B,0x4B,
+ 0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x1F,0x4B,0x4B,
+ 0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x4B,0x4B,0x4B,
+ 0x05,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x1C,0x4B,0x4B,0x4B,
+ 0x05,0x04,0x03,0x03,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,0x4B,
+ 0x05,0x01,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B,
+ 0x05,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,
+ 0x05,0x01,0x01,0x05,0x05,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,
+ 0x05,0x01,0x01,0x01,0x01,0x01,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,
+ 0x05,0x01,0x05,0x01,0x01,0x05,0x04,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x04,0x01,0x03,0x04,0x04,0x1C,0x1F,0x1F,0x4B,
+ 0x05,0x05,0x05,0x01,0x05,0x01,0x01,0x04,0x05,0x01,0x03,0x1C,0x4B,0x1F,0x1F,0x4B,
+ 0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x04,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x05,0x05,0x05,0x01,0x05,0x04,0x05,0x04,0x05,0x01,0x01,0x03,0x3B,0x4B,0x4B,0x1F,
+};
+uint8_t tileset_tile_40_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x18,0x18,0x18,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,
+ 0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+};
+uint8_t tileset_tile_41_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,
+ 0x02,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x02,
+ 0x02,0x32,0x32,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x32,0x32,0x02,
+};
+uint8_t tileset_tile_42_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x4A,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x24,
+ 0x24,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x24,
+ 0x24,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x24,
+ 0x24,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x24,
+ 0x24,0x02,0x2E,0x34,0x2E,0x34,0x2E,0x02,0x02,0x34,0x2E,0x34,0x2E,0x34,0x02,0x24,
+ 0x24,0x02,0x34,0x2E,0x34,0x2E,0x34,0x02,0x02,0x2E,0x34,0x2E,0x34,0x2E,0x02,0x24,
+};
+uint8_t tileset_tile_43_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x18,0x14,0x14,0x19,0x02,
+ 0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x18,0x18,0x14,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x10,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x10,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+};
+uint8_t tileset_tile_44_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x07,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x07,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x10,0x02,0x07,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x17,0x10,0x02,0x07,0x09,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x0B,0x17,0x10,0x02,0x07,0x09,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x1B,0x0B,0x17,0x10,0x02,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x10,0x1B,0x0B,0x17,0x10,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x17,0x10,0x1B,0x0B,0x17,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x17,0x1B,0x10,0x1B,0x0B,0x17,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x17,0x1B,0x1B,0x10,0x1B,0x0B,0x17,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x10,0x1B,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x10,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+};
+uint8_t tileset_tile_45_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x0A,0x0A,0x0A,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0A,0x0A,0x0A,0x09,0x12,0x0A,0x0A,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0A,0x0A,0x0A,0x09,0x12,0x0A,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0A,0x0A,0x0A,0x0A,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0A,0x0A,0x0A,0x0A,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x0F,0x0A,0x0A,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+};
+uint8_t tileset_tile_46_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0A,0x0A,0x0A,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x0A,0x0A,0x12,0x09,0x0A,0x0A,0x0A,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0A,0x12,0x09,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0A,0x0A,0x0F,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x0B,0x0B,0x1B,0x1B,0x1B,0x1B,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,
+};
+uint8_t tileset_tile_47_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x07,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x07,0x02,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x07,0x02,0x10,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x09,0x07,0x02,0x10,0x17,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x09,0x07,0x02,0x10,0x17,0x0B,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x02,0x10,0x17,0x0B,0x1B,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x17,0x0B,0x1B,0x10,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x17,0x0B,0x1B,0x10,0x17,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x17,0x0B,0x1B,0x10,0x1B,0x17,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x17,0x0B,0x1B,0x10,0x1B,0x1B,0x17,0x02,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1B,0x10,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x10,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x1B,0x1B,0x1B,0x1B,0x1B,0x0B,0x0B,0x02,0x10,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+};
+uint8_t tileset_tile_48_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_49_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_50_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+};
+uint8_t tileset_tile_51_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x2B,0x2B,0x20,0x20,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x20,0x20,0x20,0x2B,0x2B,0x2B,0x2B,0x26,0x20,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x20,0x26,0x2B,0x20,0x2B,0x2B,0x2B,0x26,0x26,0x20,0x27,0x00,0x00,0x00,
+ 0x00,0x00,0x20,0x20,0x2B,0x2B,0x26,0x2B,0x26,0x2B,0x20,0x27,0x26,0x27,0x00,0x00,
+ 0x00,0x20,0x26,0x27,0x26,0x2B,0x2B,0x20,0x20,0x27,0x27,0x20,0x20,0x27,0x00,0x00,
+ 0x00,0x27,0x20,0x27,0x20,0x26,0x2B,0x26,0x2B,0x26,0x20,0x26,0x26,0x20,0x27,0x00,
+ 0x00,0x27,0x26,0x2B,0x20,0x20,0x26,0x2B,0x26,0x27,0x26,0x26,0x26,0x27,0x27,0x00,
+ 0x00,0x27,0x20,0x26,0x2B,0x20,0x2B,0x26,0x20,0x27,0x20,0x26,0x27,0x20,0x27,0x00,
+ 0x00,0x27,0x20,0x20,0x20,0x27,0x20,0x20,0x26,0x26,0x27,0x20,0x20,0x20,0x27,0x00,
+ 0x00,0x27,0x20,0x20,0x27,0x27,0x20,0x26,0x20,0x20,0x27,0x27,0x20,0x20,0x27,0x00,
+ 0x00,0x00,0x27,0x20,0x27,0x27,0x20,0x20,0x20,0x20,0x27,0x27,0x27,0x27,0x00,0x00,
+ 0x00,0x00,0x00,0x27,0x27,0x27,0x27,0x20,0x20,0x27,0x27,0x27,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x27,0x27,0x27,0x00,0x00,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_52_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x36,0x36,0x29,0x29,0x29,0x29,0x29,0x00,0x00,
+ 0x00,0x33,0x36,0x36,0x36,0x36,0x2C,0x36,0x36,0x2C,0x36,0x36,0x36,0x36,0x29,0x00,
+ 0x00,0x33,0x36,0x36,0x36,0x36,0x36,0x2C,0x2C,0x36,0x36,0x36,0x36,0x36,0x29,0x00,
+ 0x00,0x33,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x29,0x00,
+ 0x00,0x33,0x2C,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2C,0x29,0x00,
+ 0x00,0x33,0x2C,0x33,0x28,0x33,0x28,0x28,0x28,0x28,0x33,0x28,0x33,0x2C,0x29,0x00,
+ 0x00,0x33,0x2C,0x33,0x33,0x28,0x33,0x2C,0x2C,0x33,0x28,0x33,0x33,0x2C,0x29,0x00,
+ 0x00,0x33,0x2C,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2C,0x29,0x00,
+ 0x00,0x33,0x2C,0x28,0x2C,0x2C,0x28,0x2C,0x28,0x2C,0x2C,0x2C,0x28,0x2C,0x29,0x00,
+ 0x00,0x33,0x2C,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2C,0x29,0x00,
+ 0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x35,0x35,0x33,0x2C,0x2C,0x29,0x35,0x35,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x35,0x35,0x35,0x33,0x36,0x2C,0x29,0x35,0x35,0x35,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x35,0x35,0x35,0x35,0x29,0x29,0x35,0x35,0x35,0x35,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_53_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x37,0x37,0x37,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x37,0x09,0x09,0x09,0x09,0x37,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x37,0x09,0x1B,0x09,0x41,0x41,0x09,0x37,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x37,0x09,0x41,0x09,0x41,0x41,0x41,0x41,0x09,0x37,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x37,0x09,0x41,0x41,0x37,0x37,0x41,0x41,0x09,0x37,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x42,0x37,0x41,0x37,0x1B,0x35,0x37,0x41,0x37,0x42,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x42,0x43,0x37,0x37,0x35,0x35,0x37,0x37,0x43,0x42,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x42,0x43,0x1B,0x37,0x37,0x1B,0x43,0x42,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x42,0x43,0x1B,0x1B,0x43,0x42,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_54_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x04,0x04,0x01,0x04,0x04,0x01,0x04,0x04,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x04,0x04,0x05,0x05,0x04,0x01,0x01,0x04,0x05,0x05,0x04,0x04,0x00,0x00,
+ 0x00,0x04,0x05,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x05,0x04,0x00,
+ 0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,
+ 0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,
+ 0x04,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x04,
+};
+uint8_t tileset_tile_55_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x38,0x43,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x43,0x38,0x00,
+ 0x38,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x38,
+ 0x38,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x38,
+ 0x38,0x2F,0x44,0x44,0x48,0x2F,0x2F,0x2F,0x44,0x2F,0x2F,0x2F,0x44,0x2F,0x2F,0x38,
+ 0x38,0x2F,0x44,0x2F,0x44,0x2F,0x44,0x2F,0x2F,0x2F,0x48,0x2F,0x2F,0x44,0x2F,0x38,
+ 0x38,0x2F,0x48,0x2F,0x2F,0x2F,0x44,0x48,0x2F,0x2F,0x44,0x2F,0x44,0x48,0x2F,0x38,
+ 0x38,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x38,
+ 0x38,0x2F,0x46,0x09,0x09,0x09,0x46,0x09,0x09,0x09,0x46,0x46,0x09,0x46,0x2F,0x38,
+ 0x38,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x38,
+ 0x38,0x2F,0x46,0x2F,0x09,0x46,0x2F,0x09,0x09,0x2F,0x46,0x2F,0x46,0x09,0x2F,0x38,
+ 0x38,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x10,0x38,0x38,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x38,0x38,0x10,
+ 0x10,0x38,0x43,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x43,0x38,0x10,
+ 0x00,0x38,0x43,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x43,0x38,0x00,
+ 0x00,0x10,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x10,0x00,
+};
+uint8_t tileset_tile_56_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x15,0x15,0x15,0x07,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x2A,0x21,0x21,0x21,0x21,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,
+ 0x00,0x00,0x10,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x10,
+};
+uint8_t tileset_tile_57_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x32,0x32,0x07,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x07,0x32,0x32,0x02,
+ 0x02,0x32,0x32,0x07,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x07,0x32,0x32,0x02,
+ 0x02,0x32,0x32,0x07,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x07,0x32,0x32,0x02,
+ 0x02,0x32,0x32,0x07,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x07,0x32,0x32,0x02,
+ 0x02,0x32,0x32,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x32,0x32,0x02,
+ 0x02,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x02,
+ 0x02,0x07,0x07,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x02,
+ 0x07,0x30,0x15,0x07,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x02,
+ 0x07,0x15,0x15,0x07,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02,
+ 0x02,0x07,0x07,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02,
+ 0x02,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02,
+ 0x02,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02,
+ 0x02,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02,
+ 0x02,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_58_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x24,0x02,0x2E,0x34,0x2E,0x34,0x2E,0x02,0x02,0x34,0x2E,0x34,0x2E,0x34,0x02,0x24,
+ 0x24,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x24,
+ 0x24,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x24,
+ 0x24,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x24,
+ 0x24,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x24,
+ 0x24,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x24,
+ 0x15,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_59_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x07,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x15,0x15,0x15,0x07,0x02,0x10,0x10,
+ 0x07,0x2A,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10,
+ 0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10,
+ 0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10,
+ 0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10,
+ 0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10,
+ 0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_60_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0B,0x17,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0B,0x0B,0x17,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0A,0x0B,0x0B,0x0B,0x17,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0A,0x0A,0x0B,0x0B,0x0B,0x17,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x10,0x02,0x0A,0x0A,0x0B,0x0B,0x0B,0x17,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x02,0x0A,0x0A,0x0B,0x0B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x00,0x10,0x10,0x02,0x0A,0x0A,0x0B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x00,0x00,0x10,0x10,0x02,0x0A,0x0A,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x00,0x00,0x00,0x10,0x10,0x02,0x0A,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x00,0x00,0x00,0x00,0x10,0x10,0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_61_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,
+ 0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,
+ 0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,
+ 0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,
+ 0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_62_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x16,0x0F,0x0F,0x0F,0x16,0x1B,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x0F,0x0F,0x1B,0x0F,0x0F,0x1B,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x0F,0x0F,0x1B,0x0F,0x0F,0x1B,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x09,0x09,0x09,0x09,0x0B,0x0B,0x09,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x09,0x09,0x0B,0x0B,0x0B,0x0B,0x09,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x09,0x09,0x0B,0x09,0x0B,0x09,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_63_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x1B,0x1B,0x16,0x0F,0x0F,0x0F,0x16,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x1B,0x1B,0x0F,0x0F,0x16,0x1B,0x1B,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x1B,0x1B,0x0F,0x0F,0x1B,0x1B,0x1B,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x09,0x0B,0x09,0x09,0x16,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x1B,0x1B,0x17,0x0B,0x02,
+ 0x09,0x0B,0x16,0x09,0x09,0x09,0x16,0x0B,0x17,0x1B,0x1B,0x1B,0x17,0x0B,0x0B,0x02,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x17,0x0B,0x0B,0x0B,0x02,
+ 0x09,0x0B,0x09,0x0B,0x09,0x09,0x0B,0x0B,0x17,0x1B,0x17,0x0B,0x0B,0x0B,0x0A,0x02,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x17,0x17,0x0B,0x0B,0x0B,0x0A,0x0A,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x17,0x0B,0x0B,0x0B,0x0A,0x0A,0x02,0x10,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0B,0x0B,0x0A,0x0A,0x02,0x10,0x10,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0B,0x0A,0x0A,0x02,0x10,0x10,0x00,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0A,0x0A,0x02,0x10,0x10,0x00,0x00,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0A,0x02,0x10,0x10,0x00,0x00,0x00,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,0x10,0x10,0x00,0x00,0x00,0x00,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x00,0x00,0x00,0x00,0x00,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_64_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x15,0x15,0x08,0x08,0x15,0x15,0x08,
+ 0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x15,
+ 0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_65_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x15,0x15,0x15,0x15,0x08,0x08,0x08,0x15,0x15,0x08,0x08,0x15,0x15,0x08,
+ 0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x15,0x15,0x15,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x15,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_66_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x15,0x15,0x15,0x15,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_67_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,
+ 0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x15,0x15,0x15,0x08,0x08,0x08,0x3A,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_68_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x15,0x15,0x15,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_69_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x04,0x04,0x04,0x05,0x04,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x04,0x03,0x03,0x05,0x05,0x04,0x05,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x04,0x05,0x01,0x05,0x04,0x05,0x01,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x04,0x04,0x01,0x01,0x04,0x01,0x04,0x05,0x01,
+ 0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x04,0x05,0x05,0x01,0x05,0x05,0x05,0x01,0x04,0x01,
+ 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x04,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x01,
+ 0x4B,0x4B,0x4B,0x4B,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x04,0x04,
+ 0x4B,0x4B,0x1C,0x04,0x03,0x05,0x05,0x05,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x01,
+ 0x4B,0x4B,0x1C,0x03,0x01,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x04,
+ 0x4B,0x4B,0x04,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x04,0x03,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x1F,0x04,0x03,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x1F,0x04,0x04,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x1F,0x1F,0x04,0x03,0x01,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x1F,0x1C,0x03,0x01,0x04,0x01,0x04,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,
+};
+uint8_t tileset_tile_70_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,
+ 0x01,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x01,
+ 0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x01,
+ 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,
+ 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,
+ 0x04,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x04,
+ 0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,
+ 0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,
+ 0x01,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x01,
+ 0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x01,0x01,0x04,0x03,0x04,0x03,0x03,0x04,0x04,
+ 0x05,0x01,0x04,0x04,0x03,0x04,0x03,0x01,0x01,0x03,0x04,0x03,0x04,0x04,0x01,0x05,
+ 0x05,0x01,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x01,0x05,
+ 0x05,0x01,0x01,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x01,0x01,0x05,
+ 0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,
+ 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,
+};
+uint8_t tileset_tile_71_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x04,0x05,0x04,0x04,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x05,0x04,0x05,0x05,0x03,0x03,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x01,0x05,0x04,0x05,0x01,0x05,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x01,0x05,0x04,0x01,0x04,0x01,0x01,0x04,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x01,0x04,0x01,0x05,0x05,0x05,0x01,0x05,0x05,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x01,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x4B,0x4B,0x4B,0x4B,
+ 0x01,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x03,0x04,0x1C,0x4B,0x4B,
+ 0x04,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x03,0x1C,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x04,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x03,0x04,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x03,0x04,0x1F,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x04,0x04,0x1F,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,0x01,0x03,0x04,0x1F,0x1F,
+ 0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x04,0x01,0x04,0x01,0x03,0x1C,0x1F,
+};
+uint8_t tileset_tile_72_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x11,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x00,0x00,0x00,0x00,0x00,0x0C,0x11,0x11,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x00,0x00,0x00,0x00,0x0C,0x11,0x11,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x00,0x00,0x00,0x0C,0x0C,0x11,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x00,0x00,0x0C,0x11,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x00,0x0C,0x11,0x11,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x0C,0x11,0x11,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+};
+uint8_t tileset_tile_73_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+};
+uint8_t tileset_tile_74_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+};
+uint8_t tileset_tile_75_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x0C,0x00,0x00,0x00,0x00,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x00,0x00,0x00,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x0C,0x00,0x00,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x0C,0x00,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x0C,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x0C,
+};
+uint8_t tileset_tile_76_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x02,0x16,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x02,0x16,0x16,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x02,0x16,0x16,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,
+ 0x02,0x16,0x16,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,
+ 0x02,0x16,0x16,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,
+ 0x02,0x16,0x16,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,
+ 0x02,0x16,0x16,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,
+ 0x02,0x16,0x16,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x02,0x16,0x16,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x02,0x16,0x16,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x16,0x07,0x0F,0x09,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,
+ 0x02,0x0F,0x07,0x0F,0x09,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,
+ 0x02,0x0F,0x07,0x0F,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,
+ 0x02,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x0F,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_77_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,
+ 0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,
+ 0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,
+ 0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,
+ 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,
+ 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,
+ 0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_78_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,
+ 0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,
+ 0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,
+ 0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,
+ 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,
+ 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,
+ 0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_79_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x02,
+ 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x09,0x09,0x02,
+ 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x02,
+ 0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x09,0x02,
+ 0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x02,
+ 0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x09,0x02,
+ 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x02,
+ 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x09,0x09,0x02,
+ 0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x02,
+ 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x09,0x0F,0x07,0x09,0x02,
+ 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x09,0x0F,0x07,0x07,0x02,
+ 0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x0F,0x07,0x07,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+};
+uint8_t tileset_tile_80_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_81_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x13,
+ 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x13,
+ 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x13,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,0x06,0x06,0x06,0x06,0x0D,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_82_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x4B,0x4B,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0D,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_83_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x15,0x15,0x15,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_84_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,
+ 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x15,0x15,0x15,
+ 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,
+ 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,
+};
+uint8_t tileset_tile_85_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x1C,0x1C,0x03,0x01,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x04,
+ 0x1C,0x03,0x01,0x05,0x01,0x04,0x01,0x04,0x01,0x01,0x01,0x05,0x05,0x01,0x01,0x04,
+ 0x1C,0x03,0x01,0x01,0x05,0x01,0x04,0x04,0x04,0x01,0x01,0x05,0x05,0x01,0x04,0x04,
+ 0x1C,0x04,0x04,0x05,0x01,0x05,0x01,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x03,0x04,
+ 0x1C,0x04,0x01,0x01,0x05,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,
+ 0x1C,0x03,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x03,
+ 0x1C,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x03,0x04,0x03,0x03,
+ 0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x01,0x04,0x03,0x04,0x03,0x01,0x04,0x04,0x04,
+ 0x1F,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x01,0x03,0x04,0x01,0x01,0x01,0x01,0x04,
+ 0x1F,0x1F,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x01,0x01,
+ 0x4B,0x1F,0x04,0x04,0x03,0x03,0x03,0x04,0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,
+ 0x4B,0x1F,0x1F,0x04,0x04,0x03,0x03,0x03,0x03,0x01,0x04,0x01,0x01,0x01,0x01,0x01,
+ 0x4B,0x4B,0x1F,0x1C,0x1C,0x04,0x04,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x04,0x01,
+ 0x4B,0x4B,0x4B,0x1C,0x1C,0x1C,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x04,0x04,0x04,
+ 0x4B,0x4B,0x1F,0x1C,0x1C,0x1C,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x03,0x04,
+ 0x4B,0x1F,0x1F,0x1C,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x03,0x03,
+};
+uint8_t tileset_tile_86_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x05,0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x05,0x01,
+ 0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,
+ 0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,
+ 0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x01,0x01,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x04,
+ 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x04,0x03,0x03,
+ 0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,
+ 0x01,0x03,0x04,0x04,0x04,0x01,0x04,0x04,0x04,0x04,0x01,0x04,0x04,0x04,0x03,0x01,
+ 0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,
+ 0x01,0x01,0x04,0x04,0x04,0x04,0x01,0x04,0x04,0x01,0x04,0x04,0x04,0x04,0x01,0x01,
+ 0x01,0x01,0x04,0x04,0x05,0x05,0x04,0x01,0x01,0x04,0x05,0x05,0x04,0x04,0x01,0x01,
+ 0x01,0x04,0x05,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x05,0x04,0x01,
+ 0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,
+ 0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,
+ 0x04,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x04,
+};
+uint8_t tileset_tile_87_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x04,0x01,0x01,0x01,0x01,0x05,0x05,0x05,0x01,0x04,0x04,0x01,0x01,0x03,0x1C,0x1C,
+ 0x04,0x01,0x01,0x05,0x05,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0x03,0x1C,
+ 0x04,0x04,0x01,0x05,0x05,0x01,0x01,0x04,0x04,0x04,0x01,0x05,0x01,0x01,0x03,0x1C,
+ 0x04,0x03,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x01,0x05,0x01,0x05,0x04,0x04,0x1C,
+ 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x05,0x01,0x01,0x04,0x1C,
+ 0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x03,0x1C,
+ 0x03,0x03,0x04,0x03,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x1C,
+ 0x04,0x04,0x04,0x01,0x03,0x04,0x03,0x04,0x01,0x04,0x04,0x04,0x04,0x04,0x04,0x1C,
+ 0x04,0x01,0x01,0x01,0x01,0x04,0x03,0x01,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x1F,
+ 0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x1F,0x1F,
+ 0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x04,0x1F,0x4B,
+ 0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x03,0x03,0x03,0x03,0x04,0x04,0x1F,0x1F,0x4B,
+ 0x01,0x04,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x04,0x04,0x1C,0x1C,0x1F,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x1C,0x1C,0x1C,0x4B,0x4B,0x4B,
+ 0x04,0x03,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x04,0x1C,0x1C,0x1C,0x1F,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1F,0x1F,0x4B,
+};
+uint8_t tileset_tile_88_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x25,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x25,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x22,0x22,0x25,0x07,0x07,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x22,0x25,0x25,0x25,0x07,0x07,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x25,0x25,0x25,0x25,0x25,0x07,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x0C,0x25,0x25,0x25,0x25,0x25,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_89_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0A,0x0B,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0A,0x0B,0x0B,0x0B,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0A,0x0B,0x0B,0x0A,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0B,0x0B,0x0A,0x0C,0x22,0x0B,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0A,0x0B,0x0B,0x0C,0x22,0x0B,0x0B,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0C,0x0C,0x25,0x25,0x25,0x0C,0x0B,0x0B,0x0B,
+};
+uint8_t tileset_tile_90_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0B,0x0A,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0B,0x0B,0x0B,0x0A,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0A,0x0B,0x0B,0x0A,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0B,0x22,0x0C,0x0A,0x0B,0x0B,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0B,0x0B,0x22,0x0C,0x0B,0x0B,0x0A,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0B,0x0B,0x0B,0x0C,0x25,0x25,0x25,0x0C,0x0C,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_91_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x25,0x0C,0x22,0x22,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x25,0x0C,0x22,0x22,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x07,0x07,0x25,0x22,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x07,0x07,0x25,0x25,0x25,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x07,0x25,0x25,0x25,0x25,0x25,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x25,0x25,0x25,0x25,0x25,0x0C,0x02,
+};
+uint8_t tileset_tile_92_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,
+ 0x02,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,
+ 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x07,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,
+ 0x02,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,
+ 0x02,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,
+ 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x07,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,
+ 0x02,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,
+};
+uint8_t tileset_tile_93_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,
+ 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,
+ 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,
+ 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,
+ 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,
+ 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,
+ 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,
+ 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,
+ 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,
+ 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,
+ 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,
+};
+uint8_t tileset_tile_94_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,
+ 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,
+ 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,
+ 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,
+ 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,
+ 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,
+ 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,
+ 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,
+ 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,
+ 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,
+ 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,
+};
+uint8_t tileset_tile_95_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x02,
+ 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x07,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x07,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x07,0x02,
+ 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x02,
+ 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x07,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x07,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x07,0x02,
+ 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+};
+uint8_t tileset_tile_96_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_97_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_98_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,
+};
+uint8_t tileset_tile_99_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0B,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_100_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x0D,0x0B,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_101_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x1F,0x1F,0x1C,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x04,
+ 0x1F,0x1C,0x1C,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x04,0x05,
+ 0x1F,0x1C,0x1C,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x01,0x05,0x04,0x05,0x01,
+ 0x1F,0x1C,0x1C,0x04,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x04,0x05,0x01,
+ 0x1F,0x1C,0x1C,0x04,0x03,0x03,0x03,0x05,0x05,0x01,0x05,0x05,0x05,0x01,0x04,0x01,
+ 0x1F,0x1F,0x1C,0x04,0x03,0x03,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,
+ 0x4B,0x1F,0x1C,0x1C,0x04,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x01,
+ 0x4B,0x1F,0x1C,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x04,0x04,
+ 0x4B,0x4B,0x1C,0x04,0x03,0x05,0x05,0x05,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x01,
+ 0x4B,0x4B,0x1C,0x03,0x01,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x04,
+ 0x4B,0x4B,0x04,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x04,0x03,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x1F,0x04,0x03,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x1F,0x04,0x04,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x1F,0x1F,0x04,0x03,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x1F,0x1C,0x03,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,
+};
+uint8_t tileset_tile_102_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,
+ 0x01,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x01,
+ 0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x01,
+ 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,
+ 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,
+ 0x04,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x04,
+ 0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,
+ 0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,
+ 0x01,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x01,
+ 0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x01,0x01,0x04,0x03,0x04,0x03,0x03,0x04,0x04,
+ 0x05,0x01,0x04,0x04,0x03,0x04,0x03,0x01,0x01,0x03,0x04,0x03,0x04,0x04,0x01,0x05,
+ 0x05,0x01,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x01,0x05,
+ 0x05,0x01,0x01,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x01,0x01,0x05,
+ 0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,
+ 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,
+};
+uint8_t tileset_tile_103_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x04,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x1C,0x1F,0x1F,
+ 0x05,0x04,0x05,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x1C,0x1C,0x1F,
+ 0x01,0x05,0x04,0x05,0x01,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x1C,0x1C,0x1F,
+ 0x01,0x05,0x04,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x03,0x03,0x04,0x1C,0x1C,0x1F,
+ 0x01,0x04,0x01,0x05,0x05,0x05,0x01,0x05,0x05,0x03,0x03,0x03,0x04,0x1C,0x1C,0x1F,
+ 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x03,0x03,0x04,0x1C,0x1F,0x1F,
+ 0x01,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x04,0x1C,0x1C,0x1F,0x4B,
+ 0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x1C,0x1F,0x4B,
+ 0x01,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x03,0x04,0x1C,0x4B,0x4B,
+ 0x04,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x03,0x1C,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x04,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x03,0x04,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x03,0x04,0x1F,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x04,0x04,0x1F,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x03,0x04,0x1F,0x1F,
+ 0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x03,0x1C,0x1F,
+};
+uint8_t tileset_tile_104_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x07,0x0C,0x25,0x25,0x25,0x25,0x25,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x07,0x0C,0x25,0x25,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x10,0x02,0x07,0x0C,0x25,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x17,0x10,0x02,0x07,0x0C,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x0B,0x17,0x10,0x02,0x07,0x0C,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x1B,0x0B,0x17,0x10,0x02,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x10,0x1B,0x0B,0x17,0x10,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x17,0x10,0x1B,0x0B,0x17,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x17,0x1B,0x10,0x1B,0x0B,0x17,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x17,0x1B,0x1B,0x10,0x1B,0x0B,0x17,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x10,0x1B,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x10,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+};
+uint8_t tileset_tile_105_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0A,0x0A,0x0A,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0A,0x0A,0x0A,0x0C,0x22,0x0A,0x0A,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0A,0x0A,0x0A,0x0C,0x22,0x0A,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0A,0x0A,0x0A,0x0A,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0A,0x0A,0x0A,0x0A,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0C,0x0C,0x0C,0x25,0x0A,0x0A,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+};
+uint8_t tileset_tile_106_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0A,0x0A,0x0A,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x0A,0x0A,0x22,0x0C,0x0A,0x0A,0x0A,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0A,0x22,0x0C,0x0A,0x0A,0x0A,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0A,0x0A,0x0A,0x0A,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0A,0x0A,0x0A,0x0A,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0A,0x0A,0x25,0x0C,0x0C,0x0C,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x0B,0x0B,0x1B,0x1B,0x1B,0x1B,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,
+};
+uint8_t tileset_tile_107_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x25,0x25,0x25,0x25,0x25,0x0C,0x07,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x25,0x25,0x0C,0x07,0x02,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x25,0x0C,0x07,0x02,0x10,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x0C,0x07,0x02,0x10,0x17,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x0C,0x07,0x02,0x10,0x17,0x0B,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x02,0x10,0x17,0x0B,0x1B,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x17,0x0B,0x1B,0x10,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x17,0x0B,0x1B,0x10,0x17,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x17,0x0B,0x1B,0x10,0x1B,0x17,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x17,0x0B,0x1B,0x10,0x1B,0x1B,0x17,0x02,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1B,0x10,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x10,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x1B,0x1B,0x1B,0x1B,0x1B,0x0B,0x0B,0x02,0x10,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+};
+uint8_t tileset_tile_108_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x02,0x12,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+};
+uint8_t tileset_tile_109_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x07,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x07,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x02,
+ 0x02,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x02,
+};
+uint8_t tileset_tile_110_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,
+ 0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1E,
+ 0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D,
+ 0x1D,0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x1D,
+ 0x1D,0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x1D,
+ 0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D,
+ 0x1D,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x1D,
+ 0x1D,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x1D,
+};
+uint8_t tileset_tile_111_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x00,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+};
+uint8_t tileset_tile_112_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x4B,0x4B,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_113_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,0x06,0x06,0x06,0x06,0x0D,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x13,
+ 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x13,
+ 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x13,
+ 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x13,
+ 0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_114_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x0D,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_115_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0D,0x13,0x13,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0B,0x0D,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_116_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x13,0x13,0x0D,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,
+ 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_117_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x47,0x47,0x03,0x01,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x04,
+ 0x47,0x03,0x01,0x05,0x01,0x04,0x49,0x04,0x01,0x01,0x01,0x05,0x05,0x01,0x01,0x04,
+ 0x1C,0x03,0x01,0x01,0x05,0x01,0x04,0x04,0x04,0x01,0x01,0x05,0x05,0x01,0x04,0x04,
+ 0x1C,0x04,0x04,0x05,0x01,0x05,0x01,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x03,0x04,
+ 0x1C,0x04,0x01,0x01,0x05,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,
+ 0x1C,0x03,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x03,
+ 0x1C,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x03,0x04,0x03,0x03,
+ 0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x01,0x04,0x03,0x04,0x03,0x01,0x04,0x04,0x04,
+ 0x1F,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x01,0x03,0x04,0x01,0x01,0x01,0x01,0x04,
+ 0x1F,0x1F,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x01,0x01,
+ 0x4B,0x1F,0x04,0x04,0x03,0x03,0x03,0x04,0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,
+ 0x4B,0x1F,0x1F,0x04,0x04,0x03,0x03,0x03,0x03,0x01,0x04,0x01,0x01,0x01,0x01,0x01,
+ 0x4B,0x4B,0x1F,0x1C,0x1C,0x1C,0x1C,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x04,0x01,
+ 0x4B,0x4B,0x4B,0x1C,0x1C,0x1C,0x1C,0x1C,0x03,0x03,0x04,0x03,0x04,0x04,0x04,0x04,
+ 0x4B,0x4B,0x1F,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x03,0x03,0x04,0x03,0x04,0x03,0x04,
+ 0x4B,0x1F,0x1F,0x1C,0x1C,0x1C,0x1C,0x1C,0x04,0x04,0x03,0x03,0x04,0x04,0x03,0x03,
+};
+uint8_t tileset_tile_118_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x05,0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x05,0x01,
+ 0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,
+ 0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,
+ 0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x01,0x01,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x04,
+ 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x04,0x03,0x03,
+ 0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,
+ 0x01,0x03,0x04,0x04,0x04,0x01,0x04,0x04,0x04,0x04,0x01,0x04,0x04,0x04,0x03,0x01,
+ 0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,
+ 0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x01,0x01,
+ 0x01,0x01,0x04,0x04,0x03,0x01,0x04,0x04,0x04,0x04,0x01,0x03,0x04,0x04,0x01,0x01,
+ 0x01,0x04,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x04,0x01,
+ 0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x03,0x03,0x04,0x03,0x03,0x04,0x03,0x04,0x04,
+ 0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,
+ 0x03,0x03,0x03,0x03,0x37,0x37,0x37,0x03,0x03,0x37,0x37,0x37,0x03,0x03,0x03,0x03,
+};
+uint8_t tileset_tile_119_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x04,0x01,0x01,0x01,0x01,0x05,0x05,0x05,0x01,0x04,0x04,0x01,0x01,0x03,0x47,0x47,
+ 0x04,0x01,0x01,0x05,0x05,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0x03,0x47,
+ 0x04,0x04,0x01,0x05,0x05,0x01,0x01,0x04,0x04,0x04,0x01,0x05,0x01,0x01,0x03,0x1C,
+ 0x04,0x03,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x01,0x05,0x01,0x05,0x04,0x04,0x1C,
+ 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x05,0x01,0x01,0x04,0x1C,
+ 0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x03,0x1C,
+ 0x03,0x03,0x04,0x03,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x1C,
+ 0x04,0x04,0x04,0x01,0x03,0x04,0x03,0x04,0x01,0x04,0x04,0x04,0x04,0x04,0x04,0x1C,
+ 0x04,0x01,0x01,0x01,0x01,0x04,0x03,0x01,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x1F,
+ 0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x1F,0x1F,
+ 0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x04,0x1F,0x4B,
+ 0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x03,0x03,0x03,0x03,0x04,0x04,0x1F,0x1F,0x4B,
+ 0x01,0x04,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1F,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1C,0x4B,0x4B,0x4B,
+ 0x04,0x03,0x04,0x03,0x04,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1F,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1F,0x1F,0x4B,
+};
+uint8_t tileset_tile_120_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0B,0x17,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0B,0x0B,0x17,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0A,0x0B,0x0B,0x0B,0x17,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0A,0x0A,0x0B,0x0B,0x0B,0x17,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x10,0x02,0x0A,0x0A,0x0B,0x0B,0x0B,0x17,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x02,0x0A,0x0A,0x0B,0x0B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x00,0x10,0x10,0x02,0x0A,0x0A,0x0B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x00,0x00,0x10,0x10,0x02,0x0A,0x0A,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x00,0x00,0x00,0x10,0x10,0x02,0x0A,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x00,0x00,0x00,0x00,0x10,0x10,0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_121_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,
+ 0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,
+ 0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,
+ 0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,
+ 0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_122_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x16,0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x0F,0x1B,0x1B,0x0F,0x1B,0x0F,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x0F,0x0F,0x1B,0x0F,0x0F,0x0F,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x09,0x0B,0x09,0x0B,0x09,0x0B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x09,0x16,0x0B,0x09,0x0B,0x09,0x0B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x09,0x09,0x0B,0x09,0x0B,0x09,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_123_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x16,0x0F,0x0F,0x1B,0x16,0x0F,0x0F,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x09,0x0B,0x09,0x0B,0x09,0x09,0x16,0x0B,0x17,0x1B,0x1B,0x1B,0x1B,0x17,0x0B,0x02,
+ 0x09,0x09,0x16,0x0B,0x09,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x1B,0x17,0x0B,0x0B,0x02,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x17,0x0B,0x0B,0x0B,0x02,
+ 0x09,0x0B,0x09,0x0B,0x09,0x09,0x0B,0x0B,0x17,0x1B,0x17,0x0B,0x0B,0x0B,0x0A,0x02,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x17,0x17,0x0B,0x0B,0x0B,0x0A,0x0A,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x17,0x0B,0x0B,0x0B,0x0A,0x0A,0x02,0x10,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0B,0x0B,0x0A,0x0A,0x02,0x10,0x10,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0B,0x0A,0x0A,0x02,0x10,0x10,0x00,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0A,0x0A,0x02,0x10,0x10,0x00,0x00,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0A,0x02,0x10,0x10,0x00,0x00,0x00,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,0x10,0x10,0x00,0x00,0x00,0x00,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x00,0x00,0x00,0x00,0x00,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_124_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x07,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x2D,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,
+ 0x00,0x00,0x10,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x10,
+};
+uint8_t tileset_tile_125_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x0F,0x0F,0x07,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x07,0x0F,0x0F,0x02,
+ 0x02,0x0F,0x0F,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x0F,0x0F,0x02,
+ 0x02,0x0F,0x0F,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x0F,0x0F,0x02,
+ 0x02,0x0F,0x0F,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x0F,0x0F,0x02,
+ 0x02,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x02,
+ 0x02,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x02,
+ 0x02,0x07,0x07,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x02,
+ 0x07,0x1B,0x0A,0x07,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x02,
+ 0x07,0x0A,0x0A,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_126_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x1D,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x1D,
+ 0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D,
+ 0x1D,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x1D,
+ 0x1D,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x1D,
+ 0x1D,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x1D,
+ 0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D,
+ 0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1E,
+ 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_127_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x07,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x07,0x02,0x10,0x00,
+ 0x07,0x2D,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00,
+ 0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00,
+ 0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00,
+ 0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00,
+ 0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00,
+ 0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x00,
+};
+uint8_t *tileset_tiles_data[128] = {
+ tileset_tile_0_data,
+ tileset_tile_1_data,
+ tileset_tile_2_data,
+ tileset_tile_3_data,
+ tileset_tile_4_data,
+ tileset_tile_5_data,
+ tileset_tile_6_data,
+ tileset_tile_7_data,
+ tileset_tile_8_data,
+ tileset_tile_9_data,
+ tileset_tile_10_data,
+ tileset_tile_11_data,
+ tileset_tile_12_data,
+ tileset_tile_13_data,
+ tileset_tile_14_data,
+ tileset_tile_15_data,
+ tileset_tile_16_data,
+ tileset_tile_17_data,
+ tileset_tile_18_data,
+ tileset_tile_19_data,
+ tileset_tile_20_data,
+ tileset_tile_21_data,
+ tileset_tile_22_data,
+ tileset_tile_23_data,
+ tileset_tile_24_data,
+ tileset_tile_25_data,
+ tileset_tile_26_data,
+ tileset_tile_27_data,
+ tileset_tile_28_data,
+ tileset_tile_29_data,
+ tileset_tile_30_data,
+ tileset_tile_31_data,
+ tileset_tile_32_data,
+ tileset_tile_33_data,
+ tileset_tile_34_data,
+ tileset_tile_35_data,
+ tileset_tile_36_data,
+ tileset_tile_37_data,
+ tileset_tile_38_data,
+ tileset_tile_39_data,
+ tileset_tile_40_data,
+ tileset_tile_41_data,
+ tileset_tile_42_data,
+ tileset_tile_43_data,
+ tileset_tile_44_data,
+ tileset_tile_45_data,
+ tileset_tile_46_data,
+ tileset_tile_47_data,
+ tileset_tile_48_data,
+ tileset_tile_49_data,
+ tileset_tile_50_data,
+ tileset_tile_51_data,
+ tileset_tile_52_data,
+ tileset_tile_53_data,
+ tileset_tile_54_data,
+ tileset_tile_55_data,
+ tileset_tile_56_data,
+ tileset_tile_57_data,
+ tileset_tile_58_data,
+ tileset_tile_59_data,
+ tileset_tile_60_data,
+ tileset_tile_61_data,
+ tileset_tile_62_data,
+ tileset_tile_63_data,
+ tileset_tile_64_data,
+ tileset_tile_65_data,
+ tileset_tile_66_data,
+ tileset_tile_67_data,
+ tileset_tile_68_data,
+ tileset_tile_69_data,
+ tileset_tile_70_data,
+ tileset_tile_71_data,
+ tileset_tile_72_data,
+ tileset_tile_73_data,
+ tileset_tile_74_data,
+ tileset_tile_75_data,
+ tileset_tile_76_data,
+ tileset_tile_77_data,
+ tileset_tile_78_data,
+ tileset_tile_79_data,
+ tileset_tile_80_data,
+ tileset_tile_81_data,
+ tileset_tile_82_data,
+ tileset_tile_83_data,
+ tileset_tile_84_data,
+ tileset_tile_85_data,
+ tileset_tile_86_data,
+ tileset_tile_87_data,
+ tileset_tile_88_data,
+ tileset_tile_89_data,
+ tileset_tile_90_data,
+ tileset_tile_91_data,
+ tileset_tile_92_data,
+ tileset_tile_93_data,
+ tileset_tile_94_data,
+ tileset_tile_95_data,
+ tileset_tile_96_data,
+ tileset_tile_97_data,
+ tileset_tile_98_data,
+ tileset_tile_99_data,
+ tileset_tile_100_data,
+ tileset_tile_101_data,
+ tileset_tile_102_data,
+ tileset_tile_103_data,
+ tileset_tile_104_data,
+ tileset_tile_105_data,
+ tileset_tile_106_data,
+ tileset_tile_107_data,
+ tileset_tile_108_data,
+ tileset_tile_109_data,
+ tileset_tile_110_data,
+ tileset_tile_111_data,
+ tileset_tile_112_data,
+ tileset_tile_113_data,
+ tileset_tile_114_data,
+ tileset_tile_115_data,
+ tileset_tile_116_data,
+ tileset_tile_117_data,
+ tileset_tile_118_data,
+ tileset_tile_119_data,
+ tileset_tile_120_data,
+ tileset_tile_121_data,
+ tileset_tile_122_data,
+ tileset_tile_123_data,
+ tileset_tile_124_data,
+ tileset_tile_125_data,
+ tileset_tile_126_data,
+ tileset_tile_127_data,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tileset.png b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tileset.png
new file mode 100644
index 0000000..c20a947
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tileset.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/main.c b/frontends/calculator/CEdev/examples/gfx_tilemap/src/main.c
new file mode 100644
index 0000000..7845bf9
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/main.c
@@ -0,0 +1,102 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Include the graphics */
+#include "gfx/tiles_gfx.h"
+
+/* Include the external map data */
+extern uint8_t tilemap_map[];
+
+/* Tilemap defines */
+#define TILE_WIDTH 16
+#define TILE_HEIGHT 16
+
+#define TILEMAP_WIDTH 32
+#define TILEMAP_HEIGHT 25
+
+#define TILEMAP_DRAW_WIDTH 20
+#define TILEMAP_DRAW_HEIGHT 14
+
+#define Y_OFFSET 16
+#define X_OFFSET 0
+
+void main(void) {
+ sk_key_t key;
+ unsigned int x_offset = 0;
+ unsigned int y_offset = 0;
+ gfx_tilemap_t tilemap;
+
+ /* Initialize the tilemap structure */
+ tilemap.map = tilemap_map;
+ tilemap.tiles = tileset_tiles;
+ tilemap.type_width = gfx_tile_16_pixel;
+ tilemap.type_height = gfx_tile_16_pixel;
+ tilemap.tile_height = TILE_HEIGHT;
+ tilemap.tile_width = TILE_WIDTH;
+ tilemap.draw_height = TILEMAP_DRAW_HEIGHT;
+ tilemap.draw_width = TILEMAP_DRAW_WIDTH;
+ tilemap.height = TILEMAP_HEIGHT;
+ tilemap.width = TILEMAP_WIDTH;
+ tilemap.y_loc = Y_OFFSET;
+ tilemap.x_loc = X_OFFSET;
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette */
+ gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0);
+ gfx_SetColor(gfx_white);
+
+ /* Draw to buffer to avoid tearing */
+ gfx_SetDrawBuffer();
+
+ /* Set monospace font with width of 8 */
+ gfx_SetMonospaceFont(8);
+
+ /* Wait for the enter key to quit */
+ while ((key = os_GetCSC()) != sk_Enter) {
+
+ /* Draw tilemap and coords */
+ gfx_Tilemap(&tilemap, x_offset, y_offset);
+ gfx_FillRectangle(0, 0, 320, 16);
+ gfx_PrintStringXY("x offset:", 48, 4);
+ gfx_PrintUInt(x_offset, 4);
+ gfx_PrintString(" y offset:");
+ gfx_PrintUInt(y_offset, 4);
+
+ /* Do something based on the keypress */
+ switch (key) {
+ case sk_Down:
+ if (y_offset < (TILEMAP_HEIGHT * TILE_HEIGHT) - (TILEMAP_DRAW_HEIGHT * TILE_HEIGHT))
+ y_offset += TILE_HEIGHT;
+ break;
+ case sk_Left:
+ if (x_offset)
+ x_offset -= TILE_WIDTH;
+ break;
+ case sk_Right:
+ if (x_offset < (TILEMAP_WIDTH * TILE_WIDTH) - (TILEMAP_DRAW_WIDTH * TILE_WIDTH))
+ x_offset += TILE_WIDTH;
+ break;
+ case sk_Up:
+ if (y_offset)
+ y_offset -= TILE_HEIGHT;
+ break;
+ default:
+ break;
+ }
+ gfx_SwapDraw();
+ }
+
+ /* Close the graphics and return to the OS */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/tilemapdata.c b/frontends/calculator/CEdev/examples/gfx_tilemap/src/tilemapdata.c
new file mode 100644
index 0000000..d443c6c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/tilemapdata.c
@@ -0,0 +1,30 @@
+#include <stdint.h>
+
+/* This is the data that is displayed with the tilemap */
+uint8_t tilemap_map[] = {
+ 0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22,0x14,0x15,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22,
+ 0x30,0x54,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,0x04,0x05,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x50,0x51,0x51,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x10,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x40,0x42,0x04,0x05,0x14,0x15,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x70,0x71,0x71,0x72,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x00,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x20,0x22,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x00,0x00,0x01,0x00,0x01,0x10,0x10,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x10,0x10,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x30,0x32,0x14,0x15,0x24,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x44,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,
+ 0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/autotester.json b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/autotester.json
new file mode 100644
index 0000000..9a2cd06
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/autotester.json
@@ -0,0 +1,43 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp",
+ "src/gfx/var_gfx.8xv"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "delay|100",
+ "key|right",
+ "key|right",
+ "key|down",
+ "key|down",
+ "hashWait|2",
+ "key|enter",
+ "hashWait|3"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Initial sprite map state (top left)",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "3C2D7C36" ]
+ },
+ "2": {
+ "description": "Moving a bit to the bottom right",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "F0C14AE9" ]
+ },
+ "3": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44", "43BF8092", "5ACF1C01" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/makefile b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/readme.md b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/readme.md
new file mode 100644
index 0000000..83c687b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/readme.md
@@ -0,0 +1,10 @@
+### GraphX Simple Appvar Tilemap Demo
+
+An example of tilemaping using a sequence of tiles and the keypad. Data for the tilemap is stored within an appvar.
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/screenshot.gif b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/screenshot.gif
new file mode 100644
index 0000000..741067c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/convpng.ini
new file mode 100644
index 0000000..ebcba17
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/convpng.ini
@@ -0,0 +1,14 @@
+// Appvar to place all graphics in
+
+#AppvarC : var_gfx
+#IncludePalettes : tiles_gfx
+#PNGImages :
+ tileset
+
+// The group for the tileset
+
+#GroupC : tiles_gfx
+#TransparentColor : 255,201,14
+#Tilemap : 16,16,true
+#PNGImages :
+ tileset
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.c
new file mode 100644
index 0000000..7243683
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.c
@@ -0,0 +1,4 @@
+// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.h b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.h
new file mode 100644
index 0000000..e86b1ce
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.h
@@ -0,0 +1,10 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __tiles_gfx__
+#define __tiles_gfx__
+#include <stdint.h>
+
+#define tiles_gfx_transparent_color_index 0
+
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.c
new file mode 100644
index 0000000..f4abe71
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.c
@@ -0,0 +1,134 @@
+// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
+uint8_t *tileset_tiles_data[128] = {
+ (uint8_t*)0,
+ (uint8_t*)258,
+ (uint8_t*)516,
+ (uint8_t*)774,
+ (uint8_t*)1032,
+ (uint8_t*)1290,
+ (uint8_t*)1548,
+ (uint8_t*)1806,
+ (uint8_t*)2064,
+ (uint8_t*)2322,
+ (uint8_t*)2580,
+ (uint8_t*)2838,
+ (uint8_t*)3096,
+ (uint8_t*)3354,
+ (uint8_t*)3612,
+ (uint8_t*)3870,
+ (uint8_t*)4128,
+ (uint8_t*)4386,
+ (uint8_t*)4644,
+ (uint8_t*)4902,
+ (uint8_t*)5160,
+ (uint8_t*)5418,
+ (uint8_t*)5676,
+ (uint8_t*)5934,
+ (uint8_t*)6192,
+ (uint8_t*)6450,
+ (uint8_t*)6708,
+ (uint8_t*)6966,
+ (uint8_t*)7224,
+ (uint8_t*)7482,
+ (uint8_t*)7740,
+ (uint8_t*)7998,
+ (uint8_t*)8256,
+ (uint8_t*)8514,
+ (uint8_t*)8772,
+ (uint8_t*)9030,
+ (uint8_t*)9288,
+ (uint8_t*)9546,
+ (uint8_t*)9804,
+ (uint8_t*)10062,
+ (uint8_t*)10320,
+ (uint8_t*)10578,
+ (uint8_t*)10836,
+ (uint8_t*)11094,
+ (uint8_t*)11352,
+ (uint8_t*)11610,
+ (uint8_t*)11868,
+ (uint8_t*)12126,
+ (uint8_t*)12384,
+ (uint8_t*)12642,
+ (uint8_t*)12900,
+ (uint8_t*)13158,
+ (uint8_t*)13416,
+ (uint8_t*)13674,
+ (uint8_t*)13932,
+ (uint8_t*)14190,
+ (uint8_t*)14448,
+ (uint8_t*)14706,
+ (uint8_t*)14964,
+ (uint8_t*)15222,
+ (uint8_t*)15480,
+ (uint8_t*)15738,
+ (uint8_t*)15996,
+ (uint8_t*)16254,
+ (uint8_t*)16512,
+ (uint8_t*)16770,
+ (uint8_t*)17028,
+ (uint8_t*)17286,
+ (uint8_t*)17544,
+ (uint8_t*)17802,
+ (uint8_t*)18060,
+ (uint8_t*)18318,
+ (uint8_t*)18576,
+ (uint8_t*)18834,
+ (uint8_t*)19092,
+ (uint8_t*)19350,
+ (uint8_t*)19608,
+ (uint8_t*)19866,
+ (uint8_t*)20124,
+ (uint8_t*)20382,
+ (uint8_t*)20640,
+ (uint8_t*)20898,
+ (uint8_t*)21156,
+ (uint8_t*)21414,
+ (uint8_t*)21672,
+ (uint8_t*)21930,
+ (uint8_t*)22188,
+ (uint8_t*)22446,
+ (uint8_t*)22704,
+ (uint8_t*)22962,
+ (uint8_t*)23220,
+ (uint8_t*)23478,
+ (uint8_t*)23736,
+ (uint8_t*)23994,
+ (uint8_t*)24252,
+ (uint8_t*)24510,
+ (uint8_t*)24768,
+ (uint8_t*)25026,
+ (uint8_t*)25284,
+ (uint8_t*)25542,
+ (uint8_t*)25800,
+ (uint8_t*)26058,
+ (uint8_t*)26316,
+ (uint8_t*)26574,
+ (uint8_t*)26832,
+ (uint8_t*)27090,
+ (uint8_t*)27348,
+ (uint8_t*)27606,
+ (uint8_t*)27864,
+ (uint8_t*)28122,
+ (uint8_t*)28380,
+ (uint8_t*)28638,
+ (uint8_t*)28896,
+ (uint8_t*)29154,
+ (uint8_t*)29412,
+ (uint8_t*)29670,
+ (uint8_t*)29928,
+ (uint8_t*)30186,
+ (uint8_t*)30444,
+ (uint8_t*)30702,
+ (uint8_t*)30960,
+ (uint8_t*)31218,
+ (uint8_t*)31476,
+ (uint8_t*)31734,
+ (uint8_t*)31992,
+ (uint8_t*)32250,
+ (uint8_t*)32508,
+ (uint8_t*)32766,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.png b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.png
new file mode 100644
index 0000000..c20a947
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.8xv b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.8xv
new file mode 100644
index 0000000..20f2b3e
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.8xv
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.c
new file mode 100644
index 0000000..3b84b3f
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.c
@@ -0,0 +1,31 @@
+// convpng
+#include <stdint.h>
+#include "var_gfx.h"
+
+#include <fileioc.h>
+uint8_t *var_gfx[2] = {
+ (uint8_t*)0,
+ (uint8_t*)33024,
+};
+
+bool var_gfx_init(void) {
+ unsigned int data, i;
+ ti_var_t appvar;
+
+ ti_CloseAll();
+
+ appvar = ti_Open("var_gfx", "r");
+ data = (unsigned int)ti_GetDataPtr(appvar) - (unsigned int)var_gfx[0];
+ for (i = 0; i < var_gfx_num; i++) {
+ var_gfx[i] += data;
+ }
+
+ ti_CloseAll();
+
+ data = (unsigned int)var_gfx[0] - (unsigned int)tileset_tiles_data[0];
+ for (i = 0; i < tileset_tiles_num; i++) {
+ tileset_tiles_data[i] += data;
+ }
+
+ return (bool)appvar;
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.h b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.h
new file mode 100644
index 0000000..d472794
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.h
@@ -0,0 +1,148 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __var_gfx__
+#define __var_gfx__
+#include <stdint.h>
+
+#include <stdbool.h>
+
+#define var_gfx_num 2
+
+extern uint8_t *var_gfx[2];
+#define tileset ((gfx_sprite_t*)var_gfx[0])
+#define tileset_tiles_num 128
+extern uint8_t *tileset_tiles_data[128];
+#define tileset_tiles ((gfx_sprite_t**)tileset_tiles_data)
+#define tileset_tile_0 ((gfx_sprite_t*)tileset_tiles_data[0])
+#define tileset_tile_1 ((gfx_sprite_t*)tileset_tiles_data[1])
+#define tileset_tile_2 ((gfx_sprite_t*)tileset_tiles_data[2])
+#define tileset_tile_3 ((gfx_sprite_t*)tileset_tiles_data[3])
+#define tileset_tile_4 ((gfx_sprite_t*)tileset_tiles_data[4])
+#define tileset_tile_5 ((gfx_sprite_t*)tileset_tiles_data[5])
+#define tileset_tile_6 ((gfx_sprite_t*)tileset_tiles_data[6])
+#define tileset_tile_7 ((gfx_sprite_t*)tileset_tiles_data[7])
+#define tileset_tile_8 ((gfx_sprite_t*)tileset_tiles_data[8])
+#define tileset_tile_9 ((gfx_sprite_t*)tileset_tiles_data[9])
+#define tileset_tile_10 ((gfx_sprite_t*)tileset_tiles_data[10])
+#define tileset_tile_11 ((gfx_sprite_t*)tileset_tiles_data[11])
+#define tileset_tile_12 ((gfx_sprite_t*)tileset_tiles_data[12])
+#define tileset_tile_13 ((gfx_sprite_t*)tileset_tiles_data[13])
+#define tileset_tile_14 ((gfx_sprite_t*)tileset_tiles_data[14])
+#define tileset_tile_15 ((gfx_sprite_t*)tileset_tiles_data[15])
+#define tileset_tile_16 ((gfx_sprite_t*)tileset_tiles_data[16])
+#define tileset_tile_17 ((gfx_sprite_t*)tileset_tiles_data[17])
+#define tileset_tile_18 ((gfx_sprite_t*)tileset_tiles_data[18])
+#define tileset_tile_19 ((gfx_sprite_t*)tileset_tiles_data[19])
+#define tileset_tile_20 ((gfx_sprite_t*)tileset_tiles_data[20])
+#define tileset_tile_21 ((gfx_sprite_t*)tileset_tiles_data[21])
+#define tileset_tile_22 ((gfx_sprite_t*)tileset_tiles_data[22])
+#define tileset_tile_23 ((gfx_sprite_t*)tileset_tiles_data[23])
+#define tileset_tile_24 ((gfx_sprite_t*)tileset_tiles_data[24])
+#define tileset_tile_25 ((gfx_sprite_t*)tileset_tiles_data[25])
+#define tileset_tile_26 ((gfx_sprite_t*)tileset_tiles_data[26])
+#define tileset_tile_27 ((gfx_sprite_t*)tileset_tiles_data[27])
+#define tileset_tile_28 ((gfx_sprite_t*)tileset_tiles_data[28])
+#define tileset_tile_29 ((gfx_sprite_t*)tileset_tiles_data[29])
+#define tileset_tile_30 ((gfx_sprite_t*)tileset_tiles_data[30])
+#define tileset_tile_31 ((gfx_sprite_t*)tileset_tiles_data[31])
+#define tileset_tile_32 ((gfx_sprite_t*)tileset_tiles_data[32])
+#define tileset_tile_33 ((gfx_sprite_t*)tileset_tiles_data[33])
+#define tileset_tile_34 ((gfx_sprite_t*)tileset_tiles_data[34])
+#define tileset_tile_35 ((gfx_sprite_t*)tileset_tiles_data[35])
+#define tileset_tile_36 ((gfx_sprite_t*)tileset_tiles_data[36])
+#define tileset_tile_37 ((gfx_sprite_t*)tileset_tiles_data[37])
+#define tileset_tile_38 ((gfx_sprite_t*)tileset_tiles_data[38])
+#define tileset_tile_39 ((gfx_sprite_t*)tileset_tiles_data[39])
+#define tileset_tile_40 ((gfx_sprite_t*)tileset_tiles_data[40])
+#define tileset_tile_41 ((gfx_sprite_t*)tileset_tiles_data[41])
+#define tileset_tile_42 ((gfx_sprite_t*)tileset_tiles_data[42])
+#define tileset_tile_43 ((gfx_sprite_t*)tileset_tiles_data[43])
+#define tileset_tile_44 ((gfx_sprite_t*)tileset_tiles_data[44])
+#define tileset_tile_45 ((gfx_sprite_t*)tileset_tiles_data[45])
+#define tileset_tile_46 ((gfx_sprite_t*)tileset_tiles_data[46])
+#define tileset_tile_47 ((gfx_sprite_t*)tileset_tiles_data[47])
+#define tileset_tile_48 ((gfx_sprite_t*)tileset_tiles_data[48])
+#define tileset_tile_49 ((gfx_sprite_t*)tileset_tiles_data[49])
+#define tileset_tile_50 ((gfx_sprite_t*)tileset_tiles_data[50])
+#define tileset_tile_51 ((gfx_sprite_t*)tileset_tiles_data[51])
+#define tileset_tile_52 ((gfx_sprite_t*)tileset_tiles_data[52])
+#define tileset_tile_53 ((gfx_sprite_t*)tileset_tiles_data[53])
+#define tileset_tile_54 ((gfx_sprite_t*)tileset_tiles_data[54])
+#define tileset_tile_55 ((gfx_sprite_t*)tileset_tiles_data[55])
+#define tileset_tile_56 ((gfx_sprite_t*)tileset_tiles_data[56])
+#define tileset_tile_57 ((gfx_sprite_t*)tileset_tiles_data[57])
+#define tileset_tile_58 ((gfx_sprite_t*)tileset_tiles_data[58])
+#define tileset_tile_59 ((gfx_sprite_t*)tileset_tiles_data[59])
+#define tileset_tile_60 ((gfx_sprite_t*)tileset_tiles_data[60])
+#define tileset_tile_61 ((gfx_sprite_t*)tileset_tiles_data[61])
+#define tileset_tile_62 ((gfx_sprite_t*)tileset_tiles_data[62])
+#define tileset_tile_63 ((gfx_sprite_t*)tileset_tiles_data[63])
+#define tileset_tile_64 ((gfx_sprite_t*)tileset_tiles_data[64])
+#define tileset_tile_65 ((gfx_sprite_t*)tileset_tiles_data[65])
+#define tileset_tile_66 ((gfx_sprite_t*)tileset_tiles_data[66])
+#define tileset_tile_67 ((gfx_sprite_t*)tileset_tiles_data[67])
+#define tileset_tile_68 ((gfx_sprite_t*)tileset_tiles_data[68])
+#define tileset_tile_69 ((gfx_sprite_t*)tileset_tiles_data[69])
+#define tileset_tile_70 ((gfx_sprite_t*)tileset_tiles_data[70])
+#define tileset_tile_71 ((gfx_sprite_t*)tileset_tiles_data[71])
+#define tileset_tile_72 ((gfx_sprite_t*)tileset_tiles_data[72])
+#define tileset_tile_73 ((gfx_sprite_t*)tileset_tiles_data[73])
+#define tileset_tile_74 ((gfx_sprite_t*)tileset_tiles_data[74])
+#define tileset_tile_75 ((gfx_sprite_t*)tileset_tiles_data[75])
+#define tileset_tile_76 ((gfx_sprite_t*)tileset_tiles_data[76])
+#define tileset_tile_77 ((gfx_sprite_t*)tileset_tiles_data[77])
+#define tileset_tile_78 ((gfx_sprite_t*)tileset_tiles_data[78])
+#define tileset_tile_79 ((gfx_sprite_t*)tileset_tiles_data[79])
+#define tileset_tile_80 ((gfx_sprite_t*)tileset_tiles_data[80])
+#define tileset_tile_81 ((gfx_sprite_t*)tileset_tiles_data[81])
+#define tileset_tile_82 ((gfx_sprite_t*)tileset_tiles_data[82])
+#define tileset_tile_83 ((gfx_sprite_t*)tileset_tiles_data[83])
+#define tileset_tile_84 ((gfx_sprite_t*)tileset_tiles_data[84])
+#define tileset_tile_85 ((gfx_sprite_t*)tileset_tiles_data[85])
+#define tileset_tile_86 ((gfx_sprite_t*)tileset_tiles_data[86])
+#define tileset_tile_87 ((gfx_sprite_t*)tileset_tiles_data[87])
+#define tileset_tile_88 ((gfx_sprite_t*)tileset_tiles_data[88])
+#define tileset_tile_89 ((gfx_sprite_t*)tileset_tiles_data[89])
+#define tileset_tile_90 ((gfx_sprite_t*)tileset_tiles_data[90])
+#define tileset_tile_91 ((gfx_sprite_t*)tileset_tiles_data[91])
+#define tileset_tile_92 ((gfx_sprite_t*)tileset_tiles_data[92])
+#define tileset_tile_93 ((gfx_sprite_t*)tileset_tiles_data[93])
+#define tileset_tile_94 ((gfx_sprite_t*)tileset_tiles_data[94])
+#define tileset_tile_95 ((gfx_sprite_t*)tileset_tiles_data[95])
+#define tileset_tile_96 ((gfx_sprite_t*)tileset_tiles_data[96])
+#define tileset_tile_97 ((gfx_sprite_t*)tileset_tiles_data[97])
+#define tileset_tile_98 ((gfx_sprite_t*)tileset_tiles_data[98])
+#define tileset_tile_99 ((gfx_sprite_t*)tileset_tiles_data[99])
+#define tileset_tile_100 ((gfx_sprite_t*)tileset_tiles_data[100])
+#define tileset_tile_101 ((gfx_sprite_t*)tileset_tiles_data[101])
+#define tileset_tile_102 ((gfx_sprite_t*)tileset_tiles_data[102])
+#define tileset_tile_103 ((gfx_sprite_t*)tileset_tiles_data[103])
+#define tileset_tile_104 ((gfx_sprite_t*)tileset_tiles_data[104])
+#define tileset_tile_105 ((gfx_sprite_t*)tileset_tiles_data[105])
+#define tileset_tile_106 ((gfx_sprite_t*)tileset_tiles_data[106])
+#define tileset_tile_107 ((gfx_sprite_t*)tileset_tiles_data[107])
+#define tileset_tile_108 ((gfx_sprite_t*)tileset_tiles_data[108])
+#define tileset_tile_109 ((gfx_sprite_t*)tileset_tiles_data[109])
+#define tileset_tile_110 ((gfx_sprite_t*)tileset_tiles_data[110])
+#define tileset_tile_111 ((gfx_sprite_t*)tileset_tiles_data[111])
+#define tileset_tile_112 ((gfx_sprite_t*)tileset_tiles_data[112])
+#define tileset_tile_113 ((gfx_sprite_t*)tileset_tiles_data[113])
+#define tileset_tile_114 ((gfx_sprite_t*)tileset_tiles_data[114])
+#define tileset_tile_115 ((gfx_sprite_t*)tileset_tiles_data[115])
+#define tileset_tile_116 ((gfx_sprite_t*)tileset_tiles_data[116])
+#define tileset_tile_117 ((gfx_sprite_t*)tileset_tiles_data[117])
+#define tileset_tile_118 ((gfx_sprite_t*)tileset_tiles_data[118])
+#define tileset_tile_119 ((gfx_sprite_t*)tileset_tiles_data[119])
+#define tileset_tile_120 ((gfx_sprite_t*)tileset_tiles_data[120])
+#define tileset_tile_121 ((gfx_sprite_t*)tileset_tiles_data[121])
+#define tileset_tile_122 ((gfx_sprite_t*)tileset_tiles_data[122])
+#define tileset_tile_123 ((gfx_sprite_t*)tileset_tiles_data[123])
+#define tileset_tile_124 ((gfx_sprite_t*)tileset_tiles_data[124])
+#define tileset_tile_125 ((gfx_sprite_t*)tileset_tiles_data[125])
+#define tileset_tile_126 ((gfx_sprite_t*)tileset_tiles_data[126])
+#define tileset_tile_127 ((gfx_sprite_t*)tileset_tiles_data[127])
+#define sizeof_tiles_gfx_pal 152
+#define tiles_gfx_pal ((uint16_t*)var_gfx[1])
+bool var_gfx_init(void);
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/main.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/main.c
new file mode 100644
index 0000000..caaf863
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/main.c
@@ -0,0 +1,106 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Include the graphics */
+#include "gfx/tiles_gfx.h"
+#include "gfx/var_gfx.h"
+
+/* Include the external map data */
+extern uint8_t tilemap_map[];
+
+/* Tilemap defines */
+#define TILE_WIDTH 16
+#define TILE_HEIGHT 16
+
+#define TILEMAP_WIDTH 32
+#define TILEMAP_HEIGHT 25
+
+#define TILEMAP_DRAW_WIDTH 20
+#define TILEMAP_DRAW_HEIGHT 14
+
+#define Y_OFFSET 16
+#define X_OFFSET 0
+
+void main(void) {
+ sk_key_t key;
+ unsigned int x_offset = 0;
+ unsigned int y_offset = 0;
+ gfx_tilemap_t tilemap;
+
+ /* Initialize the graphics */
+ var_gfx_init();
+
+ /* Initialize the tilemap structure */
+ tilemap.map = tilemap_map;
+ tilemap.tiles = tileset_tiles;
+ tilemap.type_width = gfx_tile_16_pixel;
+ tilemap.type_height = gfx_tile_16_pixel;
+ tilemap.tile_height = TILE_HEIGHT;
+ tilemap.tile_width = TILE_WIDTH;
+ tilemap.draw_height = TILEMAP_DRAW_HEIGHT;
+ tilemap.draw_width = TILEMAP_DRAW_WIDTH;
+ tilemap.height = TILEMAP_HEIGHT;
+ tilemap.width = TILEMAP_WIDTH;
+ tilemap.y_loc = Y_OFFSET;
+ tilemap.x_loc = X_OFFSET;
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette */
+ gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0);
+ gfx_SetColor(gfx_white);
+
+ /* Draw to buffer to avoid tearing */
+ gfx_SetDrawBuffer();
+
+ /* Set monospace font with width of 8 */
+ gfx_SetMonospaceFont(8);
+
+ /* Wait for the enter key to quit */
+ while ((key = os_GetCSC()) != sk_Enter) {
+
+ /* Draw tilemap and coords */
+ gfx_Tilemap(&tilemap, x_offset, y_offset);
+ gfx_FillRectangle(0, 0, 320, 16);
+ gfx_PrintStringXY("x offset:", 48, 4);
+ gfx_PrintUInt(x_offset, 4);
+ gfx_PrintString(" y offset:");
+ gfx_PrintUInt(y_offset, 4);
+
+ /* Do something based on the keypress */
+ switch (key) {
+ case sk_Down:
+ if (y_offset < (TILEMAP_HEIGHT * TILE_HEIGHT) - (TILEMAP_DRAW_HEIGHT * TILE_HEIGHT))
+ y_offset += TILE_HEIGHT;
+ break;
+ case sk_Left:
+ if (x_offset)
+ x_offset -= TILE_WIDTH;
+ break;
+ case sk_Right:
+ if (x_offset < (TILEMAP_WIDTH * TILE_WIDTH) - (TILEMAP_DRAW_WIDTH * TILE_WIDTH))
+ x_offset += TILE_WIDTH;
+ break;
+ case sk_Up:
+ if (y_offset)
+ y_offset -= TILE_HEIGHT;
+ break;
+ default:
+ break;
+ }
+ gfx_SwapDraw();
+ }
+
+ /* Close the graphics and return to the OS */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/tilemapdata.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/tilemapdata.c
new file mode 100644
index 0000000..d443c6c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/tilemapdata.c
@@ -0,0 +1,30 @@
+#include <stdint.h>
+
+/* This is the data that is displayed with the tilemap */
+uint8_t tilemap_map[] = {
+ 0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22,0x14,0x15,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22,
+ 0x30,0x54,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,0x04,0x05,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x50,0x51,0x51,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x10,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x40,0x42,0x04,0x05,0x14,0x15,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x70,0x71,0x71,0x72,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x00,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x20,0x22,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x00,0x00,0x01,0x00,0x01,0x10,0x10,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x10,0x10,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x30,0x32,0x14,0x15,0x24,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x44,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,
+ 0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/autotester.json b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/autotester.json
new file mode 100644
index 0000000..085435f
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/autotester.json
@@ -0,0 +1,43 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "delay|100",
+ "key|right",
+ "key|right",
+ "key|down",
+ "key|down",
+ "hashWait|2",
+ "key|enter",
+ "hashWait|3"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Initial sprite map state (top left)",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "EEED1F0B" ]
+ },
+ "2": {
+ "description": "Moving a bit to the bottom right",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "BBB0544" ]
+ },
+ "3": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/makefile b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/readme.md b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/readme.md
new file mode 100644
index 0000000..d38a92c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/readme.md
@@ -0,0 +1,10 @@
+### GraphX Simple Compressed Tilemap Demo
+
+An example of tilemaping using a sequence of tiles and the keypad, except with compressed tiles.
+
+![Screenshot](../gfx_tilemap/screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/convpng.ini
new file mode 100644
index 0000000..3e0f83e
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/convpng.ini
@@ -0,0 +1,6 @@
+#GroupC : tiles_gfx
+#TransparentColor : 255,201,14,255
+#Compression : zx7
+#Tilemap : 16,16,true
+#PNGImages :
+ tileset
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.c b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.c
new file mode 100644
index 0000000..2d1e613
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.c
@@ -0,0 +1,82 @@
+// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
+uint16_t tiles_gfx_pal[76] = {
+ 0x7F22, // 00 :: rgb(255,201,14)
+ 0xC30C, // 01 :: rgb(132,198,99)
+ 0x212D, // 02 :: rgb(65,72,106)
+ 0x1D40, // 03 :: rgb(56,80,0)
+ 0x1E46, // 04 :: rgb(57,146,49)
+ 0xDBD1, // 05 :: rgb(184,248,136)
+ 0xEB7B, // 06 :: rgb(216,224,224)
+ 0x318F, // 07 :: rgb(99,96,123)
+ 0x7771, // 08 :: rgb(239,219,140)
+ 0x650A, // 09 :: rgb(206,64,81)
+ 0x5F3C, // 10 :: rgb(189,203,231)
+ 0x6F9D, // 11 :: rgb(222,227,239)
+ 0x25D5, // 12 :: rgb(73,113,173)
+ 0x52D8, // 13 :: rgb(165,178,198)
+ 0xD353, // 14 :: rgb(168,216,160)
+ 0x6DAC, // 15 :: rgb(222,105,98)
+ 0x4211, // 16 :: rgb(132,130,140)
+ 0x3AFE, // 17 :: rgb(115,186,247)
+ 0x764E, // 18 :: rgb(239,146,114)
+ 0xE319, // 19 :: rgb(199,199,207)
+ 0x5A0D, // 20 :: rgb(184,128,111)
+ 0xE6F0, // 21 :: rgb(208,192,128)
+ 0x7EF0, // 22 :: rgb(255,186,132)
+ 0x4EDB, // 23 :: rgb(156,178,222)
+ 0x6EAE, // 24 :: rgb(222,170,114)
+ 0x49AD, // 25 :: rgb(148,105,106)
+ 0x32BD, // 26 :: rgb(99,170,239)
+ 0xFFFF, // 27 :: rgb(255,255,255)
+ 0x0E8D, // 28 :: rgb(23,162,107)
+ 0x666A, // 29 :: rgb(206,154,81)
+ 0x6ACD, // 30 :: rgb(214,178,106)
+ 0x22D1, // 31 :: rgb(65,178,140)
+ 0x18C2, // 32 :: rgb(48,48,14)
+ 0x5A30, // 33 :: rgb(182,138,130)
+ 0xB27A, // 34 :: rgb(96,159,215)
+ 0x7BAE, // 35 :: rgb(245,233,112)
+ 0x6E2C, // 36 :: rgb(224,136,95)
+ 0x2A37, // 37 :: rgb(79,136,192)
+ 0x39A6, // 38 :: rgb(112,104,47)
+ 0x0420, // 39 :: rgb(8,8,4)
+ 0xEAF3, // 40 :: rgb(214,191,154)
+ 0x2CE8, // 41 :: rgb(89,56,65)
+ 0xEF12, // 42 :: rgb(224,200,144)
+ 0xDEAD, // 43 :: rgb(191,175,110)
+ 0x5A51, // 44 :: rgb(184,144,136)
+ 0x6F30, // 45 :: rgb(222,203,132)
+ 0xCB3E, // 46 :: rgb(151,207,247)
+ 0xE35C, // 47 :: rgb(199,215,231)
+ 0x7399, // 48 :: rgb(231,227,206)
+ 0x7794, // 49 :: rgb(239,227,165)
+ 0x7AD0, // 50 :: rgb(247,178,132)
+ 0x3D29, // 51 :: rgb(123,73,73)
+ 0x32BC, // 52 :: rgb(96,168,232)
+ 0x3DF0, // 53 :: rgb(123,123,132)
+ 0x7337, // 54 :: rgb(228,201,192)
+ 0x1CC5, // 55 :: rgb(56,48,40)
+ 0x252B, // 56 :: rgb(71,71,87)
+ 0x1A05, // 57 :: rgb(46,130,39)
+ 0xE6AD, // 58 :: rgb(208,176,103)
+ 0xCF77, // 59 :: rgb(160,224,192)
+ 0x356B, // 60 :: rgb(107,88,89)
+ 0xCB58, // 61 :: rgb(144,216,200)
+ 0xC32A, // 62 :: rgb(135,207,79)
+ 0x2505, // 63 :: rgb(78,65,39)
+ 0x6BBF, // 64 :: rgb(214,235,255)
+ 0x5085, // 65 :: rgb(167,31,39)
+ 0xAD4D, // 66 :: rgb(87,87,110)
+ 0xDB1B, // 67 :: rgb(184,200,224)
+ 0x25D4, // 68 :: rgb(71,112,168)
+ 0x4E23, // 69 :: rgb(155,139,24)
+ 0x6149, // 70 :: rgb(199,79,71)
+ 0x91CA, // 71 :: rgb(37,117,83)
+ 0x2DD7, // 72 :: rgb(89,113,189)
+ 0xC76C, // 73 :: rgb(142,221,101)
+ 0xFB33, // 74 :: rgb(247,207,159)
+ 0xBB13, // 75 :: rgb(112,199,159)
+}; \ No newline at end of file
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.h b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.h
new file mode 100644
index 0000000..a03d932
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.h
@@ -0,0 +1,142 @@
+// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __tiles_gfx__
+#define __tiles_gfx__
+#include <stdint.h>
+
+#define tiles_gfx_transparent_color_index 0
+
+extern uint8_t tileset_tile_0_compressed[];
+extern uint8_t tileset_tile_1_compressed[];
+extern uint8_t tileset_tile_2_compressed[];
+extern uint8_t tileset_tile_3_compressed[];
+extern uint8_t tileset_tile_4_compressed[];
+extern uint8_t tileset_tile_5_compressed[];
+extern uint8_t tileset_tile_6_compressed[];
+extern uint8_t tileset_tile_7_compressed[];
+extern uint8_t tileset_tile_8_compressed[];
+extern uint8_t tileset_tile_9_compressed[];
+extern uint8_t tileset_tile_10_compressed[];
+extern uint8_t tileset_tile_11_compressed[];
+extern uint8_t tileset_tile_12_compressed[];
+extern uint8_t tileset_tile_13_compressed[];
+extern uint8_t tileset_tile_14_compressed[];
+extern uint8_t tileset_tile_15_compressed[];
+extern uint8_t tileset_tile_16_compressed[];
+extern uint8_t tileset_tile_17_compressed[];
+extern uint8_t tileset_tile_18_compressed[];
+extern uint8_t tileset_tile_19_compressed[];
+extern uint8_t tileset_tile_20_compressed[];
+extern uint8_t tileset_tile_21_compressed[];
+extern uint8_t tileset_tile_22_compressed[];
+extern uint8_t tileset_tile_23_compressed[];
+extern uint8_t tileset_tile_24_compressed[];
+extern uint8_t tileset_tile_25_compressed[];
+extern uint8_t tileset_tile_26_compressed[];
+extern uint8_t tileset_tile_27_compressed[];
+extern uint8_t tileset_tile_28_compressed[];
+extern uint8_t tileset_tile_29_compressed[];
+extern uint8_t tileset_tile_30_compressed[];
+extern uint8_t tileset_tile_31_compressed[];
+extern uint8_t tileset_tile_32_compressed[];
+extern uint8_t tileset_tile_33_compressed[];
+extern uint8_t tileset_tile_34_compressed[];
+extern uint8_t tileset_tile_35_compressed[];
+extern uint8_t tileset_tile_36_compressed[];
+extern uint8_t tileset_tile_37_compressed[];
+extern uint8_t tileset_tile_38_compressed[];
+extern uint8_t tileset_tile_39_compressed[];
+extern uint8_t tileset_tile_40_compressed[];
+extern uint8_t tileset_tile_41_compressed[];
+extern uint8_t tileset_tile_42_compressed[];
+extern uint8_t tileset_tile_43_compressed[];
+extern uint8_t tileset_tile_44_compressed[];
+extern uint8_t tileset_tile_45_compressed[];
+extern uint8_t tileset_tile_46_compressed[];
+extern uint8_t tileset_tile_47_compressed[];
+extern uint8_t tileset_tile_48_compressed[];
+extern uint8_t tileset_tile_49_compressed[];
+extern uint8_t tileset_tile_50_compressed[];
+extern uint8_t tileset_tile_51_compressed[];
+extern uint8_t tileset_tile_52_compressed[];
+extern uint8_t tileset_tile_53_compressed[];
+extern uint8_t tileset_tile_54_compressed[];
+extern uint8_t tileset_tile_55_compressed[];
+extern uint8_t tileset_tile_56_compressed[];
+extern uint8_t tileset_tile_57_compressed[];
+extern uint8_t tileset_tile_58_compressed[];
+extern uint8_t tileset_tile_59_compressed[];
+extern uint8_t tileset_tile_60_compressed[];
+extern uint8_t tileset_tile_61_compressed[];
+extern uint8_t tileset_tile_62_compressed[];
+extern uint8_t tileset_tile_63_compressed[];
+extern uint8_t tileset_tile_64_compressed[];
+extern uint8_t tileset_tile_65_compressed[];
+extern uint8_t tileset_tile_66_compressed[];
+extern uint8_t tileset_tile_67_compressed[];
+extern uint8_t tileset_tile_68_compressed[];
+extern uint8_t tileset_tile_69_compressed[];
+extern uint8_t tileset_tile_70_compressed[];
+extern uint8_t tileset_tile_71_compressed[];
+extern uint8_t tileset_tile_72_compressed[];
+extern uint8_t tileset_tile_73_compressed[];
+extern uint8_t tileset_tile_74_compressed[];
+extern uint8_t tileset_tile_75_compressed[];
+extern uint8_t tileset_tile_76_compressed[];
+extern uint8_t tileset_tile_77_compressed[];
+extern uint8_t tileset_tile_78_compressed[];
+extern uint8_t tileset_tile_79_compressed[];
+extern uint8_t tileset_tile_80_compressed[];
+extern uint8_t tileset_tile_81_compressed[];
+extern uint8_t tileset_tile_82_compressed[];
+extern uint8_t tileset_tile_83_compressed[];
+extern uint8_t tileset_tile_84_compressed[];
+extern uint8_t tileset_tile_85_compressed[];
+extern uint8_t tileset_tile_86_compressed[];
+extern uint8_t tileset_tile_87_compressed[];
+extern uint8_t tileset_tile_88_compressed[];
+extern uint8_t tileset_tile_89_compressed[];
+extern uint8_t tileset_tile_90_compressed[];
+extern uint8_t tileset_tile_91_compressed[];
+extern uint8_t tileset_tile_92_compressed[];
+extern uint8_t tileset_tile_93_compressed[];
+extern uint8_t tileset_tile_94_compressed[];
+extern uint8_t tileset_tile_95_compressed[];
+extern uint8_t tileset_tile_96_compressed[];
+extern uint8_t tileset_tile_97_compressed[];
+extern uint8_t tileset_tile_98_compressed[];
+extern uint8_t tileset_tile_99_compressed[];
+extern uint8_t tileset_tile_100_compressed[];
+extern uint8_t tileset_tile_101_compressed[];
+extern uint8_t tileset_tile_102_compressed[];
+extern uint8_t tileset_tile_103_compressed[];
+extern uint8_t tileset_tile_104_compressed[];
+extern uint8_t tileset_tile_105_compressed[];
+extern uint8_t tileset_tile_106_compressed[];
+extern uint8_t tileset_tile_107_compressed[];
+extern uint8_t tileset_tile_108_compressed[];
+extern uint8_t tileset_tile_109_compressed[];
+extern uint8_t tileset_tile_110_compressed[];
+extern uint8_t tileset_tile_111_compressed[];
+extern uint8_t tileset_tile_112_compressed[];
+extern uint8_t tileset_tile_113_compressed[];
+extern uint8_t tileset_tile_114_compressed[];
+extern uint8_t tileset_tile_115_compressed[];
+extern uint8_t tileset_tile_116_compressed[];
+extern uint8_t tileset_tile_117_compressed[];
+extern uint8_t tileset_tile_118_compressed[];
+extern uint8_t tileset_tile_119_compressed[];
+extern uint8_t tileset_tile_120_compressed[];
+extern uint8_t tileset_tile_121_compressed[];
+extern uint8_t tileset_tile_122_compressed[];
+extern uint8_t tileset_tile_123_compressed[];
+extern uint8_t tileset_tile_124_compressed[];
+extern uint8_t tileset_tile_125_compressed[];
+extern uint8_t tileset_tile_126_compressed[];
+extern uint8_t tileset_tile_127_compressed[];
+#define tileset_tiles_num 128
+extern uint8_t *tileset_tiles_compressed[128];
+#define sizeof_tiles_gfx_pal 152
+extern uint16_t tiles_gfx_pal[76];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tileset.c b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tileset.c
new file mode 100644
index 0000000..fcb18d0
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tileset.c
@@ -0,0 +1,726 @@
+// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
+uint8_t tileset_tile_0_compressed[19] = {
+ 0x10,0x21,0x10,0x4B,0x84,0x00,0x3D,0x75,0x0C,0xC6,0x02,0xF0,0x1D,0x03,0x18,0x30,0x00,0x00,0x08,
+};
+uint8_t tileset_tile_1_compressed[32] = {
+ 0x10,0x21,0x10,0x4B,0x14,0x00,0x1F,0x75,0x0C,0xC6,0x02,0xF0,0x1D,0x03,0x48,0x00,0x3D,0x8E,0x0C,0xB8,0x02,0xDE,0x1D,0x03,0x05,0xB8,0x00,0x23,0xC8,0x08,0x00,0x04,
+};
+uint8_t tileset_tile_2_compressed[30] = {
+ 0x10,0x20,0x10,0x4B,0xCD,0x00,0x1F,0x1D,0x0C,0x71,0x02,0xB7,0x1D,0x03,0x07,0xE8,0x00,0x3B,0xEB,0x0C,0x02,0x8D,0x1D,0x40,0x3B,0x83,0x64,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_3_compressed[20] = {
+ 0x10,0x20,0x10,0x4B,0x54,0x00,0x47,0x1F,0x5C,0x0C,0x02,0x6F,0x1D,0x03,0x01,0x0B,0x00,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_4_compressed[118] = {
+ 0x10,0x05,0x10,0x4B,0x03,0x04,0x04,0x78,0x02,0x03,0x00,0x01,0x01,0x04,0xCE,0x02,0x4B,0x1C,0x08,0x7B,0x11,0x13,0x3B,0x4B,0x1F,0x10,0x0E,0xBB,0x00,0x12,0xDD,0x0F,
+ 0x1F,0x04,0xCB,0x0F,0x14,0xD5,0x0F,0x20,0xCC,0x0A,0x32,0x05,0xBB,0x0E,0x08,0xBA,0x0F,0x05,0x5C,0x05,0x0E,0xDE,0x4B,0x05,0x4E,0x05,0x27,0x1C,0x1C,0x0E,0xB7,0x30,
+ 0x05,0x0F,0x3D,0x1E,0xA2,0x0C,0x01,0xF0,0x0F,0x8B,0x92,0x0F,0x79,0x10,0x79,0x1E,0x0F,0x7E,0x10,0x1D,0x0D,0xFE,0x0E,0x5F,0x60,0xD7,0x10,0x01,0x11,0x76,0x00,0x8F,
+ 0x18,0xB1,0x73,0x07,0x77,0x0E,0x0F,0x10,0x77,0x20,0x3E,0x35,0x0F,0x07,0x86,0x1F,0x57,0x01,0x00,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_5_compressed[119] = {
+ 0x10,0x0D,0x10,0x01,0x01,0x04,0x02,0x03,0xBF,0x00,0x04,0x00,0x03,0x02,0x5C,0x4B,0x0B,0xF9,0x0D,0x07,0x1C,0x4B,0x2D,0x0C,0xFB,0x00,0x07,0x0E,0x1F,0x0F,0x96,0x0A,
+ 0xF6,0x04,0x00,0x1F,0x0F,0x05,0x9E,0x2C,0xAB,0x03,0x1E,0x0F,0xAB,0x17,0x0B,0xBB,0x05,0x10,0x77,0x05,0x50,0x0C,0x37,0x46,0x10,0xDC,0x0F,0x2A,0xE6,0x10,0x1C,0x1C,
+ 0x0F,0x01,0x7C,0x05,0x33,0x11,0xFD,0x20,0x0F,0xC5,0x00,0xDA,0x0F,0x21,0x04,0x7E,0x0E,0x0F,0xD7,0x00,0x01,0x45,0x72,0x0E,0xD6,0x0F,0x1F,0xC4,0x12,0x61,0x0E,0x90,
+ 0x2F,0x1D,0x0D,0xE1,0x06,0xAD,0x61,0x8F,0x2C,0x1F,0x96,0x2F,0x0E,0x4B,0x96,0x2E,0xA8,0x01,0x98,0x2E,0x0F,0x00,0x01,
+};
+uint8_t tileset_tile_6_compressed[65] = {
+ 0x10,0x20,0x10,0x00,0xF5,0x00,0x03,0x1C,0x0E,0x05,0x8D,0x0F,0x46,0x04,0x91,0x0F,0x03,0x01,0x6D,0x0F,0x04,0x00,0x05,0x13,0x0F,0x68,0x0C,0x01,0xB2,0x0F,0x01,0x01,
+ 0x36,0x0F,0xE7,0x1E,0x0F,0xEA,0x2C,0x1C,0xE7,0x0E,0x0F,0x5C,0x01,0x11,0xFF,0x0F,0x67,0x07,0x34,0x0E,0x52,0x2F,0x05,0x7B,0x2F,0x86,0x0E,0x1F,0xAE,0x01,0x00,0x00,
+ 0x01,
+};
+uint8_t tileset_tile_7_compressed[65] = {
+ 0x10,0x20,0x10,0x00,0xB9,0x00,0x03,0x1C,0x0F,0x05,0x8E,0x10,0x23,0x05,0x04,0x88,0x0F,0x01,0x03,0xE7,0x0F,0x04,0x00,0x18,0x0F,0x01,0x68,0x05,0x33,0x04,0xBA,0x0F,
+ 0x00,0x8B,0x0F,0xB8,0x21,0xAB,0x0F,0x00,0xA9,0x13,0xE5,0x32,0x0E,0xE7,0x0D,0x32,0x97,0x1D,0x0D,0xD1,0x06,0x03,0x51,0x1F,0x95,0x2F,0x2E,0x53,0x01,0x04,0x98,0x00,
+ 0x02,
+};
+uint8_t tileset_tile_8_compressed[68] = {
+ 0x10,0x1B,0x10,0x00,0x07,0x00,0x00,0x00,0xE7,0x06,0x07,0x76,0x19,0x00,0x0B,0x19,0x98,0x07,0x07,0x23,0x2D,0x23,0x18,0x0B,0x19,0x35,0x07,0xDA,0x0F,0x00,0x19,0x6B,
+ 0x07,0x28,0xF4,0x0A,0x00,0x19,0xD0,0x07,0x29,0xC5,0x2F,0x88,0x00,0x07,0x14,0x23,0xC4,0x00,0x07,0x3F,0x00,0xA4,0x42,0x14,0xCF,0x09,0xAE,0x07,0x0F,0xD3,0x00,0x19,
+ 0x40,0x07,0x00,0x20,
+};
+uint8_t tileset_tile_9_compressed[53] = {
+ 0x10,0x29,0x10,0x07,0x00,0x00,0x53,0x00,0xAA,0x07,0x19,0x00,0xE2,0x0B,0x05,0x07,0x23,0x23,0x18,0xC5,0x0B,0xDC,0x07,0x00,0xF2,0x07,0xF3,0x12,0x00,0xC0,0x07,0xA7,
+ 0x2F,0x16,0x00,0x23,0x8E,0x00,0x43,0x07,0xCD,0x00,0x19,0x42,0x14,0x1F,0x07,0x73,0x00,0xC0,0x07,0x00,0x20,
+};
+uint8_t tileset_tile_10_compressed[53] = {
+ 0x10,0x29,0x10,0x07,0x00,0x00,0x53,0x00,0xAA,0x07,0x19,0x00,0xE2,0x0B,0x05,0x07,0x23,0x23,0x18,0xC5,0x0B,0xDC,0x07,0x00,0xF2,0x07,0xF3,0x12,0x00,0xC0,0x07,0xA7,
+ 0x2F,0x16,0x00,0x23,0x8E,0x00,0x43,0x07,0xCD,0x00,0x19,0x42,0x14,0x1F,0x07,0x73,0x00,0xC0,0x07,0x00,0x20,
+};
+uint8_t tileset_tile_11_compressed[67] = {
+ 0x10,0x29,0x10,0x07,0x00,0x00,0x53,0x00,0xAA,0x07,0x19,0x00,0xE6,0x0B,0x07,0x05,0x02,0x19,0x23,0x23,0x18,0xCD,0x0B,0x07,0x25,0x0F,0xCC,0x00,0x07,0x02,0x97,0x1A,
+ 0x00,0x9A,0x07,0x05,0x48,0x2F,0xA2,0x00,0x02,0x23,0x30,0x00,0x14,0x02,0x46,0x07,0xC7,0x00,0xFA,0x0F,0x3F,0x43,0x14,0xEE,0x08,0x07,0x7B,0x0F,0x00,0x97,0x07,0x4F,
+ 0x80,0x00,0x40,
+};
+uint8_t tileset_tile_12_compressed[46] = {
+ 0x10,0x20,0x10,0x00,0x21,0x49,0x00,0x09,0x07,0xA6,0x00,0x0E,0x55,0x16,0x00,0xA7,0x04,0x09,0x0E,0x8B,0x0F,0xA4,0x08,0x12,0x53,0x0F,0x09,0x08,0x45,0x12,0x64,0x0F,
+ 0x06,0x09,0x12,0x57,0x0F,0x05,0x19,0x0F,0x71,0x3B,0x70,0x0F,0x00,0x08,
+};
+uint8_t tileset_tile_13_compressed[47] = {
+ 0x10,0x22,0x10,0x00,0x57,0x00,0x07,0x00,0x14,0x0C,0x16,0x39,0x09,0x16,0x00,0xDC,0x0D,0x12,0x00,0x4E,0x0F,0x0D,0x09,0x8A,0x0F,0xB8,0x1C,0xAB,0x0F,0x0E,0x8A,0x0F,
+ 0x11,0x07,0x0F,0x09,0x7C,0x0F,0x0E,0x6A,0x0F,0x09,0x07,0xE8,0x0F,0x00,0x04,
+};
+uint8_t tileset_tile_14_compressed[48] = {
+ 0x10,0x2D,0x10,0x07,0x00,0x00,0x12,0x00,0x16,0xC9,0x00,0x09,0x16,0xE7,0x12,0x0F,0x7C,0x12,0x00,0x11,0x6B,0x0F,0x09,0x11,0x8E,0x0F,0xB8,0x22,0xCB,0x0F,0x10,0x8C,
+ 0x0F,0x11,0x09,0x0F,0x07,0xDC,0x0F,0x10,0x72,0x0F,0x09,0x06,0xF8,0x0F,0x00,0x04,
+};
+uint8_t tileset_tile_15_compressed[41] = {
+ 0x10,0x20,0x10,0x00,0x7E,0x00,0x4C,0x07,0x00,0x09,0x99,0x0F,0x16,0xAC,0x00,0x09,0x03,0x12,0x09,0x8E,0x0F,0xE3,0x10,0xB8,0x0F,0x10,0xF4,0x0F,0x09,0x77,0x0F,0x01,
+ 0x1D,0x0F,0xC7,0x02,0x70,0x0F,0x03,0x00,0x08,
+};
+uint8_t tileset_tile_16_compressed[126] = {
+ 0x10,0x35,0x10,0x4B,0x00,0x1F,0xA6,0x03,0x04,0x08,0x98,0x04,0x04,0x3B,0xE6,0x10,0x0D,0x63,0x04,0x00,0x1F,0x1F,0x3B,0x0F,0x0A,0x1F,0x03,0x04,0x03,0x11,0x7F,0x1C,
+ 0x0A,0x0B,0x1E,0xA8,0x16,0x03,0x08,0x03,0x1F,0x9B,0x10,0x06,0xAF,0x0A,0x0E,0x24,0xBA,0x21,0x03,0xAF,0x2D,0x34,0x26,0xBF,0x1E,0x00,0x07,0xBE,0x44,0x11,0xBA,0x00,
+ 0x08,0x2D,0xAA,0x0D,0x2E,0xBA,0x3B,0x06,0xEF,0x10,0x6E,0x4D,0xFB,0x09,0x00,0x13,0xE4,0x0B,0x08,0xEF,0x4A,0x13,0x03,0x9A,0x1C,0x5B,0x00,0x50,0xB0,0xA9,0xB0,0x8A,
+ 0xA9,0x6B,0x25,0x42,0x21,0xEE,0x00,0x30,0xEF,0x74,0x2C,0x06,0x9A,0x07,0xE4,0x24,0x1C,0xAB,0x0E,0x07,0xBE,0x4F,0x11,0x6A,0x5A,0x1B,0xE0,0x0D,0x00,0x10,
+};
+uint8_t tileset_tile_17_compressed[98] = {
+ 0x10,0x22,0x10,0x00,0x5C,0x00,0x20,0x00,0x60,0x0D,0x39,0x39,0x3E,0xE7,0x10,0x16,0xAF,0x0D,0x0E,0x00,0xDB,0x0A,0x20,0x04,0x39,0x11,0x96,0x1E,0xAF,0x0F,0x0E,0x00,
+ 0xAB,0x23,0x20,0xB5,0x19,0x3E,0xDD,0x05,0x0E,0xD4,0x10,0x39,0x92,0x06,0xC9,0x00,0x09,0x39,0x0E,0x3F,0x3F,0x69,0x05,0x00,0xEA,0x0B,0x02,0x7B,0x77,0x10,0xA8,0x01,
+ 0xA0,0x89,0xD1,0x02,0x45,0x5C,0x0F,0x00,0x77,0x0F,0x50,0xFC,0x2E,0x10,0x59,0x43,0x0E,0x33,0x0D,0x44,0x45,0xD5,0x10,0x1E,0xA2,0x10,0x20,0xAE,0x20,0x00,0x58,0x0E,
+ 0x00,0x04,
+};
+uint8_t tileset_tile_18_compressed[105] = {
+ 0x10,0x21,0x10,0x00,0x45,0x00,0x04,0x45,0x00,0x84,0x0D,0x05,0x01,0x01,0x05,0x47,0x11,0x0D,0x2A,0x00,0x01,0x57,0x10,0x04,0x1A,0x19,0x10,0xD4,0x0F,0x10,0xB7,0x03,
+ 0x0F,0xCF,0x0E,0x2F,0xDA,0x41,0x10,0x01,0x2C,0x2F,0x01,0x1F,0x39,0x00,0x03,0x05,0xF2,0x2F,0x08,0x03,0x1C,0xD3,0x2F,0x01,0x56,0x00,0x0A,0x0F,0x03,0xF9,0x05,0x06,
+ 0xD7,0x03,0x03,0x0F,0x73,0x1F,0x52,0x04,0x0F,0x1F,0xA5,0x10,0x1F,0xBC,0x0E,0x4F,0x00,0x1C,0xEE,0x06,0x12,0xEE,0x05,0x0E,0xBF,0x10,0x00,0x0B,0x00,0xAE,0x06,0x2D,
+ 0x55,0x00,0x1F,0xCB,0x0B,0x1C,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_19_compressed[130] = {
+ 0x10,0x24,0x10,0x00,0x00,0x6D,0x2C,0x00,0x33,0x00,0x00,0x30,0x00,0x33,0x2C,0x36,0xCD,0x00,0x2C,0x19,0x12,0x2C,0x37,0x1C,0x0D,0x79,0x0F,0x03,0x28,0x33,0x3A,0x1D,
+ 0x28,0x4B,0x0E,0x0F,0xEB,0x26,0x08,0x01,0xEF,0x00,0x0F,0x30,0xEE,0x1E,0x07,0xFF,0x0F,0x00,0x38,0x25,0xEE,0x0F,0x09,0xE4,0x0C,0x03,0x27,0x29,0x35,0x0F,0xFC,0x37,
+ 0x0E,0x01,0x29,0x19,0xBE,0x0F,0x26,0xEB,0x03,0x0E,0x0F,0x2B,0x29,0x33,0x0B,0x02,0xAF,0x39,0x1A,0x02,0xFF,0x00,0x0F,0x10,0x00,0xFA,0x0E,0x27,0x09,0x95,0x0F,0x2C,
+ 0x69,0x11,0x29,0x89,0x0F,0x35,0x29,0xAA,0x09,0x05,0xD5,0x0E,0x00,0x10,0x2C,0x19,0x9F,0x0E,0x0F,0x10,0x77,0x11,0x28,0x2F,0x0E,0x00,0x7F,0x22,0x5C,0x0B,0x24,0x0D,
+ 0x00,0x02,
+};
+uint8_t tileset_tile_20_compressed[134] = {
+ 0x10,0x30,0x10,0x4B,0x00,0x1F,0x03,0x05,0x05,0x1F,0x04,0x01,0x04,0x04,0x00,0xE3,0x04,0x0D,0x4B,0x1C,0x1C,0x0D,0xB7,0x0A,0x01,0x05,0xB5,0x01,0x1F,0x0D,0x1C,0x7A,
+ 0x1F,0x09,0x20,0x04,0xEB,0x16,0x0D,0x00,0xAB,0x0E,0x0B,0xFA,0x04,0x02,0x0F,0xFE,0x1A,0x02,0x12,0x65,0x23,0x1C,0xA4,0x3D,0x03,0x4C,0xAF,0x3D,0x0A,0x3F,0xFF,0x1C,
+ 0x15,0x1E,0x11,0xEC,0x0E,0x13,0x1F,0x1F,0xBE,0x47,0x02,0xEF,0x60,0x12,0x0F,0xFB,0x2C,0x37,0x5C,0x97,0x33,0x0E,0xF9,0x2F,0x00,0x6E,0x12,0x22,0xAE,0x4D,0x01,0x4E,
+ 0x0F,0x19,0xBF,0x6F,0x2E,0x01,0x0F,0xBB,0x12,0x48,0xBE,0x0F,0x31,0x7B,0x21,0x7F,0xFB,0x40,0x05,0x52,0x95,0x22,0x01,0x2F,0x7E,0x00,0x72,0x06,0xDD,0x0F,0x6A,0xDF,
+ 0x12,0x0E,0x01,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_21_compressed[133] = {
+ 0x10,0x03,0x10,0x05,0x04,0x05,0x01,0x05,0x04,0x61,0x01,0x06,0x05,0x03,0x1F,0x4B,0xDE,0x00,0x0D,0x0C,0x01,0xF1,0x05,0x04,0x1C,0x1C,0x4B,0xAE,0x11,0x05,0x0E,0xEB,
+ 0x0F,0x1F,0x07,0x3B,0x1C,0x1F,0x08,0x0D,0xAA,0x21,0x0F,0xF9,0x00,0x22,0x3D,0x0D,0x22,0x0C,0x01,0xFC,0x01,0x02,0x20,0xBF,0x3B,0x01,0x26,0xFF,0x0F,0x1B,0x0F,0x26,
+ 0x2D,0x0E,0xFC,0x3D,0x1F,0x3F,0xBF,0x1B,0x0E,0x0D,0x6E,0x1E,0x1F,0x0F,0xF9,0x00,0x08,0x56,0x54,0x03,0x0F,0x04,0x9E,0x61,0xBA,0x4F,0x10,0x2E,0xBB,0x39,0x10,0xBE,
+ 0x01,0x5F,0xEF,0x36,0x0C,0x02,0xFB,0x2E,0x01,0x7F,0x4C,0x39,0x1D,0x03,0xBB,0x0F,0x19,0x95,0x2E,0x03,0x72,0x6F,0xD7,0x0F,0x09,0x00,0x28,0x80,0x5C,0x45,0x92,0x2A,
+ 0x70,0x00,0x0F,0x00,0x08,
+};
+uint8_t tileset_tile_22_compressed[126] = {
+ 0x10,0x28,0x10,0x4B,0x00,0x03,0x05,0x0F,0x05,0x04,0x01,0x04,0x04,0x00,0xE8,0x04,0x0E,0x1F,0x4B,0xED,0x0D,0x0A,0x01,0xF7,0x05,0x01,0x0F,0x5E,0x1F,0x09,0x20,0x04,
+ 0xBA,0x16,0x0D,0xEA,0x00,0x0E,0xFE,0x0B,0x04,0x02,0xBF,0x3D,0x1A,0x02,0x12,0x9B,0x23,0x0F,0xF9,0x3D,0x0D,0x2B,0x4C,0x3D,0x0A,0xBF,0x1F,0x15,0x1E,0xFB,0x11,0x0E,
+ 0x13,0xEF,0x0F,0x47,0x02,0xBB,0x60,0x12,0xAE,0x1F,0x0E,0xEE,0x38,0x12,0xFB,0x1F,0x5D,0x0E,0x92,0x12,0xEA,0x22,0x4D,0xE4,0x01,0x0F,0xEB,0x19,0x6F,0x2E,0xFB,0x01,
+ 0x0F,0x12,0xBB,0x48,0x0F,0xE7,0x31,0x21,0xBB,0x7F,0x6F,0xB9,0x52,0x52,0x22,0x01,0xF7,0x7E,0x00,0x06,0x2D,0x0F,0xDD,0x6A,0x12,0xF0,0x0E,0x01,0x00,0x08,
+};
+uint8_t tileset_tile_23_compressed[122] = {
+ 0x10,0x03,0x10,0x05,0x04,0x05,0x01,0x05,0x04,0x62,0x01,0x06,0x05,0x03,0x4B,0xAF,0x00,0x0D,0x0C,0x7D,0x01,0x05,0x04,0xF7,0x0E,0x0F,0x0E,0x76,0x0F,0x1F,0x3D,0xFB,
+ 0x0F,0x08,0x0D,0xAA,0x21,0x0F,0xF9,0x00,0x0F,0x3D,0x0D,0x22,0x0C,0x01,0xFC,0x01,0x02,0x0F,0xBF,0x3B,0x01,0x26,0xDF,0x0F,0x41,0x26,0x2F,0x0E,0x20,0xDC,0x29,0x1F,
+ 0xB5,0x1B,0x71,0x5C,0x72,0x00,0x97,0x5F,0x0C,0x2D,0x54,0xF3,0x1F,0x0C,0xD7,0x61,0x4F,0x10,0x57,0x2E,0x39,0x77,0x10,0x01,0xDD,0x0F,0x36,0xFF,0x0C,0x02,0x2E,0x01,
+ 0x73,0x7F,0xFD,0x1D,0x2D,0x02,0xCD,0x7F,0x10,0xCE,0x0D,0x8F,0x17,0x79,0xCA,0x00,0x80,0x12,0x5C,0x2E,0x2A,0x9C,0x00,0x0F,0x00,0x02,
+};
+uint8_t tileset_tile_24_compressed[29] = {
+ 0x10,0x05,0x10,0x07,0x18,0x18,0x14,0xA6,0x00,0x19,0x07,0x54,0x07,0x00,0x65,0x07,0x5A,0x17,0x0B,0x19,0x68,0x07,0xF8,0x2F,0x0B,0xF8,0x3F,0x00,0x04,
+};
+uint8_t tileset_tile_25_compressed[27] = {
+ 0x10,0x05,0x10,0x19,0x18,0x18,0x14,0xCE,0x00,0x07,0x07,0xA8,0x00,0xBB,0x07,0x17,0xB9,0x0B,0xE3,0x07,0xE0,0x2F,0x2F,0xE0,0x3F,0x00,0x10,
+};
+uint8_t tileset_tile_26_compressed[27] = {
+ 0x10,0x05,0x10,0x19,0x18,0x18,0x14,0xCE,0x00,0x07,0x07,0xA8,0x00,0xBB,0x07,0x17,0xB9,0x0B,0xE3,0x07,0xE0,0x2F,0x2F,0xE0,0x3F,0x00,0x10,
+};
+uint8_t tileset_tile_27_compressed[33] = {
+ 0x10,0x05,0x10,0x19,0x18,0x18,0x14,0xCA,0x00,0x07,0x19,0x2A,0x02,0x07,0x00,0xE5,0x0F,0x07,0xEE,0x0F,0x17,0xE6,0x0B,0x07,0x47,0x02,0xC0,0x2F,0x5F,0xC0,0x3F,0x00,
+ 0x20,
+};
+uint8_t tileset_tile_28_compressed[51] = {
+ 0x10,0x1A,0x10,0x02,0x12,0x00,0x09,0x9A,0x03,0x16,0x00,0x09,0xE0,0x03,0x76,0x0F,0x26,0x0F,0x09,0x00,0x95,0x0F,0x0F,0x1A,0x0F,0x0F,0x87,0x04,0x0F,0x0F,0x07,0x07,
+ 0x5F,0x0F,0x0B,0x71,0x10,0x15,0x0F,0x0E,0x71,0x10,0x09,0x0F,0x09,0xA6,0x10,0x00,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_29_compressed[76] = {
+ 0x10,0x03,0x10,0x09,0x0F,0x0F,0x09,0x12,0x00,0xB5,0x03,0x07,0xCF,0x00,0x0F,0x77,0x0A,0x00,0x2C,0x0F,0xF3,0x0C,0x44,0x0F,0xDC,0x0D,0x0F,0x55,0x1C,0xC6,0x0F,0xA3,
+ 0x0E,0x09,0x78,0x0D,0x0E,0xE8,0x00,0xD8,0x1D,0xF2,0x37,0x0A,0x0B,0x2F,0x0E,0x0D,0xE2,0x00,0xB8,0x0E,0x0C,0xCA,0x0F,0x1D,0x45,0x0A,0xD9,0x2D,0x0E,0x12,0x0B,0x17,
+ 0x1E,0xF1,0x0E,0x03,0x0E,0x76,0x0F,0x00,0xE0,0x41,0x00,0x10,
+};
+uint8_t tileset_tile_30_compressed[79] = {
+ 0x10,0x2D,0x10,0x07,0x00,0x12,0xAC,0x00,0x09,0x03,0x0F,0x0F,0x49,0x09,0x00,0x51,0x12,0x92,0x0F,0x46,0x12,0xD4,0x0F,0x11,0x75,0x0F,0x46,0x22,0xDF,0x0F,0x10,0x04,
+ 0x1B,0x11,0xC7,0x01,0x47,0x00,0x09,0x20,0x09,0x0B,0x0A,0x62,0x27,0x34,0x0F,0x00,0x0A,0x5A,0x10,0x0B,0xE3,0x00,0x17,0x21,0x0A,0x21,0x3E,0x0F,0x1F,0x12,0xE2,0x10,
+ 0xFE,0x20,0x0B,0x10,0x2E,0x20,0xD6,0x3D,0x0F,0xA7,0x13,0x40,0x7F,0x00,0x20,
+};
+uint8_t tileset_tile_31_compressed[51] = {
+ 0x10,0x35,0x10,0x16,0x00,0x09,0xBB,0x03,0x12,0x00,0x03,0x40,0x02,0xDE,0x0F,0x09,0x99,0x00,0x0F,0x1E,0x0F,0x0F,0x8F,0x0F,0x43,0x0F,0xC2,0x0F,0x07,0x07,0x0F,0x2E,
+ 0x0F,0xB8,0x0E,0x00,0x99,0x0F,0x32,0x0E,0x00,0x02,0x07,0x7B,0x00,0x0D,0xD0,0x42,0x02,0x00,0x08,
+};
+uint8_t tileset_tile_32_compressed[59] = {
+ 0x10,0x21,0x10,0x4B,0x62,0x00,0x0E,0x0E,0x26,0x05,0xE7,0x07,0x00,0x8D,0x0D,0xE7,0x00,0x0E,0x8F,0x0F,0x25,0x15,0x15,0x05,0x94,0x0E,0x15,0x08,0xFF,0x00,0x0B,0x00,
+ 0x05,0x97,0x1D,0x07,0x9E,0x00,0x78,0x1E,0xC8,0x0F,0xAE,0x10,0x3F,0x12,0x0F,0xE1,0x0E,0xDE,0x0F,0x10,0x19,0x4F,0x8E,0x6F,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_33_compressed[42] = {
+ 0x10,0x23,0x10,0x4B,0x89,0x00,0x0E,0x0E,0x67,0x05,0x07,0x82,0xF5,0x00,0x15,0x5D,0x02,0x03,0xDA,0x04,0x06,0x08,0xAE,0x02,0x03,0xEE,0x04,0x06,0x0C,0x90,0x00,0x15,
+ 0x42,0x1D,0x3A,0x87,0x61,0x41,0xA8,0x1E,0x00,0x04,
+};
+uint8_t tileset_tile_34_compressed[52] = {
+ 0x10,0x23,0x10,0x4B,0x89,0x00,0x0E,0x0E,0xE7,0x05,0x0F,0x9E,0x00,0x3E,0x0F,0x78,0x29,0xD6,0x10,0x15,0x05,0x15,0xB9,0x03,0xDA,0x0F,0x08,0x0D,0x08,0x59,0x03,0x79,
+ 0x10,0x08,0xE5,0x00,0x21,0x89,0x0F,0x43,0x15,0xB3,0x0F,0xC1,0x3F,0xBC,0x0F,0x2D,0x5F,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_35_compressed[96] = {
+ 0x10,0x2D,0x10,0x00,0x00,0x20,0x25,0x00,0xCA,0x09,0x0D,0x26,0x34,0x2B,0x2B,0x02,0x26,0xD6,0x11,0x0D,0x2B,0x9E,0x10,0x7B,0x0E,0x10,0xED,0x00,0x10,0x20,0x3D,0x0E,
+ 0x73,0x1F,0x01,0xCE,0x1E,0x1F,0x27,0xD3,0x0F,0x26,0x4F,0x1D,0x0F,0x72,0x0B,0xF2,0x10,0x0B,0xDC,0x1F,0x0B,0xB5,0x0E,0x0F,0xCF,0x05,0x00,0x2D,0x1F,0xAE,0x0F,0x20,
+ 0x02,0xEE,0x1E,0x0F,0xF9,0x09,0x01,0x8B,0x0E,0x27,0x00,0x11,0xB9,0x0B,0xBE,0x0E,0x0F,0x10,0x6E,0x00,0x09,0xF8,0x0F,0x10,0xA9,0x00,0x42,0xE0,0x2E,0x0D,0x00,0x01,
+};
+uint8_t tileset_tile_36_compressed[97] = {
+ 0x10,0x05,0x10,0x1F,0x03,0x04,0x04,0x78,0x02,0x03,0x00,0x01,0x01,0x04,0xCE,0x02,0x4B,0x4B,0x08,0x7B,0x11,0x13,0xFB,0x0F,0x10,0x0E,0xBB,0x00,0x12,0xBB,0x0F,0x21,
+ 0x4D,0x04,0x14,0x4B,0x0F,0x1C,0x0A,0x9E,0x03,0xEE,0x0E,0x28,0xEE,0x0B,0x27,0xE6,0x0E,0x4B,0xBB,0x05,0x0F,0x9B,0x0E,0x00,0x47,0x37,0x88,0x0F,0x3C,0x3C,0x03,0xE4,
+ 0x0F,0x3C,0xF3,0x3F,0x91,0x10,0x4B,0x1F,0x84,0x10,0x37,0x4B,0xD3,0x10,0xAE,0x11,0x4B,0x10,0x2B,0x11,0x0E,0x96,0x11,0xE6,0x12,0xAF,0x09,0x27,0x11,0x12,0x80,0x00,
+ 0x40,
+};
+uint8_t tileset_tile_37_compressed[97] = {
+ 0x10,0x0D,0x10,0x01,0x01,0x04,0x02,0x03,0xBF,0x00,0x04,0x00,0x03,0x02,0x5C,0x4B,0x0B,0x46,0x0D,0x0E,0x4B,0x96,0x0C,0xF3,0x00,0x07,0x03,0x1F,0x0F,0x9A,0x0A,0xED,
+ 0x04,0x1E,0x4B,0x73,0x0C,0xA5,0x03,0x1C,0x0F,0xB9,0x39,0x2E,0x05,0x10,0xD3,0x26,0x04,0xF6,0x53,0x10,0x0F,0x37,0x92,0x0E,0x61,0x20,0x03,0x3C,0x3C,0x18,0x0F,0x3C,
+ 0x8F,0x0F,0x8B,0x0E,0xA4,0x0F,0x37,0x66,0x0E,0x90,0x11,0x56,0x0D,0x0E,0x4B,0x8A,0x0D,0xB9,0x0E,0x42,0xAF,0xEE,0x0C,0x0D,0x6B,0x0F,0x0C,0x97,0x0D,0x00,0x80,0x00,
+ 0x40,
+};
+uint8_t tileset_tile_38_compressed[110] = {
+ 0x10,0x05,0x10,0x1F,0x03,0x04,0x04,0x78,0x02,0x03,0x00,0x01,0x01,0x04,0xCE,0x02,0x4B,0x4B,0x08,0x7B,0x11,0x13,0xFB,0x0F,0x10,0x0E,0xBB,0x00,0x12,0xBB,0x0F,0x21,
+ 0x95,0x23,0x04,0x6B,0x0F,0x1C,0x0A,0x99,0x32,0x05,0x77,0x0E,0x08,0x75,0x0F,0x05,0xF3,0x0F,0x0E,0xFD,0x4B,0x05,0x4E,0xCD,0x0F,0x0E,0x68,0x30,0x05,0x9B,0x0F,0x0C,
+ 0x45,0x01,0xE1,0x0F,0x8B,0x11,0x0F,0x72,0x10,0xCD,0x1E,0x5F,0xD5,0x00,0x1C,0xF2,0x0E,0x0F,0xAE,0x10,0x01,0x11,0x6D,0x0F,0x10,0x03,0xCD,0x07,0x0E,0x4A,0x0F,0x1F,
+ 0x11,0x92,0x1D,0x7C,0x2F,0xC0,0x2B,0x09,0x4E,0xEE,0x01,0x00,0x00,0x01,
+};
+uint8_t tileset_tile_39_compressed[115] = {
+ 0x10,0x0D,0x10,0x01,0x01,0x04,0x02,0x03,0xBF,0x00,0x04,0x00,0x03,0x02,0x5C,0x4B,0x0B,0x46,0x0D,0x0E,0x4B,0x96,0x0C,0xF2,0x00,0x07,0x03,0x1F,0xA5,0x0F,0x0A,0xBB,
+ 0x04,0x1E,0x27,0x4B,0x05,0x2C,0xA5,0x03,0x1C,0xD5,0x0F,0x17,0xDD,0x0B,0x05,0xBB,0x10,0x05,0x50,0x0C,0x9B,0x46,0x10,0xEE,0x0F,0x2A,0x7B,0x10,0x0F,0x34,0x01,0x05,
+ 0x33,0x04,0x5D,0x0F,0x45,0x00,0xDA,0x0F,0x21,0x04,0x26,0x3F,0xEA,0x00,0x13,0x64,0x0E,0x4B,0xBD,0x0E,0x0A,0x98,0x10,0x1C,0x1F,0xA0,0x4B,0x1D,0xD7,0x40,0x21,0x1D,
+ 0xCD,0x0F,0x1F,0x22,0x75,0x4B,0xE5,0x00,0x2E,0xAA,0x01,0xF5,0x06,0x3B,0x0E,0x1F,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_40_compressed[55] = {
+ 0x10,0x1A,0x10,0x07,0x18,0x00,0x14,0x93,0x00,0x19,0x3B,0x07,0x07,0x00,0x12,0x45,0x18,0xD2,0x07,0x00,0x02,0x7B,0x07,0x00,0x8B,0x07,0x23,0x00,0x02,0x5A,0x00,0x00,
+ 0x10,0x07,0x2E,0x00,0x08,0x83,0x0F,0x30,0x2A,0x15,0x2A,0x87,0x02,0x30,0x15,0x90,0x00,0x21,0x38,0x40,0x0F,0x00,0x20,
+};
+uint8_t tileset_tile_41_compressed[55] = {
+ 0x10,0x1A,0x10,0x19,0x18,0x00,0x14,0xA7,0x00,0x07,0x57,0x07,0x00,0x09,0xC5,0x00,0xD2,0x07,0x00,0x02,0x7B,0x07,0x00,0x8F,0x07,0x8B,0x00,0x41,0x07,0x71,0x00,0x10,
+ 0x15,0x1B,0x00,0x05,0xF0,0x0F,0x80,0x80,0x23,0x10,0x34,0x00,0x0F,0x32,0x65,0x00,0xC4,0x0F,0xD4,0x7C,0x0F,0x00,0x02,
+};
+uint8_t tileset_tile_42_compressed[65] = {
+ 0x10,0x1A,0x10,0x19,0x18,0x00,0x14,0xA7,0x00,0x07,0x57,0x07,0x00,0x09,0xC5,0x00,0xD2,0x07,0x00,0x02,0x7B,0x07,0x00,0x8F,0x07,0x8B,0x00,0x41,0x07,0x72,0x00,0x15,
+ 0x38,0x00,0x4A,0x24,0x8E,0x00,0x8D,0x5E,0xA5,0x0F,0x2E,0xA6,0x00,0x02,0x06,0x82,0x35,0x0F,0x34,0x76,0x01,0x0F,0x05,0x34,0xB9,0x0F,0x66,0x08,0x16,0x40,0x24,0x00,
+ 0x20,
+};
+uint8_t tileset_tile_43_compressed[56] = {
+ 0x10,0x1A,0x10,0x19,0x18,0x00,0x14,0xA5,0x00,0x07,0x15,0x19,0x02,0x07,0x00,0xF2,0x09,0x00,0xAE,0x07,0x14,0x0F,0xE2,0x00,0x2E,0x07,0x00,0x3E,0x07,0x28,0x00,0x10,
+ 0x07,0x8B,0x00,0xE0,0x0E,0x84,0x0F,0x30,0x15,0xA0,0x00,0x21,0x07,0x10,0x2A,0x10,0x15,0x2A,0x10,0x39,0x40,0x0F,0x00,0x20,
+};
+uint8_t tileset_tile_44_compressed[79] = {
+ 0x10,0x05,0x10,0x02,0x07,0x09,0x0F,0xA6,0x00,0x07,0x00,0x4C,0x02,0x10,0x09,0x99,0x00,0x02,0x71,0x21,0x6B,0x0F,0x17,0x10,0x8A,0x0F,0x4B,0x0B,0x10,0x10,0x0F,0x1B,
+ 0x96,0x10,0x26,0x3F,0x59,0x10,0xF9,0x00,0x3F,0x67,0x10,0x00,0xD7,0x0F,0x1B,0x10,0x14,0x1F,0x1B,0x8C,0x10,0xBA,0x0F,0x10,0x4F,0x17,0x00,0x26,0x0F,0x10,0x17,0x4D,
+ 0x0A,0x00,0x2F,0x0F,0x10,0x3C,0x00,0xD1,0x0F,0xF0,0x1F,0xC4,0x0F,0x00,0x02,
+};
+uint8_t tileset_tile_45_compressed[62] = {
+ 0x10,0x25,0x10,0x07,0x00,0x48,0x09,0x00,0x0A,0xE5,0x00,0x08,0x4A,0x07,0x0B,0x12,0x8A,0x0F,0x99,0x10,0x09,0x17,0x20,0x71,0x0D,0x9C,0x20,0x00,0x7C,0x10,0xD2,0x5F,
+ 0xB4,0x62,0x0F,0x0F,0x02,0x72,0x00,0x07,0x1E,0x00,0x47,0x17,0x23,0x00,0x0A,0x91,0x00,0x10,0xC4,0x00,0x02,0x1A,0x62,0x00,0x02,0x1F,0x0F,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_46_compressed[74] = {
+ 0x10,0x34,0x10,0x0A,0x00,0x09,0x89,0x00,0x07,0x72,0x00,0x0E,0x12,0x09,0xF9,0x13,0x0F,0x67,0x16,0x0E,0x9E,0x0F,0xA2,0x11,0xEE,0x1E,0x0D,0x33,0x1E,0x0C,0x8F,0x2D,
+ 0x44,0x0F,0xD2,0x5C,0x00,0x02,0x39,0x00,0x07,0x0F,0x23,0x00,0x17,0x91,0x00,0x0A,0xC9,0x00,0x10,0x82,0x00,0x02,0x0B,0x0B,0x1B,0xE7,0x00,0x17,0x4D,0x02,0x17,0x3A,
+ 0x0F,0x1B,0x68,0x4F,0x89,0x0F,0xA0,0x00,0x00,0x10,
+};
+uint8_t tileset_tile_47_compressed[93] = {
+ 0x10,0x26,0x10,0x07,0x00,0x58,0x0F,0x00,0x09,0x07,0x02,0x4D,0x09,0x00,0x34,0x0E,0x5D,0x0F,0x22,0x0E,0x10,0xAD,0x0F,0x0E,0x17,0x13,0x0F,0x22,0x0E,0x0B,0x22,0x0F,
+ 0x52,0x0E,0x1B,0x02,0x79,0x5F,0x79,0x0E,0x3F,0xE5,0x00,0x0E,0x44,0x17,0xDB,0x1F,0x0E,0x1B,0x0F,0x8C,0x0E,0xA4,0x0F,0x17,0xF7,0x00,0x0E,0x49,0x0F,0x0A,0x97,0x00,
+ 0x17,0x0E,0x56,0x0F,0x05,0x1B,0x77,0x0B,0x77,0x0E,0x69,0x0F,0x10,0x79,0x00,0x37,0xA6,0x0F,0x4E,0x4E,0x1B,0x0F,0x1B,0x9A,0x00,0x78,0x0F,0x00,0x04,
+};
+uint8_t tileset_tile_48_compressed[47] = {
+ 0x10,0x14,0x10,0x4B,0x0E,0x00,0x15,0x44,0x08,0x42,0x00,0x11,0x0F,0x28,0x10,0x15,0xE8,0x0F,0xD9,0x1F,0x11,0x12,0x3A,0xF1,0x1F,0xA8,0x4F,0x3A,0xF8,0x5F,0x5A,0x0F,
+ 0x3E,0x5F,0x3F,0x0F,0x0E,0x87,0x78,0x0F,0x10,0x66,0x4F,0x3A,0x6F,0x00,0x01,
+};
+uint8_t tileset_tile_49_compressed[20] = {
+ 0x10,0x20,0x10,0x08,0xA5,0x00,0x15,0x04,0x28,0x1D,0x3A,0x76,0x41,0x1E,0x1E,0x81,0xCE,0x77,0x00,0x01,
+};
+uint8_t tileset_tile_50_compressed[45] = {
+ 0x10,0x22,0x10,0x08,0x0A,0x00,0x15,0x0E,0x00,0x46,0x4B,0xC7,0x0E,0x91,0x0F,0x4B,0x4B,0xB0,0x2F,0xD4,0x0F,0x7C,0x2F,0x7F,0x4F,0x10,0x04,0xE8,0x0F,0x15,0x67,0x4F,
+ 0x0F,0x95,0x1D,0x3A,0x0C,0xCD,0x1F,0x1E,0x0B,0xC0,0x5F,0x00,0x20,
+};
+uint8_t tileset_tile_51_compressed[96] = {
+ 0x10,0x20,0x10,0x00,0x91,0x00,0x20,0xC6,0x00,0x9C,0x0D,0x2B,0x2B,0x03,0x66,0x0E,0x00,0x26,0x98,0x10,0x20,0x26,0xEF,0x1B,0x0E,0x0F,0x4D,0x27,0x1E,0x55,0x0C,0x01,
+ 0xAF,0x0E,0x26,0x10,0x1E,0xEC,0x07,0x3D,0x27,0x27,0xEF,0x03,0x0F,0x06,0xEF,0x01,0x1E,0x2E,0x97,0x31,0x1D,0xEF,0x1C,0x10,0x07,0xFB,0x00,0x23,0x1F,0xBA,0x4F,0x1A,
+ 0xA9,0x38,0x2A,0x1F,0x6E,0xBB,0x03,0x1C,0x08,0x97,0x0F,0x26,0xE3,0x0E,0x2E,0x50,0x1A,0xAE,0x05,0x3E,0xD7,0x10,0x27,0x10,0x3C,0x0D,0xF3,0x12,0x40,0x0D,0x00,0x20,
+};
+uint8_t tileset_tile_52_compressed[96] = {
+ 0x10,0x25,0x10,0x00,0x00,0x39,0x29,0x29,0x03,0xEC,0x0A,0x00,0x36,0x36,0xBB,0x05,0x14,0x7A,0x33,0x0A,0x00,0x2C,0x4A,0x02,0x14,0x9B,0x0F,0x0D,0xE7,0x0E,0x0F,0x45,
+ 0x2C,0x48,0x00,0x0F,0x28,0x88,0x00,0x94,0x0F,0x33,0x28,0x5D,0x33,0x0C,0x4D,0x06,0x0F,0x76,0x09,0x15,0x33,0x85,0x7E,0x2F,0x06,0x02,0xF8,0x04,0x03,0x4F,0x1F,0x9F,
+ 0x08,0xA9,0x00,0x40,0xB1,0x35,0x35,0xFD,0x24,0x1A,0x05,0x00,0x3E,0x0E,0x0F,0x36,0xBE,0x0F,0x10,0x77,0x0F,0x35,0x2A,0xC5,0x03,0xA7,0x20,0x35,0x0E,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_53_compressed[72] = {
+ 0x10,0x20,0x10,0x00,0x44,0x00,0x54,0x37,0x00,0x5A,0x0E,0x09,0x91,0x00,0x37,0x41,0x0E,0x1B,0x09,0x41,0x41,0x11,0x10,0xFC,0x0E,0x0B,0x0E,0x4F,0x10,0x0F,0xF1,0x0B,
+ 0x3E,0x2C,0x0F,0x42,0x0B,0x37,0x1B,0x52,0x35,0x04,0x42,0x66,0x0F,0x43,0x1D,0x35,0xCE,0x0F,0x37,0x43,0x0F,0x76,0x10,0x1B,0x0D,0x1B,0x9E,0x0E,0x58,0x10,0xBA,0x0E,
+ 0x10,0xA8,0x00,0x25,0xB9,0x08,0x00,0x04,
+};
+uint8_t tileset_tile_54_compressed[45] = {
+ 0x10,0x20,0x10,0x00,0x28,0x84,0x00,0x04,0x04,0x01,0x93,0x02,0x9A,0x0D,0x05,0x05,0x0D,0x01,0xEF,0x05,0x11,0x07,0x57,0x01,0x01,0x00,0x7F,0x06,0x11,0x0E,0xC5,0x04,
+ 0x5C,0x00,0x25,0x57,0x10,0x0A,0xC6,0x21,0xA0,0x0F,0x04,0x00,0x10,
+};
+uint8_t tileset_tile_55_compressed[89] = {
+ 0x10,0x02,0x10,0x00,0x38,0x43,0x38,0x00,0x6B,0x00,0x0A,0x23,0x38,0x40,0x04,0x00,0x38,0x38,0x2F,0x65,0x00,0x0F,0x0F,0x44,0x44,0x48,0x07,0x05,0x96,0x03,0xE4,0x0F,
+ 0x01,0xFE,0x00,0x15,0x06,0xE4,0x0F,0x1D,0xBB,0x0C,0x05,0x84,0x8E,0x3F,0x46,0x09,0x00,0x4D,0x03,0x04,0x46,0x0A,0x2B,0x1F,0x2F,0x17,0x1E,0xAE,0x07,0x20,0x12,0x1F,
+ 0x8E,0x00,0x5C,0x10,0x03,0xD2,0x00,0x61,0x0A,0xC4,0x13,0x0F,0xC7,0x0A,0x87,0xDF,0x04,0xA7,0x15,0x10,0x0F,0xB8,0x0A,0x00,0x04,
+};
+uint8_t tileset_tile_56_compressed[48] = {
+ 0x10,0x00,0x10,0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x0A,0x10,0x07,0x30,0x15,0x00,0x20,0x21,0x07,0x20,0xE9,0x0F,0x08,0x07,0x16,0x0F,0x21,0xF7,0x00,0x0F,0x2A,0x04,
+ 0xC5,0x00,0x20,0x0F,0x15,0xDC,0x0F,0x10,0x02,0xB9,0x00,0x78,0x05,0x06,0x00,0x04,
+};
+uint8_t tileset_tile_57_compressed[59] = {
+ 0x10,0x02,0x10,0x02,0x32,0x32,0x07,0x34,0x66,0x00,0x07,0x0B,0x02,0xB4,0x0F,0x2E,0xD0,0x00,0x4F,0x0F,0x3C,0x00,0xD1,0x0F,0x7E,0x00,0x0F,0x15,0x24,0x44,0x32,0xE4,
+ 0x01,0x0E,0x30,0x15,0x5E,0x10,0x0F,0x15,0xA8,0x0F,0x99,0x00,0x23,0x2F,0x38,0x0F,0x03,0x3D,0x0F,0x8E,0x00,0x47,0x10,0x40,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_58_compressed[53] = {
+ 0x10,0x05,0x10,0x24,0x02,0x2E,0x34,0x16,0x01,0x02,0x02,0x05,0x34,0x38,0x02,0x24,0x0F,0xCF,0x00,0x0F,0x18,0xB4,0x00,0x02,0xD0,0x06,0x45,0x0F,0x1A,0x3F,0x15,0x46,
+ 0x24,0x23,0x00,0x15,0xD1,0x00,0x2A,0xC8,0x00,0x21,0x13,0x91,0x00,0x02,0xC8,0x00,0x10,0xE8,0x00,0x00,0x04,
+};
+uint8_t tileset_tile_59_compressed[46] = {
+ 0x10,0x0A,0x10,0x07,0x30,0x15,0x00,0x00,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x81,0xF5,0x0F,0x07,0x17,0x0F,0x52,0x05,0x17,0x0F,0x2A,0x21,0x00,0xDD,0x0F,0x04,
+ 0xA0,0x0F,0x15,0xF7,0x0F,0x73,0x92,0x00,0x5A,0x06,0x0E,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_60_compressed[72] = {
+ 0x10,0x0B,0x10,0x02,0x17,0x1B,0x00,0x26,0x17,0x0A,0x00,0x82,0x02,0x0F,0x0B,0x17,0x3B,0x0F,0x10,0x8E,0x0F,0xE2,0x10,0xD7,0x0F,0x0A,0x10,0x17,0x0F,0x24,0x10,0x42,
+ 0x0F,0x10,0x64,0x10,0x02,0xC9,0x00,0x10,0x62,0x10,0x12,0x1F,0x00,0xC4,0x10,0xCB,0x0F,0x10,0x15,0x0F,0x7C,0x10,0x0F,0xE9,0x00,0x00,0x63,0x10,0x2E,0x0F,0x10,0x74,
+ 0x00,0x00,0xD3,0x10,0xC0,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_61_compressed[33] = {
+ 0x10,0x11,0x10,0x02,0x1A,0x88,0x00,0x02,0x1C,0x11,0x0F,0x17,0x90,0x00,0x8A,0x0F,0x0A,0x32,0x00,0x11,0x0F,0x46,0x0B,0x21,0x00,0x02,0xF4,0x00,0x10,0x74,0x00,0x00,
+ 0x02,
+};
+uint8_t tileset_tile_62_compressed[58] = {
+ 0x10,0x26,0x10,0x0A,0x00,0x18,0x1B,0x16,0x0F,0x00,0x16,0x1B,0x1B,0x88,0x0F,0xEE,0x0D,0x02,0x18,0x0F,0x29,0x0B,0x09,0x00,0x0B,0xC5,0x05,0x71,0x0F,0x0D,0x73,0x0F,
+ 0x44,0x00,0xFC,0x0F,0x20,0x02,0x22,0x1F,0x02,0x8E,0x00,0x41,0x0A,0x72,0x00,0x17,0x1E,0x00,0x8F,0x5F,0x47,0x10,0x40,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_63_compressed[107] = {
+ 0x10,0x06,0x10,0x1B,0x1B,0x16,0x0F,0x00,0x16,0x16,0x1B,0x17,0x1B,0x00,0x17,0x76,0x02,0x03,0x0D,0x1B,0x8C,0x0F,0x45,0x1B,0x01,0x0F,0x09,0x0B,0x09,0x09,0x16,0x0B,
+ 0xDE,0x00,0x0F,0x0E,0x0B,0xA2,0x0F,0x16,0x09,0xEF,0x11,0x0F,0x0E,0xD3,0x0F,0x0B,0x77,0x00,0x0F,0x0E,0x77,0x1F,0x31,0x76,0x0F,0x0E,0x0A,0x89,0x1F,0x93,0x0E,0x0F,
+ 0x9E,0x00,0x62,0x0E,0x10,0x0A,0x64,0x00,0x17,0xB1,0x0E,0x52,0x0F,0x22,0x0E,0x00,0x25,0x0F,0x0E,0x27,0x00,0x17,0x00,0x96,0x0E,0x26,0x0F,0x54,0x0E,0x00,0xF3,0x5F,
+ 0x13,0x0E,0x00,0x10,0xCA,0x00,0x0E,0x00,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_64_compressed[53] = {
+ 0x10,0x14,0x10,0x4B,0x0E,0x00,0x15,0x44,0x08,0x42,0x00,0x13,0x0F,0xC1,0x10,0xBC,0x0F,0x3F,0x5F,0x68,0x0F,0x0E,0x49,0x6F,0x15,0x2F,0x03,0x0F,0x2A,0x21,0x15,0xAE,
+ 0x02,0x03,0x79,0x0F,0xFE,0x00,0x0E,0x00,0x3F,0x0F,0x00,0x8F,0x0F,0xB9,0x11,0xE3,0x05,0x60,0x00,0x00,0x10,
+};
+uint8_t tileset_tile_65_compressed[44] = {
+ 0x10,0x20,0x10,0x08,0xA5,0x00,0x15,0x04,0x28,0x1D,0x3A,0x75,0x41,0x3A,0x04,0x95,0x66,0x00,0x24,0x06,0x9A,0x03,0x02,0x0E,0x97,0x00,0x15,0x06,0x7C,0x03,0x02,0x18,
+ 0x2A,0x00,0x4B,0x00,0x25,0x07,0x4B,0x1D,0x00,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_66_compressed[59] = {
+ 0x10,0x22,0x10,0x08,0x0A,0x00,0x15,0x0E,0x00,0x46,0x4B,0xC7,0x0E,0x91,0x0F,0x4B,0x4B,0xB0,0x2F,0xD4,0x0F,0x7C,0x2F,0x7C,0x4F,0x7A,0x6F,0x08,0x75,0x1F,0x15,0x44,
+ 0x00,0xF6,0x3F,0x0B,0x07,0x15,0x9B,0x3D,0x00,0x45,0x0E,0xC7,0x00,0x7C,0x0F,0x0D,0x00,0x6D,0x0D,0xCF,0x0F,0x05,0x0A,0xC0,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_67_compressed[44] = {
+ 0x10,0x19,0x10,0x4B,0x0E,0x00,0x15,0x08,0x12,0x00,0x0E,0x86,0x64,0x0F,0x06,0x8E,0x1E,0xD6,0x14,0x15,0x0E,0x3A,0x9B,0x1D,0x07,0x84,0x62,0x00,0xB8,0x2E,0x1E,0x33,
+ 0x00,0x43,0x15,0xF0,0x1D,0xFC,0x58,0x37,0x1E,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_68_compressed[40] = {
+ 0x10,0x22,0x10,0x08,0x4D,0x00,0x15,0x0E,0x00,0x4B,0x1C,0x0F,0x0E,0x86,0xB8,0x0F,0x10,0xB5,0x0F,0x3A,0xE8,0x10,0x00,0x08,0x6F,0x00,0x1D,0x83,0x38,0x00,0x22,0x53,
+ 0x43,0x3A,0xB0,0x41,0xD4,0x1E,0x00,0x02,
+};
+uint8_t tileset_tile_69_compressed[112] = {
+ 0x10,0x22,0x10,0x4B,0x59,0x00,0x04,0x00,0x05,0x04,0x12,0x0D,0x03,0x34,0x03,0x05,0x0E,0x05,0x49,0x0F,0x05,0x01,0xF2,0x0E,0x03,0x28,0x0B,0x1F,0x2B,0x01,0x01,0xE4,
+ 0x02,0x0F,0xFE,0x0C,0x02,0x08,0xAB,0x1D,0x03,0x12,0xBF,0x1D,0x02,0x1C,0xBF,0x0E,0x0F,0x00,0x9A,0x4B,0xEA,0x0D,0x4E,0xEE,0x1F,0x4A,0x5A,0x00,0x42,0xA4,0x6F,0x1C,
+ 0x9D,0x1D,0x0B,0xD9,0x2D,0x2F,0x1C,0x03,0xDD,0x0A,0x49,0xF7,0x52,0x31,0x3C,0x72,0x17,0xF3,0x50,0x00,0x27,0x0F,0x05,0x00,0xAA,0x7B,0x2F,0x8C,0x0F,0x90,0xB9,0x27,
+ 0x00,0x5D,0x1F,0x1F,0xCF,0x4C,0x0F,0xD8,0x5E,0xB8,0x4D,0x7F,0xC0,0x03,0x00,0x20,
+};
+uint8_t tileset_tile_70_compressed[84] = {
+ 0x10,0x11,0x10,0x01,0x05,0x8E,0x00,0x01,0x00,0xA6,0x04,0x0B,0x9A,0x0E,0xF9,0x06,0x03,0xE3,0x09,0xF8,0x2F,0x00,0xD8,0x0D,0xBA,0x27,0x0C,0x49,0x04,0x11,0x3F,0x04,
+ 0x0E,0x2C,0x10,0xF5,0x00,0x0E,0x3C,0x11,0xEF,0x0D,0x03,0x03,0x09,0x98,0x02,0x04,0x03,0xBD,0x03,0x11,0x03,0x75,0x0C,0x06,0x4B,0x1B,0x05,0x11,0xAA,0x17,0x27,0xBF,
+ 0x29,0x63,0x0F,0xB9,0x30,0x6E,0x03,0x0F,0xE5,0x48,0x7F,0x8D,0x8B,0x09,0xA3,0x07,0xC2,0xBF,0x00,0x01,
+};
+uint8_t tileset_tile_71_compressed[102] = {
+ 0x10,0x0D,0x10,0x04,0x05,0x04,0x00,0x4B,0x13,0x00,0x84,0x0E,0x05,0x05,0x03,0x03,0x4A,0x11,0x01,0xB8,0x10,0x03,0xC7,0x0F,0x01,0x01,0xCF,0x02,0x11,0x5D,0x0C,0x30,
+ 0x4F,0x21,0x22,0xDF,0x1A,0x0F,0x10,0xCF,0x00,0x1F,0x57,0x50,0x00,0x37,0x53,0x0E,0x2A,0x20,0x05,0x6E,0x31,0x0D,0xE4,0x31,0x13,0xD5,0x21,0x1C,0x1F,0x25,0x4C,0xEA,
+ 0x55,0x04,0x03,0x0F,0x96,0x2A,0xFE,0x24,0x00,0x20,0x7B,0x0F,0x12,0x8F,0x0F,0xF4,0x01,0x0F,0x1F,0x4D,0x0F,0x84,0xC5,0x5F,0x0F,0x52,0x6B,0x1F,0x1F,0x38,0x96,0x7D,
+ 0xC8,0x10,0x1C,0x1F,0x00,0x04,
+};
+uint8_t tileset_tile_72_compressed[46] = {
+ 0x10,0x20,0x10,0x00,0x21,0x49,0x00,0x0C,0x07,0xA6,0x00,0x0E,0x55,0x11,0x00,0xA7,0x04,0x0C,0x0E,0x8B,0x0F,0xA4,0x08,0x22,0x53,0x0F,0x0C,0x08,0x45,0x22,0x64,0x0F,
+ 0x06,0x0C,0x22,0x57,0x0F,0x05,0x19,0x0F,0x71,0x3B,0x70,0x0F,0x00,0x08,
+};
+uint8_t tileset_tile_73_compressed[18] = {
+ 0x10,0x20,0x10,0x00,0x7E,0x00,0x47,0x07,0x34,0x00,0x11,0x00,0x0C,0x0D,0x70,0x03,0x00,0x08,
+};
+uint8_t tileset_tile_74_compressed[18] = {
+ 0x10,0x20,0x10,0x00,0x7E,0x00,0x47,0x07,0x34,0x00,0x11,0x00,0x0C,0x0D,0x70,0x03,0x00,0x08,
+};
+uint8_t tileset_tile_75_compressed[41] = {
+ 0x10,0x20,0x10,0x00,0x7E,0x00,0x4C,0x07,0x00,0x0C,0x99,0x0F,0x11,0xAC,0x00,0x0C,0x03,0x22,0x0C,0x8E,0x0F,0xE3,0x10,0xB8,0x0F,0x10,0xF4,0x0F,0x0C,0x77,0x0F,0x01,
+ 0x1D,0x0F,0xC7,0x02,0x70,0x0F,0x03,0x00,0x08,
+};
+uint8_t tileset_tile_76_compressed[79] = {
+ 0x10,0x11,0x10,0x00,0x10,0xA2,0x00,0x02,0x16,0x0F,0x33,0x00,0x0F,0x2C,0x16,0x12,0x00,0x09,0x12,0x97,0x00,0x0F,0x94,0x20,0x09,0x09,0x96,0x06,0x6F,0x1F,0x1E,0x02,
+ 0xB9,0x0E,0xE4,0x1F,0x0C,0xB8,0x23,0xAB,0x1F,0x06,0x85,0xE1,0x3F,0x18,0x5F,0x94,0x7F,0x07,0x5E,0x00,0x0F,0x07,0xD2,0x1B,0x16,0xA8,0x00,0x0F,0x03,0x02,0x0F,0x84,
+ 0xA6,0x0F,0x4B,0x5F,0x0F,0x4F,0x0F,0x1B,0x3F,0xC6,0x1D,0x40,0x0F,0x00,0x20,
+};
+uint8_t tileset_tile_77_compressed[59] = {
+ 0x10,0x84,0x11,0x00,0x0F,0xC4,0x00,0x09,0x12,0xB1,0x00,0x09,0x07,0x09,0x67,0x16,0x07,0xA9,0x11,0xA5,0x25,0x07,0x8B,0x1B,0xBB,0x07,0x39,0x8B,0x03,0x8F,0x3F,0x84,
+ 0x27,0x5F,0x77,0x99,0x07,0x07,0x1C,0x00,0x16,0xA5,0x00,0x0F,0xC2,0x04,0xD7,0x07,0x43,0xF3,0x74,0x00,0xA1,0x07,0x07,0xE8,0x00,0x00,0x04,
+};
+uint8_t tileset_tile_78_compressed[59] = {
+ 0x10,0x84,0x11,0x00,0x0F,0xC4,0x00,0x09,0x12,0xB1,0x00,0x09,0x07,0x09,0x67,0x16,0x07,0xA9,0x11,0xA5,0x25,0x07,0x8B,0x1B,0xBB,0x07,0x39,0x8B,0x03,0x8F,0x3F,0x84,
+ 0x27,0x5F,0x77,0x99,0x07,0x07,0x1C,0x00,0x16,0xA5,0x00,0x0F,0xC2,0x04,0xD7,0x07,0x43,0xF3,0x74,0x00,0xA1,0x07,0x07,0xE8,0x00,0x00,0x04,
+};
+uint8_t tileset_tile_79_compressed[77] = {
+ 0x10,0x8F,0x00,0x23,0x00,0x0F,0x02,0x00,0x09,0x02,0x09,0x12,0x5B,0x00,0x07,0xFE,0x04,0x0F,0x02,0x59,0x18,0x2A,0x06,0x0F,0xAE,0x14,0x08,0x5A,0x20,0x0F,0x92,0x15,
+ 0x49,0x12,0xEE,0x1F,0x18,0xE1,0x1F,0x58,0x3F,0x42,0x5F,0x79,0x79,0x91,0x1F,0x07,0x74,0x00,0x0F,0x16,0xA5,0x00,0x0F,0xFA,0x04,0x00,0x22,0x07,0x3C,0x0F,0x07,0x02,
+ 0xB4,0x46,0x0F,0xD7,0x52,0x0F,0x19,0x3F,0x09,0x40,0x0F,0x00,0x20,
+};
+uint8_t tileset_tile_80_compressed[74] = {
+ 0x10,0x20,0x10,0x4B,0x85,0x00,0x0D,0x72,0x00,0x4C,0x05,0x0E,0x0B,0xA9,0x00,0x6E,0x04,0x12,0xE7,0x09,0x0F,0xE1,0x02,0x8B,0x0F,0x00,0x89,0x0F,0x24,0x0D,0x13,0x00,
+ 0xE6,0x11,0x5F,0xD2,0x09,0x06,0xCB,0x00,0x1F,0x91,0x0F,0x06,0x0D,0xDC,0x0F,0x10,0x71,0x0F,0x06,0x13,0x1F,0x0F,0x73,0x04,0xDF,0x4F,0x1E,0x02,0xA6,0x01,0x4B,0x20,
+ 0x97,0x3E,0x04,0x9E,0x0F,0x64,0x5E,0x0D,0x00,0x02,
+};
+uint8_t tileset_tile_81_compressed[68] = {
+ 0x10,0x21,0x10,0x4B,0xF5,0x00,0x0D,0x4F,0x00,0x08,0x6A,0x00,0x0B,0x00,0x89,0x09,0x4B,0x13,0x0F,0x70,0x04,0xB4,0x0F,0x6A,0x34,0x13,0x59,0x00,0x15,0x0B,0x06,0x00,
+ 0xCB,0x04,0x12,0x73,0x0D,0x5D,0x00,0x10,0x46,0x0D,0x71,0x10,0x04,0x92,0x10,0xDC,0x06,0x15,0x5F,0x18,0x26,0x18,0x16,0x13,0xB4,0x02,0x13,0x6D,0x25,0x46,0x6E,0xA0,
+ 0x34,0x0D,0x00,0x10,
+};
+uint8_t tileset_tile_82_compressed[74] = {
+ 0x10,0x20,0x10,0x4B,0x85,0x00,0x0D,0x57,0x00,0x04,0xCA,0x00,0x0C,0x0B,0xA9,0x00,0x6A,0x04,0x10,0x7B,0x0A,0x04,0x42,0x0B,0xB2,0x0F,0x4F,0x00,0x0F,0xA4,0x09,0x13,
+ 0x00,0x4E,0x0D,0x0F,0x06,0x95,0x00,0x13,0x31,0x5F,0x06,0x0D,0x3C,0x0F,0xBA,0x1F,0x09,0x0D,0x3B,0x0F,0x0A,0x8F,0x0F,0x46,0x13,0x2D,0x0F,0x13,0x02,0x13,0x1B,0x4F,
+ 0xCD,0x04,0x1E,0x3A,0x6F,0x0D,0x78,0x0F,0x00,0x04,
+};
+uint8_t tileset_tile_83_compressed[35] = {
+ 0x10,0x20,0x10,0x08,0xA5,0x00,0x15,0x04,0x28,0x1D,0x3A,0x75,0x41,0x3A,0x02,0x17,0x66,0x00,0x18,0x48,0x0E,0xE3,0x00,0x17,0x30,0x0E,0x10,0x0D,0x23,0x0F,0x4B,0xA0,
+ 0x0F,0x00,0x10,
+};
+uint8_t tileset_tile_84_compressed[41] = {
+ 0x10,0x20,0x10,0x08,0xA5,0x00,0x15,0x04,0x28,0x1D,0x3A,0x76,0x41,0x78,0x1E,0x2D,0x71,0x43,0x15,0x0E,0x4B,0x15,0x00,0x2C,0x77,0x15,0x0E,0xE2,0x00,0xD7,0x3D,0x0E,
+ 0x0F,0x1B,0x1E,0x1E,0x1F,0x4B,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_85_compressed[122] = {
+ 0x10,0x00,0x10,0x1C,0x1C,0x03,0x01,0x01,0x04,0x04,0x3E,0x01,0x05,0x00,0x07,0xAB,0x09,0x0E,0x08,0xFE,0x0E,0x01,0x00,0xEE,0x11,0x0F,0xFB,0x10,0x00,0x0F,0xFF,0x07,
+ 0x0F,0x02,0x06,0xBB,0x08,0x11,0x3B,0x04,0x03,0x0F,0x18,0xBB,0x38,0x00,0xD7,0x0F,0x03,0x2F,0x77,0x0E,0x10,0xDC,0x0D,0x0F,0x97,0x28,0x20,0xDC,0x0C,0x1F,0xB6,0x28,
+ 0x3A,0x03,0xB7,0x23,0x1F,0x06,0x2F,0x10,0x06,0x7F,0x37,0x0F,0x10,0x72,0x36,0xD3,0x5F,0x00,0x4B,0x0F,0xB9,0x10,0x25,0x32,0x0F,0x97,0x10,0x3C,0x9B,0x1F,0x10,0xC2,
+ 0xC2,0x49,0x11,0x3D,0x74,0x0F,0x00,0x1C,0x2C,0x10,0xB7,0x58,0x1F,0x72,0x0F,0xF5,0x10,0x01,0x3F,0x35,0x0E,0xF0,0x54,0x03,0x00,0x08,
+};
+uint8_t tileset_tile_86_compressed[86] = {
+ 0x10,0x1D,0x10,0x01,0x05,0x00,0xDC,0x03,0x06,0xFA,0x0A,0x05,0x01,0xE7,0x03,0x15,0x8A,0x00,0xD1,0x0C,0x04,0xAE,0x0F,0x04,0x00,0x49,0x28,0xAA,0x04,0x0E,0xE6,0x11,
+ 0x00,0xB2,0x0B,0x03,0x03,0x64,0x12,0x04,0xD3,0x0D,0x4E,0x10,0x0E,0x01,0xBE,0x0E,0x1C,0x64,0x04,0x03,0x91,0x35,0x93,0x04,0xDC,0x1B,0x07,0xDD,0x0F,0x69,0xF2,0x4F,
+ 0x05,0xF2,0x24,0x76,0x85,0xA3,0xF1,0x06,0x10,0xE1,0x9F,0x18,0xC0,0x15,0x0A,0x71,0x2E,0x61,0xCE,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_87_compressed[123] = {
+ 0x10,0x14,0x10,0x04,0x01,0x00,0x05,0xCA,0x00,0x01,0x04,0x09,0x0B,0x03,0x1C,0x1C,0x04,0x0D,0xAF,0x12,0x07,0x01,0xFA,0x07,0x10,0x16,0xBE,0x0F,0x06,0xED,0x0E,0x0F,
+ 0x03,0xDD,0x08,0x0D,0xB1,0x0E,0x05,0x05,0x1C,0x03,0x03,0x77,0x0C,0x3C,0x77,0x1F,0x0F,0x77,0x11,0x3D,0x6B,0x00,0x03,0x1F,0xBB,0x10,0x50,0xAB,0x36,0x4F,0xD7,0x08,
+ 0x03,0x44,0x2D,0x36,0xFC,0x6F,0x00,0x0F,0xBA,0x0E,0x16,0x1F,0x4B,0x36,0x0B,0xBE,0x48,0x0E,0x49,0x0F,0x2F,0x2C,0x0E,0x0F,0x4B,0x4B,0x1F,0xCB,0x42,0x0E,0x52,0x0F,
+ 0x49,0x6A,0x0D,0x86,0xBC,0x0E,0x4B,0x96,0x46,0x57,0x0E,0x1C,0x0E,0xA6,0x0F,0x03,0x0E,0xB9,0x0F,0xEE,0x1F,0x0E,0x4E,0x2F,0x10,0x00,0x01,
+};
+uint8_t tileset_tile_88_compressed[51] = {
+ 0x10,0x1A,0x10,0x02,0x22,0x00,0x0C,0x9A,0x03,0x11,0x00,0x0C,0xE0,0x03,0x76,0x0F,0x26,0x25,0x0C,0x00,0x95,0x0F,0x25,0x1A,0x0F,0x25,0x87,0x04,0x0F,0x25,0x07,0x07,
+ 0x5F,0x0F,0x0B,0x71,0x10,0x15,0x0F,0x0E,0x71,0x10,0x09,0x0F,0x0C,0xA6,0x10,0x00,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_89_compressed[49] = {
+ 0x10,0x34,0x10,0x11,0x00,0x0C,0x0F,0x70,0x03,0xC2,0x00,0x07,0xC8,0x04,0x0A,0x0B,0xBF,0x0E,0x0D,0x00,0x8A,0x0E,0xE3,0x0C,0x29,0x0F,0x1D,0x0A,0x17,0x2D,0x64,0x0E,
+ 0x22,0x0B,0x5F,0x1E,0x0E,0xA5,0x03,0x07,0x00,0xDD,0x0F,0x25,0x00,0xC0,0x41,0x00,0x20,
+};
+uint8_t tileset_tile_90_compressed[51] = {
+ 0x10,0x34,0x10,0x11,0x00,0x0C,0x0F,0x71,0x03,0xE5,0x00,0x0B,0x0A,0xA2,0x05,0x07,0x74,0x0F,0x00,0x0A,0x5A,0x10,0x0B,0xE3,0x00,0x17,0x21,0x0A,0x21,0x3E,0x0F,0x1F,
+ 0x22,0xE2,0x10,0xFE,0x20,0x0B,0x10,0x2E,0x20,0xDD,0x3D,0x25,0x00,0x4B,0x0F,0x00,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_91_compressed[51] = {
+ 0x10,0x35,0x10,0x11,0x00,0x0C,0xBB,0x03,0x22,0x00,0x03,0x40,0x02,0xDE,0x0F,0x0C,0x99,0x00,0x25,0x1E,0x0F,0x25,0x8F,0x0F,0x43,0x25,0xC2,0x0F,0x07,0x07,0x25,0x2E,
+ 0x0F,0xB8,0x0E,0x00,0x99,0x0F,0x32,0x0E,0x00,0x02,0x07,0x7B,0x00,0x0D,0xD0,0x42,0x02,0x00,0x08,
+};
+uint8_t tileset_tile_92_compressed[59] = {
+ 0x10,0x05,0x10,0x02,0x12,0x12,0x09,0x92,0x00,0x07,0x09,0xC2,0x00,0x4B,0x0F,0x0F,0x00,0x24,0x07,0x0F,0x0E,0x52,0x0F,0x0F,0x07,0xFB,0x00,0x20,0x10,0xE6,0x16,0x2F,
+ 0xFB,0x0F,0x02,0x25,0x44,0x09,0xFA,0x0F,0x0C,0x00,0x0F,0x7E,0x3F,0x0F,0xAE,0x02,0x23,0x7B,0x3F,0x0E,0xB8,0x10,0x1F,0xE0,0x7F,0x00,0x10,
+};
+uint8_t tileset_tile_93_compressed[44] = {
+ 0x10,0x12,0x10,0x07,0x09,0xC3,0x00,0x09,0x07,0x0F,0x13,0x06,0x0F,0xCB,0x07,0x10,0xCF,0x0E,0x07,0x7D,0x21,0x00,0xCF,0x2D,0x07,0xAE,0x04,0x07,0x1B,0x79,0x07,0xA7,
+ 0x1B,0x07,0xE6,0x06,0x56,0x9A,0x07,0x07,0xF8,0x7F,0x00,0x04,
+};
+uint8_t tileset_tile_94_compressed[44] = {
+ 0x10,0x12,0x10,0x07,0x09,0xC3,0x00,0x09,0x07,0x0F,0x13,0x06,0x0F,0xCB,0x07,0x10,0xCF,0x0E,0x07,0x7D,0x21,0x00,0xCF,0x2D,0x07,0xAE,0x04,0x07,0x1B,0x79,0x07,0xA7,
+ 0x1B,0x07,0xE6,0x06,0x56,0x9A,0x07,0x07,0xF8,0x7F,0x00,0x04,
+};
+uint8_t tileset_tile_95_compressed[57] = {
+ 0x10,0x12,0x10,0x07,0x09,0xDE,0x00,0x07,0x04,0x07,0x42,0x02,0x09,0x0F,0x0F,0x1D,0x0E,0x0F,0x07,0x57,0x00,0x0F,0x13,0x7D,0x10,0x09,0x5F,0x1B,0x00,0x0F,0xDC,0x08,
+ 0x18,0xB2,0x30,0x55,0x0F,0x25,0xCF,0x23,0x0F,0x76,0x1B,0x34,0x07,0x96,0x3F,0x4B,0x0E,0x10,0x9A,0x3F,0x07,0xF8,0x7F,0x00,0x04,
+};
+uint8_t tileset_tile_96_compressed[79] = {
+ 0x10,0x35,0x10,0x4B,0x00,0x0D,0x09,0x00,0x13,0x0D,0x06,0x69,0x00,0x0E,0x0B,0xFC,0x00,0x0F,0x10,0x77,0x0F,0x10,0x1D,0x0F,0xC7,0x10,0xDC,0x0F,0x10,0xF5,0x4F,0x00,
+ 0xFC,0x0C,0x02,0x0F,0xF2,0x20,0x73,0x2D,0x10,0xCC,0x0F,0x5E,0x0D,0x8E,0x0F,0x9F,0x1F,0x0E,0x89,0x7F,0x93,0x00,0x09,0x8C,0x7F,0x96,0x4C,0x39,0x0F,0x13,0x19,0x0F,
+ 0x7C,0x7F,0x01,0xF2,0x0F,0xA7,0x3E,0x0D,0x4F,0x4F,0x13,0x7F,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_97_compressed[74] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x26,0x00,0x0D,0x07,0xD2,0x00,0x13,0x11,0x0E,0x13,0x13,0x1F,0x10,0x08,0x13,0x71,0x00,0x3C,0x21,0x1D,0x64,0x10,0xC9,0x0E,0x13,0x93,0x43,
+ 0x13,0xDC,0x00,0x4B,0x54,0x1D,0xB1,0x5C,0x96,0x0E,0x5C,0x0D,0x8B,0x3B,0x9E,0x4E,0xA3,0x0D,0x38,0x10,0x04,0xC8,0x10,0xA0,0xA9,0x8A,0x18,0xE3,0x26,0x2F,0x16,0x7F,
+ 0x01,0x8D,0x25,0xA8,0x6E,0xD4,0x34,0x0D,0x00,0x02,
+};
+uint8_t tileset_tile_98_compressed[85] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x0A,0x00,0x0D,0x13,0x0D,0x00,0x64,0x4B,0x00,0x06,0x13,0xBB,0x0E,0x0F,0x0B,0x00,0xAA,0x10,0x0B,0xF8,0x02,0x0D,0xAD,0x0F,0x0D,0x0D,0x1B,
+ 0x0F,0xC6,0x0E,0x25,0x0F,0x13,0x00,0x9F,0x4F,0x1D,0x8B,0x1E,0x71,0x4B,0x0E,0xB3,0x0F,0xCF,0x3D,0x0F,0x2F,0x4E,0x73,0x13,0x0F,0x75,0x10,0x04,0x72,0x00,0xF7,0x6F,
+ 0x0B,0x04,0x14,0x7F,0x06,0x8C,0x0F,0xE3,0x2C,0x38,0x0F,0x0E,0xC9,0x0F,0x6A,0x2C,0x25,0x68,0x4F,0x00,0x04,
+};
+uint8_t tileset_tile_99_compressed[86] = {
+ 0x10,0x33,0x10,0x4B,0x00,0x0D,0x0B,0x00,0x12,0x0D,0x0D,0x06,0xCE,0x00,0x0F,0x13,0x44,0x0D,0xF5,0x0F,0x00,0x0F,0x35,0x10,0xDA,0x0C,0x2E,0x13,0x6E,0x10,0x0B,0xEF,
+ 0x0F,0x1F,0x0F,0xE7,0x10,0x0F,0xB6,0x0E,0x13,0x0C,0x13,0x9A,0x0F,0x7E,0x2D,0x10,0xEE,0x3F,0x3C,0x7E,0x6F,0x06,0xE2,0x1B,0x6E,0x0F,0x12,0x58,0x2C,0xCE,0x10,0x04,
+ 0x32,0x10,0x5B,0x06,0x15,0x8B,0x18,0xE3,0x26,0x2F,0x16,0x7F,0x01,0x8D,0x25,0xA8,0x6E,0xD4,0x34,0x0D,0x00,0x02,
+};
+uint8_t tileset_tile_100_compressed[93] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x0C,0x00,0x0D,0x0D,0x0B,0x00,0x0D,0x4B,0xC9,0x00,0x06,0x13,0x13,0x0E,0x13,0xFF,0x0F,0x0B,0x21,0x13,0xFC,0x00,0x0F,0x22,0xBF,0x0F,0x0D,
+ 0x1D,0xCB,0x00,0x30,0xC9,0x00,0x2C,0x25,0x1F,0xF2,0x0F,0x02,0x4F,0x2C,0x10,0x77,0x0F,0x1D,0x3D,0x10,0xCF,0x02,0x0D,0x77,0x42,0x3F,0x2D,0x10,0xCD,0x48,0x00,0x27,
+ 0x5D,0x06,0x19,0x10,0xC6,0x04,0x4A,0x10,0x06,0x13,0x8D,0x0E,0xA8,0x78,0xC5,0x16,0x13,0xA3,0x02,0x13,0x6A,0x25,0x6E,0x35,0x34,0x0D,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_101_compressed[109] = {
+ 0x10,0x03,0x10,0x1F,0x1F,0x1C,0x1C,0x04,0x00,0x4A,0x03,0x00,0x05,0x49,0x04,0x0E,0x3E,0x0D,0x0E,0x05,0xB9,0x0F,0x9F,0x0D,0x01,0x0E,0x03,0x10,0x0F,0x01,0x11,0x01,
+ 0x04,0x01,0x3F,0x0F,0x2A,0x1D,0x5F,0x03,0x12,0x4F,0x7D,0x0F,0x1C,0xFA,0x0E,0x0F,0x00,0x4B,0x5B,0x20,0x0D,0xFB,0x00,0x59,0x0F,0xE5,0x05,0x0D,0xAC,0x1E,0x0A,0x4B,
+ 0x4B,0xA9,0x1E,0x2E,0x0B,0x2D,0xBE,0x2F,0x0F,0x3D,0x49,0x49,0x29,0x52,0x1F,0x04,0x73,0x4D,0x73,0x50,0x00,0x27,0x0F,0x05,0x00,0xFE,0x4F,0x0F,0x0D,0x32,0x0F,0x22,
+ 0x6E,0xF0,0x00,0x8F,0x8D,0x2F,0xE2,0x7E,0x6E,0x2E,0x16,0x00,0x01,
+};
+uint8_t tileset_tile_102_compressed[84] = {
+ 0x10,0x11,0x10,0x01,0x05,0x8E,0x00,0x01,0x00,0xA6,0x04,0x0B,0x9A,0x0E,0xF9,0x06,0x03,0xE3,0x09,0xF8,0x2F,0x00,0xD8,0x0D,0xBA,0x27,0x0C,0x49,0x04,0x11,0x3F,0x04,
+ 0x0E,0x2C,0x10,0xF5,0x00,0x0E,0x3C,0x11,0xEF,0x0D,0x03,0x03,0x09,0x98,0x02,0x04,0x03,0xBD,0x03,0x11,0x03,0x75,0x0C,0x06,0x4B,0x1B,0x05,0x11,0xAA,0x17,0x27,0xBF,
+ 0x29,0x63,0x0F,0xB9,0x30,0x6E,0x03,0x0F,0xE5,0x48,0x7F,0x8D,0x8B,0x09,0xA3,0x07,0xC2,0xBF,0x00,0x01,
+};
+uint8_t tileset_tile_103_compressed[107] = {
+ 0x10,0x09,0x10,0x04,0x05,0x03,0x58,0x00,0x04,0x00,0x1C,0x1C,0x1F,0x38,0x1F,0x05,0x10,0x9A,0x11,0x10,0x52,0x01,0x10,0x01,0x69,0x11,0x9A,0x0F,0x01,0x01,0x01,0x27,
+ 0x0F,0x0C,0xFE,0x30,0x21,0x02,0x75,0x0F,0x01,0xF7,0x0F,0x10,0x22,0xFD,0x0F,0x4F,0x1F,0x5C,0x50,0x00,0xAE,0x1E,0x4B,0x0E,0x5A,0x20,0x00,0xAF,0x5F,0x0F,0x0D,0xB9,
+ 0x31,0x29,0x13,0x20,0x4B,0xC9,0x1F,0x4C,0x27,0x55,0x41,0x5C,0x0F,0x06,0xD6,0x4E,0x51,0x04,0x9E,0x0F,0xE3,0x12,0xFD,0x0F,0x01,0x0F,0x1F,0x13,0x0F,0x7C,0x70,0x0F,
+ 0x76,0x2F,0x8F,0x17,0x08,0x13,0x30,0x84,0x80,0x00,0x02,
+};
+uint8_t tileset_tile_104_compressed[79] = {
+ 0x10,0x05,0x10,0x02,0x07,0x0C,0x25,0xA6,0x00,0x07,0x00,0x4C,0x02,0x10,0x0C,0x99,0x00,0x02,0x71,0x21,0x6B,0x0F,0x17,0x10,0x8A,0x0F,0x4B,0x0B,0x10,0x10,0x0F,0x1B,
+ 0x96,0x10,0x26,0x3F,0x59,0x10,0xF9,0x00,0x3F,0x67,0x10,0x00,0xD7,0x0F,0x1B,0x10,0x14,0x1F,0x1B,0x8C,0x10,0xBA,0x0F,0x10,0x4F,0x17,0x00,0x26,0x0F,0x10,0x17,0x4D,
+ 0x0A,0x00,0x2F,0x0F,0x10,0x3C,0x00,0xD1,0x0F,0xF0,0x1F,0xC4,0x0F,0x00,0x02,
+};
+uint8_t tileset_tile_105_compressed[62] = {
+ 0x10,0x25,0x10,0x07,0x00,0x48,0x0C,0x00,0x0A,0xE5,0x00,0x08,0x4A,0x07,0x0B,0x22,0x8A,0x0F,0x99,0x10,0x0C,0x17,0x20,0x71,0x0D,0x9C,0x20,0x00,0x7C,0x10,0xD2,0x5F,
+ 0xB4,0x62,0x25,0x0F,0x02,0x72,0x00,0x07,0x1E,0x00,0x47,0x17,0x23,0x00,0x0A,0x91,0x00,0x10,0xC4,0x00,0x02,0x1A,0x62,0x00,0x02,0x1F,0x0F,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_106_compressed[74] = {
+ 0x10,0x34,0x10,0x0A,0x00,0x0C,0x89,0x00,0x07,0x72,0x00,0x0E,0x22,0x0C,0xF9,0x13,0x0F,0x67,0x16,0x0E,0x9E,0x0F,0xA2,0x11,0xEE,0x1E,0x0D,0x33,0x1E,0x0C,0x8F,0x2D,
+ 0x44,0x25,0xD2,0x5C,0x00,0x02,0x39,0x00,0x07,0x0F,0x23,0x00,0x17,0x91,0x00,0x0A,0xC9,0x00,0x10,0x82,0x00,0x02,0x0B,0x0B,0x1B,0xE7,0x00,0x17,0x4D,0x02,0x17,0x3A,
+ 0x0F,0x1B,0x68,0x4F,0x89,0x0F,0xA0,0x00,0x00,0x10,
+};
+uint8_t tileset_tile_107_compressed[93] = {
+ 0x10,0x26,0x10,0x07,0x00,0x58,0x25,0x00,0x0C,0x07,0x02,0x4D,0x0C,0x00,0x34,0x0E,0x5D,0x0F,0x22,0x0E,0x10,0xAD,0x0F,0x0E,0x17,0x13,0x0F,0x22,0x0E,0x0B,0x22,0x0F,
+ 0x52,0x0E,0x1B,0x02,0x79,0x5F,0x79,0x0E,0x3F,0xE5,0x00,0x0E,0x44,0x17,0xDB,0x1F,0x0E,0x1B,0x0F,0x8C,0x0E,0xA4,0x0F,0x17,0xF7,0x00,0x0E,0x49,0x0F,0x0A,0x97,0x00,
+ 0x17,0x0E,0x56,0x0F,0x05,0x1B,0x77,0x0B,0x77,0x0E,0x69,0x0F,0x10,0x79,0x00,0x37,0xA6,0x0F,0x4E,0x4E,0x1B,0x0F,0x1B,0x9A,0x00,0x78,0x0F,0x00,0x04,
+};
+uint8_t tileset_tile_108_compressed[61] = {
+ 0x10,0x05,0x10,0x02,0x12,0x12,0x09,0x92,0x00,0x07,0x09,0xC2,0x00,0x4B,0x0F,0x0F,0x00,0x25,0x07,0x0F,0x00,0xF8,0x0F,0x0A,0xB4,0x00,0x02,0x68,0x0E,0x07,0x00,0x02,
+ 0x8D,0x00,0x71,0x00,0x10,0xB0,0x1F,0x89,0x0F,0x31,0x2D,0x85,0x00,0x10,0x07,0x31,0x1E,0x2E,0x00,0x1D,0x0F,0xE7,0x09,0x0F,0x81,0x82,0x1F,0x00,0x01,
+};
+uint8_t tileset_tile_109_compressed[46] = {
+ 0x10,0x12,0x10,0x07,0x09,0xC3,0x00,0x09,0x07,0x0F,0x62,0x00,0x21,0x07,0xE4,0x00,0x02,0x74,0x00,0x3E,0x2F,0x07,0x46,0x10,0xC3,0x00,0xF0,0x0F,0xF9,0x6F,0x02,0x09,
+ 0x19,0x00,0xA3,0x0F,0x0F,0x2E,0x00,0x0F,0x26,0x3C,0xA0,0x0F,0x00,0x10,
+};
+uint8_t tileset_tile_110_compressed[53] = {
+ 0x10,0x12,0x10,0x07,0x09,0xC3,0x00,0x09,0x07,0x0F,0x62,0x00,0x21,0x07,0xE4,0x00,0x02,0x74,0x00,0x3E,0x2F,0x1E,0x8F,0x00,0x46,0x1D,0x71,0x00,0x0E,0xB9,0x4E,0x11,
+ 0x02,0x0B,0x69,0x00,0x02,0xA1,0x06,0x28,0x0F,0xF5,0x2F,0x0A,0xA6,0x00,0x02,0x06,0x84,0x20,0x0F,0x00,0x10,
+};
+uint8_t tileset_tile_111_compressed[54] = {
+ 0x10,0x12,0x10,0x07,0x09,0xDE,0x00,0x07,0x04,0x07,0x42,0x02,0x09,0x0F,0x0F,0x64,0x00,0x07,0xB8,0x0F,0xD8,0x00,0x42,0x0F,0x39,0x00,0x10,0x1A,0x1D,0x10,0x42,0x00,
+ 0x05,0x0F,0x31,0x1E,0x06,0x00,0x1D,0x07,0x10,0x2D,0x00,0x10,0x8B,0x0F,0xA4,0x05,0x10,0x0C,0x50,0x1F,0x00,0x08,
+};
+uint8_t tileset_tile_112_compressed[75] = {
+ 0x10,0x33,0x10,0x4B,0x00,0x0D,0x0B,0x00,0x12,0x0D,0x0D,0x06,0xCE,0x00,0x0F,0x13,0x44,0x0D,0xFA,0x0F,0x00,0x0E,0x13,0x69,0x10,0xEE,0x1E,0x10,0x3D,0x0F,0x0D,0x1B,
+ 0x0F,0xF3,0x0C,0x02,0xCC,0x0F,0x2D,0x13,0x9E,0x4F,0x75,0x5E,0x0D,0xCF,0x1F,0x30,0x73,0x42,0x72,0x0F,0x10,0x73,0x00,0x07,0xCB,0x0F,0x25,0x0A,0x4F,0x0F,0x0A,0x24,
+ 0x34,0xDC,0x5F,0x07,0x90,0x04,0x43,0x00,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_113_compressed[77] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x26,0x00,0x0D,0x07,0xD2,0x00,0x13,0x11,0x0E,0x13,0x13,0x1F,0x10,0x08,0x13,0x71,0x00,0x3C,0x21,0x1D,0x64,0x10,0xC9,0x0E,0x13,0x93,0x43,
+ 0x13,0xDC,0x00,0x4B,0x54,0x1D,0xB1,0x5C,0x93,0x0E,0xF7,0x1D,0x0D,0x00,0x24,0x0F,0xAA,0x00,0x0B,0x00,0xBE,0x07,0x1E,0x58,0x0A,0x88,0x04,0x5A,0x0F,0x7D,0x34,0x0F,
+ 0x4B,0x6B,0x09,0x4B,0x00,0x95,0x14,0x4B,0x0F,0x40,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_114_compressed[80] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x0C,0x00,0x0D,0x0D,0x0B,0x00,0x0D,0x4B,0xC9,0x00,0x06,0x13,0x13,0x0E,0x13,0xFF,0x0F,0x0B,0x21,0x13,0xFC,0x00,0x10,0x00,0xBF,0x0F,0x0D,
+ 0x1D,0xCF,0x00,0x20,0x24,0x2C,0x67,0x0F,0x0A,0x18,0x0F,0x0D,0x8D,0x0F,0x9E,0x0E,0x7E,0x4F,0x04,0x26,0x1E,0xEA,0x1F,0x04,0xEE,0x00,0x0E,0x7B,0x0F,0x09,0x86,0x2E,
+ 0x0F,0x2A,0x7B,0x0F,0x50,0xBB,0x52,0x59,0x4D,0x0D,0x5F,0x0F,0xC0,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_115_compressed[92] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x26,0x00,0x0D,0x07,0xD2,0x00,0x13,0x11,0x0E,0x13,0x13,0x1F,0x10,0x08,0x13,0x71,0x00,0x3C,0x21,0x1D,0x64,0x10,0xC9,0x0E,0x13,0x93,0x43,
+ 0x13,0xDC,0x00,0x4B,0x54,0x1D,0xB1,0x5C,0x97,0x0E,0x77,0x71,0x00,0x18,0x3B,0x00,0x0B,0x0B,0x0D,0xAF,0x02,0x10,0x19,0x8A,0x0F,0xAA,0x10,0x2A,0x8A,0x0F,0xEE,0x04,
+ 0x4C,0x6B,0x40,0x0E,0x92,0x0F,0xDD,0x10,0x4B,0x00,0xD5,0x12,0x0F,0xF7,0x7F,0x01,0x0F,0x72,0x20,0xF3,0x3E,0x04,0xCF,0x0F,0x7F,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_116_compressed[92] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x26,0x00,0x0D,0x07,0xD2,0x00,0x13,0x11,0x0E,0x13,0x13,0x1F,0x10,0x08,0x13,0x71,0x00,0x3C,0x21,0x1D,0x64,0x10,0xC9,0x0E,0x13,0x93,0x43,
+ 0x13,0xDC,0x00,0x4B,0x54,0x1D,0xB1,0x5C,0x96,0x0E,0x5C,0x0D,0x9A,0x3B,0xEA,0x03,0x00,0x5E,0x30,0x06,0x8A,0x03,0x0B,0x0B,0x02,0x96,0x41,0xD3,0x74,0x0B,0xAE,0x0F,
+ 0x06,0x3B,0xE7,0x0E,0x1F,0x92,0x13,0xEE,0x10,0x3F,0xEE,0x74,0x0F,0xDC,0x0C,0x4B,0x00,0xD2,0x0E,0x5F,0x2F,0x0F,0x20,0x1B,0x0F,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_117_compressed[124] = {
+ 0x10,0x00,0x10,0x47,0x47,0x03,0x01,0x01,0x04,0x04,0x3E,0x01,0x05,0x00,0x07,0xBF,0x09,0x0E,0x0A,0x05,0x7D,0x49,0x10,0x00,0x9D,0x11,0x04,0x1C,0x0F,0xF7,0x10,0x00,
+ 0x0F,0xFF,0x07,0x0F,0x02,0x06,0x76,0x08,0x11,0x04,0x77,0x03,0x0F,0x18,0x77,0x38,0x00,0xAE,0x0F,0x03,0x2F,0xEF,0x0E,0x10,0x0D,0xB9,0x0F,0x2F,0x28,0x20,0x0C,0xB9,
+ 0x1F,0x6D,0x28,0x3A,0x03,0x6E,0x23,0x1F,0x06,0x5E,0x10,0x06,0xFE,0x37,0x0F,0x10,0xE5,0x36,0x5F,0xA7,0x00,0x4B,0x0F,0x72,0x10,0x4B,0x32,0x0F,0x2F,0x10,0x3C,0x36,
+ 0x1F,0x10,0x1C,0xAB,0x00,0x10,0xBF,0x74,0x0F,0x00,0x4B,0x1C,0x10,0x2C,0x58,0xD3,0x1F,0x7C,0x10,0x01,0x0E,0xB7,0x0F,0x44,0x70,0x03,0x00,0x08,
+};
+uint8_t tileset_tile_118_compressed[87] = {
+ 0x10,0x1D,0x10,0x01,0x05,0x00,0xDC,0x03,0x06,0xFA,0x0A,0x05,0x01,0xE7,0x03,0x15,0x8A,0x00,0xD1,0x0C,0x04,0xAE,0x0F,0x04,0x00,0x49,0x28,0xAA,0x04,0x0E,0xE6,0x11,
+ 0x00,0xB2,0x0B,0x03,0x03,0x64,0x12,0x04,0xD3,0x0D,0x4E,0x10,0x0E,0x01,0xBE,0x0E,0x1C,0x64,0x04,0x03,0x91,0x35,0x89,0x04,0x01,0xE2,0x3C,0x52,0x0F,0x03,0xA6,0x0F,
+ 0x03,0x24,0x9E,0x51,0xEE,0x07,0x0E,0x6B,0x65,0x02,0xB8,0x15,0xC9,0x00,0x1C,0x0E,0x37,0x00,0xDC,0x04,0x00,0x00,0x02,
+};
+uint8_t tileset_tile_119_compressed[124] = {
+ 0x10,0x14,0x10,0x04,0x01,0x00,0x05,0xCA,0x00,0x01,0x04,0x09,0x0B,0x03,0x47,0x47,0x04,0x0D,0xAF,0x12,0x07,0x01,0xFA,0x07,0x10,0x16,0xBE,0x0F,0x06,0xF1,0x0E,0x0F,
+ 0x1C,0x04,0x03,0xDD,0x08,0x0D,0xB1,0x0E,0x05,0x05,0x1C,0x03,0x03,0x77,0x0C,0x3C,0x77,0x1F,0x0F,0x77,0x11,0x3D,0x6B,0x00,0x03,0x1F,0xBB,0x10,0x50,0xAE,0x36,0x0F,
+ 0xD7,0x1B,0x03,0x44,0x2F,0x36,0x0F,0x7C,0x26,0x0F,0xBA,0x0E,0x16,0x1F,0x4B,0x36,0x0B,0xBE,0x48,0x0E,0x49,0x0F,0x2F,0x2C,0x0E,0x0F,0x4B,0x4B,0x1F,0xCB,0x42,0x0E,
+ 0x57,0x0F,0x6A,0x6A,0x0E,0x1C,0x00,0xD2,0x0E,0x4B,0xCA,0x46,0x0E,0x1C,0xF4,0x0E,0x0F,0x03,0xF1,0x0E,0x53,0x1F,0x7C,0x0E,0x0F,0x10,0x00,0x02,
+};
+uint8_t tileset_tile_120_compressed[72] = {
+ 0x10,0x0B,0x10,0x02,0x17,0x1B,0x00,0x26,0x17,0x0A,0x00,0x82,0x02,0x0F,0x0B,0x17,0x3B,0x0F,0x10,0x8E,0x0F,0xE2,0x10,0xD7,0x0F,0x0A,0x10,0x17,0x0F,0x24,0x10,0x42,
+ 0x0F,0x10,0x64,0x10,0x02,0xC9,0x00,0x10,0x62,0x10,0x12,0x1F,0x00,0xC4,0x10,0xCB,0x0F,0x10,0x15,0x0F,0x7C,0x10,0x0F,0xE9,0x00,0x00,0x63,0x10,0x2E,0x0F,0x10,0x74,
+ 0x00,0x00,0xD3,0x10,0xC0,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_121_compressed[33] = {
+ 0x10,0x11,0x10,0x02,0x1A,0x88,0x00,0x02,0x1C,0x11,0x0F,0x17,0x90,0x00,0x8A,0x0F,0x0A,0x32,0x00,0x11,0x0F,0x46,0x0B,0x21,0x00,0x02,0xF4,0x00,0x10,0x74,0x00,0x00,
+ 0x02,
+};
+uint8_t tileset_tile_122_compressed[57] = {
+ 0x10,0x26,0x10,0x0A,0x00,0x0B,0x1B,0x16,0x0F,0x1B,0x01,0x88,0x0F,0xE3,0x0A,0xBE,0x0F,0x0B,0x02,0x24,0x0F,0x0B,0x0B,0x49,0x09,0x01,0x3E,0x0F,0x0A,0x16,0x8D,0x0F,
+ 0x9A,0x00,0x2A,0x2F,0x48,0x30,0xF4,0x1F,0x02,0x72,0x00,0x0A,0x0B,0x90,0x00,0x17,0xF4,0x00,0x7A,0x5F,0x10,0x3A,0x00,0x00,0x01,
+};
+uint8_t tileset_tile_123_compressed[100] = {
+ 0x10,0x05,0x10,0x16,0x0F,0x0F,0x1B,0x96,0x03,0x17,0x1B,0x00,0x17,0x77,0x02,0x09,0x01,0x0C,0x94,0x0F,0x09,0x0B,0x01,0x09,0x2F,0x16,0x0B,0x0F,0x0E,0x2F,0x0B,0x02,
+ 0x0B,0x11,0xEF,0x00,0x0F,0x0E,0xD3,0x0F,0x0B,0x76,0x00,0x0F,0x0E,0x0B,0x9A,0x2F,0xED,0x0F,0x0E,0x0A,0x13,0x1F,0x27,0x0E,0x0F,0x3C,0x00,0xC4,0x0E,0x10,0x0A,0xC9,
+ 0x00,0x17,0x62,0x0E,0xA4,0x0F,0x0E,0x44,0x00,0x4A,0x0F,0x0E,0x00,0x4F,0x17,0x00,0x2C,0x0E,0x4C,0x0F,0xA9,0x0E,0x00,0xE6,0x5F,0x0E,0x27,0x00,0x10,0x00,0x95,0x0E,
+ 0x00,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_124_compressed[50] = {
+ 0x10,0x03,0x10,0x00,0x00,0x02,0x31,0x2D,0x00,0x0A,0x10,0x07,0x31,0x1E,0x00,0x2E,0x1D,0x07,0x0F,0xA3,0x08,0x20,0x0F,0x72,0x1F,0x45,0x07,0xBD,0x0F,0x1D,0x00,0x0F,
+ 0x2D,0xF1,0x04,0x00,0x48,0x0F,0x1E,0x37,0x0F,0x2E,0x10,0x02,0x00,0x5E,0x05,0x06,0x00,0x01,
+};
+uint8_t tileset_tile_125_compressed[59] = {
+ 0x10,0x02,0x10,0x02,0x0F,0x0F,0x07,0x1A,0x66,0x00,0x07,0x0B,0x02,0xB4,0x0F,0x11,0xD0,0x00,0x4F,0x0F,0x3C,0x00,0xD1,0x0F,0x7E,0x00,0x0F,0x15,0x09,0x44,0x0F,0xE4,
+ 0x01,0x0E,0x1B,0x0A,0x5E,0x10,0x0F,0x0A,0xA8,0x0F,0x99,0x00,0x23,0x2F,0x38,0x0F,0x03,0x3D,0x0F,0x8E,0x00,0x47,0x10,0x40,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_126_compressed[49] = {
+ 0x10,0x0B,0x10,0x1D,0x02,0x0A,0x00,0x4C,0x02,0x06,0x1D,0xE3,0x0F,0x29,0x00,0x0F,0x17,0x69,0x00,0x02,0xA0,0x06,0x8A,0x0F,0x34,0x3F,0x1E,0x1D,0x8C,0x00,0x47,0x1E,
+ 0xA3,0x00,0x2D,0x90,0x00,0x1D,0x27,0x23,0x00,0x02,0x91,0x00,0x10,0xD0,0x00,0x00,0x08,
+};
+uint8_t tileset_tile_127_compressed[51] = {
+ 0x10,0x0A,0x10,0x07,0x31,0x1E,0x00,0x0C,0x1D,0x07,0x10,0x2D,0x00,0x10,0x02,0x22,0x10,0x00,0x2A,0x0F,0x05,0xE0,0x0F,0x6B,0x1F,0x47,0x07,0x48,0x1F,0x0F,0x2D,0x5F,
+ 0x1D,0x00,0x0F,0x76,0x04,0x0F,0x1E,0x83,0xDE,0x0F,0x73,0xF9,0x00,0x08,0x78,0x05,0x0F,0x00,0x04,
+};
+uint8_t *tileset_tiles_compressed[128] = {
+ tileset_tile_0_compressed,
+ tileset_tile_1_compressed,
+ tileset_tile_2_compressed,
+ tileset_tile_3_compressed,
+ tileset_tile_4_compressed,
+ tileset_tile_5_compressed,
+ tileset_tile_6_compressed,
+ tileset_tile_7_compressed,
+ tileset_tile_8_compressed,
+ tileset_tile_9_compressed,
+ tileset_tile_10_compressed,
+ tileset_tile_11_compressed,
+ tileset_tile_12_compressed,
+ tileset_tile_13_compressed,
+ tileset_tile_14_compressed,
+ tileset_tile_15_compressed,
+ tileset_tile_16_compressed,
+ tileset_tile_17_compressed,
+ tileset_tile_18_compressed,
+ tileset_tile_19_compressed,
+ tileset_tile_20_compressed,
+ tileset_tile_21_compressed,
+ tileset_tile_22_compressed,
+ tileset_tile_23_compressed,
+ tileset_tile_24_compressed,
+ tileset_tile_25_compressed,
+ tileset_tile_26_compressed,
+ tileset_tile_27_compressed,
+ tileset_tile_28_compressed,
+ tileset_tile_29_compressed,
+ tileset_tile_30_compressed,
+ tileset_tile_31_compressed,
+ tileset_tile_32_compressed,
+ tileset_tile_33_compressed,
+ tileset_tile_34_compressed,
+ tileset_tile_35_compressed,
+ tileset_tile_36_compressed,
+ tileset_tile_37_compressed,
+ tileset_tile_38_compressed,
+ tileset_tile_39_compressed,
+ tileset_tile_40_compressed,
+ tileset_tile_41_compressed,
+ tileset_tile_42_compressed,
+ tileset_tile_43_compressed,
+ tileset_tile_44_compressed,
+ tileset_tile_45_compressed,
+ tileset_tile_46_compressed,
+ tileset_tile_47_compressed,
+ tileset_tile_48_compressed,
+ tileset_tile_49_compressed,
+ tileset_tile_50_compressed,
+ tileset_tile_51_compressed,
+ tileset_tile_52_compressed,
+ tileset_tile_53_compressed,
+ tileset_tile_54_compressed,
+ tileset_tile_55_compressed,
+ tileset_tile_56_compressed,
+ tileset_tile_57_compressed,
+ tileset_tile_58_compressed,
+ tileset_tile_59_compressed,
+ tileset_tile_60_compressed,
+ tileset_tile_61_compressed,
+ tileset_tile_62_compressed,
+ tileset_tile_63_compressed,
+ tileset_tile_64_compressed,
+ tileset_tile_65_compressed,
+ tileset_tile_66_compressed,
+ tileset_tile_67_compressed,
+ tileset_tile_68_compressed,
+ tileset_tile_69_compressed,
+ tileset_tile_70_compressed,
+ tileset_tile_71_compressed,
+ tileset_tile_72_compressed,
+ tileset_tile_73_compressed,
+ tileset_tile_74_compressed,
+ tileset_tile_75_compressed,
+ tileset_tile_76_compressed,
+ tileset_tile_77_compressed,
+ tileset_tile_78_compressed,
+ tileset_tile_79_compressed,
+ tileset_tile_80_compressed,
+ tileset_tile_81_compressed,
+ tileset_tile_82_compressed,
+ tileset_tile_83_compressed,
+ tileset_tile_84_compressed,
+ tileset_tile_85_compressed,
+ tileset_tile_86_compressed,
+ tileset_tile_87_compressed,
+ tileset_tile_88_compressed,
+ tileset_tile_89_compressed,
+ tileset_tile_90_compressed,
+ tileset_tile_91_compressed,
+ tileset_tile_92_compressed,
+ tileset_tile_93_compressed,
+ tileset_tile_94_compressed,
+ tileset_tile_95_compressed,
+ tileset_tile_96_compressed,
+ tileset_tile_97_compressed,
+ tileset_tile_98_compressed,
+ tileset_tile_99_compressed,
+ tileset_tile_100_compressed,
+ tileset_tile_101_compressed,
+ tileset_tile_102_compressed,
+ tileset_tile_103_compressed,
+ tileset_tile_104_compressed,
+ tileset_tile_105_compressed,
+ tileset_tile_106_compressed,
+ tileset_tile_107_compressed,
+ tileset_tile_108_compressed,
+ tileset_tile_109_compressed,
+ tileset_tile_110_compressed,
+ tileset_tile_111_compressed,
+ tileset_tile_112_compressed,
+ tileset_tile_113_compressed,
+ tileset_tile_114_compressed,
+ tileset_tile_115_compressed,
+ tileset_tile_116_compressed,
+ tileset_tile_117_compressed,
+ tileset_tile_118_compressed,
+ tileset_tile_119_compressed,
+ tileset_tile_120_compressed,
+ tileset_tile_121_compressed,
+ tileset_tile_122_compressed,
+ tileset_tile_123_compressed,
+ tileset_tile_124_compressed,
+ tileset_tile_125_compressed,
+ tileset_tile_126_compressed,
+ tileset_tile_127_compressed,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tileset.png b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tileset.png
new file mode 100644
index 0000000..c20a947
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tileset.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/main.c b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/main.c
new file mode 100644
index 0000000..70360a6
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/main.c
@@ -0,0 +1,119 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <compression.h>
+#include <graphx.h>
+
+/* Include the graphics */
+#include "gfx/tiles_gfx.h"
+#include "tilemapdata.h"
+
+/* Tilemap defines */
+#define TILE_WIDTH (16)
+#define TILE_HEIGHT (16)
+#define TILE_SIZE ((TILE_WIDTH * TILE_HEIGHT) + 2) // +2 for width and height bytes
+
+#define TILEMAP_WIDTH (32)
+#define TILEMAP_HEIGHT (25)
+
+#define TILEMAP_DRAW_WIDTH (20)
+#define TILEMAP_DRAW_HEIGHT (14)
+
+#define Y_OFFSET (16)
+#define X_OFFSET (0)
+
+/* This is where the decompressed tilemap data is to be stored */
+uint8_t tilemap_map[TILEMAP_WIDTH * TILEMAP_HEIGHT];
+
+/* Place to hold decompressed tile pointers */
+gfx_sprite_t *tileset_tiles[128];
+
+/* Put all your code here */
+void main(void) {
+ sk_key_t key;
+ uint8_t i;
+ unsigned int x_offset = 0;
+ unsigned int y_offset = 0;
+ gfx_sprite_t *tmp_ptr;
+ gfx_tilemap_t tilemap;
+
+ /* Decompress the compressed tiles */
+ for (i = 0; i < sizeof(tileset_tiles)/sizeof(gfx_sprite_t*) ; i++) {
+ tmp_ptr = gfx_MallocSprite(TILE_WIDTH, TILE_HEIGHT); /* Same as gfx_AllocSprite(TILE_WIDTH, TILE_HEIGHT, malloc) */
+ zx7_Decompress(tmp_ptr, tileset_tiles_compressed[i]);
+ tileset_tiles[i] = tmp_ptr;
+ }
+
+ zx7_Decompress(tilemap_map, tilemap_compressed);
+
+ /* Initialize the tilemap structure */
+ tilemap.map = tilemap_map;
+ tilemap.tiles = tileset_tiles;
+ tilemap.type_width = gfx_tile_16_pixel;
+ tilemap.type_height = gfx_tile_16_pixel;
+ tilemap.tile_height = TILE_HEIGHT;
+ tilemap.tile_width = TILE_WIDTH;
+ tilemap.draw_height = TILEMAP_DRAW_HEIGHT;
+ tilemap.draw_width = TILEMAP_DRAW_WIDTH;
+ tilemap.height = TILEMAP_HEIGHT;
+ tilemap.width = TILEMAP_WIDTH;
+ tilemap.y_loc = Y_OFFSET;
+ tilemap.x_loc = X_OFFSET;
+
+ /* Initialize the graphics scene */
+ gfx_Begin();
+
+ /* Set up the palette */
+ gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0);
+ gfx_SetColor(gfx_white);
+
+ /* Draw to buffer to avoid tearing. Note, this is the same as gfx_SetDraw(gfx_buffer) */
+ gfx_SetDrawBuffer();
+
+ /* Set monospace font with width of 8 */
+ gfx_SetMonospaceFont(8);
+
+ /* Wait for the enter key to quit */
+ while ((key = os_GetCSC()) != sk_Enter) {
+
+ /* Draw tilemap and coords */
+ gfx_Tilemap(&tilemap, x_offset, y_offset);
+ gfx_FillRectangle(0, 0, 320, 16);
+ gfx_PrintStringXY("x offset:", 48, 4);
+ gfx_PrintUInt(x_offset, 4);
+ gfx_PrintString(" y offset:");
+ gfx_PrintUInt(y_offset, 4);
+
+ /* Do something based on the keypress */
+ switch (key) {
+ case sk_Down:
+ if (y_offset < (TILEMAP_HEIGHT * TILE_HEIGHT) - (TILEMAP_DRAW_HEIGHT * TILE_HEIGHT))
+ y_offset += TILE_HEIGHT;
+ break;
+ case sk_Left:
+ if (x_offset)
+ x_offset -= TILE_WIDTH;
+ break;
+ case sk_Right:
+ if (x_offset < (TILEMAP_WIDTH * TILE_WIDTH) - (TILEMAP_DRAW_WIDTH * TILE_WIDTH))
+ x_offset += TILE_WIDTH;
+ break;
+ case sk_Up:
+ if (y_offset)
+ y_offset -= TILE_HEIGHT;
+ break;
+ default:
+ break;
+ }
+ gfx_SwapDraw();
+ }
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.c b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.c
new file mode 100644
index 0000000..90eefa2
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.c
@@ -0,0 +1,16 @@
+// Converted using ConvTile
+#include <stdint.h>
+
+uint8_t tilemap_compressed[339] = {
+ 0x04,0x03,0x05,0x02,0x00,0x01,0x02,0x03,0x01,0xBB,0x05,0x0A,0xFB,0x08,0x00,0x06,0xEB,0x18,0x05,0x04,0x2C,0x14,0x15,0x1A,0x10,0x10,0xFE,0x05,0x0D,0x02,0xEA,0x18,
+ 0x0E,0xF1,0x06,0x18,0x50,0x51,0x52,0xF5,0x04,0x21,0x06,0x56,0x1F,0x1D,0x10,0x97,0x00,0x1D,0xB0,0x47,0x24,0x25,0x60,0x61,0x5D,0x62,0x3F,0x5D,0x06,0x2F,0xF3,0x5E,
+ 0x1B,0xD8,0x00,0x0D,0x70,0x71,0x72,0xBA,0x3F,0x06,0x92,0x56,0x54,0x5A,0x02,0xB3,0x03,0x05,0x93,0xA5,0x3F,0x03,0x16,0x92,0x41,0x59,0x5A,0x69,0x11,0x45,0x03,0x7C,
+ 0x3F,0x0C,0x93,0x13,0xCF,0x1C,0x0B,0xD5,0x1F,0x27,0xCD,0x3F,0x1F,0x34,0x77,0xD2,0x61,0xA6,0x1F,0x02,0x3F,0x44,0x10,0xC9,0x00,0x3E,0x61,0xD2,0x72,0x6F,0xF3,0x3F,
+ 0x06,0x84,0xBF,0xA3,0x99,0xE0,0x02,0xD2,0x64,0xBE,0x07,0x0F,0x49,0x3F,0x65,0x1C,0x7C,0x94,0x1F,0x70,0x73,0x4A,0x74,0xCE,0x32,0x4E,0x3F,0x91,0x17,0x3D,0x31,0x49,
+ 0x60,0x62,0x73,0x0A,0x03,0x3F,0x00,0x20,0x21,0x21,0x22,0x05,0x98,0x80,0x24,0x89,0x1E,0x1F,0x41,0x82,0x90,0xFF,0x70,0x0E,0x30,0x31,0x31,0x32,0xB2,0x84,0x9E,0x00,
+ 0x64,0x1F,0x10,0xE1,0x7F,0x40,0x53,0x54,0x42,0xC5,0x0F,0x57,0x20,0x1F,0x0E,0xCE,0x06,0x3F,0x02,0x26,0x30,0x32,0xD2,0x1B,0x87,0x0E,0x02,0xE5,0x3F,0x6A,0x97,0x7F,
+ 0x60,0x9F,0x1F,0x01,0x8D,0x1F,0xB9,0x3F,0x93,0x1F,0x03,0x09,0xF9,0x50,0x52,0xC7,0x05,0x3B,0x3F,0x00,0x1F,0x58,0x94,0x61,0x60,0x64,0x67,0x51,0x00,0x63,0x62,0x08,
+ 0x3F,0x7F,0x15,0x53,0x1F,0x8E,0xFB,0x3E,0x63,0x29,0x74,0x71,0x00,0x72,0x53,0x2F,0x2D,0x3F,0x00,0x5F,0x00,0x38,0xFB,0xD1,0xAD,0xD4,0x17,0xE9,0x90,0x7D,0x3F,0x36,
+ 0xCE,0x1F,0x94,0x74,0xAD,0x68,0x03,0x9F,0x1F,0x1D,0xE6,0x3A,0x07,0xA9,0x1F,0xE6,0x00,0xA9,0x2E,0x7D,0x65,0x3F,0x21,0x92,0x00,0x43,0x44,0x22,0x06,0x22,0x4F,0xDA,
+ 0x6C,0x93,0x08,0x3F,0x45,0x41,0x25,0x00,0x42,0x9C,0x39,0x46,0xC8,0x43,0xEE,0xE0,0x5D,0x00,0x10
+}; \ No newline at end of file
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.h b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.h
new file mode 100644
index 0000000..af369c7
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.h
@@ -0,0 +1,9 @@
+// Converted using ConvTile
+// This file contains all the tilemap sources for easier inclusion in a project
+#ifndef tilemapdata_header
+#define tilemapdata_header
+#include <stdint.h>
+
+extern uint8_t tilemap_compressed[339];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/hello_world/makefile b/frontends/calculator/CEdev/examples/hello_world/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/hello_world/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/hello_world/readme.md b/frontends/calculator/CEdev/examples/hello_world/readme.md
new file mode 100644
index 0000000..880be97
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/hello_world/readme.md
@@ -0,0 +1,9 @@
+### Hello World Demo
+
+This is a simple demo to demonstrate displaying text using the TI-OS rotuines.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/hello_world/screenshot.png b/frontends/calculator/CEdev/examples/hello_world/screenshot.png
new file mode 100644
index 0000000..bc51f39
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/hello_world/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/hello_world/src/main.c b/frontends/calculator/CEdev/examples/hello_world/src/main.c
new file mode 100644
index 0000000..333dcdc
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/hello_world/src/main.c
@@ -0,0 +1,48 @@
+/* Keep these headers */
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+/* Standard headers */
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Put function prototypes here */
+void printText(const char *text, uint8_t x, uint8_t y);
+void printTextSmall(const char *text, uint8_t xpos, uint8_t ypos);
+
+/* Put all your code here */
+void main(void) {
+ /* uint8_t is an unsigned integer that can range from 0-255. */
+ /* It performs faster than just an int, so try to use it (or int8_t) when possible */
+ uint8_t count;
+
+ /* Initialize some strings */
+ const char *HelloWorld = "Hello World!";
+ const char *Welcome = "Welcome to C!";
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Print a few strings */
+ printText(HelloWorld, 0, 0);
+ printText(Welcome, 0, 1);
+
+ /* Wait for a key press */
+ while (!os_GetCSC());
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(const char *text, uint8_t xpos, uint8_t ypos) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
+
+/* Draw small text at the given X/Y location */
+void printTextSmall(const char *text, uint8_t xpos, uint8_t ypos) {
+ os_FontSelect(0); // sets small font (1 == big, see docs)
+ os_FontDrawText(text, xpos, ypos);
+}
diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/autotester.json b/frontends/calculator/CEdev/examples/keypad_arrows/autotester.json
new file mode 100644
index 0000000..c81becf
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/keypad_arrows/autotester.json
@@ -0,0 +1,61 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|500",
+ "key|down",
+ "hash|1",
+ "delay|200",
+ "key|right",
+ "hash|2",
+ "delay|200",
+ "key|up",
+ "hash|3",
+ "delay|200",
+ "key|left",
+ "hash|4",
+ "delay|200",
+ "key|2nd",
+ "hashWait|5"
+ ],
+ "hashes": {
+ "1": {
+ "description": "The screen is black",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "AF74BFCB" ]
+ },
+ "2": {
+ "description": "The screen is red",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "D2E7DAC8" ]
+ },
+ "3": {
+ "description": "The screen is white",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "3132DE74" ]
+ },
+ "4": {
+ "description": "The screen is red (other)",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "74B02578" ]
+ },
+ "5": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/makefile b/frontends/calculator/CEdev/examples/keypad_arrows/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/keypad_arrows/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/readme.md b/frontends/calculator/CEdev/examples/keypad_arrows/readme.md
new file mode 100644
index 0000000..698dd4e
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/keypad_arrows/readme.md
@@ -0,0 +1,10 @@
+### Keypad Arrow Key Demo
+
+This demo changes the color of the screen depending on which arrow keys are pressed.
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/screenshot.gif b/frontends/calculator/CEdev/examples/keypad_arrows/screenshot.gif
new file mode 100644
index 0000000..7d1886c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/keypad_arrows/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/src/main.c b/frontends/calculator/CEdev/examples/keypad_arrows/src/main.c
new file mode 100644
index 0000000..c4f7adf
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/keypad_arrows/src/main.c
@@ -0,0 +1,49 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <keypadc.h>
+
+/* Function Prototypes */
+void fill_screen(uint8_t color);
+
+void main(void) {
+ /* Key variable */
+ kb_key_t key;
+
+ /* Loop until 2nd is pressed */
+ do {
+ /* Update kb_Data */
+ kb_Scan();
+
+ /* Load group 7 registers */
+ key = kb_Data[7];
+
+ switch (key) {
+ case kb_Down: /* Change screen color to black */
+ fill_screen(0x00);
+ break;
+ case kb_Right: /* Change screen color to red */
+ fill_screen(0xE0);
+ break;
+ case kb_Up: /* Change screen color to white */
+ fill_screen(0xFF);
+ break;
+ case kb_Left: /* Change screen color to a different red */
+ fill_screen(0xC0);
+ break;
+ default:
+ break;
+ }
+ } while (kb_Data[1] != kb_2nd);
+}
+
+/* Simple way to fill the screen with a given color */
+void fill_screen(uint8_t color) {
+ memset(lcd_Ram, color, LCD_SIZE);
+}
diff --git a/frontends/calculator/CEdev/examples/keypad_multiple_keys/autotester.json b/frontends/calculator/CEdev/examples/keypad_multiple_keys/autotester.json
new file mode 100644
index 0000000..ea6581f
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/keypad_multiple_keys/autotester.json
@@ -0,0 +1,62 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|500",
+ "key|down",
+ "hash|1",
+ "delay|200",
+ "key|right",
+ "hash|2",
+ "delay|200",
+ "key|up",
+ "hash|3",
+ "delay|200",
+ "key|left",
+ "hash|4",
+ "delay|200",
+ "key|2nd",
+ "delay|300",
+ "hashWait|5"
+ ],
+ "hashes": {
+ "1": {
+ "description": "The screen shows Down",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "349F4775" ]
+ },
+ "2": {
+ "description": "The screen shows Right",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "349F4775" ]
+ },
+ "3": {
+ "description": "The screen shows Up",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "349F4775" ]
+ },
+ "4": {
+ "description": "The screen shows Left",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "349F4775" ]
+ },
+ "5": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/keypad_multiple_keys/makefile b/frontends/calculator/CEdev/examples/keypad_multiple_keys/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/keypad_multiple_keys/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/keypad_multiple_keys/readme.md b/frontends/calculator/CEdev/examples/keypad_multiple_keys/readme.md
new file mode 100644
index 0000000..170f907
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/keypad_multiple_keys/readme.md
@@ -0,0 +1,10 @@
+### Keypad Multiple Keys Demo
+
+This demo shows how to interpret multiple keypresses at the same time
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/keypad_multiple_keys/screenshot.gif b/frontends/calculator/CEdev/examples/keypad_multiple_keys/screenshot.gif
new file mode 100644
index 0000000..65ca1f8
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/keypad_multiple_keys/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/keypad_multiple_keys/src/main.c b/frontends/calculator/CEdev/examples/keypad_multiple_keys/src/main.c
new file mode 100644
index 0000000..fbe3ffa
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/keypad_multiple_keys/src/main.c
@@ -0,0 +1,60 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <keypadc.h>
+
+/* Function prototypes */
+void printText(int8_t xpos, int8_t ypos, const char *text);
+
+void main(void) {
+ /* Key variable */
+ kb_key_t key;
+ const char *erase_string = " ";
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Loop until 2nd is pressed */
+ do {
+
+ /* Update kb_Data */
+ kb_Scan();
+
+ key = kb_Data[7];
+
+ /* Print the current arrow key input */
+ if (key & kb_Down) {
+ printText(0, 0, "Down");
+ } else {
+ printText(0, 0, erase_string);
+ }
+ if (key & kb_Up) {
+ printText(0, 1, "Up");
+ } else {
+ printText(0, 1, erase_string);
+ }
+ if (key & kb_Left) {
+ printText(0, 2, "Left");
+ } else {
+ printText(0, 2, erase_string);
+ }
+ if (key & kb_Right) {
+ printText(0, 3, "Right");
+ } else {
+ printText(0, 3, erase_string);
+ }
+
+ } while (kb_Data[1] != kb_2nd);
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(int8_t xpos, int8_t ypos, const char *text) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
diff --git a/frontends/calculator/CEdev/examples/lcd_fade/makefile b/frontends/calculator/CEdev/examples/lcd_fade/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/lcd_fade/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/lcd_fade/readme.md b/frontends/calculator/CEdev/examples/lcd_fade/readme.md
new file mode 100644
index 0000000..caa170e
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/lcd_fade/readme.md
@@ -0,0 +1,8 @@
+### LCD Fade Demo
+
+This demo demonstrates controlling the LCD backlight by fading in and out
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/lcd_fade/src/main.c b/frontends/calculator/CEdev/examples/lcd_fade/src/main.c
new file mode 100644
index 0000000..b529d01
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/lcd_fade/src/main.c
@@ -0,0 +1,29 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+void main(void) {
+ uint8_t i, level;
+
+ /* Store the current brightness level */
+ level = lcd_BacklightLevel;
+
+ /* Change lcd brightness levels */
+ for (i = level; i > 0; i--) {
+ boot_WaitShort();
+ lcd_BacklightLevel = i;
+ }
+
+ for (i = 0; i < 255; i++) {
+ boot_WaitShort();
+ lcd_BacklightLevel = i;
+ }
+
+ /* Restore the old brightness level */
+ lcd_BacklightLevel = level;
+}
diff --git a/frontends/calculator/CEdev/examples/lcd_fill/makefile b/frontends/calculator/CEdev/examples/lcd_fill/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/lcd_fill/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/lcd_fill/readme.md b/frontends/calculator/CEdev/examples/lcd_fill/readme.md
new file mode 100644
index 0000000..233ffc8
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/lcd_fill/readme.md
@@ -0,0 +1,10 @@
+### Fill Screen Demo
+
+This is a simple demo to demonstrate filling the screen with a certain color.
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/lcd_fill/screenshot.gif b/frontends/calculator/CEdev/examples/lcd_fill/screenshot.gif
new file mode 100644
index 0000000..ac2fcfa
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/lcd_fill/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/lcd_fill/src/main.c b/frontends/calculator/CEdev/examples/lcd_fill/src/main.c
new file mode 100644
index 0000000..ee96bf7
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/lcd_fill/src/main.c
@@ -0,0 +1,30 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Function prototypes */
+void fill_screen(uint8_t color);
+
+void main(void) {
+ /* Turn the whole screen black */
+ fill_screen(0x00);
+
+ /* Wait for a key press */
+ while (!os_GetCSC());
+
+ /* Turn the whole screen red */
+ fill_screen(0xe0);
+
+ /* Wait for a key press */
+ while (!os_GetCSC());
+}
+
+/* Fill the screen with a given color */
+void fill_screen(uint8_t color) {
+ memset(lcd_Ram, color, LCD_SIZE);
+}
diff --git a/frontends/calculator/CEdev/examples/makefile b/frontends/calculator/CEdev/examples/makefile
new file mode 100644
index 0000000..852ed6c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/makefile
@@ -0,0 +1,12 @@
+#-----------------------------------------------
+# This makefile builds all the example projects
+#-----------------------------------------------
+
+DIRS = $(wildcard */makefile)
+
+all clean gfx .PHONY: $(DIRS)
+
+$(DIRS):
+ $(MAKE) -C $(dir $@) $(MAKECMDGOALS)
+
+.PHONY: all clean gfx
diff --git a/frontends/calculator/CEdev/examples/os_input/autotester.json b/frontends/calculator/CEdev/examples/os_input/autotester.json
new file mode 100644
index 0000000..da88dfe
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/os_input/autotester.json
@@ -0,0 +1,38 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|700",
+ "key|1",
+ "delay|200",
+ "key|2",
+ "delay|200",
+ "key|enter",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Output should be 'N is 12.'",
+ "start": "0xD44B00",
+ "size": "128000",
+ "size_comment": "offset + 320x200x2 because we don't want the busy indicator",
+ "expected_CRCs": [ "44FD49F5" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/os_input/makefile b/frontends/calculator/CEdev/examples/os_input/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/os_input/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/os_input/readme.md b/frontends/calculator/CEdev/examples/os_input/readme.md
new file mode 100644
index 0000000..e0f6d7b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/os_input/readme.md
@@ -0,0 +1,9 @@
+### OS Input Demo
+
+This demo shows how to get an input string from the OS.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/os_input/screenshot.png b/frontends/calculator/CEdev/examples/os_input/screenshot.png
new file mode 100644
index 0000000..546ce05
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/os_input/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/os_input/src/main.c b/frontends/calculator/CEdev/examples/os_input/src/main.c
new file mode 100644
index 0000000..7674897
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/os_input/src/main.c
@@ -0,0 +1,36 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <tice.h>
+
+/* Make sure to adjust those sizes according to your usage! */
+#define INPUT_SIZE 10
+#define RESP_SIZE 20
+
+/* Draw text on the homescreen at the given X/Y location */
+void print(const char* text, uint8_t xpos, uint8_t ypos) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
+
+void main(void) {
+ char inputBuffer[INPUT_SIZE];
+ char response[RESP_SIZE];
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Ask the user to type a string, which gets stored in `inputBuf` */
+ os_GetStringInput("What is N? ", inputBuffer, INPUT_SIZE);
+
+ /* Build the user response */
+ sprintf(response, "N is %s.", inputBuffer);
+
+ /* Clear the homescreen and display the built response */
+ os_ClrHome();
+ print(response, 0, 0);
+
+ /* Wait for a key press before quitting */
+ while (!os_GetCSC());
+}
diff --git a/frontends/calculator/CEdev/examples/random/autotester.json b/frontends/calculator/CEdev/examples/random/autotester.json
new file mode 100644
index 0000000..b41ad50
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/random/autotester.json
@@ -0,0 +1,30 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "VRAM filled with output of random()",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "5FB4A617" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/random/bin/DEMO.8xp b/frontends/calculator/CEdev/examples/random/bin/DEMO.8xp
new file mode 100644
index 0000000..fabdb82
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/random/bin/DEMO.8xp
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/random/bin/DEMO.bin b/frontends/calculator/CEdev/examples/random/bin/DEMO.bin
new file mode 100644
index 0000000..fa7ca25
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/random/bin/DEMO.bin
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/random/bin/DEMO.map b/frontends/calculator/CEdev/examples/random/bin/DEMO.map
new file mode 100644
index 0000000..294fb77
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/random/bin/DEMO.map
@@ -0,0 +1,143 @@
+Segment Base Top High Length
+-------- ------ ------ ------ -------
+icon D1A882 D1A882 0h
+launcher D1A882 D1A882 0h
+libs D1A882 D1A882 0h
+startup D1A882 D1A8C1 3Fh
+cleanup D1A8C1 D1A8D5 14h
+exit D1A8D5 D1A8DB 6h
+code D1A8DB D1A9A0 C5h
+data D1A9A0 D1A9B0 10h
+strsect D1A9B0 D1A9B0 0h
+text D1A9B0 D1A9B0 0h
+bss D031F6 D031F6 D13FD6 0h
+header D1A87F D1A882 3h
+
+Label Value
+------------------------- ------
+_os_DisableHomeTextBuffer = D1A8DB
+_os_EnableHomeTextBuffer = D1A8ED
+_random = D1A8FF
+__state = D1A9A0
+_boot_GetBootMajorVer = 000080
+_boot_GetHardwareVer = 000084
+_boot_GetBootMinorVer = 00008C
+_boot_DebugPrintf = 0000B4
+_boot_ClearVRAM = 000374
+_boot_TurnOff = 000388
+_boot_NewLine = 000390
+_boot_Set6MHzMode = 00039C
+_boot_Set48MHzMode = 0003A0
+_boot_Set6MHzModeI = 0003A4
+_boot_Set48MHzModeI = 0003A8
+_boot_GetBatteryStatus = 0003B0
+_boot_WaitShort = 0003B4
+_boot_CheckOnPressed = 00057C
+_boot_SetDate = 000598
+_boot_GetDate = 0005A8
+_boot_GetTime = 0005B0
+_boot_SetTime = 0005B4
+_boot_IsAfterNoon = 0005C8
+_os_NewLine = 0207F0
+_os_PushErrorHandler = 021C78
+_os_PopErrorHandler = 021C7C
+_os_ThrowError = 021C80
+_os_RealCopy = 021C84
+_os_RealAsinRad = 021C88
+_os_RealAcosRad = 021C8C
+_os_RealAtanRad = 021C90
+_os_RealAdd = 021C94
+_os_CplxSquare = 021C98
+_os_RealCompare = 021C9C
+_os_RealCosRad = 021CA0
+_os_RealRadToDeg = 021CA4
+_os_RealDiv = 021CA8
+_os_RealExp = 021CAC
+_os_RealFloor = 021CB0
+_os_RealToStr = 021CB4
+_os_RealFrac = 021CB8
+_os_RealGcd = 021CBC
+_os_RealRoundInt = 021CC0
+_os_RealLcm = 021CC4
+_os_RealLog = 021CC8
+_os_RealMax = 021CCC
+_os_RealMin = 021CD0
+_os_RealMul = 021CD4
+_os_RealNcr = 021CD8
+_os_RealNeg = 021CDC
+_os_RealNpr = 021CE0
+_os_RealPow = 021CE4
+_os_RealDegToRad = 021CE8
+_os_RealRandInt = 021CEC
+_os_RealInv = 021CF0
+_os_RealMod = 021CF4
+_os_RealRound = 021CF8
+_os_RealSinRad = 021CFC
+_os_RealSqrt = 021D00
+_os_RealSub = 021D04
+_os_RealTanRad = 021D08
+_os_StrToReal = 021D0C
+_os_RealInt = 021D10
+_os_SetFlagBits = 021D14
+_os_ResetFlagBits = 021D18
+_os_TestFlagBits = 021D1C
+_os_SetFlagByte = 021D20
+_os_GetFlagByte = 021D24
+_os_GetCursorPos = 021D28
+_os_PutStrFull = 021D2C
+_os_PutStrLine = 021D30
+_os_SetCursorPos = 021D34
+_os_AppInit = 021D40
+_os_GetKey = 021D38
+_os_GetCSC = 021D3C
+_os_DisableCursor = 021DE4
+_os_EnableCursor = 021DE8
+_os_FontDrawText = 021E00
+_os_FontGetHeight = 021E14
+_os_FontGetWidth = 021E18
+_os_InitDrawing = 021E1C
+_os_SetDrawBGColor = 021E20
+_os_SetDrawFGColor = 021E24
+_os_FontSelect = 021E28
+_os_RclAns = 021E70
+_os_SetTimer1 = 021EC8
+_os_DisableTimer1 = 021ECC
+_os_GetSystemStats = 021ED4
+_os_GetDrawBGColor = 021EE4
+_os_GetDrawFGColor = 021EE8
+_os_FontGetID = 021EEC
+_os_RealToInt24 = 021EF4
+_os_Int24ToReal = 021EF8
+_os_ForceCmdNoChar = 021FA8
+_os_GetSymTablePtr = 021FB0
+_os_NextSymEntry = 021FB4
+_os_ChkFindSym = 021FB8
+_os_MemChk = 021FF0
+_os_SetTimer2 = 022080
+_os_DisableTimer2 = 022084
+_os_FloatToReal = 022170
+_os_RealToFloat = 022174
+_os_FontDrawTransText = 022178
+_os_CreateAppVar = 022184
+_asm_MoveDown = 0207F4
+_asm_MoveUp = 020800
+_asm_ClrLCDFull = 020808
+_asm_ClrLCD = 02080C
+_asm_ClrTxtShd = 020818
+_asm_HomeUp = 020828
+_asm_RunIndicOn = 020844
+_asm_RunIndicOff = 020848
+_asm_DelRes = 020E5C
+_asm_DisableAPD = 021134
+_asm_EnableAPD = 021138
+_asm_DrawStatusBar = 021A3C
+_asm_ArcChk = 022040
+__frameset = D1A956
+__ccleanup = D1A8C1
+_errno = D008DC
+_init = D1A882
+_exit = D1A8D7
+__exit = D1A8B0
+__exitsp = D1A8B0
+__errsp = D1A8B0
+_main = D1A964
diff --git a/frontends/calculator/CEdev/examples/random/makefile b/frontends/calculator/CEdev/examples/random/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/random/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/random/obj/main.src b/frontends/calculator/CEdev/examples/random/obj/main.src
new file mode 100644
index 0000000..9aa4a54
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/random/obj/main.src
@@ -0,0 +1,69 @@
+; Zilog eZ80 ANSI C Compiler Release 3.4
+; -optsize -noreduceopt -nomodsect -peephole -globalopt
+; -localcse -const=ROM
+ FILE "SRC\MAIN.C"
+ .assume ADL=1
+ SEGMENT CODE
+; 1 #include <stdbool.h>
+; 2 #include <stddef.h>
+; 3 #include <stdint.h>
+; 4 #include <tice.h>
+; 5
+; 6 #include <stdio.h>
+; 7 #include <stdlib.h>
+; 8 #include <string.h>
+; 9
+; 10 void main(void) {
+_main:
+ LD HL,-3
+ CALL __frameset
+; 11 /* Fill VRAM with random data */
+; 12 uint32_t *lcd_Ram_i, *lcd_Ram_end = (uint32_t *) ((int) lcd_Ram + LCD_SIZE);
+; 13 for (lcd_Ram_i = (uint32_t *) lcd_Ram; lcd_Ram_i < lcd_Ram_end; lcd_Ram_i++) {
+ LD BC,13893632
+ LD (IX+-3),BC
+ JR L_3
+L_1:
+; 14 *lcd_Ram_i = random();
+ CALL _random
+ LD IY,(IX+-3)
+ LD (IY),HL
+ LD (IY+3),E
+ LEA IY,IY+4
+ LD (IX+-3),IY
+; 15 }
+L_3:
+ LD BC,14047232
+ LD HL,(IX+-3)
+ OR A,A
+ SBC HL,BC
+ JR C,L_1
+; 16
+; 17 /* Wait for a key press */
+; 18 while (!os_GetCSC());
+L_5:
+ CALL _os_GetCSC
+ OR A,A
+ JR Z,L_5
+; 19 }
+ LD SP,IX
+ POP IX
+ RET
+
+
+;**************************** _main ***************************
+;Name Addr/Register Size Type
+;_os_GetCSC IMPORT ----- function
+;_random IMPORT ----- function
+;lcd_Ram_i IX-3 3 variable
+
+
+; Stack Frame Size: 9 (bytes)
+; Spill Code: 0 (instruction)
+
+
+ XREF _os_GetCSC:ROM
+ XREF _random:ROM
+ XREF __frameset:ROM
+ XDEF _main
+ END
diff --git a/frontends/calculator/CEdev/examples/random/readme.md b/frontends/calculator/CEdev/examples/random/readme.md
new file mode 100644
index 0000000..776d1f8
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/random/readme.md
@@ -0,0 +1,9 @@
+### Random Fill Screen Demo
+
+This is a simple demo to demonstrate filling the screen with random colors.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/random/screenshot.png b/frontends/calculator/CEdev/examples/random/screenshot.png
new file mode 100644
index 0000000..409044e
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/random/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/random/src/main.c b/frontends/calculator/CEdev/examples/random/src/main.c
new file mode 100644
index 0000000..83477e4
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/random/src/main.c
@@ -0,0 +1,19 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+void main(void) {
+ /* Fill VRAM with random data */
+ uint32_t *lcd_Ram_i, *lcd_Ram_end = (uint32_t *) ((int) lcd_Ram + LCD_SIZE);
+ for (lcd_Ram_i = (uint32_t *) lcd_Ram; lcd_Ram_i < lcd_Ram_end; lcd_Ram_i++) {
+ *lcd_Ram_i = random();
+ }
+
+ /* Wait for a key press */
+ while (!os_GetCSC());
+}
diff --git a/frontends/calculator/CEdev/examples/random/test/expected.bin b/frontends/calculator/CEdev/examples/random/test/expected.bin
new file mode 100644
index 0000000..4e42d97
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/random/test/expected.bin
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/real_time_clock/makefile b/frontends/calculator/CEdev/examples/real_time_clock/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/real_time_clock/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/real_time_clock/readme.md b/frontends/calculator/CEdev/examples/real_time_clock/readme.md
new file mode 100644
index 0000000..08554eb
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/real_time_clock/readme.md
@@ -0,0 +1,10 @@
+### Real Time Clock Demo
+
+This demo demonstrates how to use the basics of the real time clock (RTC)
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/real_time_clock/screenshot.gif b/frontends/calculator/CEdev/examples/real_time_clock/screenshot.gif
new file mode 100644
index 0000000..3e81f11
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/real_time_clock/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/real_time_clock/src/main.c b/frontends/calculator/CEdev/examples/real_time_clock/src/main.c
new file mode 100644
index 0000000..1aa24cb
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/real_time_clock/src/main.c
@@ -0,0 +1,39 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+unsigned int seconds = 0;
+
+void main(void) {
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Randomize things */
+ srand(rtc_Time());
+
+ /* Configure the RTC */
+ rtc_LoadSeconds = rtc_LoadMinutes = rtc_LoadHours = rtc_LoadDays = 0;
+ rtc_Control = RTC_ENABLE | RTC_LOAD | RTC_SEC_INT_SOURCE;
+
+ /* Wait for the RTC to load in the new values and then acknowledge all the interrupts */
+ while (rtc_IsBusy());
+ rtc_IntAcknowledge = RTC_INT_MASK;
+
+ /* Wait until 5 seconds have passed */
+ while (seconds < 5) {
+
+ /* If a second passed, increment the second counter */
+ if (rtc_IntStatus & RTC_SEC_INT) {
+ memset(lcd_Ram, randInt(0,255), LCD_SIZE);
+ seconds++;
+
+ rtc_IntAcknowledge = rtc_IntStatus;
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/second_counter/makefile b/frontends/calculator/CEdev/examples/second_counter/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/second_counter/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/second_counter/readme.md b/frontends/calculator/CEdev/examples/second_counter/readme.md
new file mode 100644
index 0000000..9211916
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/second_counter/readme.md
@@ -0,0 +1,10 @@
+### Second Counter Demo
+
+This demo demonstrates using the hardware timers, and makes a simple second counter
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/second_counter/screenshot.gif b/frontends/calculator/CEdev/examples/second_counter/screenshot.gif
new file mode 100644
index 0000000..7175ab5
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/second_counter/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/second_counter/src/main.c b/frontends/calculator/CEdev/examples/second_counter/src/main.c
new file mode 100644
index 0000000..8a4ebc5
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/second_counter/src/main.c
@@ -0,0 +1,43 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ONE_SECOND 32768/1
+#define HALF_SECOND 32768/2
+#define QUARTER_SECOND 32768/4
+
+/* Put all your code here */
+void main(void) {
+ unsigned seconds = 0;
+ char str[10];
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Disable the timer so it doesn't run when we don't want it to be running */
+ timer_Control = TIMER1_DISABLE;
+
+ /* By using the 32768 kHz clock, we can count for exactly 1 second here, or a different interval of time */
+ timer_1_ReloadValue = timer_1_Counter = ONE_SECOND;
+
+ /* Enable the timer, set it to the 32768 kHz clock, enable an interrupt once it reaches 0, and make it count down */
+ timer_Control = TIMER1_ENABLE | TIMER1_32K | TIMER1_0INT | TIMER1_DOWN;
+
+ do {
+ /* If the timer is reloaded, we reached 0 */
+ if (timer_IntStatus & TIMER1_RELOADED) {
+ /* Print a string */
+ sprintf(str, "%u", seconds++);
+ os_SetCursorPos(0, 0);
+ os_PutStrFull(str);
+
+ /* Acknowledge the reload */
+ timer_IntAcknowledge = TIMER1_RELOADED;
+ }
+ } while (!os_GetCSC());
+}
diff --git a/frontends/calculator/CEdev/examples/second_counter2/makefile b/frontends/calculator/CEdev/examples/second_counter2/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/second_counter2/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/second_counter2/readme.md b/frontends/calculator/CEdev/examples/second_counter2/readme.md
new file mode 100644
index 0000000..8913644
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/second_counter2/readme.md
@@ -0,0 +1,10 @@
+### Second Counter 2 Demo
+
+This demo demonstrates using more uses of the timers
+
+![Screenshot](screenshot.gif)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/second_counter2/screenshot.gif b/frontends/calculator/CEdev/examples/second_counter2/screenshot.gif
new file mode 100644
index 0000000..dd167ab
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/second_counter2/screenshot.gif
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/second_counter2/src/main.c b/frontends/calculator/CEdev/examples/second_counter2/src/main.c
new file mode 100644
index 0000000..dff02f2
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/second_counter2/src/main.c
@@ -0,0 +1,57 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ONE_SECOND 32768/1
+#define HALF_SECOND 32768/2
+#define QUARTER_SECOND 32768/4
+
+/* Function Prototypes */
+void reset_counter(void);
+
+void main(void) {
+ unsigned int count = 0;
+ char str[10];
+
+ timer_1_MatchValue_1 = ONE_SECOND;
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Reset the counter */
+ reset_counter();
+
+ do {
+
+ /* Poll until we reach the match value */
+ if (timer_IntStatus & TIMER1_MATCH1) {
+ /* Print the count */
+ sprintf(str, "%u", count++);
+ os_SetCursorPos(0, 0);
+ os_PutStrFull(str);
+
+ /* Reset the count */
+ reset_counter();
+
+ /* Acknowledge the interrupt */
+ timer_IntStatus = TIMER1_MATCH1;
+ }
+
+ } while (count < 5);
+}
+
+void reset_counter(void) {
+ /* Disable the timer so it doesn't run when we don't want it to be running */
+ timer_Control = TIMER1_DISABLE;
+
+ /* By using the 32768 kHz clock, we can count for exactly 1 second here, or a different interval of time */
+ timer_1_Counter = 0;
+
+ /* Enable the timer, set it to the 32768 kHz clock, enable an interrupt once it reaches 0, and make it count down */
+ timer_Control = TIMER1_ENABLE | TIMER1_32K | TIMER1_NOINT | TIMER1_UP;
+}
diff --git a/frontends/calculator/CEdev/examples/stopwatch/makefile b/frontends/calculator/CEdev/examples/stopwatch/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/stopwatch/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/stopwatch/readme.md b/frontends/calculator/CEdev/examples/stopwatch/readme.md
new file mode 100644
index 0000000..a10bdb9
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/stopwatch/readme.md
@@ -0,0 +1,10 @@
+### Stopwatch Demo
+
+This demo demonstrates using the hardware timers to make a simple stopwatch
+displaying millisecond precision.
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/stopwatch/screenshot.png b/frontends/calculator/CEdev/examples/stopwatch/screenshot.png
new file mode 100644
index 0000000..3642282
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/stopwatch/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/stopwatch/src/main.c b/frontends/calculator/CEdev/examples/stopwatch/src/main.c
new file mode 100644
index 0000000..3ec82b1
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/stopwatch/src/main.c
@@ -0,0 +1,60 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Print a stopwatch value on the home screen */
+void print(float elapsed) {
+ /* Float format for printf may be unimplemented, so go through an OS real */
+ real_t elapsed_real;
+
+ /* Max stopwatch value is (2^32 - 1) / 32768 = 131072.00, */
+ /* so create a buffer with room for 9 characters plus a null terminator */
+ char str[10];
+
+ /* If the elapsed time is small enough that the OS would print it using */
+ /* scientific notation, force it down to zero before conversion */
+ elapsed_real = os_FloatToReal(elapsed <= 0.001f ? 0.0f : elapsed);
+
+ /* Convert the elapsed time real to a string */
+ os_RealToStr(str, &elapsed_real, 8, 1, 2);
+
+ /* Print the string */
+ os_SetCursorPos(0, 0);
+ os_PutStrFull(str);
+}
+
+/* Put all your code here */
+void main(void) {
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Display an initial time of zero */
+ print(0.0f);
+
+ /* Disable the timer */
+ timer_Control = TIMER1_DISABLE;
+
+ /* Reset the timer's counter */
+ timer_1_Counter = 0;
+
+ /* Wait for a key press */
+ while (!os_GetCSC());
+
+ /* Enable the timer while setting it to 32768 KHz and making it count up */
+ timer_Control = TIMER1_ENABLE | TIMER1_32K | TIMER1_UP;
+
+ /* Continue running until a key is pressed */
+ do {
+ /* Calculate and print the elapsed time */
+ float elapsed = (float)atomic_load_increasing_32(&timer_1_Counter) / 32768;
+ print(elapsed);
+ } while (!os_GetCSC());
+
+ /* Wait for a key press */
+ while (!os_GetCSC());
+}
diff --git a/frontends/calculator/CEdev/examples/template/iconc.png b/frontends/calculator/CEdev/examples/template/iconc.png
new file mode 100644
index 0000000..125ca62
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/template/iconc.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/template/makefile b/frontends/calculator/CEdev/examples/template/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/template/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/template/readme.md b/frontends/calculator/CEdev/examples/template/readme.md
new file mode 100644
index 0000000..093834f
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/template/readme.md
@@ -0,0 +1,14 @@
+### Template
+
+You can clone this directory for your own projects.
+
+To add code, fill in the void main() function in main.c. You can also create
+your own .c and .h files and add them to the directory; the Makefile included in
+this template will automatically find and compile the new .c files.
+
+In addition, you can also add your own .asm files, which will be detected and
+added appropriately to the proper segment.
+
+---
+
+This template is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/template/src/main.c b/frontends/calculator/CEdev/examples/template/src/main.c
new file mode 100644
index 0000000..88416b7
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/template/src/main.c
@@ -0,0 +1,30 @@
+/*
+ *--------------------------------------
+ * Program Name:
+ * Author:
+ * License:
+ * Description:
+ *--------------------------------------
+*/
+
+/* Keep these headers */
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+/* Standard headers (recommended) */
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Put your function prototypes here */
+
+/* Put all your globals here */
+
+void main(void) {
+ /* Fill in the body of the main function here */
+}
+
+/* Put other functions here */