diff --git a/.gitignore b/.gitignore index ec9d4efcc3..6e04dde612 100644 --- a/.gitignore +++ b/.gitignore @@ -18,10 +18,11 @@ wled-update.sh /build_output/ /node_modules/ /logs/ - +/tools/organize_firmware.py /wled00/extLibs /wled00/LittleFS /wled00/my_config.h /wled00/Release /wled00/wled00.ino.cpp /wled00/html_*.h +WLED.code-workspace diff --git a/usermods/usermod_v2_gc9a01_display/library.json b/usermods/usermod_v2_gc9a01_display/library.json new file mode 100644 index 0000000000..9d967d9451 --- /dev/null +++ b/usermods/usermod_v2_gc9a01_display/library.json @@ -0,0 +1,7 @@ +{ + "name": "gc9a01_display", + "build": { "libArchive": false }, + "dependencies": { + "bodmer/TFT_eSPI": "^2.5.43" + } +} \ No newline at end of file diff --git a/usermods/usermod_v2_gc9a01_display/logo_data.h b/usermods/usermod_v2_gc9a01_display/logo_data.h new file mode 100644 index 0000000000..7b12d4726e --- /dev/null +++ b/usermods/usermod_v2_gc9a01_display/logo_data.h @@ -0,0 +1,125 @@ +#include + +const unsigned long epd_bitmap_ [] PROGMEM = { + // '015_rgb, 120x120px + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d30893, 0x00d10895, 0x00d10895, 0x00d10895, 0x00e908c3, 0x00f108d1, 0x00f108d1, 0x00f108d1, 0x00f754f7, 0x00f754f7, 0x00f754f7, 0x00f754f7, 0x00f754f7, 0x00f754f7, 0x00f754f7, 0x00f754f7, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d10895, 0x00d20795, 0x00d20795, 0x00d20795, 0x00ea08c3, 0x00f208d1, 0x00f208d1, 0x00f208d1, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f754f7, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d10895, 0x00d20795, 0x00d20795, 0x00d20795, 0x00ea08c3, 0x00f208d1, 0x00f208d1, 0x00f208d1, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f754f7, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d10895, 0x00d20795, 0x00d20795, 0x00d20795, 0x00ea08c3, 0x00f208d1, 0x00f208d1, 0x00f208d1, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f753f7, 0x00f754f7, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d00755, 0x00d00755, 0x00d00755, 0x00d0075d, 0x00d10776, 0x00d10776, 0x00d10776, 0x00df0793, 0x00ea07aa, 0x00ea07aa, 0x00ea07aa, 0x00f008c7, 0x00f208cf, 0x00f208cf, 0x00f208cf, 0x00f41aeb, 0x00f41aeb, 0x00f41aeb, 0x00f31aed, 0x00f11af4, 0x00f11af4, 0x00f11af4, 0x00f132f5, 0x00f152f6, 0x00f152f6, 0x00f152f6, 0x00e552f6, 0x00e052f6, 0x00e052f6, 0x00e052f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d00655, 0x00d00655, 0x00d00655, 0x00d0065d, 0x00d10675, 0x00d10675, 0x00d10675, 0x00e10793, 0x00f107b1, 0x00f107b1, 0x00f107b1, 0x00f208c8, 0x00f208cf, 0x00f208cf, 0x00f208cf, 0x00f309e7, 0x00f309e7, 0x00f309e7, 0x00f209ea, 0x00ef08f3, 0x00ef08f3, 0x00ef08f3, 0x00f02df4, 0x00f152f6, 0x00f152f6, 0x00f152f6, 0x00e452f6, 0x00e052f6, 0x00e052f6, 0x00e052f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d00655, 0x00d00655, 0x00d00655, 0x00d0065d, 0x00d10675, 0x00d10675, 0x00d10675, 0x00e10793, 0x00f107b1, 0x00f107b1, 0x00f107b1, 0x00f208c8, 0x00f208cf, 0x00f208cf, 0x00f208cf, 0x00f309e7, 0x00f309e7, 0x00f309e7, 0x00f209ea, 0x00ef08f3, 0x00ef08f3, 0x00ef08f3, 0x00f02df4, 0x00f152f6, 0x00f152f6, 0x00f152f6, 0x00e452f6, 0x00e052f6, 0x00e052f6, 0x00e052f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d00655, 0x00d00655, 0x00d00655, 0x00d0065d, 0x00d10675, 0x00d10675, 0x00d10675, 0x00e10793, 0x00f107b1, 0x00f107b1, 0x00f107b1, 0x00f208c8, 0x00f208cf, 0x00f208cf, 0x00f208cf, 0x00f309e7, 0x00f309e7, 0x00f309e7, 0x00f209ea, 0x00ef08f3, 0x00ef08f3, 0x00ef08f3, 0x00f02df4, 0x00f152f6, 0x00f152f6, 0x00f152f6, 0x00e452f6, 0x00e052f6, 0x00e052f6, 0x00e052f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d1072c, 0x00d1062c, 0x00d1062c, 0x00d1062c, 0x00f00769, 0x00f00769, 0x00f00769, 0x00f00771, 0x00f1078d, 0x00f1078d, 0x00f1078d, 0x00f1089d, 0x00f108ae, 0x00f108ae, 0x00f108ae, 0x00f308c8, 0x00f308d0, 0x00f308d0, 0x00f308d0, 0x00f308e9, 0x00f308e9, 0x00f308e9, 0x00f108eb, 0x00e908f2, 0x00e908f2, 0x00e908f2, 0x00dd08f1, 0x00d208f1, 0x00d208f1, 0x00d208f1, 0x00bd07f0, 0x00b707f0, 0x00b707f0, 0x00b707f0, 0x00c252f6, 0x00c252f6, 0x00c252f6, 0x00c352f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d1072c, 0x00d1062c, 0x00d1062c, 0x00d1062c, 0x00f00769, 0x00f00769, 0x00f00769, 0x00f00771, 0x00f1078d, 0x00f1078d, 0x00f1078d, 0x00f1089d, 0x00f108ae, 0x00f108ae, 0x00f108ae, 0x00f308c8, 0x00f308d0, 0x00f308d0, 0x00f308d0, 0x00f308e9, 0x00f308e9, 0x00f308e9, 0x00f108eb, 0x00e908f2, 0x00e908f2, 0x00e908f2, 0x00dd08f1, 0x00d208f1, 0x00d208f1, 0x00d208f1, 0x00bd07f0, 0x00b707f0, 0x00b707f0, 0x00b707f0, 0x00c252f6, 0x00c252f6, 0x00c252f6, 0x00c352f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d1072c, 0x00d1062c, 0x00d1062c, 0x00d1062c, 0x00f00769, 0x00f00769, 0x00f00769, 0x00f00771, 0x00f1078d, 0x00f1078d, 0x00f1078d, 0x00f1089d, 0x00f108ae, 0x00f108ae, 0x00f108ae, 0x00f308c8, 0x00f308d0, 0x00f308d0, 0x00f308d0, 0x00f308e9, 0x00f308e9, 0x00f308e9, 0x00f108eb, 0x00e908f2, 0x00e908f2, 0x00e908f2, 0x00dd08f1, 0x00d208f1, 0x00d208f1, 0x00d208f1, 0x00bd07f0, 0x00b707f0, 0x00b707f0, 0x00b707f0, 0x00c252f6, 0x00c252f6, 0x00c252f6, 0x00c352f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00cc0808, 0x00d00404, 0x00d00404, 0x00d00404, 0x00d8062d, 0x00d80630, 0x00d80630, 0x00d80630, 0x00f00766, 0x00f00766, 0x00f00766, 0x00f1076f, 0x00f1078a, 0x00f1078a, 0x00f1078a, 0x00f1079c, 0x00f108ad, 0x00f108ad, 0x00f108ad, 0x00f208c8, 0x00f308d0, 0x00f308d0, 0x00f308d0, 0x00f308ea, 0x00f308ea, 0x00f308ea, 0x00f008ec, 0x00e708f2, 0x00e708f2, 0x00e708f2, 0x00db08f2, 0x00cf08f1, 0x00cf08f1, 0x00cf08f1, 0x00b907f0, 0x00b307f0, 0x00b307f0, 0x00b307f0, 0x00b440f4, 0x00b440f4, 0x00b440f4, 0x00b341f4, 0x009d51f2, 0x009d51f2, 0x009d51f2, 0x00a155f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00cf0606, 0x00d00505, 0x00d00505, 0x00d00505, 0x00e80730, 0x00f0073d, 0x00f0073d, 0x00f0073d, 0x00f2075c, 0x00f2075c, 0x00f2075c, 0x00f20765, 0x00f10782, 0x00f10782, 0x00f10782, 0x00f10796, 0x00f107ab, 0x00f107ab, 0x00f107ab, 0x00f208c7, 0x00f208d0, 0x00f208d0, 0x00f208d0, 0x00f308ec, 0x00f308ec, 0x00f308ec, 0x00ef08ed, 0x00e208f2, 0x00e208f2, 0x00e208f2, 0x00d308f2, 0x00c407f2, 0x00c407f2, 0x00c407f2, 0x00ac06f0, 0x00a506f0, 0x00a506f0, 0x00a506f0, 0x008705ef, 0x008705ef, 0x008705ef, 0x008c17f0, 0x009e51f4, 0x009e51f4, 0x009e51f4, 0x009d52f3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00cf0606, 0x00d00505, 0x00d00505, 0x00d00505, 0x00e80730, 0x00f0073d, 0x00f0073d, 0x00f0073d, 0x00f2075c, 0x00f2075c, 0x00f2075c, 0x00f20765, 0x00f10782, 0x00f10782, 0x00f10782, 0x00f10796, 0x00f107ab, 0x00f107ab, 0x00f107ab, 0x00f208c7, 0x00f208d0, 0x00f208d0, 0x00f208d0, 0x00f308ec, 0x00f308ec, 0x00f308ec, 0x00ef08ed, 0x00e208f2, 0x00e208f2, 0x00e208f2, 0x00d308f2, 0x00c407f2, 0x00c407f2, 0x00c407f2, 0x00ac06f0, 0x00a506f0, 0x00a506f0, 0x00a506f0, 0x008705ef, 0x008705ef, 0x008705ef, 0x008c17f0, 0x009e51f4, 0x009e51f4, 0x009e51f4, 0x009d52f3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00cf0606, 0x00d00505, 0x00d00505, 0x00d00505, 0x00e80730, 0x00f0073d, 0x00f0073d, 0x00f0073d, 0x00f2075c, 0x00f2075c, 0x00f2075c, 0x00f20765, 0x00f10782, 0x00f10782, 0x00f10782, 0x00f10796, 0x00f107ab, 0x00f107ab, 0x00f107ab, 0x00f208c7, 0x00f208d0, 0x00f208d0, 0x00f208d0, 0x00f308ec, 0x00f308ec, 0x00f308ec, 0x00ef08ed, 0x00e208f2, 0x00e208f2, 0x00e208f2, 0x00d308f2, 0x00c407f2, 0x00c407f2, 0x00c407f2, 0x00ac06f0, 0x00a506f0, 0x00a506f0, 0x00a506f0, 0x008705ef, 0x008705ef, 0x008705ef, 0x008c17f0, 0x009e51f4, 0x009e51f4, 0x009e51f4, 0x009d52f3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00cf0606, 0x00d00505, 0x00d00505, 0x00d00505, 0x00e80628, 0x00f00733, 0x00f00733, 0x00f00733, 0x00f10753, 0x00f10753, 0x00f10753, 0x00f1075c, 0x00f1077b, 0x00f1077b, 0x00f1077b, 0x00f10790, 0x00f107a6, 0x00f107a6, 0x00f107a6, 0x00f208c6, 0x00f208d0, 0x00f208d0, 0x00f208d0, 0x00f309ee, 0x00f309ee, 0x00f309ee, 0x00ee08ef, 0x00dc08f2, 0x00dc08f2, 0x00dc08f2, 0x00cc08f1, 0x00bb07f0, 0x00bb07f0, 0x00bb07f0, 0x00a106f0, 0x009906f0, 0x009906f0, 0x009906f0, 0x007a05ee, 0x007a05ee, 0x007a05ee, 0x008017f0, 0x009451f4, 0x009451f4, 0x009451f4, 0x009350f3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00cf0606, 0x00d00505, 0x00d00505, 0x00d00505, 0x00e80621, 0x00f00629, 0x00f00629, 0x00f00629, 0x00f1074a, 0x00f1074a, 0x00f1074a, 0x00f10754, 0x00f10773, 0x00f10773, 0x00f10773, 0x00f1078a, 0x00f207a2, 0x00f207a2, 0x00f207a2, 0x00f208c5, 0x00f208d0, 0x00f208d0, 0x00f208d0, 0x00f309f0, 0x00f309f0, 0x00f309f0, 0x00ec09f0, 0x00d708f2, 0x00d708f2, 0x00d708f2, 0x00c408f0, 0x00b207ef, 0x00b207ef, 0x00b207ef, 0x009606f0, 0x008e06f0, 0x008e06f0, 0x008e06f0, 0x006d05ee, 0x006d05ee, 0x006d05ee, 0x007417ef, 0x008b50f4, 0x008b50f4, 0x008b50f4, 0x008b50f3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00cf0606, 0x00d00505, 0x00d00505, 0x00d00505, 0x00e80621, 0x00f00629, 0x00f00629, 0x00f00629, 0x00f1074a, 0x00f1074a, 0x00f1074a, 0x00f10754, 0x00f10773, 0x00f10773, 0x00f10773, 0x00f1078a, 0x00f207a2, 0x00f207a2, 0x00f207a2, 0x00f208c5, 0x00f208d0, 0x00f208d0, 0x00f208d0, 0x00f309f0, 0x00f309f0, 0x00f309f0, 0x00ec09f0, 0x00d708f2, 0x00d708f2, 0x00d708f2, 0x00c408f0, 0x00b207ef, 0x00b207ef, 0x00b207ef, 0x009606f0, 0x008e06f0, 0x008e06f0, 0x008e06f0, 0x006d05ee, 0x006d05ee, 0x006d05ee, 0x007417ef, 0x008b50f4, 0x008b50f4, 0x008b50f4, 0x008b50f3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00cf0606, 0x00d00505, 0x00d00505, 0x00d00505, 0x00e80621, 0x00f00629, 0x00f00629, 0x00f00629, 0x00f1074a, 0x00f1074a, 0x00f1074a, 0x00f10754, 0x00f10773, 0x00f10773, 0x00f10773, 0x00f1078a, 0x00f207a2, 0x00f207a2, 0x00f207a2, 0x00f208c5, 0x00f208d0, 0x00f208d0, 0x00f208d0, 0x00f309f0, 0x00f309f0, 0x00f309f0, 0x00ec09f0, 0x00d708f2, 0x00d708f2, 0x00d708f2, 0x00c408f0, 0x00b207ef, 0x00b207ef, 0x00b207ef, 0x009606f0, 0x008e06f0, 0x008e06f0, 0x008e06f0, 0x006d05ee, 0x006d05ee, 0x006d05ee, 0x007417ef, 0x008b50f4, 0x008b50f4, 0x008b50f4, 0x008b50f3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00cd0606, 0x00d00505, 0x00d00505, 0x00d00505, 0x00de0606, 0x00e80606, 0x00e80606, 0x00e80606, 0x00ef0616, 0x00f1061a, 0x00f1061a, 0x00f1061a, 0x00fcc5d5, 0x00fcc5d5, 0x00fcc5d5, 0x00fcc5d7, 0x00fcc5de, 0x00fcc5de, 0x00fcc5de, 0x00f766bd, 0x00f2079b, 0x00f2079b, 0x00f2079b, 0x00f208c4, 0x00f208d1, 0x00f208d1, 0x00f208d1, 0x00f008f2, 0x00f008f2, 0x00f008f2, 0x00e708f2, 0x00ca08f2, 0x00ca08f2, 0x00ca08f2, 0x00db66f7, 0x00edc5fb, 0x00edc5fb, 0x00edc5fb, 0x00e6c5fb, 0x00e4c5fb, 0x00e4c5fb, 0x00e4c5fb, 0x005504ee, 0x005504ee, 0x005504ee, 0x005308ee, 0x004a15ee, 0x004a15ee, 0x004a15ee, 0x00572ef0, 0x006950f3, 0x006950f3, 0x006950f3, 0x00694ef4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d00404, 0x00d00505, 0x00d00505, 0x00d00505, 0x00e00606, 0x00f00606, 0x00f00606, 0x00f00606, 0x00f10612, 0x00f10616, 0x00f10616, 0x00f10616, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00f883cc, 0x00f20799, 0x00f20799, 0x00f20799, 0x00f208c4, 0x00f208d1, 0x00f208d1, 0x00f208d1, 0x00ef08f3, 0x00ef08f3, 0x00ef08f3, 0x00e508f3, 0x00c608f2, 0x00c608f2, 0x00c608f2, 0x00e283f8, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x004e04ee, 0x004e04ee, 0x004e04ee, 0x004804ee, 0x003603ec, 0x003603ec, 0x003603ec, 0x005029ef, 0x00694ff3, 0x00694ff3, 0x00694ff3, 0x006a51f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d00404, 0x00d00505, 0x00d00505, 0x00d00505, 0x00e00606, 0x00f00606, 0x00f00606, 0x00f00606, 0x00f10612, 0x00f10616, 0x00f10616, 0x00f10616, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00f883cc, 0x00f20799, 0x00f20799, 0x00f20799, 0x00f208c4, 0x00f208d1, 0x00f208d1, 0x00f208d1, 0x00ef08f3, 0x00ef08f3, 0x00ef08f3, 0x00e508f3, 0x00c608f2, 0x00c608f2, 0x00c608f2, 0x00e283f8, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x004e04ee, 0x004e04ee, 0x004e04ee, 0x004804ee, 0x003603ec, 0x003603ec, 0x003603ec, 0x005029ef, 0x00694ff3, 0x00694ff3, 0x00694ff3, 0x006a51f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d00404, 0x00d00505, 0x00d00505, 0x00d00505, 0x00e00606, 0x00f00606, 0x00f00606, 0x00f00606, 0x00f10612, 0x00f10616, 0x00f10616, 0x00f10616, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00f883cc, 0x00f20799, 0x00f20799, 0x00f20799, 0x00f208c4, 0x00f208d1, 0x00f208d1, 0x00f208d1, 0x00ef08f3, 0x00ef08f3, 0x00ef08f3, 0x00e508f3, 0x00c608f2, 0x00c608f2, 0x00c608f2, 0x00e283f8, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x004e04ee, 0x004e04ee, 0x004e04ee, 0x004804ee, 0x003603ec, 0x003603ec, 0x003603ec, 0x005029ef, 0x00694ff3, 0x00694ff3, 0x00694ff3, 0x006a51f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d00404, 0x00d00605, 0x00d00605, 0x00d00605, 0x00e10f06, 0x00f21807, 0x00f21807, 0x00f21807, 0x00dda9a5, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00f642dd, 0x00f308d2, 0x00f308d2, 0x00f308d2, 0x00e308f1, 0x00e308f1, 0x00e308f1, 0x00e038eb, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00eaeaea, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00cac4fb, 0x001b03ed, 0x001b03ed, 0x001b03ed, 0x003a29ef, 0x00584ff2, 0x00584ff2, 0x00584ff2, 0x005951f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d00404, 0x00d00605, 0x00d00605, 0x00d00605, 0x00e10f06, 0x00f21807, 0x00f21807, 0x00f21807, 0x00dda9a5, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00f642dd, 0x00f308d2, 0x00f308d2, 0x00f308d2, 0x00e308f1, 0x00e308f1, 0x00e308f1, 0x00e038eb, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00eaeaea, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00cac4fb, 0x001b03ed, 0x001b03ed, 0x001b03ed, 0x003a29ef, 0x00584ff2, 0x00584ff2, 0x00584ff2, 0x005951f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d00404, 0x00d00605, 0x00d00605, 0x00d00605, 0x00e10f06, 0x00f21807, 0x00f21807, 0x00f21807, 0x00dda9a5, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00f642dd, 0x00f308d2, 0x00f308d2, 0x00f308d2, 0x00e308f1, 0x00e308f1, 0x00e308f1, 0x00e038eb, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00eaeaea, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00cac4fb, 0x001b03ed, 0x001b03ed, 0x001b03ed, 0x003a29ef, 0x00584ff2, 0x00584ff2, 0x00584ff2, 0x005951f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d00d04, 0x00d00e06, 0x00d00e06, 0x00d00e06, 0x00e11706, 0x00f22007, 0x00f22007, 0x00f22007, 0x00ddaba6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00f542dd, 0x00f308d2, 0x00f308d2, 0x00f308d2, 0x00dd08f1, 0x00dd08f1, 0x00dd08f1, 0x00db38ea, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00eaeaea, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00c8c4fb, 0x001603ed, 0x001603ed, 0x001603ed, 0x003629ef, 0x00564ff2, 0x00564ff2, 0x00564ff2, 0x005551f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d02a08, 0x00d12907, 0x00d12907, 0x00d12907, 0x00e13108, 0x00f23908, 0x00f23908, 0x00f23908, 0x00ddb1a6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00f442de, 0x00f108d4, 0x00f108d4, 0x00f108d4, 0x00ca08f0, 0x00ca08f0, 0x00ca08f0, 0x00cd38ea, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00eaeaea, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00c4c4fb, 0x000503ec, 0x000503ec, 0x000503ec, 0x002a2aef, 0x004f50f2, 0x004f50f2, 0x004f50f2, 0x005151f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d02a08, 0x00d12907, 0x00d12907, 0x00d12907, 0x00e13108, 0x00f23908, 0x00f23908, 0x00f23908, 0x00ddb1a6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00f442de, 0x00f108d4, 0x00f108d4, 0x00f108d4, 0x00ca08f0, 0x00ca08f0, 0x00ca08f0, 0x00cd38ea, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00eaeaea, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00c4c4fb, 0x000503ec, 0x000503ec, 0x000503ec, 0x002a2aef, 0x004f50f2, 0x004f50f2, 0x004f50f2, 0x005151f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d02a08, 0x00d12907, 0x00d12907, 0x00d12907, 0x00e13108, 0x00f23908, 0x00f23908, 0x00f23908, 0x00ddb1a6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00f442de, 0x00f108d4, 0x00f108d4, 0x00f108d4, 0x00ca08f0, 0x00ca08f0, 0x00ca08f0, 0x00cd38ea, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00eaeaea, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00c4c4fb, 0x000503ec, 0x000503ec, 0x000503ec, 0x002a2aef, 0x004f50f2, 0x004f50f2, 0x004f50f2, 0x005151f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d04008, 0x00d23e08, 0x00d23e08, 0x00d23e08, 0x00e24809, 0x00f3520a, 0x00f3520a, 0x00f3520a, 0x00e88758, 0x00e59770, 0x00e59770, 0x00e59770, 0x00eaeaea, 0x00eaeaea, 0x00eaeaea, 0x00eaeaea, 0x00eaeaea, 0x00eaeaea, 0x00eaeaea, 0x00f1b6c1, 0x00f78297, 0x00f78297, 0x00f78297, 0x00f325c7, 0x00f108d6, 0x00f108d6, 0x00f108d6, 0x00a807f0, 0x00a807f0, 0x00a807f0, 0x009f1fed, 0x00806de1, 0x00806de1, 0x00806de1, 0x00b5abe6, 0x00eaeaea, 0x00eaeaea, 0x00eaeaea, 0x00eaeaea, 0x00eaeaea, 0x00eaeaea, 0x00eaeaea, 0x008186f6, 0x008186f6, 0x008186f6, 0x00646af4, 0x00040dec, 0x00040dec, 0x00040dec, 0x002a33ef, 0x004f59f2, 0x004f59f2, 0x004f59f2, 0x005159f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d05108, 0x00d35309, 0x00d35309, 0x00d35309, 0x00e35f0a, 0x00f46a0b, 0x00f46a0b, 0x00f46a0b, 0x00f45d0a, 0x00f4590a, 0x00f4590a, 0x00f4590a, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00e36e82, 0x00f0062f, 0x00f0062f, 0x00f0062f, 0x00f208b0, 0x00f208d8, 0x00f208d8, 0x00f208d8, 0x008706f0, 0x008706f0, 0x008706f0, 0x007105ef, 0x002a03ed, 0x002a03ed, 0x002a03ed, 0x00806de1, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00030eed, 0x00030eed, 0x00030eed, 0x000310ed, 0x000316ed, 0x000316ed, 0x000316ed, 0x00293cf0, 0x004f61f3, 0x004f61f3, 0x004f61f3, 0x005162f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d05108, 0x00d35309, 0x00d35309, 0x00d35309, 0x00e35f0a, 0x00f46a0b, 0x00f46a0b, 0x00f46a0b, 0x00f45d0a, 0x00f4590a, 0x00f4590a, 0x00f4590a, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00e36e82, 0x00f0062f, 0x00f0062f, 0x00f0062f, 0x00f208b0, 0x00f208d8, 0x00f208d8, 0x00f208d8, 0x008706f0, 0x008706f0, 0x008706f0, 0x007105ef, 0x002a03ed, 0x002a03ed, 0x002a03ed, 0x00806de1, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00030eed, 0x00030eed, 0x00030eed, 0x000310ed, 0x000316ed, 0x000316ed, 0x000316ed, 0x00293cf0, 0x004f61f3, 0x004f61f3, 0x004f61f3, 0x005162f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d05108, 0x00d35309, 0x00d35309, 0x00d35309, 0x00e35f0a, 0x00f46a0b, 0x00f46a0b, 0x00f46a0b, 0x00f45d0a, 0x00f4590a, 0x00f4590a, 0x00f4590a, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00e36e82, 0x00f0062f, 0x00f0062f, 0x00f0062f, 0x00f208b0, 0x00f208d8, 0x00f208d8, 0x00f208d8, 0x008706f0, 0x008706f0, 0x008706f0, 0x007105ef, 0x002a03ed, 0x002a03ed, 0x002a03ed, 0x00806de1, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00d6d6d6, 0x00030eed, 0x00030eed, 0x00030eed, 0x000310ed, 0x000316ed, 0x000316ed, 0x000316ed, 0x00293cf0, 0x004f61f3, 0x004f61f3, 0x004f61f3, 0x005162f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d4770d, 0x00d5790b, 0x00d5790b, 0x00d5790b, 0x00e6870c, 0x00f6950d, 0x00f6950d, 0x00f6950d, 0x00f68f0d, 0x00f68d0c, 0x00f68d0c, 0x00f68d0c, 0x00efa53c, 0x00efa53c, 0x00efa53c, 0x00efa23c, 0x00ee983c, 0x00ee983c, 0x00ee983c, 0x00f06e27, 0x00f24313, 0x00f24313, 0x00f24313, 0x00ef16b5, 0x00ed08e7, 0x00ed08e7, 0x00ed08e7, 0x002208ed, 0x002208ed, 0x002208ed, 0x001d0ced, 0x000d1bed, 0x000d1bed, 0x000d1bed, 0x002138eb, 0x003655e8, 0x003655e8, 0x003655e8, 0x003659e8, 0x00365be8, 0x00365be8, 0x00365be8, 0x00052dee, 0x00052dee, 0x00052dee, 0x00052eee, 0x000532ef, 0x000532ef, 0x000532ef, 0x002b53f2, 0x005174f5, 0x005174f5, 0x005174f5, 0x005173f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d4840d, 0x00d6840c, 0x00d6840c, 0x00d6840c, 0x00e6930d, 0x00f7a20e, 0x00f7a20e, 0x00f7a20e, 0x00f79e0d, 0x00f79d0d, 0x00f79d0d, 0x00f79d0d, 0x00f7960d, 0x00f7960d, 0x00f7960d, 0x00f7920d, 0x00f6850d, 0x00f6850d, 0x00f6850d, 0x00f46e0c, 0x00f3560a, 0x00f3560a, 0x00f3560a, 0x00ee1ab7, 0x00ec08ec, 0x00ec08ec, 0x00ec08ec, 0x000308ec, 0x000308ec, 0x000308ec, 0x00030eec, 0x000422ed, 0x000422ed, 0x000422ed, 0x000528ed, 0x00052dee, 0x00052dee, 0x00052dee, 0x000533ee, 0x000535ee, 0x000535ee, 0x000535ee, 0x000537ee, 0x000537ee, 0x000537ee, 0x000538ee, 0x00053aef, 0x00053aef, 0x00053aef, 0x002b5af2, 0x00517af5, 0x00517af5, 0x00517af5, 0x00517bf2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d4840d, 0x00d6840c, 0x00d6840c, 0x00d6840c, 0x00e6930d, 0x00f7a20e, 0x00f7a20e, 0x00f7a20e, 0x00f79e0d, 0x00f79d0d, 0x00f79d0d, 0x00f79d0d, 0x00f7960d, 0x00f7960d, 0x00f7960d, 0x00f7920d, 0x00f6850d, 0x00f6850d, 0x00f6850d, 0x00f46e0c, 0x00f3560a, 0x00f3560a, 0x00f3560a, 0x00ee1ab7, 0x00ec08ec, 0x00ec08ec, 0x00ec08ec, 0x000308ec, 0x000308ec, 0x000308ec, 0x00030eec, 0x000422ed, 0x000422ed, 0x000422ed, 0x000528ed, 0x00052dee, 0x00052dee, 0x00052dee, 0x000533ee, 0x000535ee, 0x000535ee, 0x000535ee, 0x000537ee, 0x000537ee, 0x000537ee, 0x000538ee, 0x00053aef, 0x00053aef, 0x00053aef, 0x002b5af2, 0x00517af5, 0x00517af5, 0x00517af5, 0x00517bf2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d4840d, 0x00d6840c, 0x00d6840c, 0x00d6840c, 0x00e6930d, 0x00f7a20e, 0x00f7a20e, 0x00f7a20e, 0x00f79e0d, 0x00f79d0d, 0x00f79d0d, 0x00f79d0d, 0x00f7960d, 0x00f7960d, 0x00f7960d, 0x00f7920d, 0x00f6850d, 0x00f6850d, 0x00f6850d, 0x00f46e0c, 0x00f3560a, 0x00f3560a, 0x00f3560a, 0x00ee1ab7, 0x00ec08ec, 0x00ec08ec, 0x00ec08ec, 0x000308ec, 0x000308ec, 0x000308ec, 0x00030eec, 0x000422ed, 0x000422ed, 0x000422ed, 0x000528ed, 0x00052dee, 0x00052dee, 0x00052dee, 0x000533ee, 0x000535ee, 0x000535ee, 0x000535ee, 0x000537ee, 0x000537ee, 0x000537ee, 0x000538ee, 0x00053aef, 0x00053aef, 0x00053aef, 0x002b5af2, 0x00517af5, 0x00517af5, 0x00517af5, 0x00517bf2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d9ae0d, 0x00d8af0d, 0x00d8af0d, 0x00d8af0d, 0x00e8c20f, 0x00f9d610, 0x00f9d610, 0x00f9d610, 0x00fadb10, 0x00fadc10, 0x00fadc10, 0x00fadc10, 0x00fbe811, 0x00fbe811, 0x00fbe811, 0x00fbec11, 0x00fbf912, 0x00fbf912, 0x00fbf912, 0x00dff911, 0x00c3fa10, 0x00c3fa10, 0x00c3fa10, 0x0038f73a, 0x000df647, 0x000df647, 0x000df647, 0x000ddff6, 0x000ddff6, 0x000ddff6, 0x000cd0f5, 0x000aa1f3, 0x000aa1f3, 0x000aa1f3, 0x000a93f3, 0x000986f4, 0x000986f4, 0x000986f4, 0x00087af2, 0x000876f2, 0x000876f2, 0x000876f2, 0x00086ef1, 0x00086ef1, 0x00086ef1, 0x00086cf1, 0x000766f0, 0x000766f0, 0x000766f0, 0x002d7ef3, 0x005296f6, 0x005296f6, 0x005296f6, 0x005195f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d9ae0d, 0x00d8af0d, 0x00d8af0d, 0x00d8af0d, 0x00e8c20f, 0x00f9d610, 0x00f9d610, 0x00f9d610, 0x00fadb10, 0x00fadc10, 0x00fadc10, 0x00fadc10, 0x00fbe811, 0x00fbe811, 0x00fbe811, 0x00fbec11, 0x00fbf912, 0x00fbf912, 0x00fbf912, 0x00dff911, 0x00c3fa10, 0x00c3fa10, 0x00c3fa10, 0x0038f73a, 0x000df647, 0x000df647, 0x000df647, 0x000ddff6, 0x000ddff6, 0x000ddff6, 0x000cd0f5, 0x000aa1f3, 0x000aa1f3, 0x000aa1f3, 0x000a93f3, 0x000986f4, 0x000986f4, 0x000986f4, 0x00087af2, 0x000876f2, 0x000876f2, 0x000876f2, 0x00086ef1, 0x00086ef1, 0x00086ef1, 0x00086cf1, 0x000766f0, 0x000766f0, 0x000766f0, 0x002d7ef3, 0x005296f6, 0x005296f6, 0x005296f6, 0x005195f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d9ae0d, 0x00d8af0d, 0x00d8af0d, 0x00d8af0d, 0x00e8c20f, 0x00f9d610, 0x00f9d610, 0x00f9d610, 0x00fadb10, 0x00fadc10, 0x00fadc10, 0x00fadc10, 0x00fbe811, 0x00fbe811, 0x00fbe811, 0x00fbec11, 0x00fbf912, 0x00fbf912, 0x00fbf912, 0x00dff911, 0x00c3fa10, 0x00c3fa10, 0x00c3fa10, 0x0038f73a, 0x000df647, 0x000df647, 0x000df647, 0x000ddff6, 0x000ddff6, 0x000ddff6, 0x000cd0f5, 0x000aa1f3, 0x000aa1f3, 0x000aa1f3, 0x000a93f3, 0x000986f4, 0x000986f4, 0x000986f4, 0x00087af2, 0x000876f2, 0x000876f2, 0x000876f2, 0x00086ef1, 0x00086ef1, 0x00086ef1, 0x00086cf1, 0x000766f0, 0x000766f0, 0x000766f0, 0x002d7ef3, 0x005296f6, 0x005296f6, 0x005296f6, 0x005195f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d9b70d, 0x00d8b60e, 0x00d8b60e, 0x00d8b60e, 0x00e9ca0f, 0x00f9de11, 0x00f9de11, 0x00f9de11, 0x00f9e211, 0x00f8e311, 0x00f8e311, 0x00f8e311, 0x00f4ec11, 0x00f4ec11, 0x00f4ec11, 0x00f2ef11, 0x00e8f912, 0x00e8f912, 0x00e8f912, 0x00c7f910, 0x00a5f90f, 0x00a5f90f, 0x00a5f90f, 0x005cf85b, 0x0046f872, 0x0046f872, 0x0046f872, 0x0046e6f8, 0x0046e6f8, 0x0046e6f8, 0x0038dbf7, 0x000bb4f4, 0x000bb4f4, 0x000bb4f4, 0x000ba6f4, 0x000a98f4, 0x000a98f4, 0x000a98f4, 0x000989f3, 0x000985f2, 0x000985f2, 0x000985f2, 0x00097af2, 0x00097af2, 0x00097af2, 0x000878f1, 0x000871f1, 0x000871f1, 0x000871f1, 0x002d87f3, 0x00539df6, 0x00539df6, 0x00539df6, 0x00519df6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d9d011, 0x00d9cf0f, 0x00d9cf0f, 0x00d9cf0f, 0x00eae411, 0x00fbf912, 0x00fbf912, 0x00fbf912, 0x00f5fb12, 0x00f3fb12, 0x00f3fb12, 0x00f3fb12, 0x00dffb11, 0x00dffb11, 0x00dffb11, 0x00d3fb11, 0x00acfb10, 0x00acfb10, 0x00acfb10, 0x0079f90f, 0x0045f70d, 0x0045f70d, 0x0045f70d, 0x00d3fdc6, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00c7fcfd, 0x000ff2f8, 0x000ff2f8, 0x000ff2f8, 0x000ee1f7, 0x000dd1f6, 0x000dd1f6, 0x000dd1f6, 0x000cbcf4, 0x000bb6f4, 0x000bb6f4, 0x000bb6f4, 0x000aa2f4, 0x000aa2f4, 0x000aa2f4, 0x000a9ff4, 0x000995f3, 0x000995f3, 0x000995f3, 0x002fa5f5, 0x0054b5f7, 0x0054b5f7, 0x0054b5f7, 0x0055b2f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d9d011, 0x00d9cf0f, 0x00d9cf0f, 0x00d9cf0f, 0x00eae411, 0x00fbf912, 0x00fbf912, 0x00fbf912, 0x00f5fb12, 0x00f3fb12, 0x00f3fb12, 0x00f3fb12, 0x00dffb11, 0x00dffb11, 0x00dffb11, 0x00d3fb11, 0x00acfb10, 0x00acfb10, 0x00acfb10, 0x0079f90f, 0x0045f70d, 0x0045f70d, 0x0045f70d, 0x00d3fdc6, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00c7fcfd, 0x000ff2f8, 0x000ff2f8, 0x000ff2f8, 0x000ee1f7, 0x000dd1f6, 0x000dd1f6, 0x000dd1f6, 0x000cbcf4, 0x000bb6f4, 0x000bb6f4, 0x000bb6f4, 0x000aa2f4, 0x000aa2f4, 0x000aa2f4, 0x000a9ff4, 0x000995f3, 0x000995f3, 0x000995f3, 0x002fa5f5, 0x0054b5f7, 0x0054b5f7, 0x0054b5f7, 0x0055b2f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d9d011, 0x00d9cf0f, 0x00d9cf0f, 0x00d9cf0f, 0x00eae411, 0x00fbf912, 0x00fbf912, 0x00fbf912, 0x00f5fb12, 0x00f3fb12, 0x00f3fb12, 0x00f3fb12, 0x00dffb11, 0x00dffb11, 0x00dffb11, 0x00d3fb11, 0x00acfb10, 0x00acfb10, 0x00acfb10, 0x0079f90f, 0x0045f70d, 0x0045f70d, 0x0045f70d, 0x00d3fdc6, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00ffffff, 0x00c7fcfd, 0x000ff2f8, 0x000ff2f8, 0x000ff2f8, 0x000ee1f7, 0x000dd1f6, 0x000dd1f6, 0x000dd1f6, 0x000cbcf4, 0x000bb6f4, 0x000bb6f4, 0x000bb6f4, 0x000aa2f4, 0x000aa2f4, 0x000aa2f4, 0x000a9ff4, 0x000995f3, 0x000995f3, 0x000995f3, 0x002fa5f5, 0x0054b5f7, 0x0054b5f7, 0x0054b5f7, 0x0055b2f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d4d411, 0x00d4d40f, 0x00d4d40f, 0x00d4d40f, 0x00e2e711, 0x00effa13, 0x00effa13, 0x00effa13, 0x00e3fa11, 0x00dffa11, 0x00dffa11, 0x00dffa11, 0x00c1fa10, 0x00c1fa10, 0x00c1fa10, 0x00b4fa10, 0x0089f90f, 0x0089f90f, 0x0089f90f, 0x005df80e, 0x0031f60d, 0x0031f60d, 0x0031f60d, 0x0072fa78, 0x0086fa99, 0x0086fa99, 0x0086fa99, 0x0086fbc8, 0x0086fbc8, 0x0086fbc8, 0x006afad0, 0x000ff5e8, 0x000ff5e8, 0x000ff5e8, 0x000eecef, 0x000ee4f7, 0x000ee4f7, 0x000ee4f7, 0x000dd2f6, 0x000dccf6, 0x000dccf6, 0x000dccf6, 0x000bb7f5, 0x000bb7f5, 0x000bb7f5, 0x000bb4f5, 0x000aa8f4, 0x000aa8f4, 0x000aa8f4, 0x002fb5f6, 0x0055c2f7, 0x0055c2f7, 0x0055c2f7, 0x0055c3f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d0d911, 0x00d0da0f, 0x00d0da0f, 0x00d0da0f, 0x00daeb11, 0x00e4fc13, 0x00e4fc13, 0x00e4fc13, 0x00d2fa11, 0x00ccfa10, 0x00ccfa10, 0x00ccfa10, 0x00a4f90f, 0x00a4f90f, 0x00a4f90f, 0x0096f90f, 0x0067f80e, 0x0067f80e, 0x0067f80e, 0x0042f70d, 0x001df60c, 0x001df60c, 0x001df60c, 0x0011f62b, 0x000df634, 0x000df634, 0x000df634, 0x000ef792, 0x000ef792, 0x000ef792, 0x000ef7a2, 0x000ef8d8, 0x000ef8d8, 0x000ef8d8, 0x000ff7e8, 0x000ff7f8, 0x000ff7f8, 0x000ff7f8, 0x000ee8f8, 0x000ee3f8, 0x000ee3f8, 0x000ee3f8, 0x000ccdf6, 0x000ccdf6, 0x000ccdf6, 0x000cc9f6, 0x000bbbf5, 0x000bbbf5, 0x000bbbf5, 0x0030c5f6, 0x0055cff8, 0x0055cff8, 0x0055cff8, 0x0055d0f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d0d911, 0x00d0da0f, 0x00d0da0f, 0x00d0da0f, 0x00daeb11, 0x00e4fc13, 0x00e4fc13, 0x00e4fc13, 0x00d2fa11, 0x00ccfa10, 0x00ccfa10, 0x00ccfa10, 0x00a4f90f, 0x00a4f90f, 0x00a4f90f, 0x0096f90f, 0x0067f80e, 0x0067f80e, 0x0067f80e, 0x0042f70d, 0x001df60c, 0x001df60c, 0x001df60c, 0x0011f62b, 0x000df634, 0x000df634, 0x000df634, 0x000ef792, 0x000ef792, 0x000ef792, 0x000ef7a2, 0x000ef8d8, 0x000ef8d8, 0x000ef8d8, 0x000ff7e8, 0x000ff7f8, 0x000ff7f8, 0x000ff7f8, 0x000ee8f8, 0x000ee3f8, 0x000ee3f8, 0x000ee3f8, 0x000ccdf6, 0x000ccdf6, 0x000ccdf6, 0x000cc9f6, 0x000bbbf5, 0x000bbbf5, 0x000bbbf5, 0x0030c5f6, 0x0055cff8, 0x0055cff8, 0x0055cff8, 0x0055d0f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00d0d911, 0x00d0da0f, 0x00d0da0f, 0x00d0da0f, 0x00daeb11, 0x00e4fc13, 0x00e4fc13, 0x00e4fc13, 0x00d2fa11, 0x00ccfa10, 0x00ccfa10, 0x00ccfa10, 0x00a4f90f, 0x00a4f90f, 0x00a4f90f, 0x0096f90f, 0x0067f80e, 0x0067f80e, 0x0067f80e, 0x0042f70d, 0x001df60c, 0x001df60c, 0x001df60c, 0x0011f62b, 0x000df634, 0x000df634, 0x000df634, 0x000ef792, 0x000ef792, 0x000ef792, 0x000ef7a2, 0x000ef8d8, 0x000ef8d8, 0x000ef8d8, 0x000ff7e8, 0x000ff7f8, 0x000ff7f8, 0x000ff7f8, 0x000ee8f8, 0x000ee3f8, 0x000ee3f8, 0x000ee3f8, 0x000ccdf6, 0x000ccdf6, 0x000ccdf6, 0x000cc9f6, 0x000bbbf5, 0x000bbbf5, 0x000bbbf5, 0x0030c5f6, 0x0055cff8, 0x0055cff8, 0x0055cff8, 0x0055d0f6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00bbd911, 0x00bad90f, 0x00bad90f, 0x00bad90f, 0x00c1ea10, 0x00c8fa11, 0x00c8fa11, 0x00c8fa11, 0x00b2f910, 0x00abf910, 0x00abf910, 0x00abf910, 0x0082f90f, 0x0082f90f, 0x0082f90f, 0x0074f90f, 0x0048f70d, 0x0048f70d, 0x0048f70d, 0x002ef70d, 0x0013f70c, 0x0013f70c, 0x0013f70c, 0x000ff72b, 0x000ef734, 0x000ef734, 0x000ef734, 0x000ff67f, 0x000ff67f, 0x000ff67f, 0x000ff68e, 0x000ff7bf, 0x000ff7bf, 0x000ff7bf, 0x000ff7d2, 0x000ff7e5, 0x000ff7e5, 0x000ff7e5, 0x000ff5f2, 0x000ff4f6, 0x000ff4f6, 0x000ff4f6, 0x000ee5f8, 0x000ee5f8, 0x000ee5f8, 0x000ee1f7, 0x000dd3f6, 0x000dd3f6, 0x000dd3f6, 0x0031daf8, 0x0056e1fa, 0x0056e1fa, 0x0056e1fa, 0x0055e1fb, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, + 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00b2d911, 0x00b3d90f, 0x00b3d90f, 0x00b3d90f, 0x00b9e910, 0x00c0fa10, 0x00c0fa10, 0x00c0fa10, 0x00a8f910, 0x00a1f910, 0x00a1f910, 0x00a1f910, 0x0077f90f, 0x0077f90f, 0x0077f90f, 0x006af90f, 0x003ff70d, 0x003ff70d, 0x003ff70d, 0x0028f70d, 0x0010f70c, 0x0010f70c, 0x0010f70c, 0x000ff72b, 0x000ef734, 0x000ef734, 0x000ef734, 0x000ff679, 0x000ff679, 0x000ff679, 0x000ff688, 0x000ff7b8, 0x000ff7b8, 0x000ff7b8, 0x000ff7cb, 0x000ff7df, 0x000ff7df, 0x000ff7df, 0x000ff9f0, 0x000ff9f5, 0x000ff9f5, 0x000ff9f5, 0x000fecf8, 0x000fecf8, 0x000fecf8, 0x000fe8f8, 0x000ddbf6, 0x000ddbf6, 0x000ddbf6, 0x0032e0f8, 0x0056e6fa, 0x0056e6fa, 0x0056e6fa, 0x0055e6fb, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, + 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00b2d911, 0x00b3d90f, 0x00b3d90f, 0x00b3d90f, 0x00b9e910, 0x00c0fa10, 0x00c0fa10, 0x00c0fa10, 0x00a8f910, 0x00a1f910, 0x00a1f910, 0x00a1f910, 0x0077f90f, 0x0077f90f, 0x0077f90f, 0x006af90f, 0x003ff70d, 0x003ff70d, 0x003ff70d, 0x0028f70d, 0x0010f70c, 0x0010f70c, 0x0010f70c, 0x000ff72b, 0x000ef734, 0x000ef734, 0x000ef734, 0x000ff679, 0x000ff679, 0x000ff679, 0x000ff688, 0x000ff7b8, 0x000ff7b8, 0x000ff7b8, 0x000ff7cb, 0x000ff7df, 0x000ff7df, 0x000ff7df, 0x000ff9f0, 0x000ff9f5, 0x000ff9f5, 0x000ff9f5, 0x000fecf8, 0x000fecf8, 0x000fecf8, 0x000fe8f8, 0x000ddbf6, 0x000ddbf6, 0x000ddbf6, 0x0032e0f8, 0x0056e6fa, 0x0056e6fa, 0x0056e6fa, 0x0055e6fb, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, + 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00b2d911, 0x00b3d90f, 0x00b3d90f, 0x00b3d90f, 0x00b9e910, 0x00c0fa10, 0x00c0fa10, 0x00c0fa10, 0x00a8f910, 0x00a1f910, 0x00a1f910, 0x00a1f910, 0x0077f90f, 0x0077f90f, 0x0077f90f, 0x006af90f, 0x003ff70d, 0x003ff70d, 0x003ff70d, 0x0028f70d, 0x0010f70c, 0x0010f70c, 0x0010f70c, 0x000ff72b, 0x000ef734, 0x000ef734, 0x000ef734, 0x000ff679, 0x000ff679, 0x000ff679, 0x000ff688, 0x000ff7b8, 0x000ff7b8, 0x000ff7b8, 0x000ff7cb, 0x000ff7df, 0x000ff7df, 0x000ff7df, 0x000ff9f0, 0x000ff9f5, 0x000ff9f5, 0x000ff9f5, 0x000fecf8, 0x000fecf8, 0x000fecf8, 0x000fe8f8, 0x000ddbf6, 0x000ddbf6, 0x000ddbf6, 0x0032e0f8, 0x0056e6fa, 0x0056e6fa, 0x0056e6fa, 0x0055e6fb, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, + 0x00000000, 0x00000000, 0x00000000, 0x007f7f7f, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0095d90d, 0x0097d80e, 0x0097d80e, 0x0097d80e, 0x009ae90f, 0x009efa0f, 0x009efa0f, 0x009efa0f, 0x0085f80f, 0x007ef80f, 0x007ef80f, 0x007ef80f, 0x0055f90e, 0x0055f90e, 0x0055f90e, 0x004bf90e, 0x002bf70d, 0x002bf70d, 0x002bf70d, 0x001cf60e, 0x000df60e, 0x000df60e, 0x000df60e, 0x000df62a, 0x000df632, 0x000df632, 0x000df632, 0x000df766, 0x000df766, 0x000df766, 0x000ef772, 0x000ff79b, 0x000ff79b, 0x000ff79b, 0x000ff7b0, 0x000ef7c5, 0x000ef7c5, 0x000ef7c5, 0x000ff9dc, 0x000ff9e3, 0x000ff9e3, 0x000ff9e3, 0x000ff8f5, 0x000ff8f5, 0x000ff8f5, 0x000ff6f6, 0x000eeff8, 0x000eeff8, 0x000eeff8, 0x0033f3f9, 0x0058f7fb, 0x0058f7fb, 0x0058f7fb, 0x0059f6fb, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x007f7f7f, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0095d90d, 0x0097d80e, 0x0097d80e, 0x0097d80e, 0x009ae90f, 0x009efa0f, 0x009efa0f, 0x009efa0f, 0x0085f80f, 0x007ef80f, 0x007ef80f, 0x007ef80f, 0x0055f90e, 0x0055f90e, 0x0055f90e, 0x004bf90e, 0x002bf70d, 0x002bf70d, 0x002bf70d, 0x001cf60e, 0x000df60e, 0x000df60e, 0x000df60e, 0x000df62a, 0x000df632, 0x000df632, 0x000df632, 0x000df766, 0x000df766, 0x000df766, 0x000ef772, 0x000ff79b, 0x000ff79b, 0x000ff79b, 0x000ff7b0, 0x000ef7c5, 0x000ef7c5, 0x000ef7c5, 0x000ff9dc, 0x000ff9e3, 0x000ff9e3, 0x000ff9e3, 0x000ff8f5, 0x000ff8f5, 0x000ff8f5, 0x000ff6f6, 0x000eeff8, 0x000eeff8, 0x000eeff8, 0x0033f3f9, 0x0058f7fb, 0x0058f7fb, 0x0058f7fb, 0x0059f6fb, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x007f7f7f, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0095d90d, 0x0097d80e, 0x0097d80e, 0x0097d80e, 0x009ae90f, 0x009efa0f, 0x009efa0f, 0x009efa0f, 0x0085f80f, 0x007ef80f, 0x007ef80f, 0x007ef80f, 0x0055f90e, 0x0055f90e, 0x0055f90e, 0x004bf90e, 0x002bf70d, 0x002bf70d, 0x002bf70d, 0x001cf60e, 0x000df60e, 0x000df60e, 0x000df60e, 0x000df62a, 0x000df632, 0x000df632, 0x000df632, 0x000df766, 0x000df766, 0x000df766, 0x000ef772, 0x000ff79b, 0x000ff79b, 0x000ff79b, 0x000ff7b0, 0x000ef7c5, 0x000ef7c5, 0x000ef7c5, 0x000ff9dc, 0x000ff9e3, 0x000ff9e3, 0x000ff9e3, 0x000ff8f5, 0x000ff8f5, 0x000ff8f5, 0x000ff6f6, 0x000eeff8, 0x000eeff8, 0x000eeff8, 0x0033f3f9, 0x0058f7fb, 0x0058f7fb, 0x0058f7fb, 0x0059f6fb, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x007c7c7c, 0x007a7a7a, 0x007a7a7a, 0x007a7a7a, 0x007f7f7f, 0x007f7f7f, 0x007f7f7f, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0090d90d, 0x0090d90d, 0x0090d90d, 0x009adb18, 0x00a1e01f, 0x00a1e01f, 0x00a1e01f, 0x00a2ed20, 0x00a2fa20, 0x00a2fa20, 0x00a2fa20, 0x008bf920, 0x0084f920, 0x0084f920, 0x0084f920, 0x005ef91f, 0x005ef91f, 0x005ef91f, 0x0055f91f, 0x0038f81e, 0x0038f81e, 0x0038f81e, 0x002bf71f, 0x001ef720, 0x001ef720, 0x001ef720, 0x001ef739, 0x001ef741, 0x001ef741, 0x001ef741, 0x001ef870, 0x001ef870, 0x001ef870, 0x001ff87c, 0x0020f8a1, 0x0020f8a1, 0x0020f8a1, 0x0020f8b4, 0x001ff8c8, 0x001ff8c8, 0x001ff8c8, 0x0020f9de, 0x0020f9e4, 0x0020f9e4, 0x0020f9e4, 0x0020f9f6, 0x0020f9f6, 0x0020f9f6, 0x0020f7f6, 0x001ff2f8, 0x001ff2f8, 0x001ff2f8, 0x003bf5fa, 0x0058f8fb, 0x0058f8fb, 0x0058f8fb, 0x0057f8fa, 0x0055fbfb, 0x0055fbfb, 0x0055fbfb, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x007f7f7f, 0x007f7f7f, 0x007f7f7f, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00686868, 0x00686868, 0x00686868, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0092d80e, 0x0092d80e, 0x0092d80e, 0x009de01f, 0x00c3fc58, 0x00c3fc58, 0x00c3fc58, 0x00b8fb58, 0x00aefb58, 0x00aefb58, 0x00aefb58, 0x009cfb57, 0x0096fb57, 0x0096fb57, 0x0096fb57, 0x007bfa56, 0x007bfa56, 0x007bfa56, 0x0075fa56, 0x0063fa56, 0x0063fa56, 0x0063fa56, 0x005df958, 0x0056f959, 0x0056f959, 0x0056f959, 0x0056f96c, 0x0056f972, 0x0056f972, 0x0056f972, 0x0057fa92, 0x0057fa92, 0x0057fa92, 0x0057fa9a, 0x0057fab5, 0x0057fab5, 0x0057fab5, 0x0057fac3, 0x0057fad1, 0x0057fad1, 0x0057fad1, 0x0058fbe3, 0x0058fbe9, 0x0058fbe9, 0x0058fbe9, 0x0058fbf9, 0x0058fbf9, 0x0058fbf9, 0x0058fbf9, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00686868, 0x00686868, 0x00686868, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0092d80e, 0x0092d80e, 0x0092d80e, 0x009de01f, 0x00c3fc58, 0x00c3fc58, 0x00c3fc58, 0x00b8fb58, 0x00aefb58, 0x00aefb58, 0x00aefb58, 0x009cfb57, 0x0096fb57, 0x0096fb57, 0x0096fb57, 0x007bfa56, 0x007bfa56, 0x007bfa56, 0x0075fa56, 0x0063fa56, 0x0063fa56, 0x0063fa56, 0x005df958, 0x0056f959, 0x0056f959, 0x0056f959, 0x0056f96c, 0x0056f972, 0x0056f972, 0x0056f972, 0x0057fa92, 0x0057fa92, 0x0057fa92, 0x0057fa9a, 0x0057fab5, 0x0057fab5, 0x0057fab5, 0x0057fac3, 0x0057fad1, 0x0057fad1, 0x0057fad1, 0x0058fbe3, 0x0058fbe9, 0x0058fbe9, 0x0058fbe9, 0x0058fbf9, 0x0058fbf9, 0x0058fbf9, 0x0058fbf9, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00686868, 0x00686868, 0x00686868, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0092d80e, 0x0092d80e, 0x0092d80e, 0x009de01f, 0x00c3fc58, 0x00c3fc58, 0x00c3fc58, 0x00b8fb58, 0x00aefb58, 0x00aefb58, 0x00aefb58, 0x009cfb57, 0x0096fb57, 0x0096fb57, 0x0096fb57, 0x007bfa56, 0x007bfa56, 0x007bfa56, 0x0075fa56, 0x0063fa56, 0x0063fa56, 0x0063fa56, 0x005df958, 0x0056f959, 0x0056f959, 0x0056f959, 0x0056f96c, 0x0056f972, 0x0056f972, 0x0056f972, 0x0057fa92, 0x0057fa92, 0x0057fa92, 0x0057fa9a, 0x0057fab5, 0x0057fab5, 0x0057fab5, 0x0057fac3, 0x0057fad1, 0x0057fad1, 0x0057fad1, 0x0058fbe3, 0x0058fbe9, 0x0058fbe9, 0x0058fbe9, 0x0058fbf9, 0x0058fbf9, 0x0058fbf9, 0x0058fbf9, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00686868, 0x00686868, 0x00686868, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0087d80e, 0x0087d80e, 0x0087d80e, 0x008ee016, 0x00a4fa34, 0x00a4fa34, 0x00a4fa34, 0x0098fa33, 0x008cf933, 0x008cf933, 0x008cf933, 0x0077f932, 0x0071f932, 0x0071f932, 0x0071f932, 0x0055f832, 0x0055f832, 0x0055f832, 0x004ff831, 0x003df831, 0x003df831, 0x003df831, 0x0037f834, 0x0032f737, 0x0032f737, 0x0032f737, 0x0032f74b, 0x0032f752, 0x0032f752, 0x0032f752, 0x0033f974, 0x0033f974, 0x0033f974, 0x0033f97c, 0x0033f898, 0x0033f898, 0x0033f898, 0x0033f8a8, 0x0033f9b8, 0x0033f9b8, 0x0033f9b8, 0x0033facd, 0x0034fad4, 0x0034fad4, 0x0034fad4, 0x0034f9e7, 0x0034f9e7, 0x0034f9e7, 0x0033f9ea, 0x0033f9f1, 0x0033f9f1, 0x0033f9f1, 0x0033f9f4, 0x0033f9f6, 0x0033f9f6, 0x0033f9f6, 0x004ffaf9, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00747474, 0x00747474, 0x00747474, 0x00747474, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00686868, 0x00686868, 0x00686868, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007cd90d, 0x007cd90d, 0x007cd90d, 0x007ee00e, 0x0086f90f, 0x0086f90f, 0x0086f90f, 0x0079f80f, 0x006bf80e, 0x006bf80e, 0x006bf80e, 0x0053f70d, 0x004cf70d, 0x004cf70d, 0x004cf70d, 0x002ef70d, 0x002ef70d, 0x002ef70d, 0x0028f70d, 0x0016f60c, 0x0016f60c, 0x0016f60c, 0x0012f611, 0x000df615, 0x000df615, 0x000df615, 0x000ef62a, 0x000ef631, 0x000ef631, 0x000ef631, 0x000ef855, 0x000ef855, 0x000ef855, 0x000ef85e, 0x000ef67c, 0x000ef67c, 0x000ef67c, 0x000ef78d, 0x000ef89f, 0x000ef89f, 0x000ef89f, 0x000ff9b7, 0x000ff9bf, 0x000ff9bf, 0x000ff9bf, 0x000ff7d6, 0x000ff7d6, 0x000ff7d6, 0x000ff7da, 0x000ff8e9, 0x000ff8e9, 0x000ff8e9, 0x000ff8ee, 0x000ff9f3, 0x000ff9f3, 0x000ff9f3, 0x0046faf8, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00686868, 0x00686868, 0x00686868, 0x00696969, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00686868, 0x00686868, 0x00686868, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007cd90d, 0x007cd90d, 0x007cd90d, 0x007ee00e, 0x0086f90f, 0x0086f90f, 0x0086f90f, 0x0079f80f, 0x006bf80e, 0x006bf80e, 0x006bf80e, 0x0053f70d, 0x004cf70d, 0x004cf70d, 0x004cf70d, 0x002ef70d, 0x002ef70d, 0x002ef70d, 0x0028f70d, 0x0016f60c, 0x0016f60c, 0x0016f60c, 0x0012f611, 0x000df615, 0x000df615, 0x000df615, 0x000ef62a, 0x000ef631, 0x000ef631, 0x000ef631, 0x000ef855, 0x000ef855, 0x000ef855, 0x000ef85e, 0x000ef67c, 0x000ef67c, 0x000ef67c, 0x000ef78d, 0x000ef89f, 0x000ef89f, 0x000ef89f, 0x000ff9b7, 0x000ff9bf, 0x000ff9bf, 0x000ff9bf, 0x000ff7d6, 0x000ff7d6, 0x000ff7d6, 0x000ff7da, 0x000ff8e9, 0x000ff8e9, 0x000ff8e9, 0x000ff8ee, 0x000ff9f3, 0x000ff9f3, 0x000ff9f3, 0x0046faf8, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00686868, 0x00686868, 0x00686868, 0x00696969, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00686868, 0x00686868, 0x00686868, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007cd90d, 0x007cd90d, 0x007cd90d, 0x007ee00e, 0x0086f90f, 0x0086f90f, 0x0086f90f, 0x0079f80f, 0x006bf80e, 0x006bf80e, 0x006bf80e, 0x0053f70d, 0x004cf70d, 0x004cf70d, 0x004cf70d, 0x002ef70d, 0x002ef70d, 0x002ef70d, 0x0028f70d, 0x0016f60c, 0x0016f60c, 0x0016f60c, 0x0012f611, 0x000df615, 0x000df615, 0x000df615, 0x000ef62a, 0x000ef631, 0x000ef631, 0x000ef631, 0x000ef855, 0x000ef855, 0x000ef855, 0x000ef85e, 0x000ef67c, 0x000ef67c, 0x000ef67c, 0x000ef78d, 0x000ef89f, 0x000ef89f, 0x000ef89f, 0x000ff9b7, 0x000ff9bf, 0x000ff9bf, 0x000ff9bf, 0x000ff7d6, 0x000ff7d6, 0x000ff7d6, 0x000ff7da, 0x000ff8e9, 0x000ff8e9, 0x000ff8e9, 0x000ff8ee, 0x000ff9f3, 0x000ff9f3, 0x000ff9f3, 0x0046faf8, 0x0057fafa, 0x0057fafa, 0x0057fafa, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00686868, 0x00686868, 0x00686868, 0x00696969, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00666666, 0x00666666, 0x00666666, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x00717171, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007bd90d, 0x007bd90d, 0x007bd90d, 0x007fe10d, 0x0084f611, 0x0084f611, 0x0084f611, 0x006e9f46, 0x00698a53, 0x00698a53, 0x00698a53, 0x00638a53, 0x00618953, 0x00618953, 0x00618953, 0x002ff60d, 0x002ff60d, 0x002ff60d, 0x0043b935, 0x00558952, 0x00558952, 0x00558952, 0x00548954, 0x00538955, 0x00538955, 0x00538955, 0x0035b746, 0x000df633, 0x000df633, 0x000df633, 0x000df655, 0x000df655, 0x000df655, 0x0035b963, 0x0053896d, 0x0053896d, 0x0053896d, 0x00538971, 0x00538a75, 0x00538a75, 0x00538a75, 0x0035b995, 0x0011f6bf, 0x0011f6bf, 0x0011f6bf, 0x00538982, 0x00538982, 0x00538982, 0x00538a83, 0x00538a86, 0x00538a86, 0x00538a86, 0x00469f9c, 0x0011f6f2, 0x0011f6f2, 0x0011f6f2, 0x0044fbf6, 0x0055fbfb, 0x0055fbfb, 0x0055fbfb, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00666666, 0x00666666, 0x00666666, 0x00696969, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x006e6e6e, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x006e6e6e, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x006e6e6e, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x006e6e6e, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x007a7a7a, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x006e6e6e, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x006e6e6e, 0x00686868, 0x00686868, 0x00686868, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x006e6e6e, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x007a7a7a, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x006e6e6e, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x006e6e6e, 0x00686868, 0x00686868, 0x00686868, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x006e6e6e, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x007a7a7a, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x006e6e6e, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x006e6e6e, 0x00686868, 0x00686868, 0x00686868, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00696969, 0x00696969, 0x006e6e6e, 0x007a7a7a, 0x007a7a7a, 0x007a7a7a, 0x007b7b7b, 0x007f7f7f, 0x007f7f7f, 0x007f7f7f, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006d6d6d, 0x00666666, 0x00666666, 0x00666666, 0x006d6d6d, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x007b7b7b, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00696969, 0x00696969, 0x006e6e6e, 0x007a7a7a, 0x007a7a7a, 0x007a7a7a, 0x007b7b7b, 0x007f7f7f, 0x007f7f7f, 0x007f7f7f, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00808080, 0x007f7f7f, 0x007f7f7f, 0x007f7f7f, 0x007b7b7b, 0x007a7a7a, 0x007a7a7a, 0x007a7a7a, 0x006e6e6e, 0x00696969, 0x00696969, 0x00696969, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007f7f7f, 0x00808080, 0x00808080, 0x00808080, 0x00747474, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007f7f7f, 0x00808080, 0x00808080, 0x00808080, 0x00747474, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007f7f7f, 0x00808080, 0x00808080, 0x00808080, 0x00747474, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x007b7b7b, 0x00747474, 0x00747474, 0x00747474, 0x00787878, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00707070, 0x00747474, 0x00747474, 0x00747474, 0x007b7b7b, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00747474, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x007a7a7a, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00747474, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x007a7a7a, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00747474, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x007a7a7a, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00747474, 0x00686868, 0x00686868, 0x00686868, 0x00666666, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006d6d6d, 0x00666666, 0x00666666, 0x00666666, 0x006d6d6d, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006f6f6f, 0x007f7f7f, 0x007f7f7f, 0x007f7f7f, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00666666, 0x00666666, 0x00666666, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006e6e6e, 0x006d6d6d, 0x00666666, 0x00666666, 0x00666666, 0x006d6d6d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00696969, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00696969, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00696969, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00696969, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00686868, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00666666, 0x00686868, 0x00686868, 0x00686868, 0x00747474, 0x00808080, 0x00808080, 0x00808080, 0x007f7f7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 +}; \ No newline at end of file diff --git a/usermods/usermod_v2_gc9a01_display/readme.md b/usermods/usermod_v2_gc9a01_display/readme.md new file mode 100644 index 0000000000..4c04e446cd --- /dev/null +++ b/usermods/usermod_v2_gc9a01_display/readme.md @@ -0,0 +1,115 @@ +# GC9A01 Display Usermod + +A fully-featured WLED usermod providing comprehensive visual interface on GC9A01 240x240 round TFT displays with complete rotary encoder integration. + +## Features + +### Visual Interface + +- **Circular Design**: Optimized for 240x240 round displays with blue bezel theming +- **Real-time Clock**: Large digital clock display (12/24-hour formats) +- **WiFi Signal Strength**: Visual signal strength indicator with 4-level bars (25%, 50%, 75%, 100%) +- **Power Status**: Dynamic "OFF [switch] ON" layout with contextual text +- **Brightness Arc**: Semicircular brightness visualization +- **Color Controls**: Three color buttons (FX, BG, CS) with live color preview and automatic updates +- **Effect Display**: Current effect name +- **Palette Display**: Current palette name +- **Startup Logo**: WLED logo display during initialization + +### Modes + +- **Sleep Mode**: Automatic display sleep after configurable timeout (5-300 seconds) +- **Clock Mode**: Alternative to sleep - shows clock instead of turning off display +- **Wake on Interaction**: Automatic wake on rotary encoder use or button press +- **Unified Timeout**: Single configurable timeout controls both sleep and clock modes +- **Backlight Control**: PWM-based brightness control (0-100%) + +### Performance Features + +- **State Caching**: Minimal redraws using comprehensive change detection +- **Smart Updates**: Automatic color button updates when colors change from any source (web UI, API, etc.) +- **Non-blocking Updates**: Asynchronous display updates following Four Line Display ALT pattern +- **Memory Optimized**: Efficient memory usage with proper cleanup +- **Debug Support**: Comprehensive debug logging with WLED macros + +## Hardware Requirements + +- ESP32 development board +- GC9A01 240x240 TFT display (round) +- Optional: Rotary encoder (usermod_v2_rotary_encoder_ui_ALT) + +## Wiring + +### GC9A01 Display + +| GC9A01 Pin | ESP32 Pin | Function | Description | +|------------|-----------|-------------|-------------| +| VCC | 3.3V | Power | 3.3V power supply | +| GND | GND | Ground | Common ground | +| SCL/SCLK | GPIO18 | SPI Clock | SPI clock signal | +| SDA/MOSI | GPIO23 | SPI MOSI | SPI data out | +| RES/RST | GPIO17 | Reset | Display reset | +| DC | GPIO15 | Data/Command| Data/Command control | +| CS | GPIO5 | Chip Select | SPI chip select | +| BL | GPIO26 | Backlight | Backlight control | + +**Note**: Pin assignments can be customized via build flags (see Configuration section). + +### Basic Setup + +Add to your `platformio_override.ini`: + +```ini +[env:esp32_gc9a01] +extends = env:esp32dev +upload_speed = 460800 +monitor_speed = 115200 +custom_usermods = + usermod_v2_gc9a01_display + usermod_v2_rotary_encoder_ui_ALT +build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} + -D WLED_DEBUG + -D WLED_DISABLE_BROWNOUT_DET + -D USERMOD_GC9A01_DISPLAY + -DUSER_SETUP_LOADED=1 + -DGC9A01_DRIVER=1 + -DTFT_WIDTH=240 + -DTFT_HEIGHT=240 + -DTFT_MOSI=23 + -DTFT_SCLK=18 + -DTFT_CS=5 + -DTFT_DC=15 + -DTFT_RST=17 + -DTFT_BL=26 + -DTOUCH_CS=-1 + -DLOAD_GLCD=1 + -DLOAD_FONT2=1 + -DLOAD_FONT4=1 + -DLOAD_FONT6=1 + -DLOAD_FONT7=1 + -DLOAD_FONT8=1 + -DLOAD_GFXFF=1 + -DSMOOTH_FONT=1 + -DSPI_FREQUENCY=27000000 +# Rotary encoder settings + -D ENCODER_DT_PIN=25 + -D ENCODER_CLK_PIN=32 + -D ENCODER_SW_PIN=27 +``` + +### Debug Information + +Enable debug output with `-D WLED_DEBUG` to see detailed logging: + +- Display initialization status and TFT_eSPI configuration +- Update timing information and redraw triggers +- State change detection (brightness, effect, colors, etc.) +- Sleep/wake events and timeout tracking +- Error conditions and recovery attempts + +Debug output appears in Serial Monitor at 115200 baud. + +## Change log + +- **v1** (2025-10-06): + - First public release diff --git a/usermods/usermod_v2_gc9a01_display/usermod_v2_gc9a01_display.cpp b/usermods/usermod_v2_gc9a01_display/usermod_v2_gc9a01_display.cpp new file mode 100644 index 0000000000..3cda3b4fe3 --- /dev/null +++ b/usermods/usermod_v2_gc9a01_display/usermod_v2_gc9a01_display.cpp @@ -0,0 +1,980 @@ +// WLED usermod for GC9A01 240x240 TFT display +// Designed to work with TFT_eSPI library and compatible displays +// Inspired by 4-line display usermod and rotary encoder usermod +// Written by AI copilot based on user request + +#include "usermod_v2_gc9a01_display.h" +#include "logo_data.h" + +#ifdef USERMOD_GC9A01_DISPLAY + +// Static instance definition for singleton pattern +UsermodGC9A01Display* UsermodGC9A01Display::instance = nullptr; + +// Private method implementations +void UsermodGC9A01Display::initDisplay() { + if (!displayEnabled) return; + + DEBUG_PRINTLN(F("[GC9A01] Initializing TFT display...")); + + // Configure backlight pin + #ifdef TFT_BL + pinMode(TFT_BL, OUTPUT); + digitalWrite(TFT_BL, HIGH); + DEBUG_PRINTF("[GC9A01] Backlight pin %d set to HIGH\n", TFT_BL); + #endif + + // Initialize TFT + tft.init(); + DEBUG_PRINTLN(F("[GC9A01] TFT init() completed")); + + tft.setRotation(flip ? 2 : 0); // Apply flip setting (0 or 180 degrees) + tft.fillScreen(TFT_BLACK); + setBacklight(backlight); // Apply backlight brightness + + DEBUG_PRINTLN(F("[GC9A01] Display initialization complete")); + + // Set up welcome screen + showingWelcomeScreen = true; + welcomeScreenStartTime = millis(); + drawWLEDLogo(); +} + +void UsermodGC9A01Display::redraw(bool forceRedraw) { + if (!displayEnabled) return; + + bool needRedraw = false; + unsigned long now = millis(); + + // Handle welcome screen transition + if (showingWelcomeScreen) { + if (now - welcomeScreenStartTime > 2000) { // Show logo for 2 seconds + showingWelcomeScreen = false; + forceRedraw = true; + DEBUG_PRINTLN(F("[GC9A01] Transitioning from logo to main interface")); + } else { + // Still showing welcome screen - don't redraw + return; + } + } + + // Handle active overlay mode (always takes priority) + if (activeOverlayMode >= 0) { + if (now >= overlayUntil) { + // Overlay has expired - return to main/clock interface + DEBUG_PRINTF("[GC9A01] Overlay mode %d expired - returning to main interface\n", activeOverlayMode); + activeOverlayMode = -1; + overlayUntil = 0; + forceRedraw = true; + needRedraw = true; // Force redraw to show main screen + lastRedraw = now; // Reset sleep timer when returning to main screen + } else { + // Overlay is still active - check if state changed + if (knownBrightness != bri) { + if (displayTurnedOff) needRedraw = true; + else { knownBrightness = bri; drawMainInterface(activeOverlayMode); lastRedraw = now; return; } + } else if (knownMode != effectCurrent) { + if (displayTurnedOff) needRedraw = true; + else { knownMode = effectCurrent; drawMainInterface(activeOverlayMode); lastRedraw = now; return; } + } else if (knownPalette != effectPalette) { + if (displayTurnedOff) needRedraw = true; + else { knownPalette = effectPalette; drawMainInterface(activeOverlayMode); lastRedraw = now; return; } + } else if (knownEffectSpeed != effectSpeed) { + if (displayTurnedOff) needRedraw = true; + else { knownEffectSpeed = effectSpeed; drawMainInterface(activeOverlayMode); lastRedraw = now; return; } + } else if (knownEffectIntensity != effectIntensity) { + if (displayTurnedOff) needRedraw = true; + else { knownEffectIntensity = effectIntensity; drawMainInterface(activeOverlayMode); lastRedraw = now; return; } + } + + if (!needRedraw) return; // Overlay active, no changes, nothing to do + } + } + + // Get current segment colors (same as web UI csl0, csl1, csl2) + uint32_t currentColor = strip.getMainSegment().colors[0]; // csl0 - Primary/FX + uint32_t currentBgColor = strip.getMainSegment().colors[1]; // csl1 - Secondary/BG + uint32_t currentCustomColor = strip.getMainSegment().colors[2]; // csl2 - Tertiary/CS + + // Check for state changes (Four Line Display ALT pattern) + if (forceRedraw) { + needRedraw = true; + } else if (knownMode != effectCurrent || knownPalette != effectPalette) { + if (displayTurnedOff) needRedraw = true; + else { + knownMode = effectCurrent; + knownPalette = effectPalette; + drawMainInterface(-1); + lastRedraw = now; + return; + } + } else if (knownColor != currentColor || knownBgColor != currentBgColor || knownCustomColor != currentCustomColor) { + if (displayTurnedOff) needRedraw = true; + else { + knownColor = currentColor; + knownBgColor = currentBgColor; + knownCustomColor = currentCustomColor; + drawMainInterface(-1); + lastRedraw = now; + return; + } + } else if (knownBrightness != bri) { + if (displayTurnedOff) needRedraw = true; + else { + knownBrightness = bri; + drawMainInterface(-1); + lastRedraw = now; + return; + } + } else if (knownEffectSpeed != effectSpeed) { + if (displayTurnedOff) needRedraw = true; + else { + knownEffectSpeed = effectSpeed; + drawMainInterface(-1); + lastRedraw = now; + return; + } + } else if (knownEffectIntensity != effectIntensity) { + if (displayTurnedOff) needRedraw = true; + else { + knownEffectIntensity = effectIntensity; + drawMainInterface(-1); + lastRedraw = now; + return; + } + } + + // Nothing changed - check what to do + if (!needRedraw) { + // Turn off display after configured timeout (or show clock if enabled) + if (sleepMode && displayTimeout > 0 && !displayTurnedOff && lastRedraw != ULONG_MAX && (now - lastRedraw > displayTimeout)) { + sleepOrClock(true); + } else if (displayTurnedOff && clockMode) { + // Keep updating clock while display is "off" (showing clock) + static unsigned long lastClockUpdate = 0; + if (now - lastClockUpdate > 30000) { + drawClockScreen(); + lastClockUpdate = now; + } + } + return; + } + + // State changed or need to redraw - wake up if sleeping and redraw main screen + lastRedraw = now; + wakeDisplayFromSleep(); + + // Update all known values + knownBrightness = bri; + knownMode = effectCurrent; + knownPalette = effectPalette; + knownEffectSpeed = effectSpeed; + knownEffectIntensity = effectIntensity; + knownColor = currentColor; + knownBgColor = currentBgColor; + knownCustomColor = currentCustomColor; + + // Do full redraw of main screen (not overlay) + drawMainInterface(-1); +} + +void UsermodGC9A01Display::drawMainInterface(int overlayMode) { + tft.fillScreen(TFT_BLACK); + + showingClock = false; // Clear clock flag - we're showing main interface + + // Determine bezel color based on mode + uint16_t bezelColor = TFT_BLUE; // Default blue bezel for normal mode + bool showBrightnessRing = true; + bool showAllElements = true; + String overlayTitle = ""; + uint16_t overlayColor = TFT_WHITE; + + // Modify display for overlay modes (>= 0) + if (overlayMode >= 0) { + showAllElements = false; + + // Use the stored overlayText if available, otherwise use default titles + overlayTitle = (overlayText.length() > 0) ? overlayText : "Mode"; + + switch (overlayMode) { + case 0: // Brightness mode + bezelColor = TFT_WHITE; + overlayColor = TFT_WHITE; + showBrightnessRing = true; + break; + case 1: // Effect mode + bezelColor = TFT_CYAN; + overlayColor = TFT_CYAN; + showBrightnessRing = false; + break; + case 2: // Speed mode + bezelColor = TFT_GREEN; + overlayColor = TFT_GREEN; + showBrightnessRing = false; + break; + case 3: // Intensity mode + bezelColor = TFT_ORANGE; + overlayColor = TFT_ORANGE; + showBrightnessRing = false; + break; + case 4: // Palette mode + bezelColor = TFT_MAGENTA; + overlayColor = TFT_MAGENTA; + showBrightnessRing = false; + break; + case 99: // Network info mode + bezelColor = TFT_GREEN; + overlayColor = TFT_GREEN; + showBrightnessRing = false; + showAllElements = false; + break; + } + } + + // Get static segment colors + uint32_t fxColor = strip.getMainSegment().colors[0]; // Primary color + uint8_t fx_r = (fxColor >> 16) & 0xFF; + uint8_t fx_g = (fxColor >> 8) & 0xFF; + uint8_t fx_b = fxColor & 0xFF; + uint16_t fxColor565 = tft.color565(fx_r, fx_g, fx_b); + + uint32_t bgColor = strip.getMainSegment().colors[1]; // Secondary color + uint8_t bg_r = (bgColor >> 16) & 0xFF; + uint8_t bg_g = (bgColor >> 8) & 0xFF; + uint8_t bg_b = bgColor & 0xFF; + uint16_t bgColor565 = tft.color565(bg_r, bg_g, bg_b); + + // Draw outer circle border + tft.drawCircle(120, 120, 115, bezelColor); + tft.drawCircle(120, 120, 114, bezelColor); + + // Special handling for network info + if (overlayMode == 99) { + tft.setTextDatum(MC_DATUM); + bool wifiConnected = (WiFi.status() == WL_CONNECTED); + int wifiRSSI = wifiConnected ? WiFi.RSSI() : -100; + + tft.fillCircle(120, 40, 12, TFT_BLUE); + drawWiFiIcon(120, 36, wifiConnected, wifiRSSI); + + tft.setTextColor(TFT_WHITE, TFT_BLACK); + tft.setTextDatum(MC_DATUM); + + if (wifiConnected) { + String ipStr = WiFi.localIP().toString(); + tft.drawString(ipStr, 120, 110, 4); + String macStr = WiFi.macAddress(); + tft.drawString(macStr, 120, 140, 2); + } else { + tft.drawString("NOT CONNECTED", 120, 110, 4); + String macStr = WiFi.macAddress(); + tft.drawString(macStr, 120, 140, 2); + } + return; + } + + // Draw brightness ring from 8 o'clock to 4 o'clock (only on main screen or brightness overlay) + int brightnessPercent = (bri > 0) ? map(bri, 0, 255, 0, 100) : 0; + + if (showBrightnessRing && (overlayMode == -1 || overlayMode == 0) && brightnessPercent >= 0 && brightnessPercent <= 100) { + float startAngle = 240; // 8 o'clock + float arcLength = 240; + float progressAngle = (brightnessPercent > 0) ? map(brightnessPercent, 0, 100, 0, arcLength) : 0; + + // Draw background arc + for (float angle = 0; angle < arcLength; angle += 6) { + float currentAngle = startAngle + angle; + float rad = radians(currentAngle - 90); + + for (int ringWidth = 0; ringWidth < 3; ringWidth++) { + int radius = 108 - ringWidth; + int x = 120 + radius * cos(rad); + int y = 120 + radius * sin(rad); + + if (x >= 0 && x < 240 && y >= 0 && y < 240) { + tft.drawPixel(x, y, TFT_DARKGREY); + } + } + } + + // Draw progress arc + if (brightnessPercent > 0 && progressAngle > 0) { + for (float angle = 0; angle < progressAngle; angle += 3) { + float currentAngle = startAngle + angle; + float rad = radians(currentAngle - 90); + + for (int ringWidth = 0; ringWidth < 3; ringWidth++) { + int radius = 108 - ringWidth; + int x = 120 + radius * cos(rad); + int y = 120 + radius * sin(rad); + + if (x >= 0 && x < 240 && y >= 0 && y < 240) { + tft.drawPixel(x, y, TFT_WHITE); + } + } + } + } + } + + // Show overlay-specific content if in overlay mode + if (overlayMode >= 0 && overlayTitle.length() > 0) { + // Draw overlay title at top (white color, moved down 20px total) + tft.setTextColor(TFT_WHITE, TFT_BLACK); + tft.setTextDatum(MC_DATUM); + tft.drawString(overlayTitle, 120, 70, 4); + + // Get current value and calculate percentage based on overlay mode + int currentValue = 0; + int maxValue = 255; + String valueText = ""; + + switch (overlayMode) { + case 1: // Effect mode + currentValue = effectCurrent; + maxValue = strip.getModeCount() - 1; + if (currentValue < strip.getModeCount()) { + char lineBuffer[64]; + if (extractModeName(currentValue, JSON_mode_names, lineBuffer, 63)) { + // Remove note symbol from effect names (special character prefix) + String modeName = String(lineBuffer); + if (modeName.length() > 0 && modeName.charAt(0) == ' ' && modeName.charAt(1) > 127) { + modeName = modeName.substring(5); // Remove 5-byte UTF-8 note symbol + } + if (modeName.length() > 12) modeName = modeName.substring(0, 10) + ".."; + valueText = modeName; + } else { + valueText = "Effect " + String(currentValue); + } + } + break; + case 2: // Speed mode + currentValue = effectSpeed; + valueText = String(map(effectSpeed, 0, 255, 0, 100)) + "%"; + break; + case 3: // Intensity mode + currentValue = effectIntensity; + valueText = String(map(effectIntensity, 0, 255, 0, 100)) + "%"; + break; + case 4: // Palette mode + currentValue = effectPalette; + maxValue = getPaletteCount() - 1; + if (currentValue < getPaletteCount()) { + char lineBuffer[64]; + if (extractModeName(currentValue, JSON_palette_names, lineBuffer, 63)) { + // Remove "* " prefix from dynamic palettes + String paletteName = String(lineBuffer); + if (paletteName.startsWith("* ")) { + paletteName = paletteName.substring(2); + } + if (paletteName.length() > 12) paletteName = paletteName.substring(0, 10) + ".."; + valueText = paletteName; + } else { + valueText = "Palette " + String(currentValue); + } + } else { + valueText = "Palette " + String(effectPalette); + } + break; + default: // Fallback + currentValue = bri; + valueText = String(map(bri, 0, 255, 0, 100)) + "%"; + break; + } + + // Draw value arc from 8 o'clock to 4 o'clock (only for percentage-based overlays) + // Effect (1) and Palette (4) overlays don't need arcs as they show names + bool showArc = (overlayMode != 1 && overlayMode != 4); + + if (showArc) { + int valuePercent = map(currentValue, 0, maxValue, 0, 100); + float startAngle = 240; // 8 o'clock + float arcLength = 240; + float progressAngle = (valuePercent > 0) ? map(valuePercent, 0, 100, 0, arcLength) : 0; + + // Draw background arc (darkgrey) + for (float angle = 0; angle < arcLength; angle += 6) { + float currentAngle = startAngle + angle; + float rad = radians(currentAngle - 90); + + for (int ringWidth = 0; ringWidth < 3; ringWidth++) { + int radius = 108 - ringWidth; + int x = 120 + radius * cos(rad); + int y = 120 + radius * sin(rad); + + if (x >= 0 && x < 240 && y >= 0 && y < 240) { + tft.drawPixel(x, y, TFT_DARKGREY); + } + } + } + + // Draw progress arc (white progress) + if (valuePercent > 0 && progressAngle > 0) { + for (float angle = 0; angle < progressAngle; angle += 3) { + float currentAngle = startAngle + angle; + float rad = radians(currentAngle - 90); + + for (int ringWidth = 0; ringWidth < 3; ringWidth++) { + int radius = 108 - ringWidth; + int x = 120 + radius * cos(rad); + int y = 120 + radius * sin(rad); + + if (x >= 0 && x < 240 && y >= 0 && y < 240) { + tft.drawPixel(x, y, TFT_WHITE); + } + } + } + } + } + + // Draw value text in center + // Use smaller font (4) for Effect and Palette names, large font (6) for percentages + int fontSize = (overlayMode == 1 || overlayMode == 4) ? 4 : 6; + int yOffset = (overlayMode == 1 || overlayMode == 4) ? 120 : 130; // Slightly higher for smaller font + tft.setTextColor(TFT_WHITE, TFT_BLACK); + tft.setTextDatum(MC_DATUM); + tft.drawString(valueText, 126, yOffset, fontSize); + + // Don't draw main screen elements - return early + return; + } + + // === Main screen elements (only drawn when NOT in overlay mode) === + + // WiFi icon + tft.setTextDatum(MC_DATUM); + bool wifiConnected = (WiFi.status() == WL_CONNECTED); + int wifiRSSI = wifiConnected ? WiFi.RSSI() : -100; + + tft.fillCircle(120, 40, 12, TFT_BLUE); + drawWiFiIcon(120, 36, wifiConnected, wifiRSSI); + + // Time display + tft.setTextColor(TFT_WHITE, TFT_BLACK); + tft.setTextDatum(MC_DATUM); + + String timeStr = "--:--"; + if (localTime != 0) { + uint8_t currentHour = hour(localTime); + uint8_t currentMinute = minute(localTime); + + timeStr = ""; + if (currentHour < 10) timeStr += "0"; + timeStr += String(currentHour); + timeStr += ":"; + if (currentMinute < 10) timeStr += "0"; + timeStr += String(currentMinute); + } + tft.drawString(timeStr, 120, 95, 6); + + // Power switch + bool powerState = (bri > 0); + tft.setTextColor(TFT_WHITE, TFT_BLACK); + tft.setTextDatum(MC_DATUM); + + if (powerState) { + tft.fillRoundRect(105, 123, 30, 15, 7, TFT_GREEN); + tft.fillCircle(125, 130, 6, TFT_WHITE); + tft.drawString("ON", 150, 130, 2); + } else { + tft.fillRoundRect(105, 123, 30, 15, 7, TFT_RED); + tft.fillCircle(115, 130, 6, TFT_WHITE); + tft.drawString("OFF", 90, 130, 2); + } + + // CSL2 button (tertiary color) + uint32_t csl2Color = strip.getMainSegment().colors[2]; + uint8_t csl2_r = (csl2Color >> 16) & 0xFF; + uint8_t csl2_g = (csl2Color >> 8) & 0xFF; + uint8_t csl2_b = csl2Color & 0xFF; + uint16_t csl2Color565 = tft.color565(csl2_r, csl2_g, csl2_b); + + tft.setTextDatum(TL_DATUM); + tft.drawString("CS", 94, 154, 2); + tft.setTextDatum(MC_DATUM); + tft.fillCircle(120, 162, 8, csl2Color565); + tft.drawCircle(120, 162, 8, TFT_WHITE); + + // Effect name + tft.setTextColor(TFT_CYAN, TFT_BLACK); + String effectName = ""; + if (currentPlaylist >= 0) { + effectName = "Playlist"; + } else if (knownMode < strip.getModeCount() && knownMode >= 0) { + char modeBuffer[64]; + strncpy_P(modeBuffer, strip.getModeData(knownMode), sizeof(modeBuffer)-1); + modeBuffer[sizeof(modeBuffer)-1] = '\0'; + + char* sepPtr = strpbrk(modeBuffer, "@;,|="); + if (sepPtr) *sepPtr = '\0'; + + effectName = String(modeBuffer); + + String cleanName = ""; + for (int i = 0; i < effectName.length(); i++) { + char c = effectName.charAt(i); + if (c >= 32 && c <= 126 && c != '@') { + cleanName += c; + } + } + effectName = cleanName; + + if (effectName.length() == 0) { + effectName = "Effect " + String(knownMode); + } + } else { + effectName = "Unknown"; + } + + if (effectName.length() > 12) { + effectName = effectName.substring(0, 9) + "..."; + } + tft.drawString(effectName, 120, 190, 2); + + // Color indicators + tft.setTextColor(TFT_WHITE, TFT_BLACK); + + // FX indicator at 7:30 position + int fx_x = 120 + 90 * cos(radians(225 - 90)); + int fx_y = 120 + 90 * sin(radians(225 - 90)); + tft.drawString("FX", fx_x, fx_y - 15, 2); + tft.fillCircle(fx_x, fx_y, 8, fxColor565); + tft.drawCircle(fx_x, fx_y, 8, TFT_WHITE); + + // BG indicator at 4:30 position + int bg_x = 120 + 90 * cos(radians(135 - 90)); + int bg_y = 120 + 90 * sin(radians(135 - 90)); + tft.drawString("BG", bg_x, bg_y - 15, 2); + tft.fillCircle(bg_x, bg_y, 8, bgColor565); + tft.drawCircle(bg_x, bg_y, 8, TFT_WHITE); + + // Brightness percentage + tft.setTextColor(TFT_WHITE, TFT_BLACK); + String brightStr = String(brightnessPercent) + "%"; + tft.drawString(brightStr, 120, 210, 2); +} + +// ===== WiFi Icon Drawing ===== + +void UsermodGC9A01Display::drawWiFiIcon(int x, int y, bool connected, int rssi) { + // Draw WiFi icon as signal strength bars (like mobile phone signal) + // More recognizable than arcs on small displays + + uint16_t strongColor, weakColor; + int signalStrength = 0; + + if (connected) { + strongColor = TFT_WHITE; + weakColor = TFT_DARKGREY; + + // Convert RSSI to signal strength (0-4 bars) + if (rssi >= -50) signalStrength = 4; // Excellent (100%) + else if (rssi >= -60) signalStrength = 3; // Good (75%) + else if (rssi >= -70) signalStrength = 2; // Fair (50%) + else if (rssi >= -80) signalStrength = 1; // Poor (25%) + else signalStrength = 0; // Very poor + } else { + strongColor = TFT_DARKGREY; + weakColor = TFT_DARKGREY; + signalStrength = 0; + } + + // Draw 4 signal bars of increasing height (like phone signal indicator) + // Bar 1 (shortest, leftmost) + uint16_t bar1Color = (signalStrength >= 1) ? strongColor : weakColor; + tft.fillRect(x - 6, y + 6, 2, 2, bar1Color); + + // Bar 2 + uint16_t bar2Color = (signalStrength >= 2) ? strongColor : weakColor; + tft.fillRect(x - 3, y + 4, 2, 4, bar2Color); + + // Bar 3 + uint16_t bar3Color = (signalStrength >= 3) ? strongColor : weakColor; + tft.fillRect(x, y + 2, 2, 6, bar3Color); + + // Bar 4 (tallest, rightmost) + uint16_t bar4Color = (signalStrength >= 4) ? strongColor : weakColor; + tft.fillRect(x + 3, y, 2, 8, bar4Color); + + // Draw X if disconnected + if (!connected) { + tft.drawLine(x - 6, y, x + 6, y + 8, TFT_RED); + tft.drawLine(x + 6, y, x - 6, y + 8, TFT_RED); + } +} + +void UsermodGC9A01Display::drawWLEDLogo() { + // Display the WLED logo bitmap centered on the display + // The bitmap is 120x120 pixels, centered on 240x240 display (60px offset on each side) + + DEBUG_PRINTLN(F("[GC9A01] Drawing WLED logo bitmap...")); + + // Clear screen with black background + tft.fillScreen(TFT_BLACK); + + // Calculate center position for 120x120 logo on 240x240 display + const int LOGO_SIZE = 120; + const int OFFSET_X = (240 - LOGO_SIZE) / 2; // 60px offset + const int OFFSET_Y = (240 - LOGO_SIZE) / 2; // 60px offset + + // Set drawing window to the logo area (centered) + tft.setAddrWindow(OFFSET_X, OFFSET_Y, LOGO_SIZE, LOGO_SIZE); + + // Start data transmission + tft.startWrite(); + + // Process each pixel in the bitmap + for (int i = 0; i < 14400; i++) { // 120 * 120 = 14,400 pixels + uint32_t pixel = pgm_read_dword(&epd_bitmap_[i]); + + // Extract RGB components from 32-bit ARGB (format: 0x00RRGGBB) + uint8_t r = (pixel >> 16) & 0xFF; + uint8_t g = (pixel >> 8) & 0xFF; + uint8_t b = pixel & 0xFF; + + // Convert to 16-bit RGB565 format + uint16_t color = tft.color565(r, g, b); + + // Write pixel to display + tft.pushColor(color); + } + + // End data transmission + tft.endWrite(); + + DEBUG_PRINTLN(F("[GC9A01] WLED logo bitmap rendered successfully - 120x120 centered")); +} + +void UsermodGC9A01Display::setBrightness(uint8_t bri) { + // Legacy method - map 0-255 brightness to 0-100% backlight + uint8_t percent = map(bri, 0, 255, 0, 100); + setBacklight(percent); +} + +void UsermodGC9A01Display::setBacklight(uint8_t percent) { + backlight = min(percent, (uint8_t)100); // Clamp to 0-100% range + uint8_t pwm = map(backlight, 0, 100, 0, 255); // Map to PWM range (0-255) + #ifdef TFT_BL + analogWrite(TFT_BL, pwm); + #endif + DEBUG_PRINTF("[GC9A01] Backlight set to %d%% (PWM: %d)\n", backlight, pwm); +} + +void UsermodGC9A01Display::drawClockScreen() { + // Minimalist clock-only display for idle mode + tft.fillScreen(TFT_BLACK); + + showingClock = true; // Mark that we're showing clock (for rotary encoder state reset) + + // Draw blue bezel circle (same as main screen) + tft.drawCircle(120, 120, 119, TFT_BLUE); + tft.drawCircle(120, 120, 118, TFT_BLUE); + + // Get current time + updateLocalTime(); + int hrs = hour(localTime); + int mins = minute(localTime); + bool isPmTime = isPM(localTime); + + // Convert to 12-hour format if needed + if (clock12hour) { + if (hrs == 0) { + hrs = 12; // Midnight = 12 AM + } else if (hrs > 12) { + hrs = hrs - 12; // Convert to 12-hour + } + } + + // Draw time in large font at center + tft.setTextDatum(MC_DATUM); // Middle center + tft.setTextColor(TFT_WHITE, TFT_BLACK); + + // Format time string + char timeStr[10]; + sprintf(timeStr, "%02d:%02d", hrs, mins); + + tft.drawString(timeStr, 120, 120, 7); // Large font + + // Draw AM/PM indicator if 12-hour format + if (clock12hour) { + tft.setTextColor(TFT_CYAN, TFT_BLACK); + tft.drawString(isPmTime ? "PM" : "AM", 120, 160, 4); + } + + // Draw WiFi icon at top + bool wifiConnected = (WiFi.status() == WL_CONNECTED); + int wifiRSSI = wifiConnected ? WiFi.RSSI() : -100; + drawWiFiIcon(120, 30, wifiConnected, wifiRSSI); + + DEBUG_PRINTLN(F("[GC9A01] Clock screen drawn")); +} + +void UsermodGC9A01Display::sleepOrClock(bool enabled) { + if (enabled) { + displayTurnedOff = true; + lastRedraw = ULONG_MAX; // Reset sleep timer + if (clockMode) { + // Show clock instead of turning off + showingClock = true; + drawClockScreen(); + DEBUG_PRINTLN(F("[GC9A01] Timeout reached - showing clock")); + } else { + // Turn off backlight (sleep) + showingClock = false; + #ifdef TFT_BL + analogWrite(TFT_BL, 0); + #endif + DEBUG_PRINTLN(F("[GC9A01] Timeout reached - sleeping (backlight off)")); + } + } else { + // Wake up display + displayTurnedOff = false; + showingClock = false; + setBacklight(backlight); + DEBUG_PRINTF("[GC9A01] Display waking - restoring backlight to %d%%\n", backlight); + } +} + +void UsermodGC9A01Display::sleepDisplay() { + #ifdef TFT_BL + analogWrite(TFT_BL, 0); // Turn off backlight completely + #endif + displayTurnedOff = true; + lastRedraw = ULONG_MAX; // Reset sleep timer - will start again after next interaction + DEBUG_PRINTLN(F("[GC9A01] Display sleeping - backlight off, sleep timer reset")); +} + +// Rotary encoder integration methods - removed unused methods + +bool UsermodGC9A01Display::wakeDisplayFromSleep() { + if (displayTurnedOff) { + setBacklight(backlight); // Restore configured backlight level + displayTurnedOff = false; + needsRedraw = true; + lastRedraw = millis(); // Reset sleep timeout to prevent immediate sleep + + // Force update of all known values to ensure display shows current state + knownBrightness = 255; // Force brightness update + knownMode = 255; // Force effect update + knownPowerState = !knownPowerState; // Force power state update + + DEBUG_PRINTF("[GC9A01] Display waking from sleep - restoring backlight to %d%%\n", backlight); + return true; // Was sleeping + } + return false; // Was already awake +} + +// Interface methods for rotary encoder usermod (matching 4-line display pattern) +bool UsermodGC9A01Display::wakeDisplay() { + return wakeDisplayFromSleep(); // Return true if was sleeping +} + +void UsermodGC9A01Display::updateRedrawTime() { + // Called when encoder is rotated - extend overlay timeout + if (activeOverlayMode >= 0) { + // We're in overlay mode - extend the timeout + overlayUntil = millis() + overlayInactivityTimeout; + DEBUG_PRINTF("[GC9A01] Overlay timeout extended to %lu (encoder activity detected)\n", overlayUntil); + needsRedraw = true; // Trigger redraw to show updated values + } + lastRedraw = millis(); // Prevent display sleep timeout +} + +void UsermodGC9A01Display::overlay(const char* line1, long showHowLong, byte glyphType) { + if (!displayEnabled) { + DEBUG_PRINTLN(F("[GC9A01] Overlay called but display disabled")); + return; + } + + DEBUG_PRINTF("[GC9A01] *** OVERLAY CALLED *** : '%s' for %ld ms (glyph: %d)\n", line1 ? line1 : "NULL", showHowLong, glyphType); + + // Wake display if sleeping (like 4-line display) + if (displayTurnedOff) { + wakeDisplayFromSleep(); + DEBUG_PRINTLN(F("[GC9A01] Display was sleeping - woken up for overlay")); + } + + // Map glyph type to overlay mode + // Rotary encoder states: 0=Brightness, 1=Speed, 2=Intensity, 3=Palette, 4=Effect, 5=Hue, 6=Sat, 7=CCT, 8=Preset, 9-11=Custom + int overlayMode = 0; // Default to brightness + + // Map glyphType to overlay modes based on rotary encoder glyph assignments + // Rotary encoder calls changeState() with these glyph types for each state + switch (glyphType) { + case 1: overlayMode = 0; break; // Sun glyph → Brightness (encoder state 0) + case 2: overlayMode = 2; break; // Skip forward glyph → Speed (encoder state 1) + case 3: overlayMode = 3; break; // Fire glyph → Intensity (encoder state 2) + case 4: overlayMode = 4; break; // Custom palette glyph → Palette (encoder state 3) + case 5: overlayMode = 1; break; // Puzzle piece glyph → Effect (encoder state 4) + case 7: overlayMode = 0; break; // Brush glyph → Hue (encoder state 5) - show as brightness + case 8: overlayMode = 0; break; // Contrast glyph → Saturation (encoder state 6) - show as brightness + case 10: overlayMode = 0; break; // Star glyph → CCT/custom (encoder states 7,9-11) - show as brightness + case 11: overlayMode = 0; break; // Heart glyph → Preset (encoder state 8) - show as brightness + case 12: overlayMode = 99; break; // Network glyph → Network info + default: overlayMode = 0; break; // Fallback to brightness + } + + // Activate overlay mode and store the text + activeOverlayMode = overlayMode; + overlayText = String(line1 ? line1 : ""); // Store the text for display + overlayUntil = millis() + overlayInactivityTimeout; // Use longer timeout for user interaction + lastRedraw = millis(); // Start/reset sleep timer on user interaction + + // Draw the overlay interface immediately + drawMainInterface(overlayMode); + + DEBUG_PRINTF("[GC9A01] Overlay mode %d activated with text '%s' - will expire at %lu\n", overlayMode, overlayText.c_str(), overlayUntil); +} + +// Public method implementations (Usermod interface) +void UsermodGC9A01Display::setup() { + DEBUG_PRINTLN(F("")); + DEBUG_PRINTLN(F("=== GC9A01 Display Usermod ===")); + DEBUG_PRINTLN(F("[GC9A01] Usermod successfully registered and setup() called")); + DEBUG_PRINTF("[GC9A01] Usermod ID: %d\n", getId()); + DEBUG_PRINTF("[GC9A01] Instance pointer: %p\n", this); + DEBUG_PRINTF("[GC9A01] Static instance: %p\n", instance); + DEBUG_PRINT(F("[GC9A01] TFT_eSPI library version: ")); + DEBUG_PRINTLN(TFT_ESPI_VERSION); + + initDisplay(); + + DEBUG_PRINTLN(F("[GC9A01] Display initialization complete")); + needsRedraw = true; + lastRedraw = millis(); // Initialize timeout tracking + + // Initialize known values to force initial update + knownMode = 255; // Force initial effect name update + knownBrightness = 255; // Force initial brightness update +} + +void UsermodGC9A01Display::loop() { + // Follow the proven pattern from Four Line Display ALT + if (!displayEnabled || strip.isUpdating()) return; + + unsigned long now = millis(); + if (now < nextUpdate) return; + + nextUpdate = now + refreshRate; + + redraw(false); +} + +void UsermodGC9A01Display::addToJsonInfo(JsonObject& root) { + JsonObject user = root["u"]; + if (user.isNull()) user = root.createNestedObject("u"); + + JsonArray temp = user.createNestedArray(F("GC9A01 Display")); + temp.add(displayEnabled ? F("Enabled") : F("Disabled")); + temp.add(F(" ")); +} + +void UsermodGC9A01Display::readFromJsonState(JsonObject& root) { + if (root[F("gc9a01")] != nullptr) { + if (root[F("gc9a01")][F("on")] != nullptr) { + bool newState = root[F("gc9a01")][F("on")]; + if (newState != displayEnabled) { + displayEnabled = newState; + if (displayEnabled) { + wakeDisplay(); + } else { + sleepDisplay(); + } + } + } + } +} + +void UsermodGC9A01Display::addToJsonState(JsonObject& root) { + JsonObject gc9a01 = root.createNestedObject(F("gc9a01")); + gc9a01[F("on")] = displayEnabled; +} + +bool UsermodGC9A01Display::readFromConfig(JsonObject& root) { + JsonObject top = root[FPSTR("GC9A01")]; + if (top.isNull()) { + return false; + } + + displayEnabled = top[FPSTR("enabled")] | displayEnabled; + sleepMode = top[FPSTR("sleepMode")] | sleepMode; + clockMode = top[FPSTR("clockMode")] | clockMode; + clock12hour = top[FPSTR("clock12hour")] | clock12hour; + flip = top[FPSTR("flip")] | flip; + + // Convert seconds from UI to milliseconds for internal use + // Clamp to 5-300 seconds range (5 sec min, 5 min max) + uint16_t timeoutSeconds = top[FPSTR("screenTimeOutSec")] | (displayTimeout / 1000); + timeoutSeconds = max((uint16_t)5, min((uint16_t)300, timeoutSeconds)); + displayTimeout = timeoutSeconds * 1000; + + // Load backlight setting (0-100% range) + uint8_t newBacklight = top[FPSTR("backlight")] | backlight; + if (newBacklight != backlight) { + setBacklight(newBacklight); + } + + return true; +} + +void UsermodGC9A01Display::addToConfig(JsonObject& root) { + JsonObject top = root.createNestedObject(FPSTR("GC9A01")); + top[FPSTR("enabled")] = displayEnabled; + top[FPSTR("sleepMode")] = sleepMode; + // Convert milliseconds to seconds for UI display + top[FPSTR("screenTimeOutSec")] = displayTimeout / 1000; + top[FPSTR("clockMode")] = clockMode; + top[FPSTR("clock12hour")] = clock12hour; + top[FPSTR("flip")] = flip; + top[FPSTR("backlight")] = backlight; +} + +void UsermodGC9A01Display::appendConfigData() { + oappend(SET_F("addInfo('GC9A01:enabled', 1, 'Enable/disable display');")); + oappend(SET_F("addInfo('GC9A01:sleepMode', 1, 'Enable sleep mode after timeout');")); + oappend(SET_F("addInfo('GC9A01:screenTimeOutSec', 1, 'Screen timeout in seconds (5-300 range, clamped on save)');")); + oappend(SET_F("addInfo('GC9A01:clockMode', 1, 'Show clock only when idle (bypasses sleep)');")); + oappend(SET_F("addInfo('GC9A01:clock12hour', 1, 'Checked=12H format (9:01 PM), Unchecked=24H format (21:01)');")); + oappend(SET_F("addInfo('GC9A01:flip', 1, 'Rotate display 180 degrees (requires reboot)');")); + oappend(SET_F("addInfo('GC9A01:backlight', 1, 'Backlight brightness (0-100%, default 75%)');")); +} + +const char* UsermodGC9A01Display::getEncoderModeName(uint8_t mode) { + // For rotary encoder integration - just provide names for overlay display + const char* modeNames[] = {"Brightness", "Effect", "Speed", "Intensity", "Palette"}; + if (mode < 5) return modeNames[mode]; + return "Unknown"; +} + +void UsermodGC9A01Display::drawCurrentModeIndicator() { + // No longer needed - overlay handles mode display +} + +void UsermodGC9A01Display::drawModeOverlay() { + // No longer needed - overlay handles mode display +} + +bool UsermodGC9A01Display::isOverlayActive() { + return (activeOverlayMode >= 0 && millis() < overlayUntil); +} + +int UsermodGC9A01Display::getActiveOverlayMode() { + if (millis() >= overlayUntil) { + return -1; // Overlay has expired + } + return activeOverlayMode; +} + +bool UsermodGC9A01Display::isDisplayAsleep() { + return displayTurnedOff || showingClock; // Consider clock mode as "asleep" for rotary encoder state reset +} + +uint16_t UsermodGC9A01Display::getId() { + return USERMOD_ID_GC9A01_DISPLAY; +} + +// Registration +UsermodGC9A01Display gc9a01DisplayUsermod; +REGISTER_USERMOD(gc9a01DisplayUsermod); + +#endif // USERMOD_GC9A01_DISPLAY \ No newline at end of file diff --git a/usermods/usermod_v2_gc9a01_display/usermod_v2_gc9a01_display.h b/usermods/usermod_v2_gc9a01_display/usermod_v2_gc9a01_display.h new file mode 100644 index 0000000000..e4ab88bd9c --- /dev/null +++ b/usermods/usermod_v2_gc9a01_display/usermod_v2_gc9a01_display.h @@ -0,0 +1,126 @@ +#pragma once +#include "wled.h" + +#ifdef USERMOD_GC9A01_DISPLAY + +#include +#include + +// Pin definitions - use TFT_eSPI definitions when available +#ifndef TFT_CS + #define TFT_CS 5 // Default fallback +#endif +#define GC9A01_CS_PIN TFT_CS + +#ifndef TFT_DC + #define TFT_DC 16 // Default fallback +#endif +#define GC9A01_DC_PIN TFT_DC + +#ifndef TFT_RST + #define TFT_RST 17 // Default fallback +#endif +#define GC9A01_RST_PIN TFT_RST + +// Use TFT_eSPI's backlight pin definition +#ifndef TFT_BL + #define TFT_BL 4 // Default fallback if not defined by TFT_eSPI +#endif + +#ifndef USERMOD_ID_GC9A01_DISPLAY + #define USERMOD_ID_GC9A01_DISPLAY 59 // Use the official ID from const.h +#endif + +class UsermodGC9A01Display : public Usermod { + private: + // Singleton pattern - allows rotary encoder usermod to find us + static UsermodGC9A01Display* instance; + + public: + UsermodGC9A01Display() { if (!instance) instance = this; } + static UsermodGC9A01Display* getInstance(void) { return instance; } + + private: + TFT_eSPI tft = TFT_eSPI(); + + bool displayEnabled = true; + bool needsRedraw = true; + bool displayTurnedOff = false; + bool showingWelcomeScreen = true; + bool showingClock = false; // Track if currently showing clock (for rotary encoder state reset) + unsigned long welcomeScreenStartTime = 0; + uint8_t backlight = 75; // Backlight brightness percentage (0-100%, default 75%) + uint16_t displayTimeout = 60000; // 60 seconds default + bool sleepMode = true; // Enable sleep mode by default + bool clockMode = false; // Show clock only when idle + bool flip = false; // Display rotation (0 or 2) + bool clock12hour = false; // false = 24h format, true = 12h format with AM/PM + + // Proper state tracking like 4-line display usermod + uint8_t knownBrightness = 255; + uint8_t knownMode = 255; + uint8_t knownPalette = 255; + uint8_t knownEffectSpeed = 255; + uint8_t knownEffectIntensity = 255; + uint32_t knownColor = 0; // colors[0] - Primary/FX + uint32_t knownBgColor = 0; // colors[1] - Secondary/BG + uint32_t knownCustomColor = 0; // colors[2] - Tertiary/CS + bool knownPowerState = true; + unsigned long nextUpdate = 0; + unsigned long lastRedraw = ULONG_MAX; // Initialize to max value - sleep timer starts after first interaction + uint16_t refreshRate = 1000; // Match 4-line display usermod (1 second) for better performance + + // Time tracking for display updates + uint8_t knownMinute = 99; + uint8_t knownHour = 99; + + // Integration with rotary encoder usermod (no direct pin handling) + unsigned long overlayUntil = 0; // When overlay should expire (millis) + int activeOverlayMode = -1; // Which overlay mode is active (-1 = none, 0-4 = overlay modes) + unsigned long overlayInactivityTimeout = 3000; // 3 seconds of inactivity before returning to main screen + String overlayText = ""; + + // Private method declarations + void initDisplay(); + void drawMainInterface(int overlayMode = -1); // -1 = normal, 0+ = overlay mode + void drawWLEDLogo(); + void drawWiFiIcon(int x, int y, bool connected, int rssi = 0); + void setBrightness(uint8_t bri); + void setBacklight(uint8_t percent); // Set backlight brightness (0-100%) + void sleepOrClock(bool enabled); // Sleep display or show clock based on settings + void sleepDisplay(); + bool wakeDisplayFromSleep(); // Return true if display was sleeping + void drawClockScreen(); // Clock-only display mode + + // Mode-specific drawing methods + void drawModeOverlay(); + void drawCurrentModeIndicator(); + + // Get encoder state from rotary encoder usermod + const char* getEncoderModeName(uint8_t mode); + + public: + + // Public interface methods for rotary encoder usermod (like 4-line display) + bool wakeDisplay(); // Return true if was sleeping + void updateRedrawTime(); // Prevent display timeout + void overlay(const char* line1, long showHowLong, byte glyphType = 0); // Match 4-line interface + void redraw(bool forceRedraw); // Force display update + bool isOverlayActive(); // Check if overlay is currently showing + int getActiveOverlayMode(); // Get current overlay mode (-1 = none) + bool isDisplayAsleep(); // Check if display is sleeping + + // Usermod API + // Public method declarations (Usermod interface) + void setup() override; + void loop() override; + void addToJsonInfo(JsonObject& root) override; + void readFromJsonState(JsonObject& root) override; + void addToJsonState(JsonObject& root) override; + bool readFromConfig(JsonObject& root) override; + void addToConfig(JsonObject& root) override; + void appendConfigData() override; + uint16_t getId() override; +}; + +#endif // USERMOD_GC9A01_DISPLAY \ No newline at end of file diff --git a/usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.cpp b/usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.cpp index 02bb08c9b9..ae72fb9a25 100644 --- a/usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.cpp +++ b/usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.cpp @@ -31,6 +31,10 @@ #include "usermod_v2_four_line_display.h" #endif +#ifdef USERMOD_GC9A01_DISPLAY +#include "../usermod_v2_gc9a01_display/usermod_v2_gc9a01_display.h" +#endif + #ifdef USERMOD_MODE_SORT #error "Usermod Mode Sort is no longer required. Remove -D USERMOD_MODE_SORT from platformio.ini" #endif @@ -178,6 +182,12 @@ class RotaryEncoderUIUsermod : public Usermod { void* display; #endif + #ifdef USERMOD_GC9A01_DISPLAY + UsermodGC9A01Display *gc9a01Display; + #else + void* gc9a01Display; + #endif + // Pointers the start of the mode names within JSON_mode_names const char **modes_qstrings; @@ -265,6 +275,7 @@ class RotaryEncoderUIUsermod : public Usermod { , currentSat1(255) , currentCCT(128) , display(nullptr) + , gc9a01Display(nullptr) , modes_qstrings(nullptr) , modes_alpha_indexes(nullptr) , palettes_qstrings(nullptr) @@ -533,6 +544,16 @@ void RotaryEncoderUIUsermod::setup() } #endif +#ifdef USERMOD_GC9A01_DISPLAY + // This Usermod also works with GC9A01DisplayUsermod for round TFT displays. + gc9a01Display = (UsermodGC9A01Display*) UsermodManager::lookup(USERMOD_ID_GC9A01_DISPLAY); + if (gc9a01Display != nullptr) { + DEBUG_PRINTLN(F("[RotaryEncoder] GC9A01 display integration enabled")); + } else { + DEBUG_PRINTLN(F("[RotaryEncoder] GC9A01 display NOT FOUND")); + } +#endif + initDone = true; Enc_A = readPin(pinA); // Read encoder pins Enc_B = readPin(pinB); @@ -618,25 +639,59 @@ void RotaryEncoderUIUsermod::loop() } if (newState > LAST_UI_STATE) newState = 0; } while (!changedState); - if (display != nullptr) { - switch (newState) { - case 0: changedState = changeState(lineBuffer, 1, 0, 1); break; //1 = sun - case 1: changedState = changeState(lineBuffer, 1, 4, 2); break; //2 = skip forward - case 2: changedState = changeState(lineBuffer, 1, 8, 3); break; //3 = fire - case 3: changedState = changeState(lineBuffer, 2, 0, 4); break; //4 = custom palette - case 4: changedState = changeState(lineBuffer, 3, 0, 5); break; //5 = puzzle piece - case 5: changedState = changeState(lineBuffer, 255, 255, 7); break; //7 = brush - case 6: changedState = changeState(lineBuffer, 255, 255, 8); break; //8 = contrast - case 7: changedState = changeState(lineBuffer, 255, 255, 10); break; //10 = star - case 8: changedState = changeState(lineBuffer, 255, 255, 11); break; //11 = heart - case 9: changedState = changeState(lineBuffer, 255, 255, 10); break; //10 = star - case 10: changedState = changeState(lineBuffer, 255, 255, 10); break; //10 = star - case 11: changedState = changeState(lineBuffer, 255, 255, 10); break; //10 = star + // Support both Four Line Display and GC9A01 display + if (display != nullptr || gc9a01Display != nullptr) { + // Special handling for state 0 (Brightness) with GC9A01 - no overlay needed + if (newState == 0 && gc9a01Display != nullptr && display == nullptr) { + // For GC9A01 only (no four line display), just update main screen for brightness + if (gc9a01Display->wakeDisplay()) { + gc9a01Display->redraw(true); + changedState = false; // Throw away wake up input + } else { + gc9a01Display->redraw(false); // Update main screen directly + changedState = true; + } + } else { + // Normal overlay handling for all other states and for Four Line Display + switch (newState) { + case 0: changedState = changeState(lineBuffer, 1, 0, 1); break; //1 = sun + case 1: changedState = changeState(lineBuffer, 1, 4, 2); break; //2 = skip forward + case 2: changedState = changeState(lineBuffer, 1, 8, 3); break; //3 = fire + case 3: changedState = changeState(lineBuffer, 2, 0, 4); break; //4 = custom palette + case 4: changedState = changeState(lineBuffer, 3, 0, 5); break; //5 = puzzle piece + case 5: changedState = changeState(lineBuffer, 255, 255, 7); break; //7 = brush + case 6: changedState = changeState(lineBuffer, 255, 255, 8); break; //8 = contrast + case 7: changedState = changeState(lineBuffer, 255, 255, 10); break; //10 = star + case 8: changedState = changeState(lineBuffer, 255, 255, 11); break; //11 = heart + case 9: changedState = changeState(lineBuffer, 255, 255, 10); break; //10 = star + case 10: changedState = changeState(lineBuffer, 255, 255, 10); break; //10 = star + case 11: changedState = changeState(lineBuffer, 255, 255, 10); break; //10 = star + } } } if (changedState) select_state = newState; } + // Check if GC9A01 overlay has expired or display is asleep and reset to brightness mode (state 0) + #ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display != nullptr && select_state > 0) { + if (!gc9a01Display->isOverlayActive() || gc9a01Display->isDisplayAsleep()) { + // Overlay has expired or display is asleep, return to brightness mode + select_state = 0; + } + } + #endif + + // Check if current state is valid for current effect (for states 1=speed, 2=intensity, 9-11=custom) + if (select_state == 1 || select_state == 2 || (select_state >= 9 && select_state <= 11)) { + char tempBuffer[64]; + int sliderIndex = (select_state <= 2) ? (select_state - 1) : (select_state - 7); + if (!extractModeSlider(effectCurrent, sliderIndex, tempBuffer, 63)) { + // Current effect doesn't have this slider, reset to brightness + select_state = 0; + } + } + Enc_A = readPin(pinA); // Read encoder pins Enc_B = readPin(pinB); if ((Enc_A) && (!Enc_A_prev)) @@ -685,6 +740,12 @@ void RotaryEncoderUIUsermod::displayNetworkInfo() { #ifdef USERMOD_FOUR_LINE_DISPLAY display->networkOverlay(PSTR("NETWORK INFO"), 10000); #endif + + #ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display != nullptr) { + gc9a01Display->overlay(PSTR("NETWORK INFO"), 10000, 12); // Use network glyph + } + #endif } void RotaryEncoderUIUsermod::findCurrentEffectAndPalette() { @@ -702,7 +763,7 @@ void RotaryEncoderUIUsermod::findCurrentEffectAndPalette() { effectPaletteIndex = 0; DEBUG_PRINTLN(effectPalette); - for (unsigned i = 0; i < getPaletteCount()+customPalettes.size(); i++) { + for (unsigned i = 0; i < getPaletteCount(); i++) { if (palettes_alpha_indexes[i] == effectPalette) { effectPaletteIndex = i; DEBUG_PRINTLN(F("Found palette.")); @@ -723,6 +784,20 @@ bool RotaryEncoderUIUsermod::changeState(const char *stateName, byte markedLine, display->setMarkLine(markedLine, markedCol); } #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display != nullptr) { + DEBUG_PRINTF("[RotaryEncoder] Calling GC9A01 overlay: '%s' glyph=%d\n", stateName, glyph); + if (gc9a01Display->wakeDisplay()) { + // Throw away wake up input + gc9a01Display->redraw(true); + return false; + } + gc9a01Display->overlay(stateName, 750, glyph); + } else { + DEBUG_PRINTLN(F("[RotaryEncoder] gc9a01Display is NULL!")); + } +#endif return true; } @@ -743,6 +818,16 @@ void RotaryEncoderUIUsermod::changeBrightness(bool increase) { } display->updateRedrawTime(); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display && gc9a01Display->wakeDisplay()) { + gc9a01Display->redraw(true); + // Throw away wake up input + return; + } + if (gc9a01Display) gc9a01Display->updateRedrawTime(); +#endif + //bri = max(min((increase ? bri+fadeAmount : bri-fadeAmount), 255), 0); if (bri < 40) bri = max(min((increase ? bri+fadeAmount/2 : bri-fadeAmount/2), 255), 0); // slower steps when brightness < 16% else bri = max(min((increase ? bri+fadeAmount : bri-fadeAmount), 255), 0); @@ -750,6 +835,21 @@ void RotaryEncoderUIUsermod::changeBrightness(bool increase) { #ifdef USERMOD_FOUR_LINE_DISPLAY display->updateBrightness(); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display) { + // Only show overlay if we're NOT in default state (state 0) + // In state 0, brightness changes should update the main screen directly + if (select_state == 0) { + gc9a01Display->redraw(false); // Update main interface directly (no overlay) + } else { + // Show brightness overlay like other modes (when in overlay mode) + char brightnessStr[16]; + sprintf(brightnessStr, "Brightness %d%%", (bri * 100) / 255); + gc9a01Display->overlay(brightnessStr, 500, 10); + } + } +#endif } @@ -762,6 +862,15 @@ void RotaryEncoderUIUsermod::changeEffect(bool increase) { } display->updateRedrawTime(); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display && gc9a01Display->wakeDisplay()) { + gc9a01Display->redraw(true); + // Throw away wake up input + return; + } + if (gc9a01Display) gc9a01Display->updateRedrawTime(); +#endif effectCurrentIndex = max(min((increase ? effectCurrentIndex+1 : effectCurrentIndex-1), strip.getModeCount()-1), 0); effectCurrent = modes_alpha_indexes[effectCurrentIndex]; stateChanged = true; @@ -791,6 +900,16 @@ void RotaryEncoderUIUsermod::changeEffectSpeed(bool increase) { } display->updateRedrawTime(); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display && gc9a01Display->wakeDisplay()) { + gc9a01Display->redraw(true); + // Throw away wake up input + return; + } + if (gc9a01Display) gc9a01Display->updateRedrawTime(); +#endif + effectSpeed = max(min((increase ? effectSpeed+fadeAmount : effectSpeed-fadeAmount), 255), 0); stateChanged = true; if (applyToAll) { @@ -807,6 +926,12 @@ void RotaryEncoderUIUsermod::changeEffectSpeed(bool increase) { #ifdef USERMOD_FOUR_LINE_DISPLAY display->updateSpeed(); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display) { + gc9a01Display->redraw(false); // Update speed display + } +#endif } @@ -819,6 +944,16 @@ void RotaryEncoderUIUsermod::changeEffectIntensity(bool increase) { } display->updateRedrawTime(); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display && gc9a01Display->wakeDisplay()) { + gc9a01Display->redraw(true); + // Throw away wake up input + return; + } + if (gc9a01Display) gc9a01Display->updateRedrawTime(); +#endif + effectIntensity = max(min((increase ? effectIntensity+fadeAmount : effectIntensity-fadeAmount), 255), 0); stateChanged = true; if (applyToAll) { @@ -835,6 +970,12 @@ void RotaryEncoderUIUsermod::changeEffectIntensity(bool increase) { #ifdef USERMOD_FOUR_LINE_DISPLAY display->updateIntensity(); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display) { + gc9a01Display->redraw(false); // Update intensity display + } +#endif } @@ -848,6 +989,16 @@ void RotaryEncoderUIUsermod::changeCustom(uint8_t par, bool increase) { } display->updateRedrawTime(); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display && gc9a01Display->wakeDisplay()) { + gc9a01Display->redraw(true); + // Throw away wake up input + return; + } + if (gc9a01Display) gc9a01Display->updateRedrawTime(); +#endif + stateChanged = true; if (applyToAll) { uint8_t id = strip.getFirstSelectedSegId(); @@ -880,6 +1031,14 @@ void RotaryEncoderUIUsermod::changeCustom(uint8_t par, bool increase) { sprintf(lineBuffer, "%d", val); display->overlay(lineBuffer, 500, 10); // use star #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display) { + char lineBuffer[64]; + sprintf(lineBuffer, "Custom%d: %d", par, val); + gc9a01Display->overlay(lineBuffer, 500, 10); // use star glyph + } +#endif } @@ -892,7 +1051,17 @@ void RotaryEncoderUIUsermod::changePalette(bool increase) { } display->updateRedrawTime(); #endif - effectPaletteIndex = max(min((unsigned)(increase ? effectPaletteIndex+1 : effectPaletteIndex-1), getPaletteCount()+customPalettes.size()-1), 0U); + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display && gc9a01Display->wakeDisplay()) { + gc9a01Display->redraw(true); + // Throw away wake up input + return; + } + if (gc9a01Display) gc9a01Display->updateRedrawTime(); +#endif + + effectPaletteIndex = max(min((int)(increase ? effectPaletteIndex+1 : effectPaletteIndex-1), (int)(getPaletteCount()-1)), 0); effectPalette = palettes_alpha_indexes[effectPaletteIndex]; stateChanged = true; if (applyToAll) { @@ -909,6 +1078,12 @@ void RotaryEncoderUIUsermod::changePalette(bool increase) { #ifdef USERMOD_FOUR_LINE_DISPLAY display->showCurrentEffectOrPalette(effectPalette, JSON_palette_names, 2); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display) { + gc9a01Display->redraw(false); // Update palette display + } +#endif } @@ -921,6 +1096,16 @@ void RotaryEncoderUIUsermod::changeHue(bool increase){ } display->updateRedrawTime(); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display && gc9a01Display->wakeDisplay()) { + gc9a01Display->redraw(true); + // Throw away wake up input + return; + } + if (gc9a01Display) gc9a01Display->updateRedrawTime(); +#endif + currentHue1 = max(min((increase ? currentHue1+fadeAmount : currentHue1-fadeAmount), 255), 0); colorHStoRGB(currentHue1*256, currentSat1, colPri); stateChanged = true; @@ -940,6 +1125,14 @@ void RotaryEncoderUIUsermod::changeHue(bool increase){ sprintf(lineBuffer, "%d", currentHue1); display->overlay(lineBuffer, 500, 7); // use brush #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display) { + char lineBuffer[64]; + sprintf(lineBuffer, "Hue: %d", currentHue1); + gc9a01Display->overlay(lineBuffer, 500, 7); // use brush glyph + } +#endif } void RotaryEncoderUIUsermod::changeSat(bool increase){ @@ -951,6 +1144,16 @@ void RotaryEncoderUIUsermod::changeSat(bool increase){ } display->updateRedrawTime(); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display && gc9a01Display->wakeDisplay()) { + gc9a01Display->redraw(true); + // Throw away wake up input + return; + } + if (gc9a01Display) gc9a01Display->updateRedrawTime(); +#endif + currentSat1 = max(min((increase ? currentSat1+fadeAmount : currentSat1-fadeAmount), 255), 0); colorHStoRGB(currentHue1*256, currentSat1, colPri); if (applyToAll) { @@ -969,6 +1172,14 @@ void RotaryEncoderUIUsermod::changeSat(bool increase){ sprintf(lineBuffer, "%d", currentSat1); display->overlay(lineBuffer, 500, 8); // use contrast #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display) { + char lineBuffer[64]; + sprintf(lineBuffer, "Sat: %d", currentSat1); + gc9a01Display->overlay(lineBuffer, 500, 8); // use contrast glyph + } +#endif } void RotaryEncoderUIUsermod::changePreset(bool increase) { @@ -980,6 +1191,16 @@ void RotaryEncoderUIUsermod::changePreset(bool increase) { } display->updateRedrawTime(); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display && gc9a01Display->wakeDisplay()) { + gc9a01Display->redraw(true); + // Throw away wake up input + return; + } + if (gc9a01Display) gc9a01Display->updateRedrawTime(); +#endif + if (presetHigh && presetLow && presetHigh > presetLow) { StaticJsonDocument<64> root; char str[64]; @@ -1000,6 +1221,14 @@ void RotaryEncoderUIUsermod::changePreset(bool increase) { sprintf(str, "%d", currentPreset); display->overlay(str, 500, 11); // use heart #endif + + #ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display) { + char lineBuffer[64]; + sprintf(lineBuffer, "Preset: %d", currentPreset); + gc9a01Display->overlay(lineBuffer, 500, 11); // use heart glyph + } + #endif } } @@ -1012,6 +1241,16 @@ void RotaryEncoderUIUsermod::changeCCT(bool increase){ } display->updateRedrawTime(); #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display && gc9a01Display->wakeDisplay()) { + gc9a01Display->redraw(true); + // Throw away wake up input + return; + } + if (gc9a01Display) gc9a01Display->updateRedrawTime(); +#endif + currentCCT = max(min((increase ? currentCCT+fadeAmount : currentCCT-fadeAmount), 255), 0); // if (applyToAll) { for (unsigned i=0; ioverlay(lineBuffer, 500, 10); // use star #endif + +#ifdef USERMOD_GC9A01_DISPLAY + if (gc9a01Display) { + char lineBuffer[64]; + sprintf(lineBuffer, "CCT: %d", currentCCT); + gc9a01Display->overlay(lineBuffer, 500, 10); // use star glyph + } +#endif } /*