1
0
Fork 0

refactor: make fxremote update transpilation a build artefact

This commit is contained in:
Thomas Touhey 2024-04-28 11:37:24 +02:00
parent fc9e42f1ca
commit 6d3c6cbaee
4 changed files with 33 additions and 707 deletions

1
.gitignore vendored
View File

@ -359,3 +359,4 @@ GitHub.sublime-settings
/build*
/giteapc-config.make
/lib/chars.c
/cli/fxremote-update.exe.bin.c

View File

@ -141,6 +141,15 @@ add_compile_options(
# Target definitions.
# ---
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/cli/fxremote-update.exe.bin.c"
COMMAND "${Python3_EXECUTABLE}" ${CMAKE_SOURCE_DIR}/misc/process_bin.py
"${CMAKE_CURRENT_BINARY_DIR}/cli/fxremote-update.exe.bin.c"
"${CMAKE_SOURCE_DIR}/cli/fxremote-update.exe.bin"
DEPENDS cli/fxremote-update.exe.bin misc/process_bin.py
VERBATIM
)
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/lib/chars.c"
COMMAND "${Python3_EXECUTABLE}" ${CMAKE_SOURCE_DIR}/chars/process_chars.py
@ -196,7 +205,7 @@ if(ENABLE_CLI)
cli/p7os_args.c
cli/common.c
cli/options.c
cli/fxremote-update.exe.bin.c
"${CMAKE_CURRENT_BINARY_DIR}/cli/fxremote-update.exe.bin.c"
)
target_link_libraries(p7os PRIVATE ${CLI_LIBRARIES})
target_include_directories(p7os PRIVATE ${CLI_INCLUDE_DIRS})

View File

