From 7f8aeafef51e859130ea681fe8000c5012fac0f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com> Date: Sat, 9 Jul 2022 19:29:10 +0100 Subject: [PATCH] feat: support for embeded icon --- examples/sdl/res/icon.png | Bin 12518 -> 0 bytes examples/sdl/src/data.rs | 591 ++++++++++++++++++++++++++++++++++++++ examples/sdl/src/main.rs | 19 +- 3 files changed, 606 insertions(+), 4 deletions(-) delete mode 100644 examples/sdl/res/icon.png create mode 100644 examples/sdl/src/data.rs diff --git a/examples/sdl/res/icon.png b/examples/sdl/res/icon.png deleted file mode 100644 index abc4d88eb473adab3e5af0b01fd43e0f8afd7346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12518 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 diff --git a/examples/sdl/src/data.rs b/examples/sdl/src/data.rs new file mode 100644 index 00000000..f54d25bc --- /dev/null +++ b/examples/sdl/src/data.rs @@ -0,0 +1,591 @@ +pub const ICON: [u8; 12518] = [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 0, 0, 0, 2, 0, 8, 6, 0, + 0, 0, 244, 120, 212, 250, 0, 0, 48, 173, 73, 68, 65, 84, 120, 218, 237, 221, 121, 156, 221, + 117, 125, 239, 241, 247, 247, 183, 156, 109, 230, 204, 146, 153, 76, 22, 9, 36, 33, 128, 44, + 178, 186, 20, 129, 246, 225, 82, 215, 214, 74, 91, 232, 245, 170, 173, 138, 11, 19, 20, 145, + 66, 18, 244, 94, 29, 180, 149, 76, 66, 65, 65, 2, 42, 222, 182, 143, 46, 94, 193, 150, 214, 91, + 21, 92, 30, 106, 235, 190, 160, 200, 38, 72, 72, 72, 8, 100, 146, 73, 50, 235, 217, 126, 203, + 247, 254, 49, 105, 8, 73, 38, 153, 51, 115, 206, 153, 179, 188, 158, 143, 71, 30, 144, 204, + 156, 243, 251, 157, 207, 239, 247, 251, 124, 223, 191, 245, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 160, 49, 24, 74, 0, 52, 150, 1, 13, 56, 67, 126, 230, 221, 178, 246, 141, + 50, 54, 51, 159, 243, 98, 173, 51, 41, 19, 223, 183, 39, 40, 124, 225, 110, 13, 148, 88, 58, 0, + 1, 0, 64, 21, 188, 87, 159, 245, 93, 127, 244, 94, 201, 190, 178, 206, 102, 237, 123, 139, 130, + 252, 171, 7, 52, 16, 178, 148, 128, 198, 224, 80, 2, 160, 129, 54, 88, 111, 100, 93, 29, 14, + 254, 146, 244, 123, 67, 94, 250, 90, 150, 16, 64, 0, 0, 80, 5, 198, 232, 109, 245, 59, 115, + 246, 109, 44, 33, 128, 0, 0, 160, 58, 250, 234, 56, 158, 44, 102, 241, 0, 4, 0, 0, 85, 26, 101, + 153, 55, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 51, 227, 81, 2, 160, 121, 44, 124, 201, 66, 57, 110, + 117, 114, 189, 141, 99, 237, 250, 233, 110, 138, 12, 16, 0, 0, 212, 155, 84, 79, 74, 142, 95, + 157, 0, 16, 7, 49, 5, 6, 154, 8, 167, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 2, + 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, + 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, + 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 13, 196, 107, 181, + 15, 124, 69, 98, 253, 233, 145, 53, 175, 48, 86, 109, 213, 154, 134, 53, 154, 116, 141, 253, + 206, 109, 165, 117, 15, 179, 138, 1, 0, 61, 155, 0, 48, 175, 172, 185, 60, 177, 113, 125, 108, + 237, 53, 70, 114, 100, 170, 55, 37, 35, 41, 182, 198, 174, 246, 7, 111, 221, 20, 172, 253, 32, + 155, 48, 0, 148, 223, 179, 87, 39, 54, 126, 50, 182, 246, 90, 35, 185, 53, 234, 217, 183, 109, + 10, 214, 92, 41, 25, 219, 10, 21, 110, 153, 83, 0, 253, 254, 198, 247, 24, 107, 215, 212, 240, + 51, 27, 43, 93, 121, 185, 191, 225, 93, 108, 200, 0, 80, 118, 207, 190, 204, 90, 187, 78, 146, + 91, 195, 158, 253, 254, 126, 127, 227, 101, 173, 82, 227, 22, 186, 6, 192, 174, 155, 143, 169, + 154, 121, 154, 46, 0, 208, 179, 27, 105, 186, 243, 49, 62, 181, 128, 1, 13, 120, 67, 126, 186, + 52, 79, 159, 55, 94, 20, 228, 253, 1, 13, 196, 108, 208, 152, 169, 203, 83, 55, 44, 55, 145, + 251, 106, 89, 219, 115, 200, 22, 59, 32, 41, 53, 221, 235, 150, 189, 110, 153, 28, 191, 58, + 185, 62, 14, 98, 109, 191, 119, 251, 209, 126, 37, 47, 171, 235, 159, 63, 191, 102, 143, 117, + 163, 111, 221, 81, 184, 110, 43, 75, 21, 101, 244, 108, 103, 200, 79, 7, 243, 180, 147, 106, + 135, 131, 21, 254, 221, 186, 52, 106, 246, 58, 183, 196, 53, 0, 15, 75, 78, 239, 252, 133, 29, + 103, 255, 31, 2, 0, 102, 100, 181, 183, 254, 26, 27, 153, 191, 146, 108, 178, 193, 34, 122, 90, + 70, 235, 15, 233, 165, 50, 145, 19, 246, 123, 27, 174, 191, 61, 92, 243, 87, 44, 93, 148, 217, + 55, 231, 105, 199, 248, 17, 87, 82, 212, 10, 69, 6, 80, 39, 250, 147, 131, 111, 178, 198, 108, + 148, 148, 108, 170, 29, 13, 99, 63, 177, 58, 49, 248, 199, 44, 97, 128, 0, 0, 224, 72, 187, 30, + 177, 254, 119, 179, 126, 54, 107, 117, 45, 75, 24, 168, 167, 100, 14, 57, 174, 213, 171, 222, + 61, 86, 222, 139, 198, 158, 251, 253, 111, 125, 105, 153, 44, 7, 248, 81, 137, 65, 82, 90, 53, + 167, 0, 81, 197, 115, 6, 102, 238, 111, 125, 50, 75, 24, 21, 89, 23, 29, 233, 213, 127, 182, + 253, 160, 118, 60, 62, 181, 245, 204, 208, 207, 190, 126, 154, 226, 216, 180, 124, 29, 9, 0, + 146, 28, 71, 122, 211, 53, 35, 229, 189, 104, 219, 182, 3, 255, 251, 237, 187, 142, 147, 21, + 43, 19, 230, 119, 155, 116, 19, 142, 140, 95, 197, 0, 224, 57, 114, 19, 142, 162, 210, 108, + 211, 174, 165, 223, 160, 66, 97, 212, 234, 77, 239, 222, 122, 224, 239, 219, 183, 111, 151, + 181, 51, 15, 0, 63, 191, 239, 84, 137, 0, 192, 41, 128, 89, 137, 217, 221, 71, 253, 105, 63, + 161, 189, 6, 211, 200, 82, 104, 212, 95, 32, 160, 4, 173, 123, 4, 224, 189, 26, 200, 24, 63, + 117, 146, 51, 237, 30, 134, 227, 87, 116, 130, 97, 88, 214, 175, 239, 244, 211, 231, 246, 235, + 134, 104, 154, 221, 170, 32, 42, 77, 62, 241, 57, 13, 228, 88, 29, 49, 235, 129, 249, 184, 54, + 117, 158, 220, 85, 245, 233, 116, 158, 220, 169, 40, 31, 106, 226, 233, 73, 138, 142, 57, 245, + 108, 55, 209, 182, 74, 54, 60, 98, 111, 222, 41, 199, 45, 103, 80, 247, 124, 95, 165, 82, 169, + 98, 243, 215, 59, 213, 179, 131, 102, 239, 217, 13, 29, 0, 46, 209, 93, 110, 175, 183, 229, + 234, 253, 247, 70, 103, 106, 150, 3, 39, 203, 107, 126, 70, 250, 201, 180, 7, 91, 108, 44, 215, + 79, 231, 86, 155, 193, 141, 125, 165, 252, 199, 121, 94, 0, 142, 166, 99, 101, 199, 243, 86, + 37, 227, 24, 165, 122, 211, 74, 245, 212, 230, 166, 1, 227, 24, 245, 156, 211, 171, 182, 227, + 219, 85, 220, 83, 84, 28, 197, 7, 173, 202, 86, 227, 79, 142, 179, 144, 48, 173, 1, 13, 56, + 187, 188, 212, 213, 214, 152, 235, 101, 227, 204, 116, 125, 177, 220, 78, 222, 214, 214, 86, + 209, 0, 32, 233, 71, 199, 234, 217, 253, 102, 253, 141, 195, 165, 149, 31, 111, 228, 231, 5, + 52, 116, 0, 232, 245, 182, 94, 39, 163, 79, 212, 116, 162, 165, 146, 52, 49, 81, 233, 119, 205, + 88, 171, 143, 13, 121, 233, 188, 66, 13, 210, 38, 48, 157, 174, 147, 187, 170, 122, 158, 127, + 166, 82, 61, 41, 165, 122, 158, 255, 60, 34, 27, 198, 4, 0, 28, 213, 144, 151, 89, 39, 99, 255, + 186, 210, 239, 219, 222, 222, 174, 137, 201, 9, 5, 165, 160, 86, 31, 37, 35, 107, 62, 218, 235, + 109, 41, 40, 212, 13, 141, 186, 60, 26, 246, 26, 128, 203, 116, 211, 2, 25, 91, 219, 91, 166, + 138, 69, 105, 247, 110, 201, 86, 233, 123, 34, 140, 6, 174, 210, 205, 93, 180, 9, 0, 205, 166, + 95, 55, 116, 203, 216, 143, 86, 165, 117, 26, 163, 190, 133, 139, 148, 72, 214, 248, 241, 25, + 70, 31, 235, 215, 13, 221, 4, 128, 26, 243, 189, 226, 153, 146, 18, 21, 90, 136, 71, 22, 70, + 83, 131, 254, 228, 164, 52, 60, 44, 13, 13, 73, 81, 116, 132, 149, 175, 98, 129, 32, 85, 244, + 130, 23, 209, 42, 0, 52, 27, 199, 51, 47, 82, 133, 30, 112, 117, 164, 158, 235, 186, 142, 22, + 247, 245, 169, 183, 183, 87, 109, 109, 25, 37, 147, 73, 121, 222, 116, 223, 35, 84, 177, 158, + 157, 148, 231, 158, 217, 168, 203, 164, 97, 79, 1, 56, 114, 83, 182, 66, 11, 177, 163, 231, + 144, 65, 125, 98, 66, 26, 27, 157, 10, 0, 51, 208, 222, 25, 106, 116, 79, 197, 178, 72, 154, + 86, 1, 160, 217, 88, 57, 169, 74, 13, 188, 217, 174, 96, 186, 100, 160, 76, 38, 163, 76, 38, + 115, 208, 126, 92, 168, 177, 209, 49, 77, 28, 116, 234, 54, 157, 45, 106, 98, 95, 166, 229, + 123, 54, 183, 1, 74, 58, 239, 77, 7, 93, 212, 55, 60, 44, 237, 221, 59, 227, 193, 95, 146, 206, + 190, 104, 152, 34, 2, 64, 141, 188, 248, 85, 187, 103, 190, 151, 235, 122, 90, 176, 96, 129, + 122, 122, 122, 15, 252, 219, 41, 47, 222, 78, 17, 9, 0, 210, 113, 167, 151, 244, 250, 247, 143, + 78, 253, 101, 124, 92, 202, 149, 127, 103, 199, 27, 223, 249, 148, 150, 157, 60, 193, 218, 4, + 0, 213, 238, 217, 171, 38, 245, 250, 63, 127, 170, 236, 215, 181, 181, 101, 148, 205, 78, 61, + 199, 226, 130, 55, 63, 160, 197, 43, 246, 182, 124, 45, 155, 246, 201, 92, 169, 246, 88, 11, + 151, 79, 127, 191, 126, 166, 51, 210, 169, 23, 22, 116, 209, 91, 199, 229, 167, 236, 212, 145, + 169, 209, 209, 89, 77, 43, 221, 30, 234, 47, 111, 125, 64, 223, 187, 103, 137, 30, 249, 89, + 183, 114, 227, 211, 63, 118, 96, 247, 142, 148, 10, 147, 60, 16, 13, 0, 158, 215, 179, 219, 66, + 45, 124, 65, 97, 250, 158, 157, 13, 244, 194, 243, 70, 244, 187, 127, 244, 140, 18, 169, 217, + 221, 45, 221, 209, 209, 161, 241, 137, 9, 37, 51, 129, 222, 250, 145, 251, 244, 203, 111, 157, + 162, 205, 15, 46, 81, 97, 114, 250, 75, 19, 246, 13, 101, 85, 202, 251, 77, 89, 243, 166, 29, + 137, 86, 156, 91, 212, 234, 47, 236, 154, 249, 11, 194, 96, 78, 79, 248, 115, 189, 88, 175, + 188, 100, 135, 94, 121, 201, 142, 163, 254, 222, 109, 107, 207, 208, 111, 126, 222, 205, 214, + 14, 0, 7, 89, 126, 234, 184, 174, 24, 124, 168, 170, 211, 112, 93, 87, 190, 231, 41, 8, 2, 57, + 110, 172, 243, 94, 251, 168, 206, 123, 237, 163, 71, 125, 205, 151, 111, 122, 133, 182, 60, + 184, 180, 41, 107, 206, 53, 0, 255, 45, 138, 168, 1, 0, 52, 57, 215, 229, 8, 44, 1, 224, 48, + 150, 18, 0, 64, 179, 51, 244, 122, 2, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, + 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, + 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 51, 230, 81, 2, 160, 242, 222, 151, 184, + 241, 52, 99, 163, 87, 27, 171, 116, 153, 47, 77, 52, 111, 85, 76, 178, 223, 27, 92, 91, 206, + 43, 172, 81, 222, 53, 246, 219, 183, 149, 214, 61, 204, 90, 5, 16, 0, 128, 186, 214, 159, 88, + 255, 9, 217, 232, 58, 73, 174, 12, 245, 56, 72, 82, 70, 235, 203, 138, 12, 146, 98, 107, 236, + 106, 127, 240, 166, 77, 193, 218, 107, 40, 33, 80, 57, 156, 2, 0, 42, 232, 114, 127, 240, 237, + 178, 230, 127, 73, 114, 169, 70, 229, 14, 29, 88, 233, 47, 251, 19, 235, 255, 39, 165, 0, 8, 0, + 64, 125, 142, 84, 210, 26, 170, 80, 37, 214, 92, 75, 17, 0, 2, 0, 80, 175, 78, 172, 118, 194, + 168, 223, 244, 83, 245, 153, 59, 137, 213, 11, 32, 0, 0, 245, 170, 106, 135, 254, 221, 148, 43, + 227, 213, 111, 2, 48, 174, 145, 155, 114, 27, 178, 182, 0, 1, 0, 64, 221, 202, 158, 144, 173, + 251, 121, 108, 111, 128, 121, 4, 64, 0, 0, 26, 70, 251, 178, 118, 117, 158, 212, 81, 247, 243, + 217, 117, 82, 135, 178, 203, 179, 220, 252, 0, 52, 0, 110, 3, 4, 106, 168, 227, 196, 142, 178, + 206, 227, 187, 190, 171, 100, 111, 74, 201, 174, 6, 121, 60, 128, 49, 90, 240, 162, 5, 106, 91, + 214, 174, 226, 112, 94, 81, 16, 207, 252, 181, 86, 26, 219, 60, 198, 74, 2, 16, 0, 128, 230, + 211, 117, 74, 151, 140, 219, 252, 251, 199, 201, 174, 68, 217, 161, 197, 198, 150, 0, 0, 212, + 16, 167, 0, 0, 0, 32, 0, 180, 48, 203, 89, 75, 0, 160, 215, 19, 0, 90, 143, 75, 41, 0, 160, + 217, 69, 81, 72, 17, 246, 107, 218, 107, 0, 182, 220, 159, 212, 134, 139, 151, 76, 251, 243, + 68, 218, 234, 148, 151, 231, 245, 138, 119, 142, 43, 213, 22, 75, 137, 132, 228, 186, 82, 20, + 205, 106, 122, 97, 224, 232, 219, 95, 122, 129, 30, 253, 69, 183, 74, 133, 233, 111, 87, 222, + 189, 35, 197, 90, 7, 0, 135, 216, 250, 104, 86, 27, 250, 207, 153, 190, 103, 167, 34, 157, 114, + 238, 136, 94, 241, 39, 59, 148, 202, 204, 174, 79, 71, 97, 164, 32, 156, 10, 0, 81, 224, 234, + 103, 247, 157, 170, 45, 15, 45, 81, 80, 156, 126, 40, 220, 55, 212, 188, 183, 182, 54, 109, 0, + 40, 76, 56, 218, 254, 208, 209, 47, 66, 218, 252, 179, 164, 126, 249, 245, 140, 174, 185, 123, + 167, 18, 25, 43, 117, 116, 74, 251, 246, 150, 61, 173, 98, 222, 209, 205, 31, 60, 91, 59, 54, + 183, 177, 21, 3, 192, 108, 122, 246, 164, 167, 237, 143, 183, 31, 189, 103, 255, 186, 83, 247, + 127, 119, 161, 174, 189, 237, 87, 74, 164, 202, 15, 1, 163, 99, 163, 146, 181, 10, 138, 158, + 254, 249, 147, 175, 209, 174, 109, 221, 45, 93, 243, 150, 63, 238, 253, 236, 227, 9, 125, 237, + 150, 174, 169, 191, 100, 219, 165, 182, 242, 7, 241, 255, 248, 63, 203, 25, 252, 1, 160, 6, + 118, 110, 205, 232, 63, 254, 246, 132, 178, 95, 55, 49, 57, 161, 137, 137, 9, 73, 210, 127, + 221, 115, 102, 203, 15, 254, 4, 128, 253, 126, 241, 213, 131, 6, 239, 158, 158, 169, 63, 222, + 204, 15, 142, 252, 242, 123, 11, 41, 34, 0, 212, 200, 253, 223, 153, 121, 207, 13, 194, 64, + 123, 246, 236, 209, 222, 61, 207, 29, 221, 125, 252, 39, 39, 80, 68, 53, 240, 41, 128, 88, 81, + 193, 84, 40, 191, 76, 236, 57, 228, 125, 218, 218, 166, 254, 68, 145, 20, 133, 82, 24, 73, 249, + 188, 148, 155, 148, 236, 225, 175, 31, 31, 241, 43, 246, 185, 172, 148, 103, 181, 4, 208, 108, + 140, 226, 130, 173, 208, 51, 34, 167, 235, 185, 86, 82, 110, 114, 82, 249, 124, 94, 97, 20, 42, + 10, 34, 69, 241, 225, 167, 10, 114, 19, 149, 187, 22, 171, 145, 123, 118, 195, 6, 128, 84, 152, + 250, 85, 209, 47, 21, 37, 37, 171, 54, 17, 215, 157, 250, 147, 144, 148, 201, 72, 217, 172, 52, + 60, 44, 133, 85, 187, 138, 180, 224, 133, 169, 7, 104, 21, 0, 154, 77, 16, 234, 1, 215, 87, 65, + 82, 85, 174, 132, 14, 163, 80, 187, 119, 13, 43, 8, 74, 181, 252, 88, 133, 40, 140, 127, 213, + 168, 203, 164, 97, 79, 1, 124, 74, 31, 26, 49, 70, 27, 106, 58, 209, 68, 66, 234, 93, 88, 189, + 175, 61, 181, 230, 134, 91, 117, 37, 143, 66, 3, 208, 116, 62, 167, 117, 163, 198, 104, 176, + 42, 173, 51, 182, 218, 189, 107, 119, 173, 7, 127, 25, 163, 193, 207, 105, 221, 40, 1, 96, 30, + 108, 42, 173, 249, 152, 100, 174, 148, 108, 237, 6, 205, 132, 47, 181, 183, 87, 250, 93, 71, + 101, 181, 238, 246, 240, 218, 79, 208, 38, 0, 52, 171, 77, 165, 53, 215, 75, 246, 253, 146, 42, + 58, 104, 142, 79, 142, 43, 8, 130, 26, 126, 18, 59, 38, 171, 15, 79, 125, 158, 198, 213, 224, + 183, 1, 26, 123, 123, 160, 91, 63, 160, 91, 62, 87, 74, 148, 78, 116, 108, 144, 158, 38, 231, + 248, 146, 126, 84, 177, 201, 182, 181, 73, 227, 227, 51, 95, 85, 164, 151, 25, 197, 71, 188, + 103, 37, 54, 126, 126, 111, 105, 226, 137, 187, 53, 80, 146, 214, 210, 33, 0, 52, 49, 99, 111, + 15, 116, 219, 7, 116, 203, 157, 71, 235, 217, 86, 142, 107, 164, 159, 204, 244, 93, 115, 185, + 92, 165, 103, 244, 124, 41, 14, 166, 235, 217, 137, 82, 98, 243, 173, 186, 178, 216, 232, 61, + 187, 41, 158, 3, 112, 171, 174, 44, 170, 164, 71, 166, 251, 249, 37, 26, 72, 244, 250, 233, 10, + 86, 173, 188, 178, 45, 14, 242, 247, 15, 104, 128, 199, 79, 1, 192, 12, 122, 246, 128, 6, 188, + 161, 50, 122, 118, 88, 225, 189, 255, 225, 32, 127, 255, 212, 78, 89, 115, 227, 54, 192, 89, + 85, 141, 178, 1, 64, 189, 176, 150, 26, 180, 236, 17, 128, 185, 138, 99, 233, 43, 55, 118, 149, + 247, 162, 49, 231, 160, 149, 143, 47, 151, 0, 128, 218, 13, 248, 70, 95, 185, 115, 249, 115, + 237, 120, 172, 71, 71, 188, 71, 123, 186, 215, 199, 244, 108, 2, 192, 127, 7, 128, 200, 232, + 155, 159, 237, 44, 243, 85, 157, 20, 14, 0, 230, 35, 0, 196, 210, 55, 191, 184, 140, 66, 204, + 17, 199, 178, 1, 0, 32, 0, 0, 0, 0, 2, 64, 211, 56, 45, 82, 57, 39, 136, 42, 43, 222, 255, 7, + 0, 80, 255, 125, 51, 222, 63, 102, 16, 0, 154, 193, 221, 186, 52, 146, 244, 228, 60, 77, 254, + 183, 3, 26, 32, 0, 0, 192, 12, 237, 239, 153, 155, 231, 105, 242, 155, 247, 143, 25, 77, 175, + 133, 46, 2, 52, 159, 150, 236, 45, 181, 158, 170, 149, 253, 52, 155, 115, 115, 89, 237, 13, + 190, 34, 54, 122, 139, 145, 186, 90, 123, 155, 170, 57, 191, 223, 31, 188, 235, 240, 109, 76, + 35, 142, 53, 95, 222, 20, 174, 249, 6, 37, 106, 38, 246, 211, 146, 249, 204, 252, 76, 183, 69, + 70, 197, 22, 90, 153, 204, 234, 196, 134, 235, 173, 213, 117, 53, 106, 210, 177, 53, 230, 198, + 59, 74, 215, 174, 147, 12, 119, 169, 54, 137, 254, 196, 224, 122, 89, 173, 153, 237, 182, 115, + 252, 27, 142, 151, 113, 185, 5, 233, 136, 91, 104, 108, 181, 237, 171, 219, 230, 210, 204, 254, + 102, 83, 176, 246, 26, 42, 217, 84, 61, 251, 99, 214, 234, 35, 181, 234, 217, 50, 230, 166, + 219, 75, 215, 174, 105, 149, 158, 221, 114, 157, 104, 117, 242, 134, 85, 54, 118, 95, 41, 107, + 187, 171, 86, 84, 99, 247, 202, 177, 223, 217, 84, 188, 238, 9, 54, 226, 38, 26, 252, 221, 245, + 175, 151, 99, 190, 54, 151, 247, 32, 0, 84, 47, 0, 72, 178, 198, 154, 215, 113, 36, 160, 249, + 122, 182, 98, 243, 10, 107, 205, 2, 122, 118, 101, 181, 220, 225, 202, 253, 11, 152, 129, 25, + 179, 24, 93, 204, 187, 24, 186, 235, 123, 135, 198, 26, 251, 78, 73, 4, 0, 122, 54, 102, 128, + 219, 0, 129, 25, 239, 37, 104, 201, 220, 222, 64, 50, 108, 113, 71, 45, 112, 5, 142, 73, 190, + 128, 66, 2, 4, 0, 160, 226, 67, 212, 92, 94, 156, 200, 250, 83, 131, 28, 166, 29, 255, 253, + 246, 196, 188, 46, 35, 128, 0, 0, 160, 226, 58, 79, 238, 162, 8, 199, 172, 81, 7, 69, 0, 106, + 132, 91, 150, 128, 106, 167, 108, 223, 81, 247, 25, 11, 148, 89, 146, 161, 24, 199, 208, 182, + 180, 77, 138, 173, 246, 62, 180, 79, 113, 192, 227, 51, 0, 2, 0, 208, 8, 123, 175, 167, 116, + 77, 29, 230, 63, 100, 240, 79, 118, 37, 101, 60, 142, 76, 207, 56, 4, 28, 215, 174, 204, 226, + 140, 138, 35, 165, 195, 66, 64, 48, 30, 104, 228, 177, 17, 138, 4, 16, 0, 128, 250, 145, 238, + 77, 42, 185, 32, 69, 33, 42, 192, 120, 142, 82, 189, 135, 215, 178, 152, 44, 74, 143, 81, 31, + 160, 18, 184, 6, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, + 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, + 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, + 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, + 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, + 0, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 128, 0, 0, 0, 0, 154, 152, 215, 138, 31, 122, 181, 6, 218, + 173, 146, 126, 181, 222, 191, 77, 94, 233, 70, 93, 59, 201, 234, 5, 0, 245, 223, 179, 141, 138, + 193, 38, 13, 76, 16, 0, 154, 216, 229, 254, 13, 231, 24, 153, 219, 173, 204, 203, 170, 57, 157, + 73, 197, 234, 215, 224, 79, 141, 181, 31, 218, 20, 174, 251, 33, 155, 47, 0, 204, 98, 224, 247, + 55, 156, 109, 101, 111, 183, 210, 239, 84, 115, 58, 86, 105, 245, 107, 240, 167, 214, 154, 171, + 239, 8, 215, 252, 160, 85, 234, 219, 50, 167, 0, 46, 79, 108, 60, 195, 200, 249, 145, 170, 60, + 248, 31, 228, 165, 214, 152, 111, 175, 78, 12, 158, 202, 102, 12, 0, 229, 185, 34, 177, 254, + 116, 43, 251, 35, 85, 121, 240, 63, 184, 103, 27, 99, 191, 117, 69, 98, 253, 233, 4, 128, 38, + 99, 172, 253, 180, 164, 100, 141, 39, 155, 178, 178, 159, 98, 83, 6, 128, 242, 196, 86, 159, + 146, 148, 170, 117, 207, 222, 63, 93, 2, 64, 243, 176, 70, 178, 23, 206, 211, 164, 127, 119, + 106, 250, 0, 128, 153, 247, 108, 115, 209, 60, 237, 46, 182, 76, 207, 110, 137, 0, 112, 137, + 174, 247, 37, 37, 230, 105, 242, 169, 1, 93, 239, 178, 65, 3, 192, 204, 236, 239, 153, 201, + 121, 154, 124, 98, 255, 152, 65, 0, 0, 0, 0, 4, 0, 0, 0, 208, 4, 60, 74, 48, 37, 211, 25, 151, + 247, 130, 248, 185, 223, 207, 141, 83, 70, 0, 168, 105, 207, 206, 134, 7, 181, 227, 242, 250, + 119, 97, 50, 65, 1, 9, 0, 251, 139, 224, 91, 13, 254, 124, 123, 121, 47, 218, 182, 237, 192, + 255, 126, 240, 53, 23, 42, 142, 184, 206, 15, 0, 106, 193, 113, 173, 6, 255, 237, 71, 7, 254, + 190, 125, 251, 118, 89, 107, 103, 252, 250, 155, 222, 243, 22, 69, 33, 7, 192, 169, 192, 108, + 148, 177, 162, 1, 0, 64, 0, 104, 22, 81, 72, 13, 0, 160, 78, 184, 46, 55, 90, 205, 70, 195, + 159, 2, 120, 127, 106, 227, 138, 48, 138, 62, 106, 100, 206, 149, 212, 62, 205, 175, 85, 246, + 248, 124, 161, 80, 214, 175, 15, 249, 233, 199, 251, 53, 56, 221, 97, 131, 9, 73, 191, 136, + 141, 123, 227, 103, 75, 215, 60, 194, 42, 9, 160, 153, 205, 164, 103, 15, 149, 217, 179, 83, + 169, 148, 38, 38, 42, 247, 40, 255, 94, 63, 253, 155, 163, 245, 108, 43, 123, 191, 53, 222, + 198, 70, 239, 217, 13, 29, 0, 46, 247, 54, 92, 16, 69, 241, 189, 70, 166, 189, 102, 19, 181, + 86, 26, 27, 47, 247, 85, 43, 142, 241, 243, 51, 29, 27, 253, 89, 191, 63, 248, 170, 219, 131, + 181, 63, 166, 69, 0, 104, 70, 239, 243, 54, 158, 31, 69, 241, 125, 70, 38, 91, 201, 247, 205, + 118, 116, 104, 114, 114, 178, 172, 235, 0, 230, 210, 179, 141, 204, 153, 198, 70, 127, 182, + 218, 91, 255, 234, 70, 254, 190, 151, 134, 61, 5, 48, 160, 1, 207, 24, 251, 119, 71, 217, 235, + 175, 206, 224, 63, 60, 44, 133, 85, 57, 5, 144, 145, 244, 119, 151, 232, 46, 142, 101, 1, 104, + 58, 151, 232, 46, 215, 49, 241, 223, 75, 202, 86, 250, 189, 125, 207, 83, 79, 79, 143, 140, + 106, 122, 49, 118, 218, 26, 211, 208, 61, 187, 97, 3, 192, 179, 126, 250, 108, 73, 171, 106, + 54, 193, 124, 94, 218, 57, 52, 245, 223, 234, 57, 165, 199, 223, 124, 38, 173, 162, 249, 89, + 73, 113, 16, 115, 65, 41, 90, 70, 159, 191, 245, 44, 73, 39, 85, 235, 253, 51, 153, 140, 22, + 47, 89, 164, 116, 58, 37, 83, 187, 28, 112, 82, 175, 191, 249, 236, 70, 93, 38, 13, 123, 10, + 192, 88, 219, 83, 169, 165, 236, 167, 15, 105, 194, 81, 36, 77, 76, 72, 133, 226, 212, 5, 127, + 81, 116, 212, 70, 157, 72, 198, 42, 228, 42, 19, 2, 173, 117, 122, 105, 21, 205, 61, 242, 143, + 109, 29, 215, 216, 227, 35, 138, 74, 177, 140, 103, 212, 126, 92, 187, 186, 79, 237, 150, 241, + 184, 149, 20, 205, 43, 180, 182, 199, 169, 208, 42, 158, 72, 69, 71, 238, 229, 126, 66, 11, 23, + 246, 201, 90, 171, 48, 12, 21, 199, 177, 10, 133, 130, 38, 198, 39, 20, 197, 207, 189, 198, 75, + 68, 21, 187, 13, 208, 90, 211, 176, 61, 219, 105, 220, 25, 119, 42, 214, 45, 87, 158, 91, 124, + 238, 47, 185, 188, 244, 204, 51, 210, 232, 168, 84, 44, 76, 29, 238, 63, 198, 94, 218, 9, 167, + 142, 85, 236, 115, 185, 181, 204, 174, 168, 185, 145, 199, 70, 180, 239, 161, 189, 138, 74, 83, + 15, 46, 177, 161, 213, 248, 214, 113, 13, 223, 191, 155, 226, 160, 169, 85, 178, 183, 173, 56, + 253, 232, 61, 215, 24, 35, 223, 247, 149, 76, 38, 213, 217, 217, 169, 37, 75, 151, 42, 157, 78, + 31, 248, 249, 146, 149, 195, 117, 57, 22, 17, 0, 106, 204, 79, 90, 253, 209, 218, 145, 169, + 191, 148, 138, 210, 240, 238, 178, 15, 203, 254, 193, 59, 158, 146, 231, 115, 40, 23, 199, 216, + 3, 154, 12, 52, 246, 196, 232, 17, 127, 150, 27, 202, 43, 63, 148, 163, 72, 192, 49, 120, 126, + 172, 63, 126, 223, 150, 242, 6, 58, 199, 168, 183, 183, 87, 137, 196, 212, 19, 0, 47, 188, 248, + 215, 114, 189, 184, 229, 107, 217, 210, 1, 96, 241, 73, 129, 250, 191, 48, 164, 37, 171, 74, + 83, 255, 176, 111, 100, 86, 239, 179, 252, 180, 113, 93, 117, 243, 175, 181, 100, 197, 36, 91, + 39, 166, 85, 220, 87, 60, 106, 182, 44, 236, 41, 82, 36, 224, 40, 150, 156, 144, 211, 234, 245, + 15, 107, 241, 242, 242, 195, 178, 49, 70, 221, 221, 221, 7, 142, 0, 188, 229, 186, 111, 104, + 225, 178, 125, 173, 29, 166, 154, 245, 131, 157, 248, 146, 162, 222, 54, 56, 124, 212, 61, 255, + 206, 190, 131, 206, 35, 133, 161, 84, 156, 125, 3, 62, 225, 212, 49, 125, 248, 206, 251, 53, + 186, 39, 161, 160, 52, 125, 174, 250, 135, 193, 83, 244, 228, 131, 29, 108, 201, 45, 40, 14, + 143, 126, 148, 200, 70, 28, 69, 66, 235, 90, 249, 162, 49, 189, 125, 237, 99, 211, 247, 236, + 68, 172, 206, 158, 210, 156, 166, 145, 76, 38, 229, 186, 174, 162, 40, 210, 146, 149, 123, 244, + 142, 143, 127, 77, 19, 35, 105, 133, 193, 244, 215, 112, 125, 253, 11, 231, 235, 233, 199, 250, + 8, 0, 141, 36, 145, 142, 213, 187, 172, 140, 219, 245, 42, 244, 116, 191, 99, 173, 160, 137, + 100, 196, 150, 14, 0, 71, 232, 141, 189, 75, 10, 85, 159, 142, 231, 249, 138, 162, 231, 250, + 112, 123, 215, 209, 239, 236, 242, 19, 205, 251, 228, 87, 30, 5, 124, 96, 247, 139, 189, 47, 0, + 104, 118, 134, 81, 143, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, + 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, + 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 32, 0, 0, 0, 0, 2, 0, 128, 202, 48, 134, 26, 0, 32, 0, 0, 173, 183, 177, 249, 238, 209, 127, + 158, 96, 115, 4, 64, 0, 0, 154, 78, 178, 39, 37, 227, 78, 127, 24, 32, 221, 151, 166, 72, 0, 8, + 0, 64, 179, 113, 147, 142, 186, 79, 235, 150, 142, 144, 1, 58, 86, 100, 149, 236, 78, 82, 36, + 0, 53, 227, 81, 2, 160, 118, 178, 203, 179, 74, 116, 248, 26, 249, 237, 168, 194, 137, 80, 110, + 202, 85, 199, 138, 14, 101, 150, 102, 40, 14, 0, 2, 0, 208, 204, 146, 11, 82, 90, 244, 178, 20, + 133, 0, 48, 175, 56, 5, 0, 0, 0, 1, 160, 133, 25, 74, 1, 0, 205, 46, 142, 99, 138, 176, 95, + 211, 158, 2, 216, 179, 205, 215, 55, 63, 219, 57, 237, 207, 179, 189, 145, 78, 250, 157, 130, + 122, 94, 16, 78, 253, 67, 194, 159, 251, 52, 135, 146, 122, 252, 254, 110, 77, 140, 76, 255, + 94, 123, 159, 229, 208, 47, 0, 28, 169, 55, 126, 243, 139, 203, 166, 239, 217, 221, 37, 157, + 116, 246, 168, 122, 22, 23, 102, 61, 13, 107, 173, 194, 32, 60, 240, 247, 209, 225, 54, 109, + 255, 205, 34, 77, 142, 78, 127, 7, 206, 200, 174, 44, 1, 160, 209, 236, 218, 234, 233, 43, 55, + 118, 29, 245, 119, 28, 79, 122, 221, 234, 81, 189, 254, 3, 35, 83, 71, 0, 218, 218, 164, 201, + 201, 89, 77, 239, 27, 95, 60, 78, 95, 255, 251, 229, 10, 3, 158, 246, 2, 0, 101, 247, 236, 29, + 105, 125, 229, 206, 229, 71, 239, 217, 142, 213, 107, 223, 186, 93, 111, 120, 199, 83, 179, + 154, 70, 46, 151, 59, 112, 4, 224, 167, 95, 59, 77, 223, 191, 231, 44, 69, 97, 235, 30, 253, + 109, 233, 227, 222, 113, 40, 125, 237, 150, 78, 253, 234, 222, 253, 87, 96, 119, 117, 73, 174, + 91, 246, 251, 220, 255, 221, 133, 250, 127, 119, 174, 96, 240, 7, 128, 106, 246, 236, 216, 232, + 235, 255, 112, 188, 126, 249, 189, 133, 101, 191, 54, 12, 35, 141, 140, 140, 72, 146, 126, 251, + 203, 101, 250, 222, 221, 231, 180, 244, 224, 223, 242, 1, 224, 191, 221, 119, 251, 254, 83, 5, + 174, 43, 45, 94, 44, 37, 203, 59, 76, 127, 239, 63, 46, 163, 136, 0, 80, 171, 158, 253, 79, + 229, 245, 220, 98, 161, 168, 93, 67, 59, 21, 69, 145, 36, 233, 135, 247, 188, 136, 34, 170, + 129, 79, 1, 68, 178, 81, 165, 210, 203, 174, 45, 7, 157, 179, 119, 93, 105, 81, 159, 84, 42, + 73, 133, 130, 20, 69, 82, 24, 74, 197, 162, 52, 205, 197, 35, 195, 59, 42, 247, 4, 55, 35, 27, + 177, 90, 2, 104, 54, 70, 54, 178, 149, 234, 217, 219, 167, 239, 185, 214, 90, 21, 10, 69, 133, + 97, 168, 56, 10, 149, 47, 22, 85, 42, 22, 159, 247, 59, 251, 134, 58, 42, 58, 22, 17, 0, 106, + 61, 227, 110, 244, 84, 28, 187, 21, 121, 175, 56, 60, 194, 63, 38, 18, 83, 127, 14, 252, 82, + 44, 141, 142, 73, 227, 99, 135, 175, 0, 81, 229, 14, 253, 199, 94, 188, 69, 33, 205, 2, 64, + 115, 177, 110, 252, 148, 226, 202, 236, 182, 77, 215, 115, 199, 198, 198, 53, 54, 54, 162, 56, + 62, 122, 212, 136, 227, 202, 245, 108, 215, 109, 220, 158, 221, 176, 167, 0, 110, 43, 126, 248, + 113, 43, 253, 103, 237, 42, 229, 72, 221, 93, 82, 119, 119, 245, 54, 16, 233, 219, 183, 23, + 174, 123, 146, 86, 1, 160, 217, 108, 42, 94, 247, 132, 100, 190, 91, 173, 247, 223, 183, 111, + 159, 70, 70, 246, 29, 115, 240, 175, 176, 239, 76, 125, 46, 142, 0, 212, 156, 239, 233, 173, + 97, 168, 127, 145, 244, 210, 154, 77, 52, 155, 149, 242, 249, 169, 211, 3, 149, 245, 107, 207, + 215, 159, 43, 104, 236, 141, 188, 63, 177, 241, 76, 201, 190, 93, 214, 30, 39, 201, 85, 115, + 57, 133, 54, 94, 247, 94, 216, 239, 15, 222, 213, 100, 159, 41, 146, 49, 79, 59, 86, 95, 188, + 45, 88, 115, 127, 67, 31, 5, 240, 188, 183, 153, 176, 244, 47, 146, 121, 89, 37, 223, 183, 80, + 200, 107, 124, 124, 188, 214, 31, 231, 33, 235, 249, 111, 111, 228, 158, 221, 208, 1, 224, 214, + 252, 218, 167, 7, 52, 112, 193, 206, 68, 234, 79, 141, 204, 153, 154, 246, 136, 134, 113, 101, + 237, 53, 21, 13, 1, 229, 4, 0, 163, 141, 146, 166, 123, 250, 68, 108, 100, 30, 8, 75, 157, 255, + 122, 123, 240, 190, 134, 30, 254, 251, 253, 245, 87, 200, 198, 55, 75, 242, 5, 204, 143, 94, + 73, 151, 52, 221, 167, 178, 86, 177, 244, 151, 151, 251, 131, 87, 221, 17, 172, 189, 165, 81, + 63, 198, 29, 249, 171, 119, 92, 162, 187, 46, 88, 152, 216, 250, 167, 86, 246, 172, 233, 123, + 182, 28, 89, 93, 59, 211, 247, 29, 31, 159, 168, 236, 140, 26, 115, 163, 166, 63, 183, 31, 91, + 217, 95, 199, 165, 238, 127, 249, 92, 131, 247, 236, 150, 184, 111, 237, 18, 13, 36, 122, 253, + 116, 113, 218, 20, 228, 91, 221, 252, 200, 182, 50, 242, 120, 36, 237, 216, 113, 224, 175, 31, + 124, 205, 133, 138, 143, 114, 29, 192, 162, 32, 239, 15, 104, 160, 169, 207, 236, 95, 225, 111, + 56, 55, 150, 253, 137, 90, 248, 251, 37, 22, 95, 176, 72, 201, 5, 60, 232, 169, 154, 138, 123, + 139, 218, 249, 131, 157, 173, 92, 130, 192, 200, 188, 116, 83, 176, 230, 87, 205, 252, 33, 7, + 52, 224, 13, 249, 233, 105, 7, 87, 199, 181, 250, 244, 55, 190, 127, 224, 239, 59, 118, 236, + 56, 112, 133, 255, 76, 220, 244, 158, 183, 28, 245, 22, 192, 225, 32, 159, 188, 91, 3, 165, + 102, 95, 153, 184, 13, 112, 54, 92, 151, 26, 28, 26, 137, 165, 119, 137, 47, 151, 2, 170, 205, + 151, 236, 59, 41, 195, 33, 253, 135, 199, 251, 206, 10, 13, 91, 146, 181, 210, 246, 135, 18, + 229, 189, 104, 103, 251, 65, 111, 64, 13, 173, 213, 113, 166, 213, 159, 131, 228, 240, 32, 168, + 106, 227, 43, 59, 36, 89, 203, 131, 71, 172, 180, 253, 241, 231, 122, 240, 206, 161, 5, 83, + 141, 188, 140, 158, 15, 2, 128, 36, 41, 10, 141, 54, 92, 188, 164, 204, 87, 45, 161, 112, 7, + 55, 102, 217, 150, 30, 253, 140, 35, 249, 109, 92, 250, 80, 245, 134, 213, 230, 203, 56, 146, + 109, 225, 29, 62, 171, 150, 143, 218, 138, 99, 163, 13, 253, 231, 176, 65, 204, 117, 159, 133, + 18, 0, 115, 215, 190, 60, 43, 199, 103, 115, 170, 122, 195, 242, 29, 181, 159, 144, 165, 16, 0, + 71, 0, 128, 249, 222, 245, 151, 218, 151, 101, 213, 125, 106, 119, 77, 38, 87, 28, 41, 42, 191, + 51, 175, 168, 84, 95, 15, 31, 115, 19, 142, 210, 139, 50, 74, 118, 39, 171, 62, 173, 238, 211, + 186, 37, 35, 141, 111, 25, 231, 244, 27, 64, 0, 64, 189, 235, 88, 213, 169, 100, 87, 162, 185, + 62, 148, 145, 18, 157, 9, 121, 233, 218, 108, 70, 35, 191, 217, 167, 209, 39, 198, 234, 118, + 208, 27, 253, 237, 152, 58, 78, 236, 152, 26, 160, 171, 89, 118, 199, 104, 193, 233, 11, 212, + 177, 162, 67, 165, 177, 160, 233, 78, 232, 22, 71, 74, 26, 123, 98, 148, 166, 1, 2, 64, 37, + 220, 173, 129, 82, 191, 6, 71, 37, 117, 206, 195, 228, 247, 54, 251, 45, 128, 51, 145, 92, 144, + 84, 102, 81, 154, 45, 110, 150, 114, 59, 243, 26, 253, 237, 88, 221, 207, 231, 216, 230, 49, + 37, 123, 82, 53, 89, 214, 94, 198, 147, 151, 105, 194, 22, 198, 197, 164, 26, 208, 64, 216, + 175, 193, 125, 146, 186, 231, 97, 242, 35, 173, 112, 11, 160, 212, 82, 215, 0, 216, 127, 159, + 159, 157, 68, 251, 111, 12, 95, 152, 171, 241, 173, 99, 204, 43, 90, 138, 157, 167, 158, 109, + 91, 168, 103, 183, 76, 0, 8, 130, 104, 141, 145, 249, 77, 141, 87, 165, 71, 220, 32, 94, 199, + 166, 140, 185, 10, 115, 141, 243, 133, 99, 81, 142, 47, 180, 68, 37, 154, 182, 187, 86, 210, + 163, 53, 158, 234, 163, 251, 167, 219, 18, 90, 230, 26, 128, 59, 245, 145, 161, 15, 5, 55, 157, + 155, 247, 130, 53, 198, 232, 213, 146, 169, 226, 49, 74, 155, 183, 86, 223, 72, 135, 137, 27, + 111, 214, 213, 121, 182, 100, 180, 214, 174, 27, 87, 230, 97, 238, 238, 208, 181, 187, 62, 20, + 220, 116, 94, 193, 11, 175, 149, 177, 191, 95, 237, 158, 45, 107, 190, 153, 10, 189, 141, 173, + 212, 179, 91, 234, 34, 192, 155, 117, 117, 94, 161, 174, 151, 116, 61, 155, 23, 0, 52, 68, 207, + 254, 184, 164, 143, 83, 141, 202, 227, 198, 101, 0, 0, 90, 16, 183, 1, 2, 77, 224, 181, 235, + 94, 172, 246, 222, 218, 124, 17, 209, 196, 112, 65, 247, 173, 255, 57, 69, 7, 8, 0, 0, 230, + 219, 217, 111, 94, 169, 222, 149, 29, 53, 153, 214, 158, 45, 99, 4, 0, 128, 0, 128, 250, 102, + 205, 234, 196, 134, 139, 101, 245, 114, 43, 85, 251, 249, 169, 103, 81, 111, 160, 6, 140, 206, + 238, 247, 7, 63, 91, 213, 206, 33, 59, 41, 227, 252, 96, 79, 105, 249, 191, 221, 173, 75, 185, + 173, 131, 0, 128, 70, 242, 46, 13, 102, 19, 254, 134, 123, 172, 213, 171, 168, 6, 208, 84, 150, + 75, 122, 111, 117, 51, 134, 145, 172, 253, 208, 66, 127, 203, 143, 86, 7, 3, 175, 217, 164, + 129, 9, 202, 222, 124, 184, 8, 176, 73, 37, 125, 221, 104, 196, 224, 15, 96, 46, 71, 2, 116, + 190, 245, 51, 27, 168, 4, 1, 0, 13, 98, 181, 6, 218, 37, 189, 147, 74, 0, 168, 64, 12, 184, + 236, 189, 26, 200, 80, 135, 230, 195, 41, 128, 38, 100, 146, 137, 165, 54, 86, 93, 125, 57, 61, + 223, 96, 62, 131, 54, 27, 89, 141, 62, 49, 170, 252, 206, 188, 226, 240, 249, 95, 120, 31, 21, + 26, 231, 235, 36, 194, 124, 168, 29, 223, 222, 241, 252, 61, 13, 223, 81, 186, 47, 173, 142, + 19, 59, 248, 218, 228, 99, 109, 43, 245, 55, 75, 9, 47, 153, 92, 170, 162, 158, 96, 233, 16, 0, + 80, 231, 2, 43, 199, 173, 179, 121, 242, 179, 62, 11, 230, 104, 131, 127, 104, 245, 236, 247, + 159, 85, 48, 30, 52, 254, 103, 137, 165, 48, 119, 120, 96, 41, 141, 150, 148, 219, 153, 211, + 146, 139, 22, 203, 184, 132, 128, 105, 155, 114, 29, 110, 43, 70, 150, 5, 214, 132, 88, 168, + 168, 186, 246, 101, 237, 53, 251, 202, 220, 70, 53, 242, 248, 72, 83, 12, 254, 199, 12, 167, + 227, 129, 70, 30, 231, 203, 130, 142, 26, 150, 51, 30, 223, 156, 9, 2, 0, 26, 95, 170, 47, 165, + 238, 211, 187, 41, 196, 49, 228, 158, 205, 241, 89, 113, 64, 207, 57, 189, 202, 44, 230, 180, + 59, 170, 139, 221, 178, 22, 228, 38, 93, 117, 157, 210, 85, 221, 137, 24, 201, 239, 72, 40, + 217, 149, 160, 224, 51, 16, 7, 241, 156, 94, 159, 104, 171, 221, 166, 236, 103, 230, 54, 173, + 184, 196, 109, 229, 199, 220, 51, 243, 29, 45, 124, 201, 66, 21, 71, 138, 10, 198, 2, 169, 202, + 223, 175, 52, 242, 248, 136, 162, 2, 203, 133, 0, 128, 150, 104, 46, 237, 39, 180, 83, 136, + 102, 217, 91, 92, 222, 161, 108, 95, 237, 246, 22, 179, 125, 25, 45, 88, 150, 213, 222, 237, + 227, 20, 191, 202, 146, 93, 73, 37, 187, 146, 85, 159, 206, 216, 147, 99, 138, 68, 0, 104, 185, + 177, 128, 18, 0, 141, 203, 24, 233, 226, 245, 47, 175, 233, 93, 22, 198, 72, 111, 252, 216, 75, + 185, 179, 3, 32, 0, 0, 152, 15, 189, 43, 59, 116, 217, 23, 95, 167, 83, 94, 121, 92, 205, 167, + 125, 230, 155, 86, 232, 178, 47, 190, 78, 61, 43, 58, 88, 16, 64, 131, 226, 20, 0, 208, 0, 174, + 250, 246, 155, 149, 234, 120, 238, 122, 138, 68, 218, 87, 182, 111, 126, 175, 20, 63, 229, 149, + 199, 105, 221, 79, 46, 213, 248, 174, 188, 74, 249, 231, 238, 96, 40, 142, 7, 186, 249, 149, + 247, 176, 208, 0, 2, 0, 128, 185, 90, 176, 44, 171, 116, 13, 206, 5, 207, 198, 84, 16, 121, 46, + 140, 20, 70, 75, 44, 48, 160, 1, 112, 10, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, 128, 166, 196, 53, + 0, 53, 116, 133, 62, 217, 19, 251, 222, 159, 88, 99, 143, 55, 213, 172, 189, 85, 15, 213, 6, + 80, 41, 81, 236, 94, 211, 159, 24, 220, 91, 189, 41, 216, 72, 214, 121, 202, 11, 194, 123, 110, + 213, 135, 119, 83, 113, 2, 64, 83, 233, 247, 54, 190, 218, 154, 248, 31, 37, 187, 200, 88, 234, + 1, 160, 113, 24, 233, 61, 213, 125, 26, 161, 145, 100, 21, 250, 238, 134, 213, 118, 195, 165, + 155, 194, 53, 223, 160, 234, 213, 199, 41, 128, 26, 88, 173, 13, 139, 101, 226, 255, 107, 165, + 69, 84, 3, 0, 166, 213, 105, 141, 253, 167, 119, 235, 175, 233, 149, 4, 128, 230, 96, 61, 251, + 78, 137, 195, 242, 0, 48, 3, 189, 9, 207, 253, 11, 202, 64, 0, 104, 14, 70, 43, 235, 108, 126, + 0, 160, 126, 123, 130, 113, 86, 178, 80, 8, 0, 77, 178, 109, 217, 186, 170, 179, 223, 230, 179, + 80, 0, 28, 224, 101, 234, 171, 39, 88, 89, 151, 165, 66, 0, 64, 21, 130, 126, 118, 121, 150, + 66, 0, 56, 160, 99, 121, 150, 3, 131, 4, 0, 52, 245, 224, 239, 25, 45, 56, 107, 129, 82, 11, + 83, 20, 3, 192, 1, 169, 190, 148, 22, 156, 217, 35, 227, 50, 36, 180, 18, 110, 3, 172, 3, 153, + 37, 153, 170, 127, 231, 183, 147, 48, 74, 247, 101, 228, 166, 56, 178, 86, 9, 54, 140, 181, + 239, 177, 17, 229, 159, 205, 43, 14, 227, 185, 191, 95, 16, 183, 78, 237, 130, 88, 219, 239, + 221, 62, 247, 117, 218, 115, 148, 94, 156, 86, 231, 201, 93, 114, 19, 12, 92, 115, 213, 126, + 66, 187, 210, 139, 210, 202, 13, 229, 100, 131, 234, 222, 171, 92, 28, 41, 42, 247, 108, 142, + 162, 19, 0, 144, 238, 75, 171, 253, 248, 118, 10, 209, 40, 3, 88, 100, 245, 236, 247, 135, 20, + 140, 243, 165, 55, 179, 170, 95, 133, 2, 79, 28, 196, 26, 223, 50, 174, 194, 112, 81, 75, 46, + 90, 44, 227, 114, 16, 123, 174, 220, 148, 171, 236, 9, 213, 63, 69, 56, 177, 109, 130, 0, 80, + 7, 136, 205, 64, 153, 198, 54, 143, 49, 248, 215, 145, 96, 188, 164, 209, 205, 99, 20, 2, 32, + 0, 0, 213, 149, 31, 202, 83, 132, 58, 83, 216, 197, 50, 1, 8, 0, 64, 149, 85, 226, 156, 127, + 57, 140, 99, 228, 103, 26, 231, 108, 157, 151, 118, 101, 156, 218, 30, 142, 143, 91, 232, 26, + 10, 128, 0, 0, 180, 136, 149, 231, 47, 150, 151, 104, 156, 139, 55, 189, 132, 171, 19, 94, 194, + 147, 92, 1, 2, 0, 128, 89, 243, 147, 174, 46, 94, 255, 242, 134, 155, 239, 63, 28, 120, 153, + 124, 238, 56, 1, 8, 0, 0, 202, 220, 48, 61, 71, 39, 94, 184, 68, 253, 95, 249, 3, 45, 58, 165, + 187, 225, 230, 255, 248, 243, 22, 234, 131, 223, 186, 88, 171, 126, 119, 169, 28, 143, 54, 3, + 212, 35, 110, 3, 4, 42, 108, 205, 15, 222, 174, 190, 85, 51, 31, 180, 11, 227, 99, 138, 227, + 232, 121, 255, 150, 204, 38, 228, 52, 248, 109, 109, 139, 78, 238, 210, 251, 190, 252, 6, 197, + 145, 85, 241, 144, 187, 38, 194, 32, 212, 206, 161, 157, 51, 126, 175, 209, 167, 115, 250, 210, + 159, 255, 132, 149, 11, 32, 0, 84, 198, 229, 137, 141, 103, 200, 70, 23, 25, 107, 58, 170, 60, + 169, 51, 89, 213, 90, 71, 170, 35, 161, 76, 247, 204, 159, 182, 104, 220, 226, 97, 1, 160, 153, + 56, 174, 81, 250, 144, 7, 93, 133, 129, 171, 100, 126, 230, 207, 159, 247, 219, 216, 87, 105, + 45, 230, 172, 126, 111, 112, 109, 117, 39, 97, 39, 92, 163, 255, 252, 76, 105, 221, 131, 4, + 128, 22, 50, 160, 1, 103, 200, 79, 255, 141, 108, 124, 165, 100, 156, 106, 63, 4, 219, 178, 53, + 3, 64, 57, 93, 243, 37, 50, 122, 73, 149, 67, 134, 34, 43, 219, 239, 15, 126, 126, 81, 144, + 239, 31, 208, 64, 203, 221, 74, 210, 146, 39, 231, 134, 188, 212, 85, 146, 174, 18, 215, 64, 0, + 64, 43, 51, 146, 222, 187, 211, 79, 191, 191, 21, 63, 124, 11, 14, 128, 214, 200, 152, 117, + 172, 247, 0, 0, 73, 50, 70, 215, 17, 0, 90, 192, 85, 250, 84, 167, 164, 133, 117, 151, 65, 1, + 160, 149, 246, 187, 235, 106, 191, 80, 139, 63, 160, 91, 58, 90, 109, 49, 180, 92, 0, 200, 41, + 170, 187, 235, 30, 184, 192, 9, 64, 43, 241, 234, 240, 201, 150, 57, 133, 45, 215, 136, 57, 7, + 62, 207, 146, 221, 73, 37, 202, 184, 98, 28, 0, 26, 190, 239, 45, 72, 201, 207, 250, 20, 130, + 0, 208, 186, 252, 140, 167, 222, 115, 122, 100, 56, 5, 0, 160, 133, 24, 35, 45, 124, 241, 66, + 66, 192, 60, 227, 216, 243, 161, 43, 166, 107, 148, 93, 81, 221, 239, 195, 54, 142, 145, 223, + 238, 43, 179, 56, 195, 119, 152, 3, 104, 205, 29, 160, 118, 95, 75, 126, 119, 137, 38, 159, + 201, 41, 156, 40, 201, 86, 249, 126, 233, 241, 45, 227, 178, 17, 55, 101, 19, 0, 142, 26, 0, + 28, 117, 159, 218, 77, 33, 0, 160, 218, 253, 214, 49, 106, 63, 174, 77, 82, 91, 213, 167, 53, + 185, 109, 66, 17, 1, 224, 121, 56, 5, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, + 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 64, 221, 170, 155, 231, 0, 12, 104, 192, 219, 229, 165, 47, + 138, 141, 89, 97, 170, 57, 95, 54, 108, 231, 219, 119, 0, 0, 7, 75, 250, 225, 95, 244, 107, + 195, 100, 181, 222, 223, 200, 70, 178, 122, 178, 47, 204, 255, 215, 128, 6, 66, 2, 192, 126, + 239, 75, 110, 56, 105, 87, 108, 255, 217, 74, 47, 54, 170, 242, 131, 26, 120, 238, 46, 0, 224, + 208, 125, 67, 217, 155, 170, 251, 254, 146, 140, 52, 228, 167, 30, 185, 194, 249, 228, 197, + 183, 21, 63, 252, 248, 124, 127, 230, 121, 63, 5, 240, 1, 221, 146, 116, 98, 251, 175, 86, 122, + 49, 171, 32, 0, 160, 185, 153, 211, 226, 216, 185, 231, 29, 26, 152, 247, 111, 129, 155, 247, + 0, 16, 248, 249, 75, 37, 157, 193, 74, 1, 0, 104, 149, 16, 144, 73, 100, 46, 110, 249, 0, 96, + 140, 125, 97, 125, 45, 23, 86, 77, 0, 104, 190, 49, 183, 190, 102, 199, 42, 62, 173, 229, 3, + 128, 149, 83, 87, 95, 72, 228, 167, 93, 54, 20, 0, 104, 50, 110, 170, 190, 190, 122, 216, 212, + 193, 216, 199, 109, 128, 135, 104, 91, 214, 78, 17, 0, 160, 233, 122, 123, 27, 69, 32, 0, 76, + 175, 125, 89, 187, 178, 39, 100, 41, 4, 0, 52, 153, 142, 229, 89, 101, 151, 103, 57, 203, 123, + 16, 175, 222, 103, 48, 209, 157, 80, 162, 35, 81, 221, 20, 228, 187, 74, 247, 165, 148, 234, + 73, 177, 70, 0, 64, 51, 50, 210, 130, 23, 45, 80, 102, 105, 155, 242, 187, 114, 138, 131, 184, + 170, 147, 43, 141, 149, 84, 218, 87, 34, 0, 204, 69, 219, 226, 140, 58, 86, 117, 178, 242, 2, + 0, 230, 44, 213, 147, 84, 170, 39, 89, 245, 233, 140, 61, 49, 90, 247, 1, 128, 83, 0, 0, 0, + 180, 32, 2, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 208, + 40, 166, 125, 14, 192, 123, 181, 190, 211, 243, 156, 151, 89, 71, 213, 189, 9, 63, 182, 47, + 228, 209, 76, 0, 128, 86, 98, 99, 251, 194, 254, 196, 134, 75, 170, 59, 141, 120, 44, 14, 245, + 227, 207, 105, 221, 232, 140, 3, 64, 191, 63, 248, 23, 146, 62, 109, 101, 59, 101, 171, 92, 5, + 6, 127, 0, 64, 171, 49, 122, 179, 172, 125, 115, 85, 39, 97, 140, 92, 95, 147, 171, 53, 184, + 102, 83, 176, 118, 211, 161, 63, 63, 236, 20, 64, 191, 183, 241, 213, 146, 254, 86, 18, 143, + 223, 3, 0, 160, 177, 181, 89, 233, 51, 253, 238, 250, 215, 31, 51, 0, 200, 196, 27, 216, 47, 7, + 0, 160, 105, 24, 57, 206, 39, 142, 29, 0, 164, 211, 235, 107, 182, 201, 34, 0, 128, 70, 27, + 114, 235, 109, 236, 178, 47, 154, 73, 0, 72, 212, 211, 44, 187, 105, 151, 21, 9, 0, 208, 80, + 220, 84, 221, 141, 93, 137, 153, 4, 128, 186, 225, 36, 92, 165, 23, 166, 89, 147, 0, 0, 13, 37, + 221, 151, 150, 227, 215, 247, 157, 246, 117, 59, 119, 198, 115, 180, 240, 156, 222, 186, 47, + 32, 0, 0, 135, 13, 174, 190, 163, 222, 115, 235, 123, 12, 243, 202, 125, 65, 239, 137, 189, + 115, 154, 96, 46, 151, 59, 70, 213, 140, 18, 237, 190, 218, 150, 181, 201, 75, 123, 172, 69, + 104, 56, 133, 177, 146, 114, 251, 10, 51, 255, 253, 241, 162, 226, 56, 122, 222, 191, 185, 9, + 87, 137, 76, 115, 172, 255, 165, 92, 168, 168, 244, 252, 207, 23, 6, 161, 138, 99, 193, 140, + 223, 35, 152, 12, 89, 177, 208, 144, 71, 1, 150, 190, 98, 169, 198, 183, 142, 43, 152, 8, 116, + 172, 219, 234, 143, 57, 62, 30, 203, 104, 149, 3, 192, 169, 175, 59, 117, 78, 243, 183, 109, + 219, 54, 214, 10, 52, 181, 13, 23, 252, 67, 69, 222, 231, 184, 179, 122, 245, 7, 3, 47, 211, + 137, 23, 44, 105, 200, 58, 108, 255, 213, 176, 238, 89, 251, 3, 109, 255, 229, 110, 86, 10, + 180, 44, 55, 233, 170, 235, 148, 174, 154, 140, 143, 246, 129, 242, 30, 220, 195, 241, 117, + 160, 78, 61, 253, 192, 176, 62, 127, 233, 215, 181, 227, 215, 123, 26, 114, 222, 111, 123, 227, + 87, 24, 252, 129, 58, 70, 0, 0, 234, 88, 20, 196, 186, 231, 186, 31, 54, 220, 124, 255, 251, + 117, 63, 84, 20, 196, 44, 64, 128, 0, 0, 96, 182, 182, 253, 124, 72, 97, 49, 106, 152, 249, 13, + 139, 145, 158, 250, 197, 46, 22, 28, 64, 0, 0, 154, 108, 163, 169, 241, 85, 189, 214, 74, 65, + 190, 113, 46, 130, 11, 11, 145, 172, 173, 241, 50, 73, 208, 202, 0, 2, 0, 80, 101, 60, 155, + 130, 101, 2, 16, 0, 128, 22, 212, 113, 98, 86, 137, 206, 4, 133, 168, 19, 201, 174, 132, 58, + 86, 118, 80, 8, 160, 76, 220, 104, 15, 148, 201, 120, 142, 22, 95, 184, 88, 99, 79, 140, 105, + 242, 153, 73, 197, 197, 185, 31, 242, 182, 65, 44, 219, 42, 245, 147, 100, 230, 120, 26, 197, + 24, 201, 73, 186, 106, 91, 210, 166, 142, 147, 58, 100, 28, 190, 51, 4, 32, 0, 0, 181, 24, 196, + 28, 163, 206, 147, 59, 213, 121, 114, 101, 190, 53, 123, 251, 189, 219, 101, 91, 228, 170, 121, + 227, 59, 90, 246, 186, 101, 172, 68, 192, 60, 227, 20, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, + 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, + 64, 0, 0, 0, 0, 85, 197, 119, 1, 0, 13, 224, 153, 135, 246, 42, 153, 245, 27, 98, 94, 139, 19, + 1, 11, 12, 32, 0, 0, 168, 132, 59, 254, 248, 171, 20, 1, 64, 69, 113, 10, 0, 0, 0, 2, 0, 0, 0, + 32, 0, 0, 0, 0, 2, 0, 128, 234, 112, 19, 173, 179, 41, 186, 73, 151, 5, 14, 16, 0, 0, 72, 82, + 122, 113, 166, 101, 62, 107, 219, 210, 12, 11, 28, 32, 0, 0, 144, 164, 174, 147, 186, 148, 236, + 74, 52, 253, 231, 76, 116, 39, 212, 177, 170, 147, 5, 14, 212, 1, 110, 3, 4, 234, 128, 241, + 141, 22, 93, 176, 68, 227, 79, 142, 42, 183, 171, 32, 27, 218, 230, 250, 124, 158, 81, 166, 47, + 173, 236, 202, 14, 25, 118, 59, 0, 2, 0, 128, 131, 6, 73, 71, 234, 88, 213, 201, 30, 50, 128, + 154, 32, 139, 3, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, + 0, 0, 0, 64, 0, 0, 0, 0, 245, 163, 236, 7, 1, 61, 122, 239, 163, 115, 154, 96, 46, 151, 163, + 234, 104, 208, 184, 108, 228, 103, 60, 181, 29, 215, 38, 191, 221, 167, 30, 117, 36, 156, 12, + 52, 177, 125, 82, 65, 46, 148, 98, 75, 65, 208, 144, 108, 174, 182, 235, 110, 217, 1, 96, 120, + 243, 48, 75, 9, 45, 109, 108, 243, 168, 122, 207, 238, 85, 230, 5, 109, 20, 163, 14, 228, 158, + 201, 105, 248, 87, 123, 100, 163, 152, 98, 0, 229, 236, 211, 80, 2, 160, 204, 148, 30, 75, 123, + 126, 189, 87, 97, 62, 162, 24, 243, 189, 231, 159, 15, 53, 252, 0, 131, 63, 64, 0, 0, 106, 36, + 14, 99, 77, 62, 61, 65, 33, 230, 217, 228, 211, 57, 217, 144, 193, 31, 152, 141, 35, 157, 2, 8, + 36, 113, 130, 19, 56, 6, 95, 190, 122, 123, 123, 15, 63, 66, 32, 41, 142, 34, 133, 97, 168, 66, + 161, 160, 32, 8, 40, 214, 44, 4, 65, 160, 66, 161, 160, 48, 12, 21, 197, 177, 100, 15, 63, 63, + 90, 28, 41, 81, 40, 96, 102, 74, 51, 9, 0, 15, 75, 58, 155, 90, 1, 199, 72, 207, 158, 175, 76, + 38, 115, 236, 173, 46, 8, 52, 58, 58, 162, 124, 46, 79, 209, 102, 32, 159, 207, 107, 100, 100, + 100, 102, 193, 137, 108, 5, 204, 136, 149, 30, 58, 244, 223, 14, 59, 5, 96, 140, 89, 79, 169, + 128, 202, 73, 248, 190, 22, 246, 46, 84, 111, 111, 175, 140, 225, 172, 219, 180, 13, 42, 182, + 26, 222, 61, 172, 221, 187, 119, 115, 212, 4, 168, 48, 199, 232, 134, 99, 6, 128, 77, 165, 53, + 95, 146, 204, 123, 36, 141, 83, 50, 160, 114, 50, 153, 140, 22, 245, 245, 201, 49, 134, 98, 28, + 58, 248, 219, 88, 67, 187, 134, 148, 203, 115, 155, 48, 80, 97, 147, 86, 250, 192, 166, 210, + 218, 47, 31, 182, 195, 63, 221, 43, 46, 211, 77, 11, 18, 110, 233, 124, 185, 78, 134, 250, 161, + 69, 71, 165, 215, 72, 122, 247, 116, 63, 94, 114, 198, 82, 173, 250, 189, 19, 203, 126, 219, + 220, 100, 78, 195, 123, 184, 157, 246, 96, 195, 195, 195, 179, 123, 70, 200, 211, 146, 221, + 115, 212, 123, 167, 239, 148, 49, 223, 160, 194, 104, 69, 113, 164, 73, 39, 138, 126, 116, 187, + 174, 219, 119, 164, 159, 79, 251, 28, 128, 47, 232, 234, 189, 138, 244, 85, 113, 167, 19, 90, + 212, 229, 254, 250, 94, 163, 202, 239, 173, 103, 218, 50, 74, 77, 166, 84, 40, 20, 40, 178, + 164, 124, 190, 80, 181, 7, 132, 89, 217, 251, 239, 40, 173, 189, 155, 42, 3, 135, 227, 132, 36, + 48, 15, 186, 58, 187, 40, 194, 126, 163, 163, 35, 20, 1, 32, 0, 0, 173, 33, 145, 76, 200, 117, + 189, 150, 175, 67, 24, 133, 42, 149, 184, 149, 15, 32, 0, 0, 45, 36, 149, 74, 181, 124, 13, 56, + 13, 2, 16, 0, 128, 150, 227, 121, 110, 203, 215, 32, 10, 67, 86, 4, 128, 0, 0, 180, 22, 215, + 33, 0, 196, 17, 223, 220, 7, 16, 0, 128, 86, 99, 24, 252, 44, 53, 0, 8, 0, 0, 0, 128, 0, 0, 0, + 0, 8, 0, 0, 0, 128, 0, 0, 0, 0, 8, 0, 0, 0, 128, 0, 0, 0, 0, 8, 0, 0, 0, 128, 0, 0, 0, 0, 8, 0, + 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, + 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, + 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0, + 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 32, 0, 0, 56, 92, 28, 219, 150, 175, 129, 49, 180, + 32, 128, 0, 0, 180, 152, 40, 138, 90, 190, 6, 158, 235, 178, 34, 0, 4, 0, 160, 181, 148, 138, + 165, 150, 175, 129, 239, 39, 88, 17, 0, 2, 0, 208, 90, 123, 255, 197, 18, 1, 32, 153, 74, 202, + 225, 40, 0, 64, 0, 0, 90, 197, 248, 248, 184, 36, 174, 1, 48, 146, 178, 217, 118, 86, 8, 128, + 0, 0, 52, 191, 48, 12, 247, 7, 0, 72, 82, 71, 54, 43, 207, 243, 40, 4, 48, 15, 1, 28, 104, 88, + 171, 189, 245, 47, 151, 49, 55, 90, 233, 92, 73, 201, 90, 78, 123, 201, 25, 75, 181, 234, 247, + 78, 44, 235, 53, 177, 181, 26, 26, 218, 169, 160, 20, 176, 240, 14, 18, 4, 129, 118, 238, 220, + 41, 107, 203, 60, 42, 242, 180, 100, 247, 212, 252, 72, 74, 73, 210, 253, 214, 218, 129, 59, + 194, 117, 247, 177, 244, 192, 17, 0, 160, 198, 222, 231, 110, 120, 131, 53, 230, 63, 173, 116, + 126, 173, 7, 255, 217, 136, 162, 72, 187, 119, 13, 49, 248, 31, 129, 239, 251, 234, 235, 235, + 147, 227, 52, 196, 245, 0, 9, 73, 191, 99, 140, 249, 218, 251, 220, 13, 111, 96, 233, 129, 0, + 0, 212, 208, 128, 6, 60, 199, 196, 159, 147, 212, 16, 35, 198, 100, 46, 167, 161, 157, 59, 85, + 228, 202, 255, 105, 37, 147, 73, 45, 89, 178, 88, 153, 76, 166, 81, 14, 77, 58, 198, 216, 207, + 94, 162, 187, 184, 138, 17, 13, 137, 19, 111, 104, 72, 67, 137, 182, 211, 100, 227, 23, 212, + 231, 220, 89, 69, 81, 172, 48, 10, 85, 204, 23, 148, 203, 229, 84, 10, 216, 235, 159, 9, 215, + 117, 213, 219, 219, 171, 32, 40, 105, 50, 151, 87, 161, 144, 87, 20, 134, 138, 226, 184, 46, + 175, 153, 52, 70, 199, 45, 74, 60, 121, 154, 74, 122, 144, 165, 7, 2, 0, 80, 139, 33, 54, 182, + 89, 51, 207, 187, 137, 185, 226, 164, 182, 109, 219, 198, 194, 168, 2, 223, 79, 168, 171, 51, + 33, 117, 118, 30, 245, 247, 246, 77, 142, 104, 108, 207, 232, 188, 206, 107, 24, 59, 29, 44, + 49, 52, 34, 78, 1, 0, 179, 148, 234, 73, 81, 132, 121, 150, 102, 25, 0, 4, 0, 160, 150, 50, 75, + 51, 74, 45, 100, 240, 153, 247, 16, 214, 151, 82, 102, 73, 134, 66, 0, 179, 192, 41, 0, 96, + 134, 140, 145, 220, 140, 175, 246, 101, 109, 234, 92, 53, 191, 71, 125, 109, 104, 203, 191, + 101, 174, 106, 117, 49, 50, 222, 252, 157, 143, 89, 120, 222, 66, 141, 111, 25, 215, 248, 150, + 49, 5, 249, 144, 231, 43, 1, 4, 0, 180, 178, 228, 130, 164, 22, 95, 176, 184, 233, 62, 87, 110, + 103, 94, 35, 15, 239, 85, 144, 11, 235, 171, 145, 180, 249, 234, 58, 185, 67, 109, 199, 205, + 195, 83, 253, 140, 148, 93, 153, 85, 118, 101, 182, 42, 111, 191, 243, 7, 59, 85, 220, 91, 100, + 163, 2, 1, 0, 192, 252, 152, 216, 54, 161, 61, 15, 236, 169, 203, 121, 11, 39, 3, 13, 255, 114, + 143, 108, 44, 181, 31, 207, 163, 125, 129, 70, 192, 53, 0, 64, 3, 176, 97, 172, 189, 15, 239, + 173, 251, 249, 220, 251, 240, 94, 217, 48, 102, 129, 1, 4, 0, 0, 149, 80, 28, 45, 201, 134, + 245, 127, 114, 219, 134, 86, 165, 81, 30, 118, 4, 16, 0, 0, 84, 108, 96, 109, 20, 113, 200, 85, + 120, 0, 1, 0, 0, 0, 16, 0, 0, 0, 64, 125, 224, 46, 0, 160, 9, 24, 71, 50, 110, 109, 242, 188, + 141, 98, 89, 174, 243, 3, 8, 0, 0, 230, 95, 106, 97, 90, 125, 47, 237, 171, 201, 180, 118, 253, + 116, 151, 242, 67, 121, 138, 14, 16, 0, 128, 41, 151, 232, 46, 183, 199, 219, 114, 149, 49, + 122, 167, 164, 165, 85, 222, 15, 101, 221, 69, 93, 48, 198, 126, 189, 223, 31, 172, 246, 147, + 153, 118, 90, 171, 47, 238, 9, 243, 131, 119, 107, 128, 219, 44, 64, 0, 64, 125, 89, 232, 61, + 121, 183, 53, 230, 98, 42, 129, 22, 147, 173, 193, 52, 186, 141, 209, 199, 123, 188, 204, 121, + 10, 245, 102, 74, 142, 74, 224, 34, 64, 84, 196, 229, 137, 245, 151, 50, 248, 3, 213, 101, 140, + 253, 163, 254, 196, 134, 75, 168, 4, 8, 0, 168, 159, 198, 100, 245, 70, 170, 0, 212, 128, 181, + 108, 107, 32, 0, 160, 158, 122, 146, 211, 89, 87, 129, 100, 30, 191, 157, 14, 77, 22, 110, 235, + 108, 93, 178, 214, 116, 177, 84, 64, 0, 0, 166, 145, 238, 73, 83, 4, 84, 68, 106, 1, 235, 18, + 8, 0, 64, 67, 240, 219, 125, 181, 47, 231, 27, 233, 80, 25, 29, 203, 179, 242, 219, 125, 10, 1, + 2, 0, 80, 175, 140, 103, 148, 61, 33, 171, 197, 23, 46, 150, 227, 177, 106, 163, 66, 235, 149, + 111, 180, 248, 194, 197, 106, 63, 190, 93, 198, 229, 212, 18, 154, 7, 183, 1, 162, 38, 122, + 207, 237, 85, 186, 175, 186, 135, 82, 29, 159, 65, 31, 213, 91, 183, 122, 206, 234, 209, 130, + 179, 122, 100, 131, 234, 62, 6, 49, 191, 43, 175, 225, 251, 135, 41, 58, 8, 0, 104, 146, 6, + 234, 25, 6, 104, 52, 254, 209, 0, 73, 166, 202, 235, 177, 195, 5, 172, 168, 85, 95, 166, 4, 0, + 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, + 0, 0, 0, 1, 0, 0, 0, 204, 31, 158, 4, 8, 204, 65, 84, 136, 148, 223, 149, 87, 92, 170, 238, + 227, 97, 131, 137, 160, 97, 106, 50, 249, 236, 164, 130, 241, 234, 206, 175, 147, 112, 148, + 238, 75, 203, 77, 185, 172, 132, 0, 1, 0, 168, 173, 241, 173, 227, 218, 247, 200, 62, 217, 200, + 82, 140, 131, 3, 192, 246, 73, 77, 106, 178, 234, 211, 49, 142, 212, 245, 194, 110, 117, 156, + 216, 65, 209, 129, 217, 4, 105, 74, 0, 148, 175, 176, 187, 160, 125, 15, 238, 101, 240, 159, + 71, 54, 150, 70, 30, 217, 167, 194, 174, 2, 197, 0, 8, 0, 64, 109, 140, 62, 49, 42, 134, 254, + 58, 8, 1, 146, 70, 55, 143, 82, 8, 128, 0, 0, 212, 70, 253, 157, 147, 55, 77, 56, 165, 70, 93, + 22, 0, 1, 0, 64, 141, 120, 109, 181, 187, 24, 206, 203, 212, 217, 165, 67, 28, 138, 1, 8, 0, + 64, 75, 50, 70, 237, 203, 178, 53, 155, 92, 219, 178, 118, 25, 190, 178, 30, 32, 0, 0, 152, + 199, 13, 216, 115, 212, 123, 78, 143, 18, 29, 126, 205, 166, 153, 232, 76, 104, 193, 217, 189, + 50, 30, 237, 3, 104, 100, 220, 6, 216, 68, 46, 215, 198, 62, 227, 219, 143, 74, 246, 37, 146, + 169, 241, 13, 210, 246, 68, 150, 192, 115, 58, 86, 100, 37, 183, 186, 187, 201, 110, 210, 85, + 219, 210, 182, 121, 185, 23, 190, 253, 184, 54, 165, 122, 146, 202, 63, 155, 87, 88, 12, 171, + 59, 177, 200, 106, 108, 203, 56, 43, 213, 126, 198, 216, 223, 239, 247, 7, 55, 215, 120, 178, + 163, 146, 249, 177, 117, 163, 13, 119, 20, 174, 219, 202, 82, 32, 0, 160, 142, 244, 39, 7, 79, + 81, 28, 255, 151, 164, 133, 251, 7, 100, 138, 50, 159, 1, 224, 164, 78, 185, 201, 230, 126, 72, + 141, 151, 246, 148, 93, 89, 253, 83, 15, 81, 33, 34, 0, 60, 95, 70, 210, 202, 218, 79, 214, + 158, 99, 34, 231, 127, 244, 39, 7, 207, 191, 189, 184, 246, 49, 22, 67, 227, 227, 24, 94, 179, + 136, 117, 231, 115, 131, 63, 0, 84, 69, 183, 98, 125, 158, 50, 16, 0, 80, 39, 222, 171, 191, + 94, 34, 233, 66, 42, 1, 160, 6, 46, 90, 173, 13, 139, 41, 3, 1, 0, 245, 176, 16, 19, 137, 158, + 250, 159, 73, 86, 53, 96, 38, 140, 169, 255, 109, 37, 78, 152, 94, 150, 20, 1, 0, 117, 192, 83, + 84, 215, 55, 101, 25, 199, 40, 217, 233, 179, 160, 128, 25, 240, 187, 18, 170, 247, 12, 80, + 239, 61, 7, 4, 0, 212, 137, 206, 85, 29, 114, 18, 124, 107, 27, 48, 19, 110, 194, 81, 199, 137, + 157, 20, 2, 53, 8, 114, 64, 181, 210, 165, 239, 168, 115, 85, 167, 178, 171, 248, 182, 54, 160, + 172, 208, 252, 194, 46, 57, 73, 87, 163, 143, 141, 40, 14, 98, 10, 2, 2, 0, 102, 39, 221, 149, + 214, 25, 127, 120, 198, 172, 95, 31, 132, 129, 118, 239, 218, 93, 222, 139, 140, 228, 165, 92, + 241, 200, 56, 160, 124, 70, 83, 207, 146, 200, 158, 144, 85, 152, 11, 100, 163, 242, 66, 192, + 240, 240, 176, 194, 112, 246, 207, 103, 176, 91, 37, 149, 88, 14, 4, 0, 52, 126, 51, 113, 29, + 165, 58, 82, 179, 223, 147, 15, 92, 121, 19, 172, 42, 64, 205, 183, 93, 71, 242, 219, 203, 191, + 126, 198, 228, 28, 41, 152, 67, 248, 118, 120, 142, 72, 43, 224, 26, 0, 0, 0, 8, 0, 0, 0, 128, + 0, 0, 0, 0, 8, 0, 0, 0, 128, 0, 0, 0, 0, 8, 0, 0, 0, 128, 0, 0, 0, 0, 8, 0, 0, 0, 128, 0, 0, 0, + 0, 8, 0, 0, 0, 128, 0, 0, 0, 0, 8, 0, 0, 0, 128, 0, 0, 0, 0, 8, 0, 0, 0, 128, 0, 0, 0, 0, 8, 0, + 0, 0, 128, 0, 0, 0, 0, 8, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 16, + 0, 0, 0, 0, 1, 0, 0, 0, 212, 51, 143, 18, 52, 191, 226, 88, 65, 15, 126, 229, 193, 89, 191, + 222, 218, 88, 197, 98, 169, 190, 63, 164, 145, 220, 164, 171, 182, 37, 109, 74, 47, 74, 179, + 208, 81, 113, 133, 221, 5, 77, 62, 51, 169, 168, 16, 201, 90, 91, 215, 243, 26, 22, 131, 185, + 205, 99, 137, 229, 77, 0, 64, 83, 136, 130, 72, 35, 219, 71, 90, 226, 179, 78, 110, 159, 84, + 199, 138, 172, 186, 207, 88, 192, 130, 71, 197, 236, 123, 116, 159, 198, 159, 24, 147, 165, 20, + 104, 34, 156, 2, 64, 211, 25, 219, 50, 174, 252, 174, 60, 133, 64, 69, 228, 135, 242, 26, 99, + 240, 7, 1, 0, 104, 156, 35, 1, 64, 37, 76, 108, 159, 160, 8, 32, 0, 160, 62, 69, 198, 112, 198, + 238, 16, 97, 33, 162, 8, 168, 204, 246, 85, 140, 41, 194, 33, 172, 137, 139, 84, 129, 0, 128, + 58, 224, 21, 211, 91, 37, 59, 70, 37, 158, 215, 162, 40, 1, 88, 151, 170, 99, 100, 87, 177, + 180, 149, 50, 16, 0, 80, 7, 110, 213, 149, 69, 99, 205, 6, 42, 1, 160, 6, 121, 104, 253, 221, + 26, 224, 168, 35, 1, 0, 245, 162, 47, 204, 223, 32, 171, 117, 146, 56, 52, 7, 160, 26, 138, + 214, 106, 224, 246, 112, 13, 59, 27, 77, 130, 219, 0, 155, 196, 128, 6, 98, 133, 26, 188, 76, + 55, 125, 222, 247, 138, 103, 26, 121, 77, 189, 108, 141, 177, 167, 91, 217, 79, 177, 228, 49, + 239, 235, 162, 204, 85, 214, 154, 135, 155, 124, 183, 63, 72, 134, 254, 3, 159, 210, 135, 70, + 164, 181, 44, 116, 2, 0, 234, 209, 23, 116, 245, 94, 133, 250, 110, 179, 127, 206, 203, 189, + 13, 121, 99, 88, 222, 152, 127, 177, 213, 207, 239, 8, 175, 253, 1, 149, 64, 163, 225, 20, 0, + 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 4, 0, + 0, 0, 64, 0, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 85, 197, 119, 1, 160, 41, 197, 65, 172, 194, + 238, 66, 213, 222, 223, 198, 71, 255, 142, 248, 241, 173, 19, 114, 92, 190, 172, 160, 34, 203, + 50, 140, 143, 241, 11, 182, 170, 203, 58, 14, 98, 22, 2, 8, 0, 64, 163, 8, 198, 3, 13, 253, + 120, 104, 222, 166, 63, 250, 248, 8, 11, 161, 70, 162, 32, 158, 215, 101, 13, 52, 42, 78, 1, 0, + 0, 64, 0, 0, 0, 0, 4, 0, 160, 110, 87, 220, 99, 156, 132, 7, 88, 23, 1, 2, 0, 154, 79, 232, 58, + 156, 244, 69, 125, 52, 81, 207, 125, 150, 42, 128, 0, 0, 212, 200, 231, 138, 107, 54, 91, 233, + 126, 42, 129, 121, 246, 253, 207, 20, 174, 221, 66, 25, 64, 0, 0, 106, 200, 51, 246, 29, 178, + 118, 7, 149, 192, 60, 217, 21, 59, 230, 93, 148, 1, 141, 138, 27, 149, 209, 208, 174, 210, 205, + 93, 197, 68, 241, 90, 201, 156, 43, 107, 107, 124, 91, 171, 35, 41, 94, 42, 107, 122, 101, 184, + 165, 182, 166, 172, 66, 25, 59, 108, 164, 103, 173, 84, 219, 115, 240, 198, 4, 146, 253, 101, + 80, 138, 110, 185, 83, 31, 225, 84, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 236, 255, 3, 11, 228, 157, 122, 170, 9, 13, 14, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, + 130, +]; diff --git a/examples/sdl/src/main.rs b/examples/sdl/src/main.rs index 7ee6b494..86886fa1 100644 --- a/examples/sdl/src/main.rs +++ b/examples/sdl/src/main.rs @@ -2,12 +2,16 @@ use boytacean::{ gb::GameBoy, pad::PadKey, ppu::{DISPLAY_HEIGHT, DISPLAY_WIDTH}, + util::read_file, }; use sdl2::{ - event::Event, image::LoadSurface, keyboard::Keycode, pixels::PixelFormatEnum, surface::Surface, - video::Window, AudioSubsystem, EventPump, TimerSubsystem, VideoSubsystem, + event::Event, image::LoadSurface, keyboard::Keycode, pixels::PixelFormatEnum, rwops::RWops, + surface::Surface, sys::image, video::Window, AudioSubsystem, EventPump, TimerSubsystem, + VideoSubsystem, }; +pub mod data; + /// The base title to be used in the window. static TITLE: &'static str = "Boytacean"; @@ -55,13 +59,20 @@ fn start_sdl() -> Graphics { } } +pub fn surface_from_bytes(bytes: &[u8]) -> Surface { + unsafe { + let rw_ops = RWops::from_bytes(bytes).unwrap(); + let raw_surface = image::IMG_Load_RW(rw_ops.raw(), 0); + Surface::from_ll(raw_surface) + } +} + fn main() { let mut graphics = start_sdl(); // updates the icon of the window to reflect the image // and style of the emulator - let surface = Surface::from_file("./res/icon.png").unwrap(); - graphics.window.set_icon(&surface); + graphics.window.set_icon(surface_from_bytes(&data::ICON)); let mut canvas = graphics.window.into_canvas().accelerated().build().unwrap(); canvas.clear(); -- GitLab