@ -1,690 +0,0 @@
/* This file was generated on 2024-03-16T15:09:35Z by contrib/process_binary_files.py. */
#include <cahute/cdefs.h>
size_t const cahute_fxremote_update_exe_size = 10240;
cahute_u8 const cahute_fxremote_update_exe[] = {
160, 154, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 63, 63, 63, 63, 63, 63, 63, 63, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 136, 2, 64, 0, 136, 2, 64, 0, 0,
96, 221, 22, 50, 48, 48, 53, 46, 48, 54, 50, 51, 46, 49, 54,
53, 50, 0, 0, 0, 0, 0, 0, 0, 96, 221, 25, 50, 48, 48,
54, 46, 48, 53, 49, 54, 46, 48, 57, 52, 50, 0, 0, 0, 0,
0, 0, 0, 98, 218, 236, 50, 48, 48, 53, 46, 48, 53, 49, 49,
46, 49, 55, 52, 56, 0, 4, 0, 0, 0, 0, 0, 96, 190, 70,
50, 48, 48, 55, 46, 48, 50, 48, 54, 46, 49, 57, 49, 52, 0,
1, 0, 0, 0, 0, 0, 94, 129, 71, 50, 48, 48, 55, 46, 49,
49, 50, 50, 46, 49, 54, 49, 57, 0, 3, 0, 0, 0, 0, 0,
94, 129, 67, 50, 48, 48, 55, 46, 49, 50, 49, 49, 46, 49, 53,
53, 51, 0, 3, 0, 0, 0, 0, 0, 107, 44, 227, 50, 48, 48,
57, 46, 48, 50, 48, 51, 46, 49, 56, 53, 50, 0, 2, 0, 0,
0, 0, 0, 107, 44, 230, 50, 48, 48, 57, 46, 48, 50, 48, 52,
46, 48, 56, 53, 53, 0, 2, 0, 0, 0, 0, 0, 107, 44, 222,
50, 48, 48, 57, 46, 48, 50, 48, 51, 46, 49, 57, 49, 48, 0,
2, 0, 0, 0, 0, 0, 105, 2, 188, 50, 48, 48, 57, 46, 48,
51, 50, 55, 46, 49, 53, 49, 53, 0, 5, 0, 0, 0, 0, 0,
88, 167, 129, 50, 48, 49, 49, 46, 48, 53, 50, 53, 46, 49, 48,
49, 48, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 210, 15, 66,
11, 0, 9, 214, 15, 229, 0, 210, 15, 66, 11, 228, 0, 214, 14,
229, 8, 210, 12, 66, 11, 228, 0, 210, 13, 208, 13, 34, 0, 210,
13, 66, 11, 228, 0, 210, 13, 34, 2, 210, 13, 66, 11, 228, 0,
210, 12, 34, 2, 210, 12, 96, 34, 136, 1, 139, 75, 161, 138, 0,
9, 136, 2, 76, 172, 136, 2, 98, 176, 136, 2, 76, 128, 136, 2,
98, 193, 136, 2, 84, 24, 0, 0, 0, 0, 136, 2, 103, 32, 136,
2, 84, 16, 136, 2, 103, 148, 136, 2, 84, 20, 136, 2, 64, 32,
214, 5, 229, 24, 210, 5, 66, 11, 228, 0, 214, 5, 229, 32, 210,
3, 66, 11, 228, 0, 161, 251, 0, 9, 136, 2, 100, 89, 136, 2,
76, 128, 136, 2, 100, 123, 47, 70, 214, 12, 229, 24, 210, 12, 66,
11, 228, 0, 214, 11, 229, 32, 210, 9, 66, 11, 228, 0, 100, 246,
127, 240, 100, 67, 210, 8, 66, 11, 101, 243, 102, 243, 229, 32, 210,
4, 66, 11, 228, 8, 127, 16, 161, 220, 0, 9, 0, 0, 136, 2,
100, 89, 136, 2, 76, 128, 136, 2, 100, 106, 136, 2, 83, 106, 221,
4, 109, 210, 222, 4, 97, 226, 33, 24, 137, 16, 61, 16, 137, 5,
175, 249, 126, 24, 128, 0, 255, 252, 136, 2, 64, 44, 126, 4, 212,
5, 101, 227, 210, 5, 66, 11, 230, 14, 32, 8, 143, 7, 126, 14,
161, 153, 0, 9, 0, 0, 128, 0, 255, 176, 136, 2, 83, 68, 96,
225, 96, 13, 210, 18, 34, 1, 126, 2, 96, 226, 96, 12, 210, 17,
34, 0, 0, 34, 209, 16, 32, 25, 209, 16, 48, 18, 143, 113, 224,
0, 212, 15, 213, 16, 210, 16, 66, 11, 230, 5, 32, 8, 139, 36,
212, 15, 213, 12, 210, 13, 66, 11, 230, 5, 32, 8, 139, 29, 212,
12, 213, 13, 210, 9, 66, 11, 230, 5, 32, 8, 139, 78, 160, 103,
0, 9, 0, 0, 136, 2, 84, 12, 136, 2, 84, 24, 223, 255, 255,
255, 128, 1, 0, 0, 128, 26, 187, 196, 136, 2, 68, 116, 136, 2,
83, 68, 128, 27, 100, 96, 128, 21, 10, 108, 136, 2, 68, 106, 212,
7, 213, 8, 210, 8, 66, 11, 230, 4, 32, 8, 139, 4, 213, 5,
176, 12, 0, 9, 32, 8, 137, 21, 224, 2, 160, 54, 0, 9, 0,
0, 128, 36, 255, 248, 136, 2, 68, 124, 136, 2, 83, 68, 79, 34,
212, 3, 210, 3, 66, 11, 230, 4, 79, 38, 0, 11, 0, 9, 128,
1, 0, 96, 136, 2, 83, 68, 212, 7, 213, 8, 210, 8, 66, 11,
230, 4, 32, 8, 139, 4, 213, 5, 191, 234, 0, 9, 32, 8, 137,
35, 224, 4, 160, 20, 0, 9, 0, 0, 128, 36, 255, 248, 136, 2,
68, 128, 136, 2, 83, 68, 212, 8, 213, 9, 210, 9, 66, 11, 230,
4, 32, 8, 139, 4, 213, 6, 191, 212, 0, 9, 32, 8, 137, 13,
224, 3, 210, 5, 34, 1, 160, 187, 0, 9, 0, 0, 128, 29, 255,
248, 136, 2, 68, 112, 136, 2, 83, 68, 136, 2, 84, 14, 210, 44,
97, 33, 208, 44, 33, 9, 113, 1, 65, 8, 208, 43, 34, 9, 50,
28, 208, 43, 48, 32, 139, 42, 97, 34, 208, 42, 64, 8, 48, 28,
209, 41, 48, 18, 139, 35, 209, 41, 49, 2, 139, 32, 98, 2, 209,
38, 50, 18, 139, 28, 209, 37, 49, 34, 139, 25, 100, 32, 96, 12,
68, 24, 132, 33, 96, 12, 52, 12, 68, 24, 132, 34, 96, 12, 52,
12, 68, 24, 132, 35, 96, 12, 52, 12, 209, 30, 52, 16, 137, 81,
209, 29, 52, 16, 137, 78, 209, 29, 52, 16, 137, 75, 209, 28, 52,
16, 137, 72, 210, 28, 66, 11, 0, 9, 214, 27, 229, 0, 210, 27,
66, 11, 228, 0, 214, 27, 229, 8, 210, 25, 66, 11, 228, 0, 214,
25, 229, 16, 210, 22, 66, 11, 228, 0, 214, 24, 229, 24, 210, 20,
66, 11, 228, 0, 214, 22, 229, 32, 210, 17, 66, 11, 228, 0, 214,
21, 229, 40, 210, 15, 66, 11, 228, 0, 175, 254, 0, 9, 128, 1,
0, 112, 0, 0, 0, 255, 255, 255, 255, 252, 128, 1, 0, 124, 0,
0, 2, 238, 128, 1, 0, 0, 128, 39, 0, 0, 230, 0, 224, 1,
230, 0, 229, 1, 224, 2, 47, 230, 79, 34, 127, 252, 136, 2, 76,
172, 136, 2, 99, 73, 136, 2, 76, 128, 136, 2, 99, 90, 136, 2,
99, 107, 136, 2, 99, 124, 136, 2, 99, 141, 136, 2, 99, 158, 224,
1, 175, 112, 0, 9, 71, 121, 52, 57, 48, 9, 14, 35, 189, 62,
71, 121, 51, 54, 50, 9, 0, 9, 17, 50, 0, 50, 16, 159, 120,
17, 208, 4, 210, 5, 66, 11, 0, 9, 210, 4, 66, 11, 0, 9,
210, 4, 66, 43, 0, 9, 0, 0, 2, 142, 136, 2, 89, 12, 136,
2, 89, 248, 136, 2, 90, 180, 47, 230, 79, 34, 226, 6, 211, 4,
35, 32, 98, 67, 209, 3, 33, 32, 79, 38, 0, 11, 110, 246, 0,
0, 180, 0, 0, 0, 180, 1, 0, 0, 210, 13, 66, 11, 0, 9,
214, 13, 229, 0, 210, 13, 66, 11, 228, 0, 214, 12, 229, 8, 210,
10, 66, 11, 228, 0, 210, 11, 66, 11, 0, 9, 208, 10, 210, 11,
66, 11, 0, 9, 210, 10, 96, 32, 136, 1, 137, 21, 208, 9, 160,
20, 0, 9, 0, 0, 136, 2, 76, 172, 136, 2, 98, 176, 136, 2,
76, 128, 136, 2, 98, 210, 136, 2, 70, 32, 0, 0, 2, 142, 136,
2, 89, 12, 136, 2, 84, 24, 255, 255, 255, 212, 208, 11, 64, 30,
224, 0, 194, 0, 208, 10, 210, 11, 66, 11, 0, 9, 210, 10, 66,
11, 0, 9, 214, 10, 229, 0, 210, 10, 66, 11, 228, 0, 214, 9,
229, 8, 210, 7, 66, 11, 228, 0, 160, 29, 238, 1, 0, 0, 255,
0, 0, 36, 0, 0, 2, 54, 136, 2, 89, 12, 136, 2, 76, 172,
136, 2, 99, 5, 136, 2, 76, 128, 136, 2, 99, 22, 210, 22, 66,
11, 0, 9, 214, 22, 229, 0, 210, 22, 66, 11, 228, 0, 214, 21,
229, 8, 210, 19, 66, 11, 228, 0, 238, 0, 127, 240, 214, 19, 229,
24, 210, 16, 66, 11, 228, 0, 212, 17, 100, 66, 210, 17, 66, 11,
101, 243, 102, 243, 229, 32, 210, 11, 66, 11, 228, 0, 127, 16, 46,
232, 139, 30, 214, 13, 229, 48, 210, 7, 66, 11, 228, 0, 214, 11,
229, 56, 210, 4, 66, 11, 228, 0, 175, 254, 0, 9, 0, 0, 136,
2, 76, 172, 136, 2, 99, 39, 136, 2, 76, 128, 136, 2, 99, 56,
128, 0, 255, 176, 128, 0, 255, 252, 136, 2, 83, 106, 136, 2, 99,
175, 136, 2, 99, 192, 214, 7, 229, 48, 210, 7, 66, 11, 228, 0,
214, 7, 229, 56, 210, 5, 66, 11, 228, 0, 210, 5, 66, 11, 0,
9, 175, 109, 0, 9, 0, 0, 136, 2, 99, 209, 136, 2, 76, 128,
136, 2, 99, 226, 136, 2, 75, 184, 47, 230, 47, 214, 47, 198, 47,
182, 47, 166, 47, 150, 47, 134, 79, 34, 208, 30, 210, 31, 66, 11,
0, 9, 136, 4, 137, 3, 208, 29, 210, 28, 66, 11, 228, 32, 208,
28, 63, 12, 210, 28, 66, 11, 0, 9, 214, 28, 229, 0, 210, 28,
66, 11, 228, 0, 214, 27, 229, 8, 210, 25, 66, 11, 228, 0, 214,
26, 229, 0, 182, 87, 100, 243, 110, 243, 126, 16, 101, 243, 117, 4,
37, 226, 109, 243, 108, 243, 208, 21, 61, 12, 208, 21, 60, 12, 232,
0, 208, 21, 210, 10, 66, 11, 100, 243, 136, 24, 137, 249, 214, 19,
229, 8, 210, 12, 66, 11, 228, 0, 120, 1, 208, 17, 210, 4, 66,
11, 100, 243, 32, 8, 137, 30, 161, 11, 0, 9, 0, 0, 0, 0,
2, 152, 136, 2, 89, 12, 0, 0, 2, 141, 255, 255, 236, 0, 136,
2, 76, 172, 136, 2, 98, 176, 136, 2, 76, 128, 136, 2, 98, 227,
0, 0, 20, 0, 0, 0, 9, 0, 0, 0, 8, 252, 0, 0, 2,
150, 136, 2, 98, 244, 0, 0, 2, 219, 100, 227, 101, 211, 133, 241,
96, 13, 102, 3, 208, 5, 210, 5, 66, 11, 103, 195, 96, 240, 96,
12, 136, 1, 137, 6, 160, 223, 0, 9, 0, 0, 0, 0, 2, 166,
136, 2, 89, 12, 132, 241, 96, 12, 136, 112, 139, 1, 160, 72, 0,
9, 136, 113, 139, 1, 160, 122, 0, 9, 136, 114, 139, 1, 160, 128,
0, 9, 136, 115, 139, 1, 160, 132, 0, 9, 136, 116, 139, 1, 160,
136, 0, 9, 136, 117, 139, 1, 160, 134, 0, 9, 136, 118, 139, 1,
160, 138, 0, 9, 136, 119, 139, 1, 160, 140, 0, 9, 136, 120, 139,
1, 160, 138, 0, 9, 136, 121, 139, 1, 160, 138, 0, 9, 136, 122,
139, 1, 160, 140, 0, 9, 47, 6, 210, 11, 66, 11, 0, 9, 214,
10, 229, 0, 210, 10, 66, 11, 228, 0, 96, 246, 127, 240, 100, 3,
100, 67, 210, 8, 66, 11, 101, 243, 102, 243, 229, 8, 210, 4, 66,
11, 228, 0, 127, 16, 175, 44, 0, 9, 136, 2, 76, 172, 136, 2,
100, 140, 136, 2, 76, 128, 136, 2, 83, 106, 100, 210, 101, 211, 117,
8, 210, 20, 66, 11, 86, 209, 214, 19, 229, 16, 210, 19, 66, 11,
228, 0, 214, 19, 229, 24, 210, 17, 66, 11, 228, 0, 214, 16, 229,
32, 210, 14, 66, 11, 228, 0, 127, 240, 100, 210, 210, 14, 66, 11,
101, 243, 102, 243, 229, 24, 210, 9, 66, 11, 228, 0, 84, 209, 210,
9, 66, 11, 101, 243, 102, 243, 229, 32, 210, 5, 66, 11, 228, 0,
127, 16, 160, 69, 0, 9, 0, 0, 136, 2, 83, 44, 136, 2, 100,
38, 136, 2, 76, 128, 136, 2, 100, 55, 136, 2, 83, 106, 100, 210,
85, 210, 210, 2, 66, 11, 86, 209, 107, 211, 160, 50, 0, 9, 136,
2, 98, 32, 210, 2, 66, 11, 100, 210, 107, 210, 160, 42, 0, 9,
136, 2, 74, 108, 210, 2, 66, 11, 0, 9, 174, 83, 0, 9, 0,
0, 136, 2, 74, 64, 160, 44, 107, 210, 210, 2, 66, 11, 0, 9,
160, 25, 0, 9, 0, 0, 136, 2, 72, 224, 176, 216, 0, 9, 176,
66, 0, 9, 160, 18, 0, 9, 174, 12, 0, 9, 176, 208, 0, 9,
174, 159, 0, 9, 174, 56, 0, 9, 176, 202, 0, 9, 174, 134, 238,
0, 190, 18, 100, 210, 160, 0, 0, 9, 176, 194, 0, 9, 214, 3,
229, 8, 210, 3, 66, 11, 228, 0, 174, 244, 0, 9, 0, 0, 136,
2, 98, 227, 136, 2, 76, 128, 100, 179, 210, 4, 66, 11, 0, 9,
210, 3, 66, 11, 0, 9, 175, 223, 0, 9, 0, 0, 136, 2, 76,
226, 136, 2, 75, 184, 100, 3, 208, 6, 63, 12, 96, 67, 79, 38,
104, 246, 105, 246, 106, 246, 107, 246, 108, 246, 109, 246, 0, 11, 110,
246, 0, 0, 0, 0, 20, 0, 0, 34, 47, 2, 175, 222, 107, 243,
47, 230, 47, 214, 47, 198, 47, 134, 79, 34, 208, 19, 63, 12, 110,
243, 126, 16, 108, 243, 124, 60, 109, 195, 125, 2, 210, 16, 98, 33,
46, 33, 224, 2, 210, 15, 98, 33, 14, 37, 224, 26, 146, 19, 14,
37, 224, 28, 210, 12, 98, 34, 14, 38, 224, 32, 210, 11, 98, 34,
14, 38, 210, 11, 96, 32, 136, 1, 137, 20, 224, 36, 226, 0, 14,
38, 224, 40, 14, 38, 160, 22, 0, 9, 90, 90, 0, 0, 255, 255,
255, 104, 136, 2, 84, 14, 136, 2, 84, 12, 136, 2, 84, 16, 136,
2, 84, 20, 136, 2, 84, 24, 224, 36, 210, 31, 98, 34, 14, 38,
224, 40, 210, 30, 98, 34, 14, 38, 100, 243, 116, 20, 214, 28, 180,
211, 229, 0, 210, 28, 97, 33, 97, 29, 208, 27, 48, 16, 137, 2,
208, 27, 48, 16, 139, 4, 100, 243, 208, 26, 210, 26, 66, 11, 116,
20, 100, 243, 116, 32, 230, 10, 180, 192, 229, 0, 100, 243, 116, 32,
213, 22, 210, 23, 66, 11, 230, 8, 100, 227, 229, 44, 102, 211, 208,
21, 210, 17, 66, 11, 103, 195, 100, 243, 103, 193, 102, 211, 208, 18,
210, 14, 66, 11, 229, 118, 208, 17, 210, 12, 66, 11, 100, 243, 209,
16, 63, 28, 79, 38, 104, 246, 108, 246, 109, 246, 0, 11, 110, 246,
255, 0, 0, 48, 255, 0, 0, 68, 0, 0, 0, 12, 136, 2, 84,
14, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 2, 238, 136, 2,
89, 12, 128, 0, 255, 208, 136, 2, 83, 44, 0, 0, 2, 165, 0,
0, 2, 231, 0, 0, 2, 218, 0, 0, 0, 152, 79, 34, 127, 240,
100, 243, 231, 0, 230, 0, 208, 6, 210, 6, 66, 11, 229, 0, 208,
6, 210, 4, 66, 11, 100, 243, 127, 16, 79, 38, 0, 11, 0, 9,
0, 0, 0, 0, 2, 225, 136, 2, 89, 12, 0, 0, 2, 218, 79,
34, 212, 6, 96, 66, 209, 6, 49, 0, 139, 3, 213, 5, 210, 6,
66, 11, 230, 4, 79, 38, 0, 11, 0, 9, 0, 0, 160, 1, 0,
0, 67, 65, 83, 73, 136, 2, 74, 232, 136, 2, 98, 32, 47, 230,
47, 214, 47, 198, 47, 182, 79, 34, 109, 67, 213, 5, 214, 6, 96,
66, 54, 0, 139, 10, 117, 252, 37, 88, 143, 249, 116, 4, 160, 9,
224, 1, 0, 0, 0, 1, 0, 0, 255, 255, 255, 255, 210, 4, 66,
11, 100, 211, 224, 0, 79, 38, 107, 246, 108, 246, 109, 246, 0, 11,
110, 246, 136, 2, 97, 208, 47, 230, 47, 214, 47, 198, 47, 182, 79,
34, 221, 7, 220, 7, 219, 8, 210, 8, 66, 11, 100, 211, 61, 204,
61, 178, 139, 249, 79, 38, 107, 246, 108, 246, 109, 246, 0, 11, 110,
246, 160, 1, 0, 0, 0, 1, 0, 0, 160, 39, 0, 0, 136, 2,
74, 108, 0, 0, 0, 0, 208, 23, 210, 24, 66, 11, 228, 32, 208,
23, 210, 22, 66, 11, 0, 9, 110, 3, 127, 240, 236, 0, 224, 0,
47, 2, 208, 20, 210, 17, 66, 11, 100, 243, 109, 242, 107, 3, 103,
195, 102, 179, 100, 211, 210, 16, 66, 11, 101, 227, 126, 1, 43, 184,
139, 238, 208, 14, 210, 10, 66, 11, 100, 243, 124, 1, 132, 243, 96,
12, 103, 3, 132, 242, 96, 12, 102, 3, 132, 241, 96, 12, 101, 3,
210, 6, 100, 240, 66, 11, 100, 76, 175, 254, 0, 9, 0, 0, 2,
141, 136, 2, 89, 12, 0, 0, 2, 152, 0, 0, 2, 150, 136, 2,
82, 128, 0, 0, 2, 219, 127, 16, 212, 4, 213, 4, 210, 5, 66,
11, 230, 8, 32, 8, 139, 7, 160, 8, 224, 1, 128, 0, 255, 208,
136, 2, 64, 16, 136, 2, 83, 68, 175, 254, 0, 9, 136, 1, 139,
5, 229, 8, 214, 1, 160, 3, 0, 9, 136, 2, 75, 160, 214, 12,
210, 13, 66, 11, 228, 0, 73, 78, 86, 65, 76, 73, 68, 32, 67,
65, 76, 67, 45, 73, 68, 33, 0, 69, 82, 82, 79, 82, 0, 9,
79, 34, 208, 6, 210, 6, 66, 11, 0, 9, 32, 8, 137, 249, 79,
38, 0, 11, 0, 9, 136, 2, 75, 177, 136, 2, 76, 128, 0, 0,
2, 77, 136, 2, 89, 12, 211, 4, 210, 5, 96, 32, 96, 12, 136,
1, 137, 0, 211, 3, 67, 30, 160, 12, 196, 0, 164, 19, 254, 192,
136, 2, 84, 24, 255, 255, 254, 192, 96, 12, 196, 0, 96, 12, 49,
0, 137, 251, 116, 255, 36, 72, 143, 248, 97, 3, 0, 11, 0, 9,
227, 4, 215, 5, 225, 7, 208, 5, 32, 48, 210, 5, 37, 43, 39,
80, 32, 48, 39, 64, 32, 16, 0, 11, 39, 96, 180, 1, 0, 0,
180, 0, 0, 0, 0, 0, 0, 192, 47, 230, 47, 214, 47, 198, 47,
182, 79, 34, 222, 12, 70, 0, 70, 8, 62, 108, 107, 83, 102, 224,
191, 224, 102, 108, 220, 9, 221, 9, 126, 1, 123, 1, 101, 179, 102,
224, 191, 216, 102, 108, 125, 1, 61, 192, 139, 246, 79, 38, 107, 246,
108, 246, 109, 246, 0, 11, 110, 246, 136, 2, 77, 100, 0, 0, 0,
7, 0, 0, 0, 0, 47, 230, 47, 214, 47, 198, 79, 34, 110, 99,
109, 83, 108, 67, 102, 224, 102, 108, 38, 104, 137, 5, 101, 211, 191,
206, 100, 195, 124, 1, 175, 246, 126, 1, 79, 38, 108, 246, 109, 246,
0, 11, 110, 246, 47, 230, 47, 214, 47, 198, 47, 182, 79, 34, 238,
57, 235, 16, 236, 0, 237, 0, 100, 211, 101, 195, 191, 185, 230, 32,
125, 1, 96, 211, 48, 183, 139, 247, 124, 8, 96, 195, 48, 231, 139,
242, 79, 38, 107, 246, 108, 246, 109, 246, 0, 11, 110, 246, 47, 230,
47, 214, 47, 198, 47, 182, 79, 34, 127, 240, 110, 67, 237, 0, 236,
0, 235, 8, 100, 224, 96, 12, 68, 24, 132, 225, 96, 12, 52, 12,
68, 24, 132, 226, 96, 12, 52, 12, 68, 24, 132, 227, 96, 12, 52,
12, 179, 42, 101, 243, 100, 195, 101, 211, 191, 177, 102, 243, 126, 4,
124, 8, 100, 224, 96, 12, 68, 24, 132, 225, 96, 12, 52, 12, 68,
24, 132, 226, 96, 12, 52, 12, 68, 24, 132, 227, 96, 12, 52, 12,
179, 20, 101, 243, 100, 195, 101, 211, 191, 155, 102, 243, 126, 4, 125,
8, 236, 0, 123, 255, 43, 184, 139, 207, 127, 16, 79, 38, 107, 246,
108, 246, 109, 246, 0, 11, 110, 246, 0, 0, 0, 0, 0, 0, 0,
0, 12, 16, 56, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 88, 100, 68, 68, 76, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 68, 108, 84, 68, 68, 68, 76, 0, 56, 72, 64,
92, 72, 72, 56, 0, 124, 84, 16, 16, 16, 16, 56, 0, 120, 36,
36, 56, 32, 32, 112, 0, 124, 36, 32, 56, 32, 36, 124, 0, 0,
0, 0, 0, 16, 48, 112, 0, 0, 4, 20, 36, 124, 32, 16, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 64, 112, 64, 120,
0, 0, 8, 16, 32, 124, 0, 124, 0, 0, 8, 124, 16, 124, 32,
0, 0, 0, 32, 16, 8, 124, 0, 124, 0, 32, 16, 120, 4, 120,
16, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 24, 100, 100, 124, 100, 100, 100, 0, 120,
100, 100, 120, 100, 100, 120, 0, 56, 100, 96, 96, 96, 100, 56, 0,
112, 104, 100, 100, 100, 104, 112, 0, 124, 96, 96, 120, 96, 96, 124,
0, 124, 96, 96, 120, 96, 96, 96, 0, 0, 0, 0, 0, 0, 0,
0, 0, 16, 16, 16, 16, 16, 0, 16, 0, 40, 40, 40, 0, 0,
0, 0, 0, 40, 40, 124, 40, 124, 40, 40, 0, 16, 60, 80, 56,
20, 120, 16, 0, 96, 100, 8, 16, 32, 76, 12, 0, 48, 72, 80,
32, 84, 72, 52, 0, 48, 16, 32, 0, 0, 0, 0, 0, 8, 16,
32, 32, 32, 16, 8, 0, 32, 16, 8, 8, 8, 16, 32, 0, 0,
16, 84, 56, 56, 84, 16, 0, 0, 16, 16, 124, 16, 16, 0, 0,
0, 0, 0, 0, 48, 16, 32, 0, 0, 0, 0, 124, 0, 0, 0,
0, 0, 0, 0, 0, 0, 48, 48, 0, 0, 4, 8, 16, 32, 64,
0, 0, 56, 68, 76, 84, 100, 68, 56, 0, 16, 48, 16, 16, 16,
16, 56, 0, 56, 68, 4, 8, 16, 32, 124, 0, 124, 8, 16, 8,
4, 68, 56, 0, 8, 24, 40, 72, 124, 8, 8, 0, 124, 64, 120,
4, 4, 68, 56, 0, 24, 32, 64, 120, 68, 68, 56, 0, 124, 4,
8, 16, 16, 16, 16, 0, 56, 68, 68, 56, 68, 68, 56, 0, 56,
68, 68, 60, 4, 8, 48, 0, 0, 48, 48, 0, 48, 48, 0, 0,
0, 48, 48, 0, 48, 16, 32, 0, 8, 16, 32, 64, 32, 16, 8,
0, 0, 0, 124, 0, 124, 0, 0, 0, 32, 16, 8, 4, 8, 16,
32, 0, 56, 68, 4, 8, 16, 0, 16, 0, 56, 68, 4, 52, 84,
84, 56, 0, 56, 68, 68, 124, 68, 68, 68, 0, 120, 68, 68, 120,
68, 68, 120, 0, 56, 68, 64, 64, 64, 68, 56, 0, 112, 72, 68,
68, 68, 72, 112, 0, 124, 64, 64, 120, 64, 64, 124, 0, 124, 64,
64, 120, 64, 64, 64, 0, 56, 68, 64, 92, 68, 68, 60, 0, 68,
68, 68, 124, 68, 68, 68, 0, 56, 16, 16, 16, 16, 16, 56, 0,
28, 8, 8, 8, 8, 72, 48, 0, 68, 72, 80, 96, 80, 72, 68,
0, 64, 64, 64, 64, 64, 64, 124, 0, 68, 108, 84, 84, 68, 68,
68, 0, 68, 68, 100, 84, 76, 68, 68, 0, 56, 68, 68, 68, 68,
68, 56, 0, 120, 68, 68, 120, 64, 64, 64, 0, 56, 68, 68, 68,
84, 72, 52, 0, 120, 68, 68, 120, 80, 72, 68, 0, 56, 68, 64,
56, 4, 68, 56, 0, 124, 16, 16, 16, 16, 16, 16, 0, 68, 68,
68, 68, 68, 68, 56, 0, 68, 68, 68, 68, 68, 40, 16, 0, 68,
68, 84, 84, 84, 84, 40, 0, 68, 68, 40, 16, 40, 68, 68, 0,
68, 68, 68, 40, 16, 16, 16, 0, 124, 4, 8, 16, 32, 64, 124,
0, 56, 32, 32, 32, 32, 32, 56, 0, 0, 64, 32, 16, 8, 4,
0, 0, 56, 8, 8, 8, 8, 8, 56, 0, 16, 40, 68, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 48, 16, 8, 0,
0, 0, 0, 0, 0, 0, 56, 4, 60, 68, 60, 0, 64, 64, 88,
100, 68, 68, 120, 0, 0, 0, 56, 64, 64, 68, 56, 0, 4, 4,
52, 76, 68, 68, 60, 0, 0, 0, 56, 68, 124, 64, 56, 0, 12,
16, 56, 16, 16, 16, 16, 0, 0, 0, 60, 68, 60, 4, 56, 0,
64, 64, 88, 100, 68, 68, 68, 0, 16, 0, 48, 16, 16, 16, 56,
0, 8, 0, 24, 8, 8, 72, 48, 0, 32, 32, 36, 40, 48, 40,
36, 0, 48, 16, 16, 16, 16, 16, 56, 0, 0, 0, 104, 84, 84,
84, 84, 0, 0, 0, 88, 100, 68, 68, 68, 0, 0, 0, 56, 68,
68, 68, 56, 0, 0, 0, 120, 68, 120, 64, 64, 0, 0, 0, 60,
68, 60, 4, 4, 0, 0, 0, 88, 100, 64, 64, 64, 0, 0, 0,
60, 64, 56, 4, 120, 0, 32, 112, 32, 32, 32, 36, 24, 0, 0,
0, 68, 68, 68, 76, 52, 0, 0, 0, 68, 68, 40, 40, 16, 0,
0, 0, 68, 68, 84, 84, 40, 0, 0, 0, 100, 24, 16, 48, 76,
0, 0, 0, 68, 36, 24, 16, 96, 0, 0, 0, 124, 8, 16, 32,
124, 0, 16, 32, 32, 64, 32, 32, 16, 0, 16, 16, 16, 16, 16,
16, 16, 0, 16, 8, 8, 4, 8, 8, 16, 0, 0, 0, 36, 84,
72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 230, 47,
214, 47, 198, 47, 182, 47, 166, 47, 150, 47, 134, 47, 118, 47, 102,
47, 86, 47, 70, 47, 54, 47, 38, 47, 22, 47, 6, 79, 34, 127,
240, 106, 35, 226, 2, 34, 24, 137, 9, 109, 66, 80, 65, 110, 3,
80, 66, 107, 3, 80, 67, 108, 3, 233, 32, 160, 5, 0, 9, 109,
67, 110, 83, 107, 99, 108, 115, 233, 0, 226, 1, 34, 24, 137, 2,
210, 30, 66, 11, 0, 9, 100, 211, 210, 29, 66, 11, 101, 243, 102,
243, 100, 163, 210, 27, 229, 0, 66, 11, 53, 156, 100, 227, 210, 24,
66, 11, 101, 243, 102, 243, 100, 163, 210, 22, 229, 8, 66, 11, 53,
156, 100, 179, 210, 19, 66, 11, 101, 243, 102, 243, 100, 163, 210, 17,
229, 16, 66, 11, 53, 156, 100, 195, 210, 14, 66, 11, 101, 243, 102,
243, 100, 163, 210, 12, 229, 24, 66, 11, 53, 156, 127, 16, 79, 38,
96, 246, 97, 246, 98, 246, 99, 246, 100, 246, 101, 246, 102, 246, 103,
246, 104, 246, 105, 246, 106, 246, 107, 246, 108, 246, 109, 246, 0, 11,
110, 246, 136, 2, 76, 172, 136, 2, 83, 106, 136, 2, 76, 128, 47,
230, 47, 214, 47, 198, 108, 67, 109, 83, 110, 99, 47, 182, 47, 166,
47, 150, 47, 134, 79, 34, 127, 240, 100, 99, 210, 9, 66, 11, 101,
243, 102, 243, 100, 195, 210, 7, 66, 11, 101, 211, 127, 16, 79, 38,
104, 246, 105, 246, 106, 246, 107, 246, 108, 246, 109, 246, 0, 11, 110,
246, 0, 0, 136, 2, 83, 106, 136, 2, 76, 128, 79, 34, 225, 0,
191, 110, 226, 8, 79, 38, 0, 11, 0, 9, 79, 34, 225, 0, 191,
103, 226, 8, 79, 38, 0, 11, 0, 9, 79, 34, 225, 2, 191, 96,
226, 0, 79, 38, 0, 11, 0, 9, 79, 34, 225, 0, 191, 89, 226,
0, 79, 38, 210, 2, 66, 11, 0, 9, 175, 254, 0, 9, 0, 0,
136, 2, 75, 184, 47, 230, 47, 214, 47, 198, 110, 67, 109, 227, 236,
0, 125, 64, 79, 34, 127, 240, 96, 227, 6, 254, 101, 195, 191, 172,
228, 0, 126, 4, 96, 227, 6, 254, 101, 195, 191, 166, 228, 8, 124,
8, 126, 4, 61, 230, 137, 240, 79, 38, 108, 246, 109, 246, 110, 246,
175, 254, 0, 9, 0, 11, 0, 9, 0, 34, 209, 3, 48, 18, 137,
0, 224, 1, 0, 11, 0, 9, 0, 0, 4, 196, 219, 16, 96, 99,
225, 1, 136, 0, 137, 3, 36, 80, 116, 1, 175, 250, 48, 24, 0,
11, 224, 0, 231, 0, 99, 115, 51, 98, 137, 5, 119, 1, 99, 84,
55, 98, 36, 48, 143, 250, 116, 1, 0, 11, 0, 9, 103, 67, 100,
83, 70, 21, 143, 11, 229, 0, 98, 112, 99, 64, 50, 48, 137, 1,
0, 11, 224, 0, 117, 1, 119, 1, 53, 99, 143, 245, 116, 1, 224,
1, 0, 11, 0, 9, 79, 34, 230, 8, 227, 57, 98, 83, 96, 67,
201, 15, 112, 48, 48, 55, 139, 0, 112, 7, 118, 255, 98, 83, 50,
108, 34, 0, 38, 104, 68, 9, 68, 9, 143, 242, 96, 67, 98, 83,
114, 8, 224, 0, 34, 0, 79, 38, 0, 11, 0, 9, 79, 34, 230,
8, 227, 32, 225, 128, 98, 83, 98, 83, 118, 255, 50, 108, 224, 32,
34, 0, 96, 67, 96, 12, 48, 55, 139, 6, 48, 19, 139, 4, 98,
83, 118, 255, 50, 108, 34, 0, 160, 4, 98, 83, 118, 255, 50, 108,
224, 46, 34, 0, 68, 25, 38, 104, 139, 231, 79, 38, 0, 11, 0,
9, 79, 34, 230, 16, 209, 9, 224, 48, 99, 67, 35, 25, 35, 56,
137, 0, 224, 49, 37, 0, 65, 1, 117, 1, 118, 255, 38, 104, 139,
243, 117, 1, 224, 0, 37, 0, 79, 38, 0, 11, 0, 9, 0, 0,
128, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9, 0, 9, 0, 0, 2, 54, 128, 0, 29, 68, 0, 0, 2, 77,
128, 0, 54, 208, 0, 0, 2, 141, 128, 0, 59, 208, 0, 0, 2,
142, 128, 0, 60, 44, 0, 0, 2, 150, 128, 0, 66, 168, 0, 0,
2, 152, 128, 0, 67, 232, 0, 0, 2, 153, 128, 0, 67, 250, 0,
0, 2, 165, 128, 0, 56, 102, 0, 0, 2, 166, 128, 0, 56, 190,
0, 0, 2, 218, 128, 0, 74, 244, 0, 0, 2, 219, 128, 0, 69,
112, 0, 0, 2, 225, 128, 0, 76, 214, 0, 0, 2, 231, 128, 0,
77, 100, 0, 0, 4, 25, 128, 0, 86, 164, 0, 0, 4, 164, 128,
0, 96, 244, 255, 255, 255, 255, 0, 0, 2, 54, 128, 0, 29, 0,
0, 0, 2, 77, 128, 0, 51, 20, 0, 0, 2, 141, 128, 0, 56,
20, 0, 0, 2, 142, 128, 0, 56, 112, 0, 0, 2, 150, 128, 0,
62, 236, 0, 0, 2, 152, 128, 0, 64, 44, 0, 0, 2, 153, 128,
0, 64, 62, 0, 0, 2, 165, 128, 0, 52, 170, 0, 0, 2, 166,
128, 0, 53, 2, 0, 0, 2, 218, 128, 0, 71, 56, 0, 0, 2,
219, 128, 0, 65, 180, 0, 0, 2, 225, 128, 0, 73, 26, 0, 0,
2, 231, 128, 0, 73, 168, 0, 0, 4, 25, 128, 0, 83, 108, 0,
0, 4, 164, 128, 0, 93, 188, 255, 255, 255, 255, 0, 0, 2, 54,
128, 0, 28, 172, 0, 0, 2, 77, 128, 0, 50, 120, 0, 0, 2,
141, 128, 0, 55, 120, 0, 0, 2, 142, 128, 0, 55, 212, 0, 0,
2, 150, 128, 0, 62, 80, 0, 0, 2, 152, 128, 0, 63, 144, 0,
0, 2, 153, 128, 0, 63, 162, 0, 0, 2, 165, 128, 0, 52, 14,
0, 0, 2, 166, 128, 0, 52, 102, 0, 0, 2, 218, 128, 0, 70,
156, 0, 0, 2, 219, 128, 0, 65, 24, 0, 0, 2, 225, 128, 0,
72, 126, 0, 0, 2, 231, 128, 0, 73, 12, 0, 0, 4, 25, 128,
0, 82, 208, 0, 0, 4, 164, 128, 0, 93, 32, 255, 255, 255, 255,
0, 0, 2, 54, 128, 0, 27, 48, 0, 0, 2, 77, 128, 0, 48,
152, 0, 0, 2, 141, 128, 0, 53, 152, 0, 0, 2, 142, 128, 0,
53, 240, 0, 0, 2, 150, 128, 0, 60, 108, 0, 0, 2, 152, 128,
0, 61, 172, 0, 0, 2, 153, 128, 0, 61, 190, 0, 0, 2, 165,
128, 0, 50, 46, 0, 0, 2, 166, 128, 0, 50, 134, 0, 0, 2,
218, 128, 0, 68, 180, 0, 0, 2, 219, 128, 0, 63, 48, 0, 0,
2, 225, 128, 0, 70, 150, 0, 0, 2, 231, 128, 0, 71, 36, 0,
0, 4, 25, 128, 0, 81, 36, 0, 0, 4, 164, 128, 0, 91, 116,
255, 255, 255, 255, 0, 0, 2, 54, 128, 0, 30, 80, 0, 0, 2,
77, 128, 0, 60, 40, 0, 0, 2, 141, 128, 0, 65, 40, 0, 0,
2, 142, 128, 0, 65, 132, 0, 0, 2, 150, 128, 0, 72, 0, 0,
0, 2, 152, 128, 0, 73, 64, 0, 0, 2, 153, 128, 0, 73, 82,
0, 0, 2, 165, 128, 0, 61, 190, 0, 0, 2, 166, 128, 0, 62,
22, 0, 0, 2, 218, 128, 0, 80, 76, 0, 0, 2, 219, 128, 0,
74, 200, 0, 0, 2, 225, 128, 0, 82, 46, 0, 0, 2, 231, 128,
0, 82, 188, 0, 0, 4, 25, 128, 0, 93, 44, 0, 0, 4, 164,
128, 0, 103, 210, 255, 255, 255, 255, 0, 0, 2, 54, 128, 0, 40,
52, 0, 0, 2, 77, 128, 0, 62, 210, 0, 0, 2, 141, 128, 0,
78, 164, 0, 0, 2, 142, 128, 0, 78, 240, 0, 0, 2, 150, 128,
0, 84, 92, 0, 0, 2, 152, 128, 0, 85, 110, 0, 0, 2, 153,
128, 0, 85, 126, 0, 0, 2, 165, 128, 0, 75, 232, 0, 0, 2,
166, 128, 0, 76, 72, 0, 0, 2, 218, 128, 0, 93, 38, 0, 0,
2, 219, 128, 0, 87, 224, 0, 0, 2, 225, 128, 0, 94, 232, 0,
0, 2, 231, 128, 0, 95, 130, 0, 0, 4, 25, 128, 0, 114, 62,
0, 0, 4, 164, 128, 0, 124, 72, 255, 255, 255, 255, 0, 0, 2,
54, 128, 0, 32, 208, 0, 0, 2, 77, 128, 0, 62, 168, 0, 0,
2, 141, 128, 0, 67, 168, 0, 0, 2, 142, 128, 0, 68, 4, 0,
0, 2, 150, 128, 0, 74, 128, 0, 0, 2, 152, 128, 0, 75, 192,
0, 0, 2, 153, 128, 0, 75, 210, 0, 0, 2, 165, 128, 0, 64,
62, 0, 0, 2, 166, 128, 0, 64, 150, 0, 0, 2, 218, 128, 0,
82, 204, 0, 0, 2, 219, 128, 0, 77, 72, 0, 0, 2, 225, 128,
0, 84, 174, 0, 0, 2, 231, 128, 0, 85, 60, 0, 0, 4, 25,
128, 0, 95, 172, 0, 0, 4, 164, 128, 0, 106, 82, 255, 255, 255,
255, 0, 0, 2, 54, 128, 3, 131, 160, 0, 0, 2, 77, 128, 3,
172, 92, 0, 0, 2, 141, 128, 3, 206, 72, 0, 0, 2, 142, 128,
3, 206, 164, 0, 0, 2, 150, 128, 3, 213, 32, 0, 0, 2, 152,
128, 3, 214, 96, 0, 0, 2, 153, 128, 3, 214, 114, 0, 0, 2,
165, 128, 3, 202, 222, 0, 0, 2, 166, 128, 3, 203, 54, 0, 0,
2, 218, 128, 4, 83, 4, 0, 0, 2, 219, 128, 4, 77, 128, 0,
0, 2, 225, 128, 4, 84, 230, 0, 0, 2, 231, 128, 4, 85, 116,
0, 0, 2, 238, 128, 4, 87, 134, 0, 0, 4, 25, 128, 5, 226,
156, 0, 0, 4, 164, 128, 6, 51, 254, 255, 255, 255, 255, 0, 0,
2, 54, 128, 3, 174, 60, 0, 0, 2, 77, 128, 3, 214, 248, 0,
0, 2, 141, 128, 3, 248, 228, 0, 0, 2, 142, 128, 3, 249, 64,
0, 0, 2, 150, 128, 3, 255, 188, 0, 0, 2, 152, 128, 4, 0,
252, 0, 0, 2, 153, 128, 4, 1, 14, 0, 0, 2, 165, 128, 3,
245, 122, 0, 0, 2, 166, 128, 3, 245, 210, 0, 0, 2, 218, 128,
4, 125, 200, 0, 0, 2, 219, 128, 4, 120, 68, 0, 0, 2, 225,
128, 4, 127, 170, 0, 0, 2, 231, 128, 4, 128, 56, 0, 0, 2,
238, 128, 4, 130, 74, 0, 0, 4, 25, 128, 6, 13, 108, 0, 0,
4, 164, 128, 6, 94, 206, 255, 255, 255, 255, 0, 0, 2, 54, 128,
3, 133, 152, 0, 0, 2, 77, 128, 3, 174, 128, 0, 0, 2, 141,
128, 3, 208, 108, 0, 0, 2, 142, 128, 3, 208, 200, 0, 0, 2,
150, 128, 3, 215, 68, 0, 0, 2, 152, 128, 3, 216, 132, 0, 0,
2, 153, 128, 3, 216, 150, 0, 0, 2, 165, 128, 3, 205, 2, 0,
0, 2, 166, 128, 3, 205, 90, 0, 0, 2, 218, 128, 4, 86, 40,
0, 0, 2, 219, 128, 4, 80, 164, 0, 0, 2, 225, 128, 4, 88,
10, 0, 0, 2, 231, 128, 4, 88, 152, 0, 0, 2, 238, 128, 4,
90, 170, 0, 0, 4, 25, 128, 5, 230, 188, 0, 0, 4, 164, 0,
0, 0, 0, 255, 255, 255, 255, 97, 3, 208, 15, 96, 1, 96, 13,
136, 1, 137, 101, 136, 2, 137, 33, 136, 4, 137, 25, 136, 3, 137,
35, 208, 10, 96, 1, 96, 13, 136, 7, 137, 66, 136, 2, 137, 70,
136, 5, 137, 56, 136, 3, 137, 30, 136, 1, 137, 34, 136, 0, 137,
38, 136, 4, 137, 42, 0, 11, 0, 9, 0, 0, 136, 2, 84, 14,
136, 2, 84, 12, 211, 1, 160, 52, 0, 9, 0, 0, 136, 2, 88,
4, 211, 1, 160, 46, 0, 9, 0, 0, 136, 2, 87, 128, 211, 1,
160, 40, 0, 9, 0, 0, 136, 2, 88, 136, 211, 1, 160, 34, 0,
9, 0, 0, 136, 2, 84, 28, 211, 1, 160, 28, 0, 9, 0, 0,
136, 2, 84, 152, 211, 1, 160, 22, 0, 9, 0, 0, 136, 2, 85,
20, 211, 1, 160, 16, 0, 9, 0, 0, 136, 2, 85, 144, 211, 1,
160, 10, 0, 9, 0, 0, 136, 2, 87, 4, 211, 1, 160, 4, 0,
9, 0, 0, 136, 2, 86, 136, 211, 5, 96, 19, 210, 5, 97, 50,
49, 32, 137, 19, 49, 0, 141, 7, 115, 4, 175, 248, 115, 4, 0,
0, 136, 2, 86, 12, 255, 255, 255, 255, 160, 2, 98, 50, 96, 19,
210, 2, 34, 40, 137, 3, 66, 43, 0, 9, 128, 1, 0, 112, 0,
11, 0, 9, 79, 34, 212, 8, 213, 8, 214, 9, 210, 9, 66, 11,
0, 9, 210, 9, 96, 32, 96, 12, 136, 1, 137, 19, 212, 7, 213,
8, 230, 8, 160, 18, 0, 9, 0, 0, 136, 2, 90, 180, 128, 0,
0, 0, 0, 0, 7, 28, 136, 2, 83, 44, 136, 2, 84, 24, 136,
2, 91, 164, 136, 2, 90, 88, 212, 4, 213, 5, 230, 8, 210, 5,
66, 11, 0, 9, 79, 38, 0, 11, 0, 9, 0, 0, 136, 2, 97,
40, 136, 2, 90, 96, 136, 2, 83, 44, 224, 0, 32, 8, 0, 9,
0, 9, 224, 1, 32, 8, 0, 9, 0, 9, 0, 9, 226, 160, 66,
40, 224, 7, 50, 12, 66, 24, 224, 132, 50, 12, 96, 35, 66, 43,
0, 9, 47, 6, 214, 9, 229, 8, 210, 9, 66, 11, 228, 0, 96,
246, 127, 240, 100, 3, 210, 7, 66, 11, 101, 243, 102, 243, 229, 24,
210, 4, 66, 11, 228, 0, 127, 16, 175, 254, 0, 9, 0, 0, 136,
2, 100, 72, 136, 2, 76, 128, 136, 2, 83, 106, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 47, 230, 79, 34, 110, 67, 127, 240, 214, 12, 229, 16, 210, 12,
66, 11, 228, 0, 100, 227, 210, 11, 66, 11, 101, 243, 102, 243, 229,
24, 210, 8, 66, 11, 228, 0, 210, 8, 66, 11, 100, 227, 214, 8,
229, 16, 210, 4, 66, 11, 228, 0, 127, 16, 79, 38, 0, 11, 110,
246, 136, 2, 99, 243, 136, 2, 76, 128, 136, 2, 83, 106, 136, 2,
102, 108, 136, 2, 100, 4, 47, 230, 47, 214, 47, 198, 79, 34, 110,
67, 109, 83, 108, 99, 127, 240, 214, 26, 229, 40, 210, 26, 66, 11,
228, 0, 214, 26, 229, 48, 210, 24, 66, 11, 228, 0, 214, 23, 229,
56, 210, 21, 66, 11, 228, 0, 100, 227, 210, 21, 66, 11, 101, 243,
102, 243, 229, 48, 210, 17, 66, 11, 228, 0, 100, 211, 210, 17, 66,
11, 101, 243, 102, 243, 229, 56, 210, 12, 66, 11, 228, 0, 100, 195,
210, 12, 66, 11, 101, 243, 102, 243, 229, 56, 210, 8, 66, 11, 228,
8, 100, 227, 101, 211, 210, 8, 66, 11, 102, 195, 127, 16, 79, 38,
108, 246, 109, 246, 0, 11, 110, 246, 0, 0, 136, 2, 100, 21, 136,
2, 76, 128, 136, 2, 100, 55, 136, 2, 83, 106, 136, 2, 101, 156,
79, 83, 32, 82, 69, 67, 79, 86, 69, 82, 32, 50, 46, 48, 51,
32, 0, 67, 104, 101, 99, 107, 105, 110, 103, 32, 115, 121, 115, 116,
101, 109, 46, 0, 83, 121, 115, 116, 101, 109, 32, 97, 99, 99, 101,
112, 116, 101, 100, 46, 0, 87, 97, 105, 116, 105, 110, 103, 46, 46,
46, 32, 32, 32, 32, 32, 32, 0, 80, 114, 111, 99, 101, 115, 115,
105, 110, 103, 46, 46, 46, 32, 32, 32, 0, 66, 73, 79, 83, 32,
110, 111, 116, 32, 32, 32, 32, 32, 32, 32, 32, 0, 115, 117, 112,
112, 111, 114, 116, 101, 100, 32, 32, 32, 32, 32, 32, 32, 0, 85,
110, 107, 110, 111, 119, 110, 32, 66, 73, 79, 83, 32, 32, 32, 32,
0, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 0, 79, 83, 32, 110, 111, 116, 32, 32, 32, 32, 32, 32,
32, 32, 32, 32, 0, 105, 100, 101, 110, 116, 105, 102, 105, 97, 98,
108, 101, 33, 32, 32, 32, 0, 83, 116, 97, 114, 116, 32, 98, 111,
111, 116, 99, 111, 100, 101, 32, 32, 0, 79, 83, 32, 117, 112, 100,
97, 116, 101, 32, 32, 32, 32, 32, 32, 32, 0, 109, 97, 110, 117,
97, 108, 108, 121, 32, 97, 110, 100, 32, 32, 32, 32, 0, 116, 114,
121, 32, 97, 103, 97, 105, 110, 46, 32, 32, 32, 32, 32, 32, 0,
80, 117, 115, 104, 32, 80, 45, 98, 117, 116, 116, 111, 110, 32, 111,
114, 0, 82, 69, 83, 84, 65, 82, 84, 45, 98, 117, 116, 116, 111,
110, 33, 32, 0, 72, 105, 116, 32, 97, 110, 121, 32, 107, 101, 121,
32, 116, 111, 32, 32, 0, 114, 101, 98, 111, 111, 116, 33, 32, 32,
32, 32, 32, 32, 32, 32, 32, 0, 69, 82, 65, 83, 73, 78, 71,
58, 32, 32, 32, 32, 32, 32, 32, 32, 0, 82, 69, 65, 68, 89,
32, 69, 82, 65, 83, 73, 78, 71, 58, 32, 32, 0, 70, 76, 65,
83, 72, 32, 87, 82, 73, 84, 73, 78, 71, 58, 32, 32, 0, 82,
65, 77, 32, 87, 82, 73, 84, 73, 78, 71, 58, 32, 32, 32, 32,
0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 32, 0, 32, 32, 32, 32, 42, 49, 50, 51, 52, 53, 42, 32,
32, 32, 32, 32, 0, 66, 97, 100, 32, 102, 108, 97, 115, 104, 32,
73, 68, 33, 32, 32, 32, 0, 100, 101, 118, 105, 99, 101, 58, 32,
32, 32, 32, 32, 32, 32, 32, 32, 0, 40, 109, 97, 110, 117, 102,
97, 99, 116, 117, 114, 101, 114, 41, 32, 32, 0, 66, 97, 100, 32,
99, 111, 109, 109, 97, 110, 100, 32, 32, 32, 32, 32, 0, 32, 32,
75, 101, 121, 32, 114, 101, 99, 101, 105, 118, 101, 100, 32, 32, 0,
32, 32, 87, 97, 105, 116, 32, 102, 111, 114, 32, 107, 101, 121, 32,
32, 0, 32, 32, 32, 82, 101, 99, 111, 118, 101, 114, 32, 79, 83,
32, 32, 32, 0, 32, 32, 82, 101, 99, 111, 110, 110, 101, 99, 116,
101, 100, 32, 32, 32, 0, 9, 0, 9, 211, 49, 4, 2, 35, 75,
67, 14, 213, 48, 146, 92, 37, 33, 227, 85, 209, 47, 33, 49, 114,
70, 37, 33, 68, 14, 0, 11, 0, 9, 229, 64, 47, 230, 238, 32,
47, 214, 109, 67, 47, 198, 108, 67, 79, 34, 127, 248, 215, 40, 214,
41, 44, 105, 44, 123, 45, 105, 45, 123, 96, 193, 129, 242, 99, 209,
47, 49, 133, 242, 96, 13, 99, 241, 32, 89, 99, 61, 35, 89, 32,
58, 32, 8, 137, 21, 98, 241, 98, 45, 34, 232, 137, 238, 96, 67,
32, 105, 32, 123, 96, 1, 129, 242, 36, 105, 36, 123, 99, 65, 47,
49, 133, 242, 96, 13, 99, 241, 32, 89, 99, 61, 35, 89, 32, 58,
32, 8, 139, 1, 160, 3, 224, 1, 191, 187, 0, 9, 224, 0, 127,
8, 79, 38, 108, 246, 109, 246, 0, 11, 110, 246, 211, 14, 70, 21,
103, 83, 213, 14, 37, 73, 37, 59, 143, 6, 228, 0, 98, 84, 116,
1, 39, 32, 52, 99, 143, 250, 119, 1, 0, 11, 96, 67, 211, 8,
35, 73, 210, 8, 51, 34, 137, 16, 0, 11, 224, 0, 0, 170, 16,
0, 0, 0, 160, 0, 10, 170, 160, 0, 5, 84, 160, 0, 0, 0,
0, 63, 255, 255, 0, 63, 240, 0, 0, 1, 0, 0, 47, 230, 99,
99, 47, 214, 109, 67, 47, 198, 228, 1, 47, 182, 35, 72, 47, 166,
107, 67, 47, 150, 105, 83, 47, 134, 79, 34, 127, 252, 47, 98, 143,
2, 108, 99, 36, 216, 137, 1, 160, 50, 224, 0, 210, 35, 8, 2,
34, 139, 66, 14, 191, 114, 0, 9, 212, 33, 146, 58, 36, 33, 227,
85, 209, 32, 33, 49, 226, 32, 36, 33, 218, 31, 227, 0, 222, 31,
60, 54, 139, 16, 145, 47, 46, 17, 99, 211, 98, 149, 35, 169, 35,
235, 35, 33, 191, 107, 100, 211, 32, 8, 141, 5, 107, 3, 124, 254,
226, 0, 60, 38, 141, 239, 125, 2, 209, 22, 45, 25, 147, 29, 45,
235, 45, 49, 146, 27, 191, 76, 46, 33, 72, 14, 43, 184, 137, 1,
160, 1, 96, 242, 224, 255, 127, 4, 79, 38, 104, 246, 105, 246, 106,
246, 107, 246, 108, 246, 109, 246, 0, 11, 110, 246, 211, 11, 35, 73,
210, 11, 51, 34, 137, 22, 0, 11, 224, 0, 0, 170, 0, 160, 0,
144, 0, 240, 0, 0, 16, 0, 0, 0, 160, 0, 10, 170, 160, 0,
5, 84, 0, 63, 255, 255, 160, 0, 0, 0, 0, 63, 224, 0, 0,
63, 240, 0, 0, 1, 0, 0, 47, 230, 14, 2, 211, 18, 79, 34,
127, 252, 35, 235, 47, 66, 67, 14, 191, 22, 0, 9, 149, 25, 212,
15, 36, 81, 230, 85, 215, 14, 39, 97, 147, 20, 36, 49, 36, 81,
39, 97, 211, 12, 224, 48, 98, 242, 34, 57, 209, 11, 34, 27, 34,
1, 191, 18, 100, 242, 191, 1, 47, 2, 78, 14, 96, 242, 127, 4,
79, 38, 0, 11, 110, 246, 0, 170, 0, 128, 0, 0, 16, 0, 0,
0, 160, 0, 10, 170, 160, 0, 5, 84, 0, 63, 240, 0, 160, 0,
0, 0, 209, 3, 146, 4, 33, 33, 226, 85, 209, 2, 0, 11, 33,
33, 0, 170, 160, 0, 10, 170, 160, 0, 5, 84, 47, 230, 47, 214,
109, 67, 79, 34, 211, 21, 14, 2, 35, 235, 67, 14, 190, 216, 0,
9, 191, 232, 0, 9, 100, 211, 211, 18, 36, 57, 211, 18, 36, 59,
211, 18, 35, 75, 146, 26, 35, 33, 227, 2, 35, 75, 96, 49, 210,
15, 32, 41, 136, 126, 139, 11, 227, 28, 35, 75, 101, 49, 37, 41,
64, 24, 32, 91, 227, 30, 35, 75, 101, 49, 37, 41, 64, 24, 32,
91, 190, 184, 0, 9, 78, 14, 79, 38, 109, 246, 0, 11, 110, 246,
0, 144, 16, 0, 0, 0, 0, 60, 0, 0, 160, 0, 0, 0, 0,
0, 10, 170, 0, 0, 0, 255, 47, 230, 47, 214, 109, 67, 79, 34,
211, 13, 14, 2, 35, 235, 67, 14, 190, 158, 0, 9, 191, 174, 0,
9, 100, 211, 211, 10, 36, 57, 211, 10, 36, 59, 211, 10, 35, 75,
146, 9, 35, 33, 96, 65, 96, 13, 190, 143, 0, 9, 78, 14, 79,
38, 109, 246, 0, 11, 110, 246, 0, 144, 0, 0, 16, 0, 0, 0,
0, 60, 0, 0, 160, 0, 0, 0, 0, 0, 10, 170, 79, 34, 210,
4, 66, 11, 0, 9, 210, 3, 66, 11, 0, 9, 79, 38, 0, 11,
0, 9, 136, 2, 76, 172, 136, 2, 82, 170
};

View File

@ -35,8 +35,9 @@ processes it.
import argparse
import re
from datetime import datetime
from os import linesep
from os import linesep, makedirs
from pathlib import Path
import sys
from typing import TextIO
symbol_pattern = re.compile(r"[a-z0-9_]*")
@ -100,27 +101,32 @@ def write_c_source(contents: bytes, fp: TextIO, /, *, symbol: str) -> None:
argument_parser = argparse.ArgumentParser(
prog=Path(__file__).name,
description="Process all binary files in a directory.",
description="Process a binary file.",
)
argument_parser.add_argument("path", type=Path)
argument_parser.add_argument("output_path", type=Path)
argument_parser.add_argument("source_path", type=Path)
argument_parser.add_argument("--prefix", type=symbol_type, default="cahute_")
if __name__ == "__main__":
args = argument_parser.parse_args()
source_path = args.source_path
output_path = args.output_path
for source_path in args.path.rglob("*"):
if (
not source_path.is_file()
or source_path.name[-4:].casefold() != ".bin"
):
continue
if not source_path.name.endswith(".bin"):
print("Expected a source path with a .bin extension!", file=sys.stderr)
exit(1)
base_name = source_path.name[:-4]
output_path = source_path.with_name(source_path.name + ".c")
if not output_path.name.endswith(".c"):
print("Expected an output path with a .c extension!", file=sys.stderr)
exit(1)
symbol = args.prefix + path_to_symbol(base_name)
with source_path.open("rb") as fp:
contents = fp.read()
base_name = source_path.name[:-4]
with output_path.open("w") as fp:
write_c_source(contents, fp, symbol=symbol)
makedirs(output_path.parent, exist_ok=True)
symbol = args.prefix + path_to_symbol(base_name)
with source_path.open("rb") as fp:
contents = fp.read()
with output_path.open("w") as fp:
write_c_source(contents, fp, symbol=symbol)