From 9fd48d50e36951ab878e04862d1832e29d8e12ea Mon Sep 17 00:00:00 2001 From: "julian@kiedaisch.net" Date: Sun, 19 Apr 2020 14:49:21 +0200 Subject: [PATCH] Initialisierung --- AirplayServer.git/HEAD | 1 + AirplayServer.git/config | 6 + AirplayServer.git/description | 1 + AirplayServer.git/hooks/applypatch-msg.sample | 15 + AirplayServer.git/hooks/commit-msg.sample | 24 + .../hooks/fsmonitor-watchman.sample | 114 + AirplayServer.git/hooks/post-update.sample | 8 + AirplayServer.git/hooks/pre-applypatch.sample | 14 + AirplayServer.git/hooks/pre-commit.sample | 49 + AirplayServer.git/hooks/pre-push.sample | 53 + AirplayServer.git/hooks/pre-rebase.sample | 169 ++ AirplayServer.git/hooks/pre-receive.sample | 24 + .../hooks/prepare-commit-msg.sample | 42 + AirplayServer.git/hooks/update.sample | 128 + AirplayServer.git/info/exclude | 6 + ...72e54a237d5ff16758f886b87dcddb750cef22.idx | Bin 0 -> 4852 bytes ...2e54a237d5ff16758f886b87dcddb750cef22.pack | Bin 0 -> 403393 bytes AirplayServer.git/packed-refs | 2 + CMakeLists.txt | 0 build/AirplayServer | Bin 0 -> 805664 bytes build/CMakeCache.txt | 531 ++++ build/CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 + .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 + .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8248 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8264 bytes build/CMakeFiles/3.10.2/CMakeSystem.cmake | 15 + .../3.10.2/CompilerIdC/CMakeCCompilerId.c | 598 ++++ build/CMakeFiles/3.10.2/CompilerIdC/a.out | Bin 0 -> 8408 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 576 ++++ build/CMakeFiles/3.10.2/CompilerIdCXX/a.out | Bin 0 -> 8416 bytes .../AirplayServer.dir/CXX.includecache | 90 + .../AirplayServer.dir/DependInfo.cmake | 45 + build/CMakeFiles/AirplayServer.dir/build.make | 120 + .../AirplayServer.dir/cmake_clean.cmake | 10 + .../AirplayServer.dir/depend.internal | 13 + .../CMakeFiles/AirplayServer.dir/depend.make | 13 + build/CMakeFiles/AirplayServer.dir/flags.make | 10 + build/CMakeFiles/AirplayServer.dir/link.txt | 1 + .../AirplayServer.dir/progress.make | 3 + .../CMakeFiles/AirplayServer.dir/uxplay.cpp.o | Bin 0 -> 72256 bytes .../CMakeDirectoryInformation.cmake | 16 + build/CMakeFiles/CMakeOutput.log | 631 ++++ build/CMakeFiles/Makefile.cmake | 68 + build/CMakeFiles/Makefile2 | 450 +++ build/CMakeFiles/TargetDirectories.txt | 49 + build/CMakeFiles/cmake.check_cache | 1 + build/CMakeFiles/feature_tests.bin | Bin 0 -> 12312 bytes build/CMakeFiles/feature_tests.c | 34 + build/CMakeFiles/feature_tests.cxx | 405 +++ build/CMakeFiles/progress.marks | 1 + build/Makefile | 312 ++ build/cmake_install.cmake | 64 + build/install.sh | 4 + .../CMakeDirectoryInformation.cmake | 16 + .../lib/CMakeFiles/airplay.dir/C.includecache | 520 ++++ .../CMakeFiles/airplay.dir/DependInfo.cmake | 45 + build/lib/CMakeFiles/airplay.dir/build.make | 573 ++++ .../lib/CMakeFiles/airplay.dir/byteutils.c.o | Bin 0 -> 12464 bytes .../CMakeFiles/airplay.dir/cmake_clean.cmake | 27 + .../airplay.dir/cmake_clean_target.cmake | 3 + build/lib/CMakeFiles/airplay.dir/crypto.c.o | Bin 0 -> 35688 bytes .../CMakeFiles/airplay.dir/depend.internal | 163 ++ build/lib/CMakeFiles/airplay.dir/depend.make | 163 ++ build/lib/CMakeFiles/airplay.dir/dnssd.c.o | Bin 0 -> 31232 bytes .../airplay.dir/fairplay_playfair.c.o | Bin 0 -> 10344 bytes build/lib/CMakeFiles/airplay.dir/flags.make | 10 + .../CMakeFiles/airplay.dir/http_parser.c.o | Bin 0 -> 136648 bytes .../CMakeFiles/airplay.dir/http_request.c.o | Bin 0 -> 29200 bytes .../CMakeFiles/airplay.dir/http_response.c.o | Bin 0 -> 30744 bytes build/lib/CMakeFiles/airplay.dir/httpd.c.o | Bin 0 -> 42440 bytes build/lib/CMakeFiles/airplay.dir/link.txt | 2 + build/lib/CMakeFiles/airplay.dir/logger.c.o | Bin 0 -> 18016 bytes .../CMakeFiles/airplay.dir/mirror_buffer.c.o | Bin 0 -> 20200 bytes build/lib/CMakeFiles/airplay.dir/netutils.c.o | Bin 0 -> 20088 bytes build/lib/CMakeFiles/airplay.dir/pairing.c.o | Bin 0 -> 27016 bytes .../lib/CMakeFiles/airplay.dir/progress.make | 20 + build/lib/CMakeFiles/airplay.dir/raop.c.o | Bin 0 -> 114480 bytes .../CMakeFiles/airplay.dir/raop_buffer.c.o | Bin 0 -> 31568 bytes build/lib/CMakeFiles/airplay.dir/raop_ntp.c.o | Bin 0 -> 40928 bytes build/lib/CMakeFiles/airplay.dir/raop_rtp.c.o | Bin 0 -> 63632 bytes .../airplay.dir/raop_rtp_mirror.c.o | Bin 0 -> 47400 bytes build/lib/CMakeFiles/airplay.dir/utils.c.o | Bin 0 -> 17856 bytes build/lib/CMakeFiles/progress.marks | 1 + build/lib/Makefile | 740 +++++ build/lib/cmake_install.cmake | 39 + .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/curve25519.dir/C.includecache | 14 + .../curve25519.dir/DependInfo.cmake | 20 + .../CMakeFiles/curve25519.dir/build.make | 114 + .../curve25519.dir/cmake_clean.cmake | 10 + .../curve25519.dir/cmake_clean_target.cmake | 3 + .../curve25519.dir/curve25519-donna.c.o | Bin 0 -> 18568 bytes .../CMakeFiles/curve25519.dir/depend.internal | 5 + .../CMakeFiles/curve25519.dir/depend.make | 5 + .../CMakeFiles/curve25519.dir/flags.make | 10 + .../CMakeFiles/curve25519.dir/link.txt | 2 + .../CMakeFiles/curve25519.dir/progress.make | 3 + .../lib/curve25519/CMakeFiles/progress.marks | 1 + build/lib/curve25519/Makefile | 230 ++ build/lib/curve25519/cmake_install.cmake | 39 + build/lib/curve25519/libcurve25519.a | Bin 0 -> 18804 bytes .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/ed25519.dir/C.includecache | 116 + .../CMakeFiles/ed25519.dir/DependInfo.cmake | 29 + .../CMakeFiles/ed25519.dir/add_scalar.c.o | Bin 0 -> 2848 bytes .../ed25519/CMakeFiles/ed25519.dir/build.make | 357 +++ .../CMakeFiles/ed25519.dir/cmake_clean.cmake | 19 + .../ed25519.dir/cmake_clean_target.cmake | 3 + .../CMakeFiles/ed25519.dir/depend.internal | 60 + .../CMakeFiles/ed25519.dir/depend.make | 60 + .../lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o | Bin 0 -> 25824 bytes .../ed25519/CMakeFiles/ed25519.dir/flags.make | 10 + .../lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o | Bin 0 -> 48352 bytes .../CMakeFiles/ed25519.dir/key_exchange.c.o | Bin 0 -> 3864 bytes .../CMakeFiles/ed25519.dir/keypair.c.o | Bin 0 -> 1840 bytes .../ed25519/CMakeFiles/ed25519.dir/link.txt | 2 + .../CMakeFiles/ed25519.dir/progress.make | 12 + .../lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o | Bin 0 -> 17800 bytes .../ed25519/CMakeFiles/ed25519.dir/seed.c.o | Bin 0 -> 1768 bytes .../ed25519/CMakeFiles/ed25519.dir/sha512.c.o | Bin 0 -> 7856 bytes .../ed25519/CMakeFiles/ed25519.dir/sign.c.o | Bin 0 -> 2424 bytes .../ed25519/CMakeFiles/ed25519.dir/verify.c.o | Bin 0 -> 3280 bytes build/lib/ed25519/CMakeFiles/progress.marks | 1 + build/lib/ed25519/Makefile | 500 ++++ build/lib/ed25519/cmake_install.cmake | 39 + build/lib/ed25519/libed25519.a | Bin 0 -> 117356 bytes build/lib/libairplay.a | Bin 0 -> 735124 bytes .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/playfair.dir/C.includecache | 58 + .../CMakeFiles/playfair.dir/DependInfo.cmake | 25 + .../CMakeFiles/playfair.dir/build.make | 222 ++ .../CMakeFiles/playfair.dir/cmake_clean.cmake | 14 + .../playfair.dir/cmake_clean_target.cmake | 3 + .../CMakeFiles/playfair.dir/depend.internal | 15 + .../CMakeFiles/playfair.dir/depend.make | 15 + .../CMakeFiles/playfair.dir/flags.make | 10 + .../CMakeFiles/playfair.dir/hand_garble.c.o | Bin 0 -> 24056 bytes .../playfair/CMakeFiles/playfair.dir/link.txt | 2 + .../CMakeFiles/playfair.dir/modified_md5.c.o | Bin 0 -> 4528 bytes .../CMakeFiles/playfair.dir/omg_hax.c.o | Bin 0 -> 124704 bytes .../CMakeFiles/playfair.dir/playfair.c.o | Bin 0 -> 2152 bytes .../CMakeFiles/playfair.dir/progress.make | 7 + .../CMakeFiles/playfair.dir/sap_hash.c.o | Bin 0 -> 3992 bytes build/lib/playfair/CMakeFiles/progress.marks | 1 + build/lib/playfair/Makefile | 350 +++ build/lib/playfair/cmake_install.cmake | 39 + build/lib/playfair/libplayfair.a | Bin 0 -> 160670 bytes .../CMakeDirectoryInformation.cmake | 16 + .../plist/CMakeFiles/plist.dir/C.includecache | 232 ++ .../CMakeFiles/plist.dir/DependInfo.cmake | 31 + .../lib/plist/CMakeFiles/plist.dir/base64.c.o | Bin 0 -> 3464 bytes .../lib/plist/CMakeFiles/plist.dir/bplist.c.o | Bin 0 -> 26432 bytes .../lib/plist/CMakeFiles/plist.dir/build.make | 411 +++ .../plist/CMakeFiles/plist.dir/bytearray.c.o | Bin 0 -> 2416 bytes .../CMakeFiles/plist.dir/cmake_clean.cmake | 21 + .../plist.dir/cmake_clean_target.cmake | 3 + .../lib/plist/CMakeFiles/plist.dir/cnary.c.o | Bin 0 -> 2320 bytes .../CMakeFiles/plist.dir/depend.internal | 65 + .../plist/CMakeFiles/plist.dir/depend.make | 65 + .../lib/plist/CMakeFiles/plist.dir/flags.make | 10 + .../plist/CMakeFiles/plist.dir/hashtable.c.o | Bin 0 -> 3008 bytes build/lib/plist/CMakeFiles/plist.dir/link.txt | 2 + build/lib/plist/CMakeFiles/plist.dir/list.c.o | Bin 0 -> 1768 bytes build/lib/plist/CMakeFiles/plist.dir/node.c.o | Bin 0 -> 5520 bytes .../plist/CMakeFiles/plist.dir/node_list.c.o | Bin 0 -> 2768 bytes .../lib/plist/CMakeFiles/plist.dir/plist.c.o | Bin 0 -> 25408 bytes .../plist/CMakeFiles/plist.dir/progress.make | 14 + .../plist/CMakeFiles/plist.dir/ptrarray.c.o | Bin 0 -> 2304 bytes .../lib/plist/CMakeFiles/plist.dir/time64.c.o | Bin 0 -> 16968 bytes .../lib/plist/CMakeFiles/plist.dir/xplist.c.o | Bin 0 -> 29224 bytes build/lib/plist/CMakeFiles/progress.marks | 1 + build/lib/plist/Makefile | 560 ++++ build/lib/plist/cmake_install.cmake | 39 + build/lib/plist/libplist.a | Bin 0 -> 124654 bytes .../CMakeDirectoryInformation.cmake | 16 + build/renderers/CMakeFiles/progress.marks | 1 + .../CMakeFiles/renderers.dir/C.includecache | 1612 +++++++++++ .../CMakeFiles/renderers.dir/DependInfo.cmake | 45 + .../audio_renderer_gstreamer.c.o | Bin 0 -> 57424 bytes .../CMakeFiles/renderers.dir/build.make | 141 + .../renderers.dir/cmake_clean.cmake | 11 + .../renderers.dir/cmake_clean_target.cmake | 3 + .../CMakeFiles/renderers.dir/depend.internal | 374 +++ .../CMakeFiles/renderers.dir/depend.make | 374 +++ .../CMakeFiles/renderers.dir/flags.make | 10 + .../CMakeFiles/renderers.dir/link.txt | 2 + .../CMakeFiles/renderers.dir/progress.make | 4 + .../video_renderer_gstreamer.c.o | Bin 0 -> 52376 bytes build/renderers/Makefile | 260 ++ build/renderers/cmake_install.cmake | 39 + build/renderers/librenderers.a | Bin 0 -> 110448 bytes lib/CMakeLists.txt | 0 lib/byteutils.c | 106 + lib/byteutils.h | 32 + lib/compat.h | 41 + lib/crypto.c | 209 ++ lib/crypto.h | 67 + lib/curve25519/CMakeLists.txt | 6 + lib/curve25519/curve25519-donna.c | 860 ++++++ lib/curve25519/curve25519.h | 8 + lib/dnssd.c | 406 +++ lib/dnssd.h | 39 + lib/dnssdint.h | 29 + lib/ed25519/CMakeLists.txt | 6 + lib/ed25519/add_scalar.c | 69 + lib/ed25519/ed25519.h | 38 + lib/ed25519/fe.c | 1491 ++++++++++ lib/ed25519/fe.h | 41 + lib/ed25519/fixedint.h | 72 + lib/ed25519/ge.c | 467 +++ lib/ed25519/ge.h | 74 + lib/ed25519/key_exchange.c | 79 + lib/ed25519/keypair.c | 16 + lib/ed25519/precomp_data.h | 1391 +++++++++ lib/ed25519/sc.c | 809 ++++++ lib/ed25519/sc.h | 12 + lib/ed25519/seed.c | 40 + lib/ed25519/sha512.c | 275 ++ lib/ed25519/sha512.h | 28 + lib/ed25519/sign.c | 31 + lib/ed25519/verify.c | 77 + lib/fairplay.h | 0 lib/fairplay_playfair.c | 87 + lib/global.h | 0 lib/http_parser.c | 2577 +++++++++++++++++ lib/http_parser.h | 455 +++ lib/http_request.c | 252 ++ lib/http_request.h | 36 + lib/http_response.c | 165 ++ lib/http_response.h | 32 + lib/httpd.c | 458 +++ lib/httpd.h | 43 + lib/logger.c | 139 + lib/logger.h | 48 + lib/memalign.h | 53 + lib/mirror_buffer.c | 142 + lib/mirror_buffer.h | 30 + lib/netutils.c | 203 ++ lib/netutils.h | 0 lib/pairing.c | 261 ++ lib/pairing.h | 38 + lib/playfair/CMakeLists.txt | 7 + lib/playfair/LICENSE.md | 637 ++++ lib/playfair/hand_garble.c | 443 +++ lib/playfair/modified_md5.c | 119 + lib/playfair/omg_hax.c | 540 ++++ lib/playfair/omg_hax.h | 32 + lib/playfair/playfair.c | 31 + lib/playfair/playfair.h | 6 + lib/playfair/sap_hash.c | 96 + lib/plist/CMakeLists.txt | 6 + lib/plist/base64.c | 119 + lib/plist/base64.h | 28 + lib/plist/bplist.c | 1381 +++++++++ lib/plist/bytearray.c | 61 + lib/plist/bytearray.h | 36 + lib/plist/cnary.c | 46 + lib/plist/hashtable.c | 140 + lib/plist/hashtable.h | 50 + lib/plist/list.c | 47 + lib/plist/list.h | 40 + lib/plist/node.c | 216 ++ lib/plist/node.h | 65 + lib/plist/node_list.c | 154 + lib/plist/node_list.h | 47 + lib/plist/object.h | 41 + lib/plist/plist.c | 963 ++++++ lib/plist/plist.h | 74 + lib/plist/plist/plist.h | 686 +++++ lib/plist/ptrarray.c | 61 + lib/plist/ptrarray.h | 36 + lib/plist/strbuf.h | 34 + lib/plist/time64.c | 812 ++++++ lib/plist/time64.h | 81 + lib/plist/time64_limits.h | 97 + lib/plist/xplist.c | 1438 +++++++++ lib/raop.c | 380 +++ lib/raop.h | 69 + lib/raop_buffer.c | 332 +++ lib/raop_buffer.h | 38 + lib/raop_handlers.h | 574 ++++ lib/raop_ntp.c | 446 +++ lib/raop_ntp.h | 42 + lib/raop_rtp.c | 699 +++++ lib/raop_rtp.h | 45 + lib/raop_rtp_mirror.c | 513 ++++ lib/raop_rtp_mirror.h | 36 + lib/sockets.h | 49 + lib/stream.h | 36 + lib/threads.h | 66 + lib/utils.c | 181 ++ log.h | 0 uxplay.cpp | 0 293 files changed, 38035 insertions(+) create mode 100644 AirplayServer.git/HEAD create mode 100644 AirplayServer.git/config create mode 100644 AirplayServer.git/description create mode 100755 AirplayServer.git/hooks/applypatch-msg.sample create mode 100755 AirplayServer.git/hooks/commit-msg.sample create mode 100755 AirplayServer.git/hooks/fsmonitor-watchman.sample create mode 100755 AirplayServer.git/hooks/post-update.sample create mode 100755 AirplayServer.git/hooks/pre-applypatch.sample create mode 100755 AirplayServer.git/hooks/pre-commit.sample create mode 100755 AirplayServer.git/hooks/pre-push.sample create mode 100755 AirplayServer.git/hooks/pre-rebase.sample create mode 100755 AirplayServer.git/hooks/pre-receive.sample create mode 100755 AirplayServer.git/hooks/prepare-commit-msg.sample create mode 100755 AirplayServer.git/hooks/update.sample create mode 100644 AirplayServer.git/info/exclude create mode 100644 AirplayServer.git/objects/pack/pack-f072e54a237d5ff16758f886b87dcddb750cef22.idx create mode 100644 AirplayServer.git/objects/pack/pack-f072e54a237d5ff16758f886b87dcddb750cef22.pack create mode 100644 AirplayServer.git/packed-refs mode change 100644 => 100755 CMakeLists.txt create mode 100755 build/AirplayServer create mode 100644 build/CMakeCache.txt create mode 100644 build/CMakeFiles/3.10.2/CMakeCCompiler.cmake create mode 100644 build/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake create mode 100755 build/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin create mode 100755 build/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 build/CMakeFiles/3.10.2/CMakeSystem.cmake create mode 100644 build/CMakeFiles/3.10.2/CompilerIdC/CMakeCCompilerId.c create mode 100755 build/CMakeFiles/3.10.2/CompilerIdC/a.out create mode 100644 build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 build/CMakeFiles/3.10.2/CompilerIdCXX/a.out create mode 100644 build/CMakeFiles/AirplayServer.dir/CXX.includecache create mode 100644 build/CMakeFiles/AirplayServer.dir/DependInfo.cmake create mode 100644 build/CMakeFiles/AirplayServer.dir/build.make create mode 100644 build/CMakeFiles/AirplayServer.dir/cmake_clean.cmake create mode 100644 build/CMakeFiles/AirplayServer.dir/depend.internal create mode 100644 build/CMakeFiles/AirplayServer.dir/depend.make create mode 100644 build/CMakeFiles/AirplayServer.dir/flags.make create mode 100644 build/CMakeFiles/AirplayServer.dir/link.txt create mode 100644 build/CMakeFiles/AirplayServer.dir/progress.make create mode 100644 build/CMakeFiles/AirplayServer.dir/uxplay.cpp.o create mode 100644 build/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 build/CMakeFiles/CMakeOutput.log create mode 100644 build/CMakeFiles/Makefile.cmake create mode 100644 build/CMakeFiles/Makefile2 create mode 100644 build/CMakeFiles/TargetDirectories.txt create mode 100644 build/CMakeFiles/cmake.check_cache create mode 100755 build/CMakeFiles/feature_tests.bin create mode 100644 build/CMakeFiles/feature_tests.c create mode 100644 build/CMakeFiles/feature_tests.cxx create mode 100644 build/CMakeFiles/progress.marks create mode 100644 build/Makefile create mode 100644 build/cmake_install.cmake create mode 100644 build/install.sh create mode 100644 build/lib/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 build/lib/CMakeFiles/airplay.dir/C.includecache create mode 100644 build/lib/CMakeFiles/airplay.dir/DependInfo.cmake create mode 100644 build/lib/CMakeFiles/airplay.dir/build.make create mode 100644 build/lib/CMakeFiles/airplay.dir/byteutils.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/cmake_clean.cmake create mode 100644 build/lib/CMakeFiles/airplay.dir/cmake_clean_target.cmake create mode 100644 build/lib/CMakeFiles/airplay.dir/crypto.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/depend.internal create mode 100644 build/lib/CMakeFiles/airplay.dir/depend.make create mode 100644 build/lib/CMakeFiles/airplay.dir/dnssd.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/flags.make create mode 100644 build/lib/CMakeFiles/airplay.dir/http_parser.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/http_request.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/http_response.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/httpd.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/link.txt create mode 100644 build/lib/CMakeFiles/airplay.dir/logger.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/mirror_buffer.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/netutils.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/pairing.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/progress.make create mode 100644 build/lib/CMakeFiles/airplay.dir/raop.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/raop_buffer.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/raop_ntp.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/raop_rtp.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o create mode 100644 build/lib/CMakeFiles/airplay.dir/utils.c.o create mode 100644 build/lib/CMakeFiles/progress.marks create mode 100644 build/lib/Makefile create mode 100644 build/lib/cmake_install.cmake create mode 100644 build/lib/curve25519/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 build/lib/curve25519/CMakeFiles/curve25519.dir/C.includecache create mode 100644 build/lib/curve25519/CMakeFiles/curve25519.dir/DependInfo.cmake create mode 100644 build/lib/curve25519/CMakeFiles/curve25519.dir/build.make create mode 100644 build/lib/curve25519/CMakeFiles/curve25519.dir/cmake_clean.cmake create mode 100644 build/lib/curve25519/CMakeFiles/curve25519.dir/cmake_clean_target.cmake create mode 100644 build/lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o create mode 100644 build/lib/curve25519/CMakeFiles/curve25519.dir/depend.internal create mode 100644 build/lib/curve25519/CMakeFiles/curve25519.dir/depend.make create mode 100644 build/lib/curve25519/CMakeFiles/curve25519.dir/flags.make create mode 100644 build/lib/curve25519/CMakeFiles/curve25519.dir/link.txt create mode 100644 build/lib/curve25519/CMakeFiles/curve25519.dir/progress.make create mode 100644 build/lib/curve25519/CMakeFiles/progress.marks create mode 100644 build/lib/curve25519/Makefile create mode 100644 build/lib/curve25519/cmake_install.cmake create mode 100644 build/lib/curve25519/libcurve25519.a create mode 100644 build/lib/ed25519/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/C.includecache create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/DependInfo.cmake create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/build.make create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/cmake_clean.cmake create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/cmake_clean_target.cmake create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/depend.internal create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/depend.make create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/flags.make create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/link.txt create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/progress.make create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o create mode 100644 build/lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o create mode 100644 build/lib/ed25519/CMakeFiles/progress.marks create mode 100644 build/lib/ed25519/Makefile create mode 100644 build/lib/ed25519/cmake_install.cmake create mode 100644 build/lib/ed25519/libed25519.a create mode 100644 build/lib/libairplay.a create mode 100644 build/lib/playfair/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/C.includecache create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/DependInfo.cmake create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/build.make create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/cmake_clean.cmake create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/cmake_clean_target.cmake create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/depend.internal create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/depend.make create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/flags.make create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/link.txt create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/playfair.c.o create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/progress.make create mode 100644 build/lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o create mode 100644 build/lib/playfair/CMakeFiles/progress.marks create mode 100644 build/lib/playfair/Makefile create mode 100644 build/lib/playfair/cmake_install.cmake create mode 100644 build/lib/playfair/libplayfair.a create mode 100644 build/lib/plist/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 build/lib/plist/CMakeFiles/plist.dir/C.includecache create mode 100644 build/lib/plist/CMakeFiles/plist.dir/DependInfo.cmake create mode 100644 build/lib/plist/CMakeFiles/plist.dir/base64.c.o create mode 100644 build/lib/plist/CMakeFiles/plist.dir/bplist.c.o create mode 100644 build/lib/plist/CMakeFiles/plist.dir/build.make create mode 100644 build/lib/plist/CMakeFiles/plist.dir/bytearray.c.o create mode 100644 build/lib/plist/CMakeFiles/plist.dir/cmake_clean.cmake create mode 100644 build/lib/plist/CMakeFiles/plist.dir/cmake_clean_target.cmake create mode 100644 build/lib/plist/CMakeFiles/plist.dir/cnary.c.o create mode 100644 build/lib/plist/CMakeFiles/plist.dir/depend.internal create mode 100644 build/lib/plist/CMakeFiles/plist.dir/depend.make create mode 100644 build/lib/plist/CMakeFiles/plist.dir/flags.make create mode 100644 build/lib/plist/CMakeFiles/plist.dir/hashtable.c.o create mode 100644 build/lib/plist/CMakeFiles/plist.dir/link.txt create mode 100644 build/lib/plist/CMakeFiles/plist.dir/list.c.o create mode 100644 build/lib/plist/CMakeFiles/plist.dir/node.c.o create mode 100644 build/lib/plist/CMakeFiles/plist.dir/node_list.c.o create mode 100644 build/lib/plist/CMakeFiles/plist.dir/plist.c.o create mode 100644 build/lib/plist/CMakeFiles/plist.dir/progress.make create mode 100644 build/lib/plist/CMakeFiles/plist.dir/ptrarray.c.o create mode 100644 build/lib/plist/CMakeFiles/plist.dir/time64.c.o create mode 100644 build/lib/plist/CMakeFiles/plist.dir/xplist.c.o create mode 100644 build/lib/plist/CMakeFiles/progress.marks create mode 100644 build/lib/plist/Makefile create mode 100644 build/lib/plist/cmake_install.cmake create mode 100644 build/lib/plist/libplist.a create mode 100644 build/renderers/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 build/renderers/CMakeFiles/progress.marks create mode 100644 build/renderers/CMakeFiles/renderers.dir/C.includecache create mode 100644 build/renderers/CMakeFiles/renderers.dir/DependInfo.cmake create mode 100644 build/renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o create mode 100644 build/renderers/CMakeFiles/renderers.dir/build.make create mode 100644 build/renderers/CMakeFiles/renderers.dir/cmake_clean.cmake create mode 100644 build/renderers/CMakeFiles/renderers.dir/cmake_clean_target.cmake create mode 100644 build/renderers/CMakeFiles/renderers.dir/depend.internal create mode 100644 build/renderers/CMakeFiles/renderers.dir/depend.make create mode 100644 build/renderers/CMakeFiles/renderers.dir/flags.make create mode 100644 build/renderers/CMakeFiles/renderers.dir/link.txt create mode 100644 build/renderers/CMakeFiles/renderers.dir/progress.make create mode 100644 build/renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o create mode 100644 build/renderers/Makefile create mode 100644 build/renderers/cmake_install.cmake create mode 100644 build/renderers/librenderers.a mode change 100644 => 100755 lib/CMakeLists.txt create mode 100755 lib/byteutils.c create mode 100755 lib/byteutils.h create mode 100755 lib/compat.h create mode 100644 lib/crypto.c create mode 100644 lib/crypto.h create mode 100755 lib/curve25519/CMakeLists.txt create mode 100755 lib/curve25519/curve25519-donna.c create mode 100755 lib/curve25519/curve25519.h create mode 100644 lib/dnssd.c create mode 100644 lib/dnssd.h create mode 100644 lib/dnssdint.h create mode 100755 lib/ed25519/CMakeLists.txt create mode 100755 lib/ed25519/add_scalar.c create mode 100755 lib/ed25519/ed25519.h create mode 100755 lib/ed25519/fe.c create mode 100755 lib/ed25519/fe.h create mode 100755 lib/ed25519/fixedint.h create mode 100755 lib/ed25519/ge.c create mode 100755 lib/ed25519/ge.h create mode 100755 lib/ed25519/key_exchange.c create mode 100755 lib/ed25519/keypair.c create mode 100755 lib/ed25519/precomp_data.h create mode 100755 lib/ed25519/sc.c create mode 100755 lib/ed25519/sc.h create mode 100755 lib/ed25519/seed.c create mode 100755 lib/ed25519/sha512.c create mode 100755 lib/ed25519/sha512.h create mode 100755 lib/ed25519/sign.c create mode 100755 lib/ed25519/verify.c mode change 100644 => 100755 lib/fairplay.h create mode 100755 lib/fairplay_playfair.c mode change 100644 => 100755 lib/global.h create mode 100755 lib/http_parser.c create mode 100755 lib/http_parser.h create mode 100755 lib/http_request.c create mode 100755 lib/http_request.h create mode 100755 lib/http_response.c create mode 100755 lib/http_response.h create mode 100755 lib/httpd.c create mode 100755 lib/httpd.h create mode 100755 lib/logger.c create mode 100755 lib/logger.h create mode 100755 lib/memalign.h create mode 100755 lib/mirror_buffer.c create mode 100755 lib/mirror_buffer.h create mode 100755 lib/netutils.c mode change 100644 => 100755 lib/netutils.h create mode 100755 lib/pairing.c create mode 100755 lib/pairing.h create mode 100755 lib/playfair/CMakeLists.txt create mode 100755 lib/playfair/LICENSE.md create mode 100755 lib/playfair/hand_garble.c create mode 100755 lib/playfair/modified_md5.c create mode 100755 lib/playfair/omg_hax.c create mode 100755 lib/playfair/omg_hax.h create mode 100755 lib/playfair/playfair.c create mode 100755 lib/playfair/playfair.h create mode 100755 lib/playfair/sap_hash.c create mode 100755 lib/plist/CMakeLists.txt create mode 100755 lib/plist/base64.c create mode 100755 lib/plist/base64.h create mode 100755 lib/plist/bplist.c create mode 100755 lib/plist/bytearray.c create mode 100755 lib/plist/bytearray.h create mode 100755 lib/plist/cnary.c create mode 100755 lib/plist/hashtable.c create mode 100755 lib/plist/hashtable.h create mode 100755 lib/plist/list.c create mode 100755 lib/plist/list.h create mode 100755 lib/plist/node.c create mode 100755 lib/plist/node.h create mode 100755 lib/plist/node_list.c create mode 100755 lib/plist/node_list.h create mode 100755 lib/plist/object.h create mode 100755 lib/plist/plist.c create mode 100755 lib/plist/plist.h create mode 100755 lib/plist/plist/plist.h create mode 100755 lib/plist/ptrarray.c create mode 100755 lib/plist/ptrarray.h create mode 100755 lib/plist/strbuf.h create mode 100755 lib/plist/time64.c create mode 100755 lib/plist/time64.h create mode 100755 lib/plist/time64_limits.h create mode 100755 lib/plist/xplist.c create mode 100755 lib/raop.c create mode 100755 lib/raop.h create mode 100755 lib/raop_buffer.c create mode 100755 lib/raop_buffer.h create mode 100755 lib/raop_handlers.h create mode 100644 lib/raop_ntp.c create mode 100644 lib/raop_ntp.h create mode 100755 lib/raop_rtp.c create mode 100755 lib/raop_rtp.h create mode 100755 lib/raop_rtp_mirror.c create mode 100755 lib/raop_rtp_mirror.h create mode 100755 lib/sockets.h create mode 100755 lib/stream.h create mode 100755 lib/threads.h create mode 100644 lib/utils.c mode change 100644 => 100755 log.h mode change 100644 => 100755 uxplay.cpp diff --git a/AirplayServer.git/HEAD b/AirplayServer.git/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/AirplayServer.git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/AirplayServer.git/config b/AirplayServer.git/config new file mode 100644 index 0000000..a8b0c9d --- /dev/null +++ b/AirplayServer.git/config @@ -0,0 +1,6 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true +[remote "origin"] + url = /home/julian/UxPlay/.git diff --git a/AirplayServer.git/description b/AirplayServer.git/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/AirplayServer.git/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/AirplayServer.git/hooks/applypatch-msg.sample b/AirplayServer.git/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/AirplayServer.git/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/AirplayServer.git/hooks/commit-msg.sample b/AirplayServer.git/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/AirplayServer.git/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/AirplayServer.git/hooks/fsmonitor-watchman.sample b/AirplayServer.git/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..e673bb3 --- /dev/null +++ b/AirplayServer.git/hooks/fsmonitor-watchman.sample @@ -0,0 +1,114 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 1) and a time in nanoseconds +# formatted as a string and outputs to stdout all files that have been +# modified since the given time. Paths must be relative to the root of +# the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $time) = @ARGV; + +# Check the hook interface version + +if ($version == 1) { + # convert nanoseconds to seconds + $time = int $time / 1000000000; +} else { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree; +if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $git_work_tree = Win32::GetCwd(); + $git_work_tree =~ tr/\\/\//; +} else { + require Cwd; + $git_work_tree = Cwd::cwd(); +} + +my $retry = 1; + +launch_watchman(); + +sub launch_watchman { + + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $time but were not transient (ie created after + # $time but no longer exist). + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + # + # The category of transient files that we want to ignore will have a + # creation clock (cclock) newer than $time_t value and will also not + # currently exist. + + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $time, + "fields": ["name"], + "expression": ["not", ["allof", ["since", $time, "cclock"], ["not", "exists"]]] + }] + END + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + my $json_pkg; + eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; + } or do { + require JSON::PP; + $json_pkg = "JSON::PP"; + }; + + my $o = $json_pkg->new->utf8->decode($response); + + if ($retry > 0 and $o->{error} and $o->{error} =~ m/unable to resolve root .* directory (.*) is not watched/) { + print STDERR "Adding '$git_work_tree' to watchman's watch list.\n"; + $retry--; + qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + print "/\0"; + eval { launch_watchman() }; + exit 0; + } + + die "Watchman: $o->{error}.\n" . + "Falling back to scanning...\n" if $o->{error}; + + binmode STDOUT, ":utf8"; + local $, = "\0"; + print @{$o->{files}}; +} diff --git a/AirplayServer.git/hooks/post-update.sample b/AirplayServer.git/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/AirplayServer.git/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/AirplayServer.git/hooks/pre-applypatch.sample b/AirplayServer.git/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/AirplayServer.git/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/AirplayServer.git/hooks/pre-commit.sample b/AirplayServer.git/hooks/pre-commit.sample new file mode 100755 index 0000000..68d62d5 --- /dev/null +++ b/AirplayServer.git/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/AirplayServer.git/hooks/pre-push.sample b/AirplayServer.git/hooks/pre-push.sample new file mode 100755 index 0000000..6187dbf --- /dev/null +++ b/AirplayServer.git/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +z40=0000000000000000000000000000000000000000 + +while read local_ref local_sha remote_ref remote_sha +do + if [ "$local_sha" = $z40 ] + then + # Handle delete + : + else + if [ "$remote_sha" = $z40 ] + then + # New branch, examine all commits + range="$local_sha" + else + # Update to existing branch, examine new commits + range="$remote_sha..$local_sha" + fi + + # Check for WIP commit + commit=`git rev-list -n 1 --grep '^WIP' "$range"` + if [ -n "$commit" ] + then + echo >&2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/AirplayServer.git/hooks/pre-rebase.sample b/AirplayServer.git/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/AirplayServer.git/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/AirplayServer.git/hooks/pre-receive.sample b/AirplayServer.git/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/AirplayServer.git/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/AirplayServer.git/hooks/prepare-commit-msg.sample b/AirplayServer.git/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/AirplayServer.git/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/AirplayServer.git/hooks/update.sample b/AirplayServer.git/hooks/update.sample new file mode 100755 index 0000000..80ba941 --- /dev/null +++ b/AirplayServer.git/hooks/update.sample @@ -0,0 +1,128 @@ +#!/bin/sh +# +# An example hook script to block unannotated tags from entering. +# Called by "git receive-pack" with arguments: refname sha1-old sha1-new +# +# To enable this hook, rename this file to "update". +# +# Config +# ------ +# hooks.allowunannotated +# This boolean sets whether unannotated tags will be allowed into the +# repository. By default they won't be. +# hooks.allowdeletetag +# This boolean sets whether deleting tags will be allowed in the +# repository. By default they won't be. +# hooks.allowmodifytag +# This boolean sets whether a tag may be modified after creation. By default +# it won't be. +# hooks.allowdeletebranch +# This boolean sets whether deleting branches will be allowed in the +# repository. By default they won't be. +# hooks.denycreatebranch +# This boolean sets whether remotely creating branches will be denied +# in the repository. By default this is allowed. +# + +# --- Command line +refname="$1" +oldrev="$2" +newrev="$3" + +# --- Safety check +if [ -z "$GIT_DIR" ]; then + echo "Don't run this script from the command line." >&2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --bool hooks.allowunannotated) +allowdeletebranch=$(git config --bool hooks.allowdeletebranch) +denycreatebranch=$(git config --bool hooks.denycreatebranch) +allowdeletetag=$(git config --bool hooks.allowdeletetag) +allowmodifytag=$(git config --bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero="0000000000000000000000000000000000000000" +if [ "$newrev" = "$zero" ]; then + newrev_type=delete +else + newrev_type=$(git cat-file -t $newrev) +fi + +case "$refname","$newrev_type" in + refs/tags/*,commit) + # un-annotated tag + short_refname=${refname##refs/tags/} + if [ "$allowunannotated" != "true" ]; then + echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/AirplayServer.git/info/exclude b/AirplayServer.git/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/AirplayServer.git/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/AirplayServer.git/objects/pack/pack-f072e54a237d5ff16758f886b87dcddb750cef22.idx b/AirplayServer.git/objects/pack/pack-f072e54a237d5ff16758f886b87dcddb750cef22.idx new file mode 100644 index 0000000000000000000000000000000000000000..cd22c45d9f22968ec7c038a78aca656eb1848cc5 GIT binary patch literal 4852 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 literal 0 HcmV?d00001 diff --git a/AirplayServer.git/objects/pack/pack-f072e54a237d5ff16758f886b87dcddb750cef22.pack b/AirplayServer.git/objects/pack/pack-f072e54a237d5ff16758f886b87dcddb750cef22.pack new file mode 100644 index 0000000000000000000000000000000000000000..ae23ad4a4fc3c9fa3159d0b6e8b4449a4953df62 GIT binary patch literal 403393 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

JWvH2)>2|LUfRD79)%4l`y_Oa#Q;XROm32 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

u6E@q`zpPsYUAAR1KIgh8 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 J<$&l?>$H9CT%+i9FaK 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 z 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
yHkMkJx` zA>2@klO$tMPZCmS0I_K2lb8ZoG7gKKr;71|wZcKt>6DfMrB$ z07~`(Bw=O3agX87MJ%b~?3dSe11BdR@?$k&yE)$1CNgqNjhi4m^cpQ3G zNTiN}N@gc+3EHPp^Ppdu1iFw(eFFQ8Od?&#r7}u`kVF>>sgaT(B;ypIpJJ(i_*jfg zD()5#%Bb%wp(X>T0dFuXs1pz@nM~XxpjA_c;E78n3)c?98R{L_Vr24g=y9=;`V4|D zlaE8!y%uU85(?-wcc=qMD5TePQKp+fh7<=>CjRk0DP>=`~Z- zkFdeZ?8QBVu}%NobY;|#uVi*Ox-et`=oCvn2V=vLv!FLT*+vi|j3GRO(97tcsQ$B8 z%Qzr+$x;w?4EYsoe^~Nv;NZyV&=~e=2h^_%5jcc;*!X0tO#w2W1?Vn&?gn5AnjP8m zX!bFb%@AnWMznRoozw|%6MFs>55toRi${(hs|;176u|HZ z0k()FWQ1@NlAI=F3sABRAPGks!gYX$bnCR?e-d>P53E->G#+>ARTw616n7Yg=tpHl zHE(b;&?JO91|{tsJ)fhgsxVgC1Wp!cnN(>ce4rA!e`t@NqDhFJ%eap=$(#HRbe`5UvX&5o}ylZlJ*Uk0JLeUDl8(}cRFoedK`^y znoh%DrR`9!v$!f40tqX<11>7GpSTy$2OC!U6YM#(IeIf*tn^1%<+NY)cA{A6D8&4Y zBS22dVx^}LbDqvr!AgHX%mq4A2P@ry>Xvb*VI;;_>BDIFD|Dt6RvLYaMf*c%I$@=U zP@qN< zw22R6rSFS@#7mb(pbnCg#*Yt&c#dIZOiZmYG;zEQNK;r0p%{fpxEGuz6#@KbEz@Wy zrO3}g%wIC6?028DvGGSo4P0*qETS_YVco>~=-q3$pgHONkdDg_9hF@1wmIH3mE zisB7htwIgDLO4-2$pb!#usa3ilR_=Rew1xUUx#oAhHx1fk~@O>x&*LMF$x)_Z>)+t z=vx(~0Ya}Bi{7ibQ_x~m+}Q^dKZ-PH6cc2@rw~dtgjg|Y8{lY4Axw{A@;<HOWq2;;$+8w3lfCwq9nL-6}{?_3sHE~37?ehU{s+Og$6^<2!%e>o0GVGCCH`T`)4 z^ae`$g%o+njrv@BrGt9J5Dud_FXLgbL=qE}bf!3fH6|UQexVwToaYbpr9i-H&>QGM z$%TSNCu4Ycz+D9@)|p=EhAL6y|I-qNXBZ7$5R2YAz+Dzfel#F7Cu=M>=!zQ^7#?nv zcr-edXE*9q8;c$};JS~Rp&RUj|7b?{Din4cczQxvA@U5WNXY;>Zh;v^9pnO$gc@*k z!3m&5LkZ2%2xq3U2tBuzfTkkCj4r2&06D(HB&vwfSrO1cg(eMEL=px{4k1*hh!h;> zA*XO_7FeMRT%kQ^d07A&<1DZtAW+frz*%DH>jPdn!d@RHNHv(2_&<5!D!!hauqC9^}j%B$iqMdIinl4Yg|T5QMi@V3NZF z%&QC2;~oYJR9z|uw506-i6qn~k(3A}ArCy)5UK*moC~l_Bj+bz`hYZY*9LR|QS#A+ z%AJC)5E=z&yZ57PhA?XsdP-n0TPb3Y7aF@zghPbTnW3>a8T8Q@f)C_?rXc*cjTm0^ zNa3z|0BZtMKo7EJ`9DEMo4RHNRtY|gsq97|9Hs}%irVD~LM0a6+MNDw1e&FYNFISX z$Iy<$c7P|-&=)<7oV2H~CRt=@eK1xQHCi@w$YM!zhTIairLn>ogq>)~FdrctY6U4zsB<%`(2q)6YAzg&CX&2#mAs(bbGYqks#sh)J-lAoKi`Z`36|@UI zp}9kU*b&-0*xj)2X&Dd}>@_&xdNf!rWa^Xpp6H2i6rDSK?b_g@<^tWGoj>19Ux!15tkc%cZwm{LLXY8RiGe} z>Y(IDF-DHBk(%fvJ6Hi)33utFhfs2%XwV68B0%P8Wv|sCr~jEOZ4F-VfxHLS2!^bT zGJt#yxkIKwNbuwvuwDpc3fN_UFDJl3ZT&&(u>Gs1TfW}}>iIo7$4dgY~LLnk_2Xaf?ZAOAYt2+L9yj6weZVHL_F z6~GS>)}cfqeGkIMlm{>xonC~kC}>;L=|gyJ&U6O;%be*{qal%x!y%0!?}ntslHY)1 zY~%@Wn~m%ZY7+TAIG;%qgqg#j8zeN)sYgz6C_}pF(zjxcKOpNJqiu2NL~=UB0G>8rXMjC{7nTT~lhy}e#|zW; z!@%&ev_XgrUX9iP9pVjWS779LOWHQra`8^IV(=XANjrgsk4Rb{YLG~~4AX+oriG*H zNHMJ)B}66 zSui343A$DhSnDMbB$A{66G?|)QE=$Ox;AX1GfKcC&G9t`+L{SMKr@m?@9zjhFd8FO zZ%7p8=K#Bn^1lM6Z{9`)YnwN#G*EU6K`7iQanQ!72)(p`%^SQkDp3M`H2vEeqdk_; zG?9MuF)Bm%-%R>fbw+#9lTIN8hq~I2ZUki%Sr@FK_LB){_`BC_&%z*FRp+j2p z6!b)>gH)sa-U9s)Nr6z(uWaa1n;ShxbE6j@7@mC)DH}5K?74eZH=wbL@_~;6O;cI^ErI!<1!0-M zJtBz}O1f3_IQ%bEw9{~-BZ9k--l!VFK#Rv3(i@qhMkoWf{MSat5Md0@3bJ2>4W(0~ z5EYFYJq-Vg{WWSh%p~nN_5ht)iKys6Ku_5JNyYFKivsIB_Bx$)2eDA!=ppDoS=_?( zzBy2YZ(%3t)X#{DvIo7A_!lag5e$zcOgpU`%La8s5;v4w(*K2q5n-bV)1SAg=;47T zf=6y(sOT)GiQBt%Nd~CWc4$z&3g@LNjCdYf2Jf=2lkz(lM`>=7C0$Ql}&#Gx$>qtXWcnNZJ3uRlexDkN~%BpuOYu_}*In@ltbDp-{UM9V^g23DmWb)SO- z9juBq7KB{%%G4OEvI7ku5B=pZE367~)ugZi2IhoSL6I}rjePw-w7m&*R7Dmy{_4G? z`*mkeNC+WhfpoeFWKRgPCM1CbPys;}6#-FEQ4ti8VRb=NKyXDx#dXk8VH_QIMMo5O z+)-R`8TT1+Tt@}|zu&ETofrI^vLY`-dp$Hy0yNl>U%5j!b%uR4Wn*Fk~;=q zz@_;KHzBpU=wVWMJRETU3eZeO!$xPsFuXHStr+AboQ&RpO?EgPQ;rkPMgbDS$6zQW zhHXyo;SK0x!SHUl$ArR9V_pd(9esA#_vUFOeE4*RV`p9Q{)UsRVAVev>d?{bdHNlfE-B#ouiEk zroM@J5uGD}`AqMHqM>vAim9|keze)Dsi^<0mz8T zvJyt4Nm~0ffKoXM;1;{}h?9UMufW{Zdeo0-Kuh{_>$E?CywaBb+G4f>#CF zvU&^JLmju#aDXBowc%J;*dWFpM`IyTeFciEW~}`U>$P##8Je|097kt#$GB0`t?DZ= zG}L&@$gPTJL3c@AALA)^G!pusa{3(bGUZXAHFV8V<97l5k!bdCq7wlg4omy<&_Ip9 z8t9Ec4=SFF)WiAu+y!*N3#jRDAQ^J1b~@leHC7rM=A$Cok%Y=nRj5mQ9>B4x%BmY- zIL-#gT+LxGmg)xISbGt`ap1OUM;k_IxJd?K!wo#yAZvgOT4j){fFQS!)7995Ttm(r z9*5&Y)$S2c-C-*mXe*KeZaKcwF2@%OBb_+k3Vr~%`YcxPp?gk48a^0h@=+W5K}1*V zp{&@EHuh2b3>SM4druu!$7Pt2RD>)$PSvtGVC6?`c(n>T{=}Xfp~LVwNT?B?;Rt<( zeBQeS{ICo}s#aY|SY^hn_qg9ixGVc+R@rOAg|xh#JaMk+n!|>^n!>%~u9L zkqT(ImDN+l-trcBtfp=#`VvzOD7k!8+f=X)iy$cj?1NUA^qWCId!g+ixF0sHJ5X@s zl@v?{AD8rlt~x+)J_PGrW7cMH-2-;^w`%q`H)hqvOyWaGd|M}moSkoYJz_lT$*LV- zxSj%6?I?q=pVdt<$jd;oDy3CJ&TXbgS+&Rb1yA)0F7XMD_5}a#3D&JO$s8mnOR^p$ zs?Lm&n+(G{U|6de?D_0eGCanr8msO;!}1weHt8(v&`(y~OFsHmkN%le_ogpu`B92u+HFtD6(%N_M%YA?&;)4H&2VJbF6czUgJM-0ipP{q@_rEMIRj(nnD zIwR&{6!MAfZ@cYC%i=S<)@~b)5zEIZQEewcijQ-Q8u2=o4}4m0ACZGen9qpT5p{T_ z^Xc%hpTeNa39 zT!v?)5ZaDQ!)6eVy+O6z3)Org_o%ibaJs<9IbXFs44e2A*Q$|06rPVor=tYxJqPb| z9Xrxes$)kE4C*=oZ_59x*b%!UcEs+89kKs+?1`1}^u_K9Hp97b~j)aP% zD4E2H1WLaHHT*dWWQEVhw+c@|A{H^V_!B7G0lI{m1p0G+V+K4?2v$A<`40AL9Ds zLtKA+i0h9JasBZjZmueUHXR@0=1Uxkjt_DD@gc51KE(CMhq(Uu5Z50c;?^j(mW~f` z{qZ4gy@a@!_z>5`hqxPANQn<|Zy>1SL);r#Tpb_c#^XaiMT-U8Y0xi`APgsw35Qg+ zrcg(ERDXPkJ5-S_@gZ)bhQCKvq)2>7Qcs()BEI;L1MG_Q} z(h(Gr(h(GrqJu&h36e5w81hJCMx$V=REvoONxgm`C=v;h+7Sto+7StodaE!n5+t=F z5+t=F5+qGWf~Q^GAZDbwq-sP0U4|1l$6AXZOZej*Tx6)YXCIao{s0EVfUq+N$c~E`5V8k?@vbXjSbR}SS8lX|Op_Rp zE(MBoi2>&o!>A`71CrY; zs22m0+oCP`2|9CInTw7A$sJC&P#pu3JA!>FhVmYU%n@x{d+Kdy=z` z_HfMGMjjmllJ^v09RrfLotEhski2I{Kvu_qj#0Y-!()i#xA7&>AB82a!5)eJD2xcm=#Rou0U7;K7!~l}MF3+2&4GMYlrO;W zaiCkj7yXgdHy=C_{gE|r55tA6df)>*$ZH=9>WP=#Q+HdjRX`kE~Y0I{G7P__Kg@^hZ|P*MN2ON7g9v=;)8E z(P8Wnb@WHp!3>Df(H~id)C1PhA6a8g0IZ`wvL>;6>gbQG$sBh&`Xg%!={ou&>xiY` z*U=wYN0CQIe`HO)3iORu@o~r=9Ur|c;IcNdS*{#XL70m_(vw*U9`PK&#n<91;Bwu7 zl^5V_79)pL5N;!ZUBC9R`B zN=~=g>2>r+$r(0x2|D_tWWN0fWOVdL$(e%a=#P>Gg6QavlCuQS(H|uX?SDf?M}L$o zvbSOPrlUVfmfAny*D4+TQL@Zl14KuElq|Q;0ivTnO3t&nFVxW=B`a($^mOz`$@!9^ zqd!VkN{WvDD7ipVbo58bg_5G9KT0l=^62P~k~NZ|qd!X4*)PMkc=Sg}4a@pRqCZOd zvsTSqU2+JE`@f?lY)n8&b@WH%j>UlGC+x_bY<(U55!u42OGkf1{>q(~ zj{b<;O?JIDiu{eOq@zC~e`gix=#R*K?3p_HBXU1s9sLn`kR5UidK^1}M1Pc4Fj=BM zN(ZrPOY}$SFfvN?M`^Cwf(&)^N9kkgpFpH5m2Q=TJ1d31LYMwS{fYz~{ZYD2vAa*x z(I2IG>Ki1P=#QHL23#tU=#OZR6#TAjqCcW<+UMfvQ?y5SnvTlokLWI&_UP!3=)3kt zjI(JH{SkfNz6T;Y`Xl<0^k*IY5&hV%1e=cjh<+-aTStFHKeM?6*3lo)FYNcBKu3Q> zzqBV~#i64=qF+g-I{G8}FPl@gj{b=L+g<`T9sLpgTG({-M|6*{SvvY7`mKE{OmKDd zNAx>;Hx3`tl|+9;zZbDw9sLpgLF9^b^hfkZI|+R0!`jc>0>FAH>e}%KZlIV}< zul8NAq)|tIME443o08~{=sw{bqa^wxy5D{aoRf6)N7Qmyq0^K^e?*nT!p+jrA5q&$ zfSq%6^heYY&IPa<-7%UVoXd3dM>Nqn2%IaGM1MpB!nsyS^hY!(oa>cDe?-F$`_@KP z%IJ@1igPdIHtFb(XsXC<(a|5#G?BYsM}I^!or}S_RY~+mG)p+Q>*$YY7vbEYB>E%T z)!`(*Q%UqkG*>Va{SnP`czU#3N%Tjwr!y9q7yS_}xESs4kN$|3u}l44^hdPfGNhVe zA05EX^Lx=B(IJl^RiZy)k)HtuzrdG{{)jy{4{i+Na~gYIzyBEh5qpWH(9s{U9fWoC zN9<+3mvr<;>{W{D=#SWI*8|qkAFg1tJdF6~h(F1Od9xS6s9Z3D`DM16}AVR+Atu^p#?70$u1U zOKt#FyU5k@E)7kcK2-4(vYg}%1OtpK$P zeeF5F02YI4&(#Leg}!zL-%8qrzV>{M8SO$}yK;Jw=R#k50c%*h(ATb84!Uunugedh z0kjK!-DRo`h*Waj<))J96I-`l)uXFu7y7!Zq{6fdecjcH?H+fbuUkV#?Lr^ZF7z?& zLLbvE^fB#1A3Ga$l{!48UFc)lg+8_rm6vv|T zg}%4vLf^Zy3w_;vtSmDD)t4Q|a{o^k`ufU7@Q4e2ef4sHK{}CX7y9~_3Q!htp|5|r zoyC$Pvieu90jyo<>tCG@Si8{IzqS>ycA>9-oxW1qg}(mHIe@hbef?YPVA_Sg{%!8J zv3|Q72^5&d{+_ejR{Ry{%fE^mX^H|3$ zxMrFsOmv~IKl3?ZdKur@tPNq%F7)+h>ogYHG*-X5LL55(aTof21OEk`;zHk0R1Z<@ zLf`P%D}cp?zTxpC3={1_-|!D^JhTga!;^%y3w^^=%vHP4H$2S=NW0KCY$vQ;=o_9P ztX=3Eo+YeZ=o_9RtX=3EULdSp=o?-ntlO;N41m-4RWJb-2+Y{s$J+~+J!!* zUFc)lg+8WT=wsT2KK2AMbOyz=3w`W(Ou5dOn0BF$X&3sKcA<}H7y6iXp^s@7`j~d1 zk7*bBn0BF$`CaG-ETz@rLO z{IGDWMw{1tpgA}-iwpgbQXYbc3;mF4Mv!P1`XMX611yvGkn{EAO&9th7nY#7+J%0| zMa%Fu&@S{tR@Z~BUFe5g%)k`wLO*0J7ZKWpe#km57qtuhkV|tm$+|8=2{&bb3po{Ad}LF4{Ea-omj_cd}77y9UrGm#I%hVU&bH||$*xEaae z?oqqYM;&#caIN*YxR>bQ%Hi5p&XlwZeKcP^DEwQ=&w_AA;p68LLc7pMYt=u6^-GVH zTM8fR<-$rA`slGL9cl0#$G2$Zp2EkXd@LLYrpeI=~_AuD?i_jNv2wupA2k8W38krr?nPLf^Ti489F(E{1DhzotR&|xvO z3w^Z6VbSSAAI+C-j=0cAdpPXT;zA!ScBl`!xw{q@`k~#<1x35i4?XQ(z%oG$ou?-V z?&ycke-32rLO*l?l}*zw^h5KuBEh)Op9K)7fcTbEtq%amsg`k}Z*2bx6yrkQIPb<1 zWJDMG#?v{aX&3s&vt-MoUFaJZ$}f7_g}(7me0jo4nlAK>i+P4rq+RG6myiuE({!P4 zT*eMirCsP7mlH8A^o{2bftNI0=o`=Fxl^Ndp>I5oel_rtW>Fhg-d%#Xnf7aLypUy` zWL)SQN8O1e<3dmK#f84A=pUrsh%(@!Ab@5vY8ssz!SMdScA;;Y{35e@6Z)H8s(?!E zLf`bpNr1(LzG){bO}o%H$zD&p&^PU(qkwjyZ+eGtI!x>ZF>#@9nrTyoxX?EpZ?ks9 zg}!OFP0PiFewe&i#D#v?SMs`{3;nPk35pB-Fk1>v%(g??D8z~VyRJRpP@k#V7K9-R_3oum0+-8tw&-#kX2poj~7^LQSKrE3@Z<_Uah zp>xndz4>q!1^t08^vx5A7#I5HDV#dcIp{*)d<0XB3w`sEM9?|tLf<^~D&0AF`rbUf z3~Lc|4!Y1c%gOgv?LyytEUVqP&^I4PWV?2uZ$5$Aj0=79Y$7|f3w`s+oMCqAuGV~N z4-|8^?rP0*djauW=$i-S0y8f3tPB}ZbQzNoWnAc6`V0ZZxX`y8F&Buq(6=154-KeY z=v$_p4YF~eZ#jnj*>j<9DPN2v<3dki?LuFDC0atAR&)kb;Df4?kJ|7QShP>`X#~}T z8t%)~X%opc9@6^(RF_bC*6!1_)L{Jw-prF@*d>Zb@+?YEOhn~>Zn&=N3*>u)+(u-t zLGA@opJYtg3Zx&@^b^{smMbU@0qR>8vd)9??c{toN;H0`0ZJ@>#84EEc z<)bz*1VneQacrg?sLX~6!zKO3INaaQX6{QC&$%?)bPKiNY!trsPZ+JLFTE~9_>H7C zgZcIS4(zjtiidq)GV)GM?O|U|ZEpkB9`+UdZQ5QpM%wZ!aE6?0A$ry8Kw+W=@2lWT2(dsfLmnMx0=KrNStC4*+Ep5RX@?B z#gMjCr-htN@zxt}pNYYCtYNAJQ{8C>VYjGXW{@FBxnIQ5_z`0|??lixi{Ryc!JB=8 z-*|#Go?!hqCb=DY>yZ)5Lz55aS^cGZcvaPp&f{@k?fP_IFFjrB2s!yCi{I)(b)lDf zEn(GV8}SJ+0ZzpouHI}PGs^}q0Nh9?Z9Xjvn>xAw3b2cpOF8F6f5hog3* z=cwKIWTWS(-S}FQ=U!b`W<}}KmPCndPiU6@92yC9dmX6TNn>cR^Jr&EHu~khl3ij=#_=xA_ycFNJ(U-fEKd?f3Wv2?$uX z<4^Dte1#4}S$8IWf0~U281KVR{DJvd;Wsgu5`TFJpc@{987%Qv!s%h&ho88YaBi6Q z;V14RToh(>YT|yvu_WGypJ*u}RY_G{fha-xC-FY~L|c%?B;JRgm>@`7(l`_)F;S2) zNmxc&i2*?-CB2^n#8tfVZCX+hrkupE+6-h?67R!LOja~_P7?3KPfQo&^d#QtkeI1% zLdt?9-iM!$U?ZsJB3GJFmufy5gKTH!8Kb0drEhIt=;;;k$#7pDtA z!~L90#8-AmGF5H!2QD?6J9~ME!=~$D_5XyCxwR)zJTzwFs}ww7qNfN3O~qv zS4kfV-%fZ9=?lWwkpE)Rmsz2C$kGkf4PpUKLqez@6L5Zl%t8%>6Hx6eUlw`nT~HLx zodddkHCV#k&L+48=7;mv1MHHX^!g=W%>D;blin2Y45TLQyph!91mC(Fpp`NL-y}-o zrdcWD05e7Kpp|kI;3quXu|i`fp$3y)-33zkZkUnu_AG#C6*6Uf2ji1IVq(U%%;aN& z>HOCP$vx#)(16S0XI$M2S(gY%*YuPcmNA3>x*$c0o56owkTQ_e6mrQwKVbJ$RtDWC zQ?IA{PDW`@fEz`Y|6w5Y2F_I({0{@Ew+cgy40j0w>o|2Y8Em-kS!t8jK?Cl=z<1gq zFgs@u#zoq(iUrOo10n4=^#Ztao*~>|Zx!~Z@ZI%meC4vKb2sp76TdzItM7}0+3L0$ z8KtMSBxa+#b9BZ(c#G(pabI+3{qNw+^jJ*)9e00Zs_e0OJ#s{!Q7 zml#2_effU^#TsRU=E~Rmq}@Yf#kzpYBG@%BOC58aDCaG9T{%Xibe4TIimqlpC}~@n z_Bzw#OEeliVq_}yoJbGsfcq7BWqgs>vZpicBpWS&o3imO1>l&|x;~*{?1;HE5$%Ht zP;;w=y@Bk^Y&hBZ1s&DUYTr%c=1ml?qsT?!*>SFXhB>Qq)t<%FX<0M$AMAg+xo{+% zQZK259}2@2m;thtKtfLXF3c(T6b6@QktdK;gpJI+?QkCIZHNWgIIOJoA-%>Kqzoxw z4>@1GuN4(>HMPkshl^J4u zjZ|HZQx(fG8Iz-wV-FAn&wAy!(nwwaG7Pil^|y*2Ff=K~KYU294-N7MigB7QhL@2k z0CSfDWLrU+Sh6vS0?bluea(d} zM(iapvli#Wy=Ic30Z&96d9OAYn$2$4PhQ52f6`feh4ltMYQs0sq;u*gIq`m`9)k}T z33kxKQ8Cel)X-m%*IBn^sWd7785VYSrb%OuEE0uS2IxzZqv6tA(|U5!-DPneE=zsPK3r^Fe2sulzD4B9k7^XPJ@dg2wZi_H~Dh>L(%_ z-qAH@6<%dTMsyY#>l3LKk@@jlZZsmi(@5uH75>H0*jWv&&n`p5!2_?v2icjo8-K7N zm3A%SKJLeOMw8LfWl__oIsQM=LjP+j8=%BCuV-4teT{r0Yp{5T?xMJ*$cgc? zSjNkvKoD;1jhEXOirV;ixeIFacggFD`srs^;xOzM7r zYRIXNSLaxDV7oaBv>7$XF0L@-H2Opuq&oY@n>yc!9NSr>%_mYPBF%A;dLu$VX)?1K1va;!RV++Jlw zW_A`?;LAmqWp2DIcN>u_JBys-6Va9Yr?|*-M&#MfBCCBOI+yd~A|D%(y`4p__>IWg zxX4~3Qia{4ulO^4#jlZexhgJ_bC&Kf$8;9i@S9vZ468IES9BJ+_LGj**YoN1@m$)B z$TOWqZt~@#d-9fKEX4RJoNh#Z?JTm{CvxDdz0inM;a-t-`AfEw6*t=NUt@mssO9*_pQ!5*<_ZILzWQVgDmud`{TK`R3Kk z3AfikgZzQjo2_SVZ;mvR^v`KS$vS>8nb z4JYbmjEl;JhKs9A6kgx8)A!H4q2Y2edB@4oebNmZ&%{V zdSBwhzQlxe_b&}tWxtr@lOW66^5cEjUJ7`u;Y!20kRRr--=_qPXO)$iM5^e~g(}9Q zy&){A{Y@(Cpk7k3R)-Y+fp1*pI8E;``fXq0ss2RJ%f2&-%<@#yuyeKUGD$+(d!>MZ~Z&0_Rd=gyXV8=^n`Jr0uGHv*%QVSv_fYS zo#wRe+rI6;?Z{;`Dl$6^l>dJP&97H}k4A^ujEaMo~u385niFC^U!btwnD zi1g%857L*Bo*qgjeFdkNE}=f83!D?;{YnYv{|oe7?;JQBOKiRZ`6ZQrFR}F}q$TkR zt;FF%J&fRpgF&^DS+HBdn$jOY)Uto2MB8jo+{1!6Iu3l#>y$z~Iu7Wg;}DOI1HWtm zzZ>Gwao|_N=^-8+2lf)q4e{tWu#a$2h)2hP{e)wwJUR|oibz!|kB$RMkp8JWIu6)^ zG^Xr;7j9H={Oc-LtgF5*>qqdYca&L>A(#Htq{+q12?ih-4M^F1M#!zt3bmg ziD(MxKdcvHP{5@rLjBdFW?30Lo6dX^3)R3-MS3RBrUQ){{vMeHngkBGj{phMx5=Il zQ$rQ(eOWxQ4xLX+vUp-0S}7n;tV0(F$P??ZoLDFK0XP>=7b|!?{$%mQI^3NU`vMd$ zsYqY^a487cbX3S;#pG~^Pb%p`ESUxRM%ethZaCs<c<2#c{-fd z)BY5HwBtn9)o7;l5)Sh$o-e1%`EnM|m(!)VSv+4(m-FRha`i@CibcxG;`wsM_1!?p z;`wrhoG)kbd^tnTm$P`joN=o#@O(K#&X==T#~J#3`7X3oW-X_+ZZp|bC$3$}BH%7K zkoZv>J_L83{J?!8!M|f(%9Ex%kxiM6g+uq_PCgx?>=dU1&F>*M`py0f+|IhSQwyfg zvDC>7;c(XdbX4JvWz>sPF#X5s54NKFnfWr7uXyJ&olt@9$X9Dmynq*Dz4)!64*-Ld^q{z88NTu1`OFw2$yayvG9g>kILk+0Zs_AczueFlQMVJ`p9Za1 z1di>AJIG+QReXVArt&*G%qqFo(4Q9Ccq~+mJ&{{X3bT#;Y>=ry(DWQnGWP!qvC{sa z?N76!{P|psW-X{97ei*=>2razUVG2Qe~wg#Fv;r1AHP*om1(J?NW({M_zE(*rJC4M zuc9sTWNXR`*2snlCEPK)Q-4V)D+pnH*l(OS|GdV?Nv zKJ%(=j!}Fe$T#T>RW(}Fc4t||XPd+;khs;e2DZ|Fqh)xhs z35T8%3DHxipUd@x-UkzW105})FY|NgDUq;hJVAO&B&;Tgpg8vh{Ds~_G3pWp*6tBO z_Y)+zo=?Q_HdY4OCt^70o=?QnD2!X$c9DE`O2i@0*{0z{z zM=*Qi9w8tXn}G`i)b0_qDaFFOnhW$yE0GIT;~qhZlieHkcbNzCH@?aY7OTQP6!XJ1l*Od8>Yu) zIG60{!W!;IdT#i#D$w&dWb(Vv?=swdF?fnl)ES^TlWUNizY?UZ+;BlJyh*jDLTb{P zhKnQzEnQ6MbjwL+);)g!5_IbzmEDf79JasMmcuHv9KD7fkEFDDm`F}0Qi^@tVs-XVs%Ap~p=V^)95^$Z6(u>Ag;U17piChA*8y+(R zaOvLwr-xr31i1H;fOEsAqOd7tgp0yY(BwXZW8uVsfcp}z3Qr|Z`3HdehtC)QxZ+p9 zjo}&n09O)j3(ux(Raca2O!y1RRyP2iWM$Im+unocI?+dmzc#jEYXF-46pbZ4*Ezg8EI%Jcf98fX+YB&S_cmh`$QZ znSwe=&pe0tD1grA5X#7;-%#3Hls}^yLoDYe;wJ+PojVvUl9~HY5W-ur%*^bz4JP3q zjiBu^^XTB7Aml>IS5@g2(PX>;Wsbe{&Z_zra~5s-Vk zt~D%z_zrcI(unU+*MX#_kZT4+#UkT7lzaU+P{emAccaL1Z{^0W z_(P0KyN<)n4X;3Fv+E~>oa=1@K_f8^aYC>-G>@-3EhB5aZg!ted3@=|K~8XMy6}0~770=RtO+z^c4S z?3&$!2^?B^$Gna#^M6DUt^5lx2vmM1t;#P3#mUdccS1fdbx+K%Mrt6x6yL%8o#1iv zajSt9%5TMJ2;;qio~d$oLmSpV_|8rYqsz;e^lNtI95!!G5)#04s<5&IJuXEy_E}2x zM@oUz;#rE-Sja6_8;E4EQeMLsF=^$Hl}PrY<6wk6S5eQjTkwU?Wc>$wp8iq2mKWMdif^>lz@-Mhks8=&EG<3iKtnw* zr{5YnTN~<$8WX8cOiZ;BX+-oxnmAMKxmlZrK4nb22XAd{;!H7-|DU{=TW@gleI4tD zhwoJ2+aSYh6U5{vA&C93*J%5U=G$5<>r5n>Mk~>05mssOfkpcLb~{!V$y05L#Qda4 z*;XQrF51SyJXMU^YBKK|FV?6OuUJ#1SYLHEdxuxkUl~buDd`fwZ`RS;EKd{`1W}Fl zB*l)g*66_im5z;E9@wp+2dY6l{b5M?c1D z#U7`o{l=s@n8|fpj}w!o!X!N)$4Mcs>}=vso{3)J{(y;xX%jtBShEdNlRZim8EZOv zUe`3wno(lS4qC(GIdF4Asp)PiEDA>W@$m#2pI#M4(>*Qtr5GhLJ$|?hW;#!EGsg|>qL4RWH*pVwL!iFGND7f_d$mKBj{G2`#3K4GS8wLwK;!R z`mfq>SSEatirC6~hl4gDAE;~z_A;e+5B$0;uZ(>Z&%utrTs8*#xiR3sbF7fPfu*=P z*aWH4yI+XWho7GB@!(h1eR?0%g;U6*i`|$QpyB0O^q-HK3}|hve7k8%$z1 zB$nM_kP?c0Z4ge46GV)`M3~-qfE$@*+L+bHpTt?Mi$R}b=&Y~v41FHxml`^|>NZUe zIS>Etn=CuHRCbi%IRrdqCmCcik+TdklgLE|VU3qv=0~nI$f;zz)gTLj)NJ;#p(gb~ zWGy!r_R6BOb^g3fiXXLMQI1!hmD@nzzXI!fy6|$T^$XFj$|=gt#2rOmX)j=DlZt`f zaUxPL;@;~-pmk@=oo(5xi2jYKVJ@jw6a5uv{TW=!Ui>sNqMK^{AoljP968RqJC>G@ ztpU1`tH?<`5mpAW^?Vm7*+{m(Q^|dxmtV{^@O_lBdZD_5D+r-SqVO@W>q$V?7G2*p z^&KfUOl%W6L?Br;NShQH9;~i7cSM>D=UQ+s>a4DRoOP_Kv&tqK&TGIKS>(&$PLn~M zWH8t>qI8|%xfKFpWdhBp0+$*971Phw1)+_5I@!3u>o<{whUc%~akIU`T9NY%{bA6H zeDo^~ot4uXr%UCW7gze3VR{-&j5m|87|^jE76(CiFABEc;KI*R)U7hq?{fKJ#JPB>2u)4d)yFB6MF? z=n z6EllLtLz!W!>P3FRfDj@M1C{~-*UH$^#9ne+3rZ$u6gZYMRIPiwV%fK3D&)=)%sT)R2v`e9~&M{4WA1S z7jEDTIRpF?M4cy5^NUXc<;PoXtgs*LXK(Y^t%F8lQKl+w?{^>+R6c6Mrg)hvrObO+ z1}Srul(~0rugq0a<{8AL%+*q6IuGhHS4){+174HoD|1JAzcWAKAtwBORx;x4R%kQ+ zX?y1IvMk*MmY9=L23*WhV$S8nr3sXn^8s-&#};$)`T&!|66DHVvW3D1D zcN`=N{si#KRyJ9{#z@AC_x`2*xXj$7+QImH%yo z1zqfeL37qUytMLEuo~Q6*EsOlQ)YIcEs<-D3g+DaamhO@d9Uxtn~E?dAkWta4Y}LM zjie!w9D{MLoTatMToV2pXCA?x>7=)&{;{7<7--end->W!t4dQELK#K)8_oZ9dN)}nf(yrwu=Ekvi(Bjt6)$?7fQGE!bw zoU9_4xAaJPL-DZiDB?0w-cX#Z9tN&Q%1*_R@*Qy*DQ^j0hC!l7%Gvjs2^IXeCh9{Wz64^$m({>O66rqJPxRXZrc6jz&H|=BRXpr) z*4@4|^2vor!H4tVF9p)V3F}ra4MnQ2A# z7$)}Dd;CnSLaXd(qhGi8C{{%uHO&xjK+Ew1ClgerZtp(Q-WP#Uw|8G@?=Of;d-s+0 zo{L#bw|BX;H+R~)z00M&Luib_kF!N8<$TDha0UUXmgZ^#z2dJ!fY(TKT}XT+C+%8E z&%oBC;sI&OyM(3H}x3 zuVEiLOz?VSRdHV(@bQ8#A^u;KKur|z>hcS zyO#_Rho{+6s4=jw@+ZDqPEpTGeruOjzC`}HhX1oA6(3UHJTZC&`M0u=XG)Db>mFQE zF@}}CMAC0VdPM~*WvSrr1CKmp3dtV&Los`xw|rRfo>^W;-Zwm}QQ`SLbuTp&;`SvN zCM=j0$z7|fi<)@1REMTDaZRm;hnkKvnwF50|2G=Butj~#xz6!4D_`f^s;$| z{w?Tb%X~=WN`ve}3NL%(%px`IFVSs2rk^`AePS#}qtJrV9fp;y+tIRnyz*K7s_^Eh z>x~|^xEeidrSvcxowwpeyeQO#(xVRr-ftQhKaOE5bpozn5b_3)2dxFUVi(4#S|zgm zur{h#jY&tX7W@|Am2x4}n)qnxH^#QCgG-UHmvhDCrrYmaQn8JKSBT(t3hv=+?#hl~ zb0gDlmh>-~(RG}AZV|i~BdFpl4zpVYpA0>34;PSu%fqQk6+vqm$qgY*}s z@p!E)30RScNn!0BsZ&f3>ElV44K+OB5y)?>L9&6Y(gKO=?pSgejxewR+(?}#`E+jS zq|^Gy(T0@GF+4?3Q?}S3>@1O0KIB7@o?zows>n@-&VIxDPJR8R)tD+KtfdJLUZV41 zv1)~RysAZV$ccF-ls;{E`oM(v>rJ7L^xK0LXRK1?cJ`Rf@y64Q>EW2;q_G~5#<-Y` zBaQW-;M<7L786R&E9x9EKX2FWrGH;4#H=4eNJ-(x1dD;{C!mzSg!)PFmcipVh;?4S_ z;rUIoMs}HsJa`1IEfi^b(y|&ck3{}uQaO;0H>t+vj<)#OFmWI)*9Ii4`)M&sk#Al_ zH0>5+n%?aud$k&w;NyA5@M!bb$IYK%cz$EPRd%@<>XTr9dQ;bEc&ik7smDo6>ur;^vF=AmQ@tu(%4;2Nx|?(V3|!&XlpLW5|9bOy2u`RNQo){8^D!!+8pdo>Zob&bK~Z_i$#79Bz`? zkY$pLMX6VOD{`VQx!p@%95-W$FL{=iyxdDJTVawpFd|nPWFe5%aYOJshL3)Wq0{ge z4Sfapc~eVA`y{OUY%$siGw2?6rjHFHw*gikT|!yAcdV{uGTY&Gn@G9o4(xsmZsW+% z-LIFg_Ljhikv`7xoj5CfoE&X44Cf^rH251u?Qg z4{fVVU8>t!R{kk7fN&XUegG8w9S<+WPLQ*3FJ+yrg>v*C>Q4>ng4UgWyD{=w!tk*GA+lWeYMh)Q!k$>xe-XI1|I*LBb6-O=tP z^^M$ZJV=)9`f6 zaa+JCbKFpC=qWs6*rc*CwKYnw+r(biC<;#@Ch1Oh^6;ujx{|maTD5)ZkxBj*V@OY^;s>|*4nu#HT=SXh4s=1?*LyJMN|>hm zdJpElj;L5rKnuPhDpnNGim^k@&rT;mCvF)sKReY^iR!6)^rofdFGPX%qJe*fK>dS6 zBRUno_e#)yDN{dX>S-LJF`c?)Y54;jI=z|NqY*!ONeq9Vr%{l@fHp}Ce_t}!-+=m6 z6kTgtBEF1b~w=; zMAPtsQX_~4nt_g{8Er%d5q*^9JCx|@L>p+;IHFe)U5+=3nn3hHL0R5OMBgR)BvlaI)mr} zq8WVe&L_&=Uj736`Vyj_5Z%O1vz%yX1kjx<@3}<#68$q*6z35=gXj?~(F&rRA+Xw+?-90$+{j=ef<@0?8DTd(lT2Ou{e#X$bh55$N&5wfriBG{h z4HGw|spx{3{DbK~?%)3^e!-1=;nPs76TP1mz5B$h$bSq|Ut~YZFwI9rC#=^M&FtrN z7T)V+UluY<+>4cE7(_}{U=SL1qY-y!T9H0JI)7e+!HLPg?%xk{`}>l1c1}9fB+(eB zL8SDaHRO1^QntoY*gf6HTG5%+-t9=4$hriq3w*3cbY|_+!J2@hPi#icG0Z%FILk1{ ze@G}>X;P)^mm7p-zs|6_$6~YUqd%bOUfDPMl3wea^pr_r+4mc5<~N1|%f8dcTGqc) zH62*?uYIf&JG1__>^~c3mi-LF94~t$`KpedveBfPjvDQ#M(NYJhLxS|G0h6+Pwxt# zNSRO5$DK8KcgEoi)-cg+DCHn2WXSPucEdpPJc!C#4I`T&GSR1csFw1^f_Fz3`i@Ux zqG58eZJ6g1UesB*&Xf?pI~t}2l#O2X=-F5&MlSZr-rrfaF)n+JVPd_!shL7f{DQm4 zojx7EcGfX2uH!Mo#CaqKvorFCD+;^r%RcdeI>jrycdL^X*=3k${y5D<^Z(_OJ+rgy zw0PD(7$%y(Rx@#$#B6bXkgFl1U`nATp2&4Z;@WVuV#%Wko7{U1)-O*3SUuj!iX%`F!iSxguSSk9wBbA8OKIx`w-q)G+x(>ZE5nbbB{kSvhrVds!5#4H-IT&p$22e`9-sh=M*w)!G?PD#$l804dO!#g64KmEEzhQ>CV=_C$r|M*rY9_OXI+{Wzvnhs^)wN2q zhMf3?nUUE(O@HmI$-8IMik#uo@vLUjBjt{aJ#dr}d z^Re#e%=%*os~PK;`Iz^1X5Q;(mbqz@kGZU|lf4OX?>J0kpK&64*vCAvGjqD1c@LR) z_?XY_%-qAz{1cf!_A&ppGjpk*c^T{YCm-{BotbO=%y9m&B5BuJ@?q;GVUy`=5N|yz zGc`RwB6)_H!@Rd)=9*nQe)RRJ8gEj~Fdx#9uPi8=3@eYT7y4Nf;6K3AYUu$-8!n!y z+$>z)$@7S~zH!2Nrs3py%}%W^0VnqQ_lcRtp9N}hRfu)f0Rr&U{89PNoP0ur?$qNV_t2#kyTc3qplEXnPCj}*?Nnn zp!VdWHZZ)hxd2JyQ4hn(^NQgqG(6{lqm3Nahy#;KzcIY*Iw;luio;x}qeqr`9>W-H zFB<7%P;pj!>HxF~p3F$Qce6?N)^^?%#3w1%&Rcc(Bt_fLz+RtEX0P^lu>9wf*0X&V zw)uQAW9_`LhEGytq<0@mey!cU2xmZidStcNV28w~N9IWHmX!P+cKd8(z$dAs{R^b> zNy~0e#~X!DX7Q+CFT}dwY3F@Ye3HuAzeRoWNiJ^x8T(N_seRg4z(79TdbNKy2#2(I z(u&%9;M9UoR&sk1Y~_<)*#0z1z^CA%_G#F{^GS`he>4ymL*vQc(!LygeA0WgFNY#N z=>_e32gAVyPezw^9**=ywb5yu5>*3erS6fPhhPg*q)3$`K0!0zYC`FNsYFD3JRa}qV~I? zolj~>dkO^jq(<78qAYw0ZXJ07{_rViS0fKY!TIDpquLi>Nb<=_YJV5n0d{T?rx5G$2 zdH-&oicZ2OZ$eIowwNy~3P1dYoltw(!b)Cr%og7$wzEsKv^ z(7qgh__&4b{6_(N+@f~x&d;Lk_92kwQs|0y==&d=!A~ThMeeZu*zja z`hPJwCt(hC`ivu$_YOIInX%kE| zdlwTCcJ5{3Hrno-4EcoaoSfb3Kuu3{hbSyc@4$?k7=96CD|8YnBr)kNvfxfZWRf0m zkMWoShG{tT1d=|{OmbyuaNJ5Vjm88P98XYRSsI)`*o9ft;p}Ge;RN-SrNQ|D8=Snd zH0ZmsG7EDbJ0OPVW7gDcJhtgkH9u)eZ1c>Wq>m1~9F;D#tO z+T4hYuA>rMut@lN$;e7_gI5g)Lvk?+7Q9BlQB2=R``9tA?uoN*H+ah_aW#MTso4}) zbK`2N`Hr$Ti<-EZwSlJMJ1u5$-kLAF)NkH{{fiBexocW3`Vy*k))X09Cct0uV{5!uR>iU^NLn? zxKJ5*;ErIYu~OMl8o(+_qL#xeTHUt2P@7ccj+z};adQF7?yxROPll1j_j zgXzc}GYpiVyBgo=`nuQ9_o<1ff8L4}`hksT$#t)xU%mmTuX_#sN?2d_8rn-(U-uf? zM_6C?8rn}dmci>@L%6LPNL2=}dkrZ;`e*RE*N`npV+OB#4J8QDmci>@Ly3Zn$>4Rb zp@1NhGI-r<$W_B(;k1mR1R!BG8px~+UiTU@*S%)+Ndsc8d(Gf=uc1tJKP*^~!RuZ_ zIcheLWf{EgHPltj19Eo89A=uU#zEUT8Ly*)L-}e3kd+y{?llxq{{Y+C3|{vdDpwx^ zS)ak{UPBdvY|P+wuc1moHf02Ifm8{yB_oAMjl%qB-Jj7Nvuns)_nN`$UPJY27V>!# zmuO-!6*9N6hBmU0avN*t27>xF*3gYCuD*>mWNu>(y4j!w-8HB~=_)i^x(camO`$IE zs99DPZ)5H9WGa*nRit;}ZLFb24S&zfngkBI`+y|g0G4cC!5TiF*=O?#*6>OJUqmMi zUmzfF#Y&PZSX2KDu8;8KScy9+upF{U-AR#Ku#$5ZLap3_mE3I=LEeIuoOdNb-h!3f z{Z4|sL@K2x|F>;c{1U0ut^#_;9xo znQG_S7zb)JGo5DVa_^&fuwc!!a~Cn6F+^tBRw{?kASg34Nj5K}NxPoq&n`vhPuobw zY+j_3b_1u4Y+j_3cB?S(BAv9mgn<|7q-`ccxBD7VG1E07v=nN{}H zXyl9%0eQ(!MvaIchXIr!*HUKl0@n<=z}0yJb4g}j&U22wd6l!3(+B!9>pAB*XQL=t z`7E)^pJda!Z03dVp-&*!<*%P3Q!DguuynbbWEA#CP*{yp*c8jHhtRSv4^N@cH87;h zqgp5idY8vYwnOufT^BBjtOZ)ZiJpQptkh{BFZA%BxsNxy?s_WZeZ1Me`*^d>eY`=J z5_#ltzJT(af)Ki%8%6#JIfXA$bR+W5DZU*bczz~w=04P9QhLto4yr$yH#p_IDIjlf z%GsGk>T-f_^#W+6ehYRIrKD+AD#e*1c+g5^mbD)4nA>@CUL6gR+|HZx_FIyBBAK$k z>kZ8xF)^FB^X7a^(7go4r|10ZX22m{RGjm*uDx49&)LI**r8I=zquE1Lg;bQzhm`b zm5~IbNJT%O@F{>*tP4!SjEMG9y$QRaeeCLG90cj1r$+$pLm0P_cc(yKW}HX`LAMb6 zsRClMGiB_4EX5yC)HUaB=*9;fLq2N53NYsL&L(gW{`+X)k27;E!PvGQlIcUD;Sk^j z7aKJNdDw14s89}ct)lAEb`L?Jg5IbcU6@AD_JIvCfu%WE**>5vjA(oRT0)AKg%n{Cl4c z8175@Plrgsk%m4JA~`8kg=4-#9@cF%K0j8$OkZ{t!lN7VWJ8|-*%6xV%-f9?KEs#U z(LRBT41GET=9|o_tb!X1nKoQ)$l8WS<2Kx8cv$4Sjmr6`n8$osy`br)$UV22q}dQD z+GCIfKu}#F=Srg*1r9k2KGijgf;-_8RiXSVK2zJ6ANHZT*#t5_;Nl{-Q-qs%HC(N| zRksD#h5V=ud$5SoV{^E)V(u8=@`@dgbkjAK z+2ER_20*IMG|<0i;q9bP|L7H`8HhKFr9-{gZfEcnXM*=_m1HmH^K>rGBqf&QqW&vQM?L(Z~0q{hK7 zS9=t^XZUHuhsK6l>C0`VeXX9K86Fw&L3cJZNb|D#rFn4&*$lzB z@}oBJPVegJbB{L+_o4c0l@Kkr^0}m6B(osPBonC9HpiIV>3R-2Ukf6^9T5YK$L2*?bm}@MRB4`899`Y*fA=B5%#N};P zAn8*l0GHQmq2N~#-%m?=3;qD`hEq;G6YE^n4MPGki+?I!%et(UDH(3Ei|RL`2$yFd zUqoc}lriuP#QKulBZ0-}rMMejeK;z|>REp$|6pXGSqoYW!k5H@P+@vt!DK_f8BA{) z`aGnLS8Z0oStfBa5^*yw$?z9I&%lv4Iu8eeTsu;5xnX1vD$$H)HvDhA7e8Wn9t02n zFB6q5(#n?klohJU&f=X3R>6BdoeMhY-0Jnpf=>(&OSM*bI0CJL9}ImP^19Q|nb&yL z-zsqLl4`M-_-v=dMynv#m-uO?MAXL{CXttz4r%s(Zb*gUNI@NWp(kDy;4Y@!PoZ;Z>wxJe3VA{FZYn48qA^hSD z;cpuH+mLaK5e{#nmbhv7?$j!MjMNvMqIXJbNYm2MtkSUIqJp1h$SyQ=R!E^U(T$d( zLftd?i!$gp8#?PVQ0UlUEJMpirxBA+X7Er+ogQ)0taJmLe~1H{+6cU#jEoO)Wb7w*JxS^<50j6OtM_T_^4mBR%bl3JyJ7S%FDO1DF5K;WZTN@&BkGE!2GC|-C!6f3T&kUYKk?8 z0T6YoGao=X^1&|!V%Rz$thbW&mBZlm52~S&99)%)6{ufaIUk7^l+ zHR-{!^3cqchsLQu`?4vTnG(dJ+u)(Ri^xjo%|vAlpqYjndW3TaTTbCO0?n9r)|xw5 z&pGwTe--aI(doDo?L^s!6WaFOGq9% z3~G(|3m|-2Axd3z5EiDoo&<9JkpPYcu#mu^0B!|PO|I_qf#IIGtlKgGdqM8TQ$FKI zp;>M)(h7?akwt-QuCwr;KNNGKjinD7CU)f<6v(csd(~TQQ$l%lZSrNqnT9xuT1H+G zI0ZXC&V2B-WWkb*q-xh@9JXBHhWPhD|Ev?s8JsLtP3^9br=GSfz^%!U3ZORzxlL zzf}Yo+Rcnz_6iv^9Cxr%&dkV6re;B_x&_0~k|#>~`V)la)2}~8dgO$a!+MV?KsTAbg z!#V=yN43OJ*I_d;rc7N4zf@C(9oq&^9zN4jN032H8GbA_)(bcpPvoDYM>RNax+wg~ z)!@7hqtNSad;p5^3coeNm&T$3uEyi5b<{P~rQxcf*vgNq@FjQSIStc56E#ifm0?BbPJ-&n{3a3yYN z{1s~zyox(Cj0J^P$pClb`}pQnFudVBu=AFraqhKzW0gY(vo!Y^G7`C#Q$__W&^))@;p)?(aDOh~P+L5I{@x3D>2 z4J7e%Oevn%J)T=eqIWL(2=wkKz1T& zZ;{1vD;UY!gOUTy-T_mDcQ{DH2x2*px%v9OAQcT;?inMH*jNvWekGvqkShS2_!>bc zzDAhwwYm5<@il@@d@bq%r;e{RB9ne4pzmzf!HKVtu3ri0TSB@MUn5<=63}=4O2AHh zjj$76`y+~qJMl3SdSVSi2t7?e(K!|9HFg7Ela-@GPeMJkE2txA4J(_LJqD~&^S01a zB`ByA{)e5Y(Kl|WucJn~Dtt+x|EEuo--#L#cA`dvov0CECu&5vDq^BWL~0`@YDALVsmw#= zL}X*cM2(1Sj+m$sk=96N)F@)2MvX|>7BNwyF(~J8E4O{rh?O)^BZ5xUh}CtXMijz# zsr-l*!|Nr`h|O1?`8sOE z;`4RXNWkY&XkfK~6OfdhpibEr0DJ-$&hUPK8FbW$6caUC0xlCZx`d#P8eL6LM~&_P z7^n*6AA_X>Ki{1aDxhS`&v&PUVuU?@zB?sUNZ6L>Pbg0Ih@Y&XBGTi2zB?tP-<=ZU zyHi5NKR}Hns&*{W<=rWv5*M-s;-S)OSsLR=p)yLcv?LyFX4yJ-IdhwLr-V{m*pS#( zPKs|F$!m*kg$o}e9!w&mytO2fI>C$X%oEll>5m`}?{!42B9-TZZ2KqTt`q5aGvJ7y zr)NewZv`Cp^RV4W7s5$D-&zvsO1R3;x0Xbz3D^4h){;oK=K+zvS`T5q8NRJA@Q?0^tkR1OA>cjV5<&$hVO|eYD_in))!Q)J9WJhU3H=bO+>E#V zLwW#7^16~pucx4mysjj-xE|CZzOH1eOLYmu*>zyC>l92R5gqM?X-ah$@Yu0A^YQAx z8rFTbKYKXnwbQ{f*U#U*sUBGvPZ#;WYyjNzSkRjjx0BvW^j3-TX+Q>@i3D3Ebj0vv z6c$m5p+k@|v<%1^m5{igoLG9fN_>Yoj2b}!>s3NdI~zpiI=JJc&2Pq2|1N(0!PZHR6>sAnn>gYm6%1XC(&*@ zRN_QRJA}yFDv_XoLy7EEiQ|b(rnKEEkqtLdhY|TiB_tMmco;SPS|ubHJ2e61N0oSs z#yOG$YSNW>p5+|FJQc3Q*fylfm6%SpW64(SO5BGYrj8@h-Ib_kp(oOAwXVb?WSd31 zwYm~6Dmt5Ne|2GJ4fyg35=hFs7ohvzdW>7;|3<3BB=bwisAH1RJB|RG#3ZA4b^)kk zlF=?Nk$*mnHZCdK0>mNNk+Hvp1Vj3xWy5$z{=)O@_>Wy zk4f&NKpm5$O)PmwXu&~*`I;E!C?-z`K}NnwFGmL%1=K;tN>Z0sVdQwD4?rvXH4hfh z0h#$r_WQt@BDl}W{v3FNgYOSA9u1NSGX4_M`=Eeq^8OtHL@#CKGsa!C;USj97}WMK=ipW86iu1t*^|?jrrN7)GWO)d>t65}8i);$+5N3^@^1IU3IB zKZFj~kpna~oe=IsYhY5ygS1suC3t-HW>n6+?=G9U*n5rfd^U%Q67Hr{chUK*ub;p_ zd=AxLcn0bp#7ZmQH3JU91NijJD8xh{cu&S>xZUDYCVl>15%L6BlJfQ(B)rfGyLnM$ zIi89af?oWj@LO+#{_}o%YM7ya0y=p8?h+%poX?i4%(_B3qb_&5%DE!t6wONVRY}>r zbyF*;UDV2|2b|{qP<4fC?si?Q!T`sQYH0~M6}v(zw$G{9tw_MnS55KBwI(MkayulN zid5WX=&Z;yn(qA$p+3w_k}qYXeXu`Ia;KqxhdlohIv=!?K4bM?K+Z+!sItrdtCb8J zI*aZsbg^MYCqrk^4Vvy0UD?N^`O$|e8#0j883y?s7QRYb*s+1JEe#{KMO=&4OLI@J zy1A(F!p7-8&px4>FQi;RKQ#TTjZc zXJ1WsDx7j!_IFh4B3&(~I8!a^Ak{)Vhl;1U_g5`(ZG2qU2VN^5)pBy!sn!yyR?Q6H z|Ed@6ao~A@`01!1auc666N_VVPOZj204~)&2ZH?WubpZ?WlCbTbCKj!`v*g3J9pFc zwraLDUon^Dal_g6D{u%Q>gWpj}Q)t4WFB`0PibTJ8Q zr+Tf56HEdP)2I{L40EMP`yGavqYdLIXbeNG#V`pgi&al^tG7DbRsWba$bI??hWRr|M90WO z#mHY17b6c9BOgBtMwZ#+a4~Xhb~__abd0><d$+kFb|xVMkt$I&G1PD0>l(G89IdTXzl{8n_p;wK^4J6NT50~kLDjk} zqu-)7Pp-&!j9e>5Zh_G{$Yj0Ng<-)Oc#<)qzU$9*jMz290?+E&@Gf65EyDsIYr12B z)FPAiJ344jT?3~$^hN$YK?PkCw`tXHY`dK^hN5pdL8-yd(73~$m_mV@x12Li1}<~= zplc5BTZqdfJ>+8E-Nf%31%8bWI|Um#4jBqOBKfTbVR$JHRq2 z^NMZ!!q5ut+k_j(h@&vS`yAtJR`S|y!Xop#?MC84=zE``)A!%WpkHoEngp3Sup;X* z?`yYH55IfcRxJ>7JH|YcAD9eOqNij)oK%$9_^Dg7COUH(VPui1@M^`W@J+yL z7mfhy1&X}*@!_vcWj|8ng=!o`j6lJ)_Y47kk>cYQ7=CW5?RzK)7b`yV;jq7bO>zg& z{c4TrS3PEUkO+~r(duQQ2jk$8k8 zPUZ-4n<2M=e5NMLgyNx$f-Y?*tKLe!ZxU(#?M9Y1f6{b7nzadfO~tO3ay52crf22wU}rT$B8Ro9B6gZ|4=Y(^a`28kP;yLhFKb2f z(q|}_!^M;gZBNr;jkC12a~7?wm1@jzE?QRCY_v1JSv|ISuzj!ut>a4X38N9**k z&|j7_;coV#_r$e7V>3$Ecwd?^c?NLl8XrhApH5u5#xB9P5|^&=vE=`fcoXIQQwF1o zGtu`~v*6EVB=M}>v#+T(cQ6QFhya{9yRWH7Jycmx4Ax8OL0>5@VB+-upPTx|9@73f z1F19-{54f-Xj@=My3|szB*4lRs%rG!%64F14IK$#!R-O!hLWJq+fu673Y)XUK90Hv=bU8lI=Y zGhFjv5nzi}pLJY@I(FHn@!!$8KT!vC?$kh|GF_A2B^qS9r3~QkbnTc{=ckj<>poo~ zm&S3d_dTV!=YIrxGn%l=n*g=~=*raUZ-MbQJJr7c7)T&cj!m8fVgTMEkOGi9A3%2i zGYIqta3z6803Q-K1VHfu07nCuM1U_`yPLp507Wo=^|=6MvmLq_{WwXT(?Pd93Q8vL zx8%cn=W0#QTDxr@4xjCNlu5c-$fkRG*S;YBkUYVp(v2Q50#Q)kW^GBZ;_c@{Wugog`KE5-0D?pbs|mCP;eS(0LHM`0oyuOovV(#q9L-`d^#n!fjNW}LkE0iER) zm}8gDlC^d#?1+*%mgxb_vlcgNE9Kp$nc01yqnXfDwv9T;KN!W>S|w%sTWfuW!o4%- zw;MVIP8GV-ACGl}CP$e<*(cWPy#MXF?h@6$UsR4a`DHdGOTQc}fS* z{{RnMKLYH#sf|kGnPrevb2q2PgXGCck_O2`n1F*NT=Ee!43=Pt2IY+Xk1^x42Ftq= z1eEf*M#VzvWq;pKc&R3v^HC}BDwfFi>ZwORLe@b~9zl>&2FYt31RN|XJx-Md%S?Sc zqZos`vz|{#iBqNmeDYqb(+}=`IKZbkFCQYa=%-nZHI!!`sJoho2(Wm^3C} zBL6PRzwaCj2A3GFDImNB1$mq0xN?o5zlUzh$UW%pc~~i~yvZc|6A6`D48oDM^5IP6 znM~xh45a^i83?6f2^zOYo)w^0Qmxjzw8CGx^tWpHq!M~B_K<<$!LEye*7qXHly8AH zNRV(PgM|0s&O3}RBvdQEMCz0#pnM^rTGXPV) z^Ie(&gaIrk-~n(ifUe}~Rtbz70IO>Od;xOx005EYXp#GkwC`c-%OHy_#kof22EgRY zhKW7>L1A)6*PZQWJE_kMr>nCT#fhmiubsDs%NTkCU^4MnOFkhmx=|~Xt9pRf9oXu! zl4FdRBBb`vsWQjK%Q|po5bunfn_)XN4+TngFoRVExF=|CdKGUhI6vwLlS*$&E;b17 z0e{r2ez)^tU8!|Oh{a`JEVlrsRp7rF+23@s|M@Nb9R8o#FKVB?a)Zfkp2r!9)`xKq z96ub5d1@m}q9&th^bm3?J!Fu0-Kq4eLE>@3HCXll&LQt$*#pSscGF+y5^NhcC|L(C zj|a1iTXAbN$0=vdxCadUs21LByYxa*FStgRK>#izFbcrC0LDxP(Crxf!;9mpPsVqb zb3t7Ipt>3VW&o?c5WtlH#L*#x-fJMev;5@Da`Nv!XoyTn8 zznl55mH+PMzlZU!@()IQEgC*`twEgIQE#}3-@U!BVpl6?Hg#xXc~o=HVSMg61{@RG~1Xo^iytCi2@OU-BIbfy3P2-)@TuO^w6EA>5 z&A8HXn#+XA^?EC0S-}KnJ7rFn3ET$BtN61?&Th*I{FNZDaOH%P8gO6>uDlKtN>MPc zWZ{II5m=zYm5fi|ul#t0(-Zg;OJ3nl6S#MhSNRR&ot=-Ry<8J2kcU@Z=>%?<;FVW4 zVLrZic~2PcY@aOt&NZP9jJ)zH#%Ju9oWR|Zyvhp4J3A&zJGdsSgOa@RipD#eCyT#y zP2ii$d8H~RINLkR*IT!Bz%!urcpQOXeKN@rqs+-9PikNM1~*lHE~#h>44d7QE@d~` z7?yDJu$=vo9^Z{A^7%IKOL<3v!ShBZz?GU!c1wEJcLAjnYGh@3vQC;a-}2lJXLEHP z4~pj$7|zx8T1wT2oOrl*(p5c$i9S5axh`U&hkGYo7YoR}ldj7Js?n_akA@OS6M}*>s?n_32IRi;I6Bz;*Q`+Vwj_q zJkxN?%qr;tk{!<~eGcEU>nf{^lJu^ttYkAlTjwrk?ug}y)F5AK0}!A68Is+v1N884 z0dMLHfZ5!D<@q=M`3ip~9!z4alMPsQYJ&@#yto0&PQQh`dIOeSxea8!0n6_AK4858 z%kKOwV7&p$?m}2^z_Pm%)*G;F`JKGpfMs{H-OdIqyL%VFdIOeSLs)OXvTGXv>kU|T zj}rh-wL;k1V&zbu9D(i!ipqT}Rit5jHuVm@)t-$gk}em9C&)mxL=MOwlR$m6;NIW` z^+!_EZB&7pby8#t)89m((Wze>0ho!j>F+;de$dc`fniIg>asKEfwlY z{C&4(WPVbZ80bdRKI)nRLA? zI&?mbt9M0fSnrAstvngx+jd2Jcpy(sF>8=tl{2i=i|wb}6`j+t0Bi-^6`j*4RPKt- z89{4UdAsnhJ6NUWoh;8j<`}t$bvV?A?Q-G0_u)&nLx;a_W)?X_C;Zbp0QGk0@IJzN zJ9PMG!g@P&_!q)@J9PM0!c{SDhYnkcNNtSUp~Fg$x)`@Zhh2iy$1X&l2zvw>8RK^7 zaF!qwW84lM_6jmJ#_iByTYUo!XT*|l(r`fi0AzNI4^`oyYDPJ8W84lMjtDY8#_iDI zJaq?B7R9(7Ivi6YfHcRr9Xed7js$XUjN75ZarHB#t%z|ubht!?Y;1>)Jpt};rQ+(+ zni#i3hr6k_fUJ*kJ9N0aARA-c4jrx$WOIz$p~JO;w8pp{I^0vSQ*DhEcLLH&blVo= zcIa>)6-7CZTZP;X9lj>`E7~F+-pESIcIfaXf_gi2_IF-CRuLHB*x|p{`&i2r%b2O9+g{+_)r;_)e>~ZDR#k_}grmA6pA0b(9UCi6Y zj7dqJwys#eiS6xs#x&m z1c127lc|VX6$^GTv4~q03w9HX4~KKaQm#({`)u~AB5qYItPqe}6$^Vdlgh1%g;JX$ zZdEKCKx!Vjy28suBV`qxM3EbcK`G)U#rQ^Y6`cVK#W!6`ked|aHwgnbDaLOX2AVK_ z2N^uvq*zq_DYWwN_?)6%99ukZjfNW(Tmre-&jR$>AE4?!dj$w3Kcel`N74Zlj~3~W z#_bvefo0i9Czi?z(I>)KD(ga@O1~{*96ku&qM+pWa3}SPg7AeHLh?R?PE3;umf*NC z6j06+E7jX7@;Van>7l>y*tZUxDJlMKDSp5TJW!MxHYOg9i$|Nz1HFr(r_ojBYPuUw z_Eu#tlTd?%jt3j0KM>^9%Q2nq84V5orqun&r|bJSDNyS242WdV+7lD)^DQ^o%XxgG z+N7*kwc2&CBtNQURmjnPlL)&F+NWf(ZIc)+bsliJ({EDboeo?dCUK*rTT=RUNMRA3 zH^5ZQrjTZIIJHH+hNPG!0~|LkdtE(2C9j_rYm=(wjQ4;A#{Mr!WXjdl`PI% z&8xmdqYKY4!!r*&AykP4FGSvB41F2sl^OIe4E;jT57Tt_yj3noQ~aX+NiCUgi)Zt9 zH>y#Ib0h;+@8ziCiH;JLb%y6k@W3PCpSn$HV`t6f$Vkz=9U1al;^yp_G1|Qn|O9*G{=vNxneeN{;9K*8#JUJ*pjuUQeLd#H~ zmA>1g{{`s>OFFwVCG`N08jkkm@Bi^~R8^1t2QTUp?*@0}VuNf0lD^s?(*C*})BdX* zT`F(L%zax%?wY4Fawz}tDM8=8%}^tF5zzD4RNvE+E(cooIME-7 z_DRACw&fzMQNX4zP<&#nycqb=#AAYwBraj-LcvcVE@9{*!Jj3*gEG^K-k~l5zL|JO zMHNO9Z=}3Vf?or?^fRVc3En?NcnHofV*BB^j)_p}B}};bbz-J&!n7NiYF>E>;_!J6 zwnX3byDu`m2G;PqKQYU{Y_&j*lH<4?*M{v6{kzWmIx>F)=@5Ve$QSe2aGY+DKFTD2 zfMgpMAsOqRCmHe=AXhFi$d5qM8w|p>ZVfp7d0mHFgbB`xGbd`!GDLH?V3Agz zX4tSYA2zI}amQiL2fEIs!2d~`ju-q*;{BLDLGZjaz`rLxQSi~kI}pd}GJ5c7!258T zcmd|){azV?gxS(KP3wRUCgVvsR0@YI1J|v3c3Z2a*Sw&0PoR=KmxP1sS$N$uR;9O@ zsxGn)Zg^31N!LT|tn?aFz0SzD+2oVgM!M`OEB&X8)F;}fR$J-&Gg5cAPeqgeBO}!n z)fySe2V3c)e`rnEzJnyyY2Q_C?R%`fwsrCMp58xnt5C<;Xe5EH^t6n;r?ks^Rh!46 zQEz0Ure_*vy2pw(HLUbfL#M%R({y7hY^#8Gq;2gVR=PDq!jlf?=EXSOepiMfd)g^- zccvoZUFqq@_H?8i_>S}tim92Eks?&I7@EfOv^G(1XgEV>(8FSOlR1QJiIswq*>-c2 zRick2gEzBZbv0QzMyAIZgr;6Aa-6~KYiDpve`SW?!6>WMQOCYE?!f`5y-) z_r`oIBl*h%lKWce0F>aLB{v&rR^)yWGy|QB6pdrQju2;!ipRra-51Jjn7!= zeHlDU+wnZrR@ueR>DsU*)@yxaK(Nv;n-rSiZlkIAER34|$RyGTFSSdA3I3gt_*J_^ z7@$03h>GA2f=13pw`?1tYWlylzc+BC)Ayb>jji;KCp81-PNTF0?hQ(RW$2tc&CH-r ze@gRDfvy({eKNvQa28JT;39m{_`*-%W|fsjaZ0GU*C4d;em&xj<*b2IAeL`+O;0vX z#cAN1rr>#?A8F`R^xF)DPB(NG6Tl$G@re~UKf^h@3*8w9b~tTXd8M%q=WI218>H>^=3mQ+AAnxzk1esG8MTOi85>D(+$oNGPBlUOOWx7m$h;eZK$zi zK@pxbt_L}K4S=fvj3RImfMo!>lB?Toz$C1@6#!rKRQ(u$9RSh+W0F%~k`!do70m09 z+Rk-JrwtQ5ajY;oeqpt>x4dY)<{-m)mROkkk6>pJh;v4Qxz&IRK-T`nh> z2D}B95y#%TE8LdQ=1af&VSO(osHicacuGcjepD@{1Fzo)tq;gek)hp`%4MG>&gz)mN`ID-{a7cv6VCn5?5DQRUip>DZk}_vpzX8qAZ`tpaPAno zhvHdW4dTCJ=mHJmNMq+li1%SI&qbPYlg4gPx=8v{}UYIeWBA6 z(vM{n@vr^tW8TUTQ-ESnv{OXohbE0fsx>wv6glqr(fEZBu0)5iPB;_q6&W|VUPn|r z6pZ_M6n?6StMuKmPGmNAyc*{OTD@JyW<+|&W<+|&?GM0?cLK2EjzU?yNV7dyT#jA#(9vRS0X+(BX&D(f8g61XoJK02n}Nbw&#s80o&KnR`~4D z&m`89ow3rg00h?#EZA6X9g{T&-nez3)~y4q_+qfcZ34RbtQ)tE-nv~9vUM@=>b__k z<>^Cf2xi${8#e{yln|>=VEvW?eO!uXZxwD05+Cr$5t2GS;Q8rNB=Owi2`HWtGCRQdfX5uNA7FgIV-DF5Fh1bPQ)fYgMFGYK zJTY}Fkmdm61D-;45|DEPj1PF?>MTfG5nz14Q=(P^SruS>z*DKt1>2ec;{%><>S7@4 z1B?%Nx(l)~!1#ctMv%<`#s@sLg0u!0AMo^)oqt;cj1PFsA^QQw2RwZg-;MCNrkUs4nqZDh6+4`73tx-;5MFm4ev!h&k%vVb_)<6L$eV^4ZJH^e1uU0?8~BG0)Rd2E`3wx&a%ZvT>yeUQK+6gLZle1zUa7Na*V>I36GykD zszYd-vnhB9QsO5YL~VkhA~e)&q%UXs%OJ&1JsmrPiA}m5|E#<&T_N~r5?+40QSk>x@9)8WD#RfR9|**e`WQ#Dihnj-St#@p&4ug~ zTnoXfr&XL~ip>SbO>G=jam>(}^Qks^Th3amIAu8K>K|zid#N(6UcA7hc0m4L+VWe) zcN;qU3vc(VY7?seYz9AROJEnTO(S}3-h%R~Y2*SDCYnl}0GJ=uLSgy+gn>;qW;4*^ z1Z9(L0~!kwEoAmSe+D|4Xq@O$pv7~I$SP>NrA;f;mU?tpVN!b|)zPiYnLS|~EpsLy zcCjnz%whZuWhbE!Uf%Ov+(8C8St~1kIKgY6SXR+V1i8m6 zE3ud$_jqL$^ImLTv}E>>_#@s|r^6-z#&o@}3&@zRcgHEDE+_cLVj9i+1OAaHT8AyK z3ougz_gP+!5*IqS+sc-huJ>jBE;+ab_Vd2UO)pjfn=xJQZh|?rFsPc5 ze4Biji|a2q@kzK{gmJdy3<7Wd88^o#N05_t==T?(oyHQ4L&h~gbLF)HGl_mg^g*<* zI+o~Tw*b9)7|`R125v>~DS#cPm?B+Hk+Y@&jFuzmbns}VrURK~FLju1AyfX5hJkmX zcac;e9k@WcN`aa*XrA>$w;y^hmH(x7{SUn>fm=f>gU!pQEGZdTTi_a5;4Z1Oe@zs) zD#~MdwVkWHR$WP~=EGm3v8WY0FGD_LGo%XPIJ$pw+5`Esu~`*=EF<#Pr#l|H?S&sM z9`-};b|uvh4O^ugF#j9Z|EdWl$LM`lAy3RyhtZNRm=1<^kdJDi5!hyjvCSg4Ic;_r z+w4f7x{(fN=FLQrP1t6#!xiMCTKGfaBGhaGYo?|o#1|*9UTSjU zqzTN#&Y&h?x-}BtBcDNrRwD*o*@z*PVn$|)8L7osW*=%H_ur}^w8|PI0QXlTU}BcG z@DK|41a;NDVhBZ)-vRUd3w65IWCM%NHnbPAMg6GG5#YgUm0=j84Pcx~ub>rjC$Q?z z+B6$BJR@j1E&njZ_h<1$8JUm# z4>h+6`Gl>iY59qU&(=j_JfgB}y6ViPt2Rwn$Y*9%Nu$-9oT#mQR13>u&dSW3l}=7R zVyjZtxAs5EWMeXCX=ct+le6?`-oj4f0Pm*R%gW)q8n=>t2zMLBG))&6?>~j%Jl6Ci z#$dfadLCDZ<+(JDQk;S=>>KmxbJZS4j zY0nvC(2vqt+`;QgT?&eqJ9x8du?Fk*ZUFA91lX#=F95b>r8bhJLUtq6RC!$cwe2Rt z(E%XeicL)T`UqD5`r<8p{C}~PJ)0~xrTE?T$x3_!B5O7z2vfF|eKeUuKQYOjG)zJJ zJmRcQUx)PuE5sMPs>!wQf{YKmSw7gV0G^x^ai-v8LN~XONRYA!noyiH zPM+nVKDm4;n5v}0t;Ri9w<$asg^0qHRQMyUAr!8p!qe|^6t1Mg4*@MG=>%b&C`@!e z9{F+5nWKBZ->-XT(cQ^ubf-AcJ;(A;wOqcBR~1q>r)za+)1AJNC+=NH_b&S@rr`9V zBC@NA(Hl%{c@{f-NcDgLT{c{z(3xg?db#4`;19gAJaK21?QJM@mft)bToxb9JXULY zTW^0A?CkCJ#&;gV0K-ooDEohKaZS&Q8zI>BS~0q1bsfO}vbd&~Ph3Z!PkZv{llB;Z zn^kNO?BPEc&Z`PJPsJ-B#{-T}fpb*(Z#@}sVl&8#0t?PO)l$VAQkwlE$B-g06$pck%%WW8X9^BsRk5m<49T{gR$)aeiDk#1~OEZ@8Y3u zrve!!NFvy98j#_RjFKQN=WWoqZI=Y^W0{Q__oG<4X{``nwB|ib670}C*7Qw52K-X=0lkYuQZ z0*(*?RiU*MFkMn=LxBlEj+B(TP$`iag4Bn0k!_|RBQ4iclrZ%tXydgN^pLmKCjf-y zAAKd<4gZi#e{!v6?rB}Y;I(@={PhmM6`2V2d>%TocQ<=@?&&Do%C%99%H51amz783 z8J@0+UYGkkdKvyhw#xk@s_x322_ARubY%AAJ`Ol5mnX7%b6X+EmwOXd#Gs z9>{$KaCUBAqy}>r;D0E0CjRH-t^#K`_h|4$a{mT6H+LfFdAWVSAI;r|a`SVK0KFhL z26`-a3Fw8n58!`1_agi+%DozS6S-@lLvd~poF%y(0e8r~3wcX(yCPRvZWHLq+`Zr| zhg~j3WuhMsL}m8Se%p5AA3h++N430;I_Jx4nf4Go1*2KM^r=1X0KE~YEI)n+#P6QL z-?-uv`+2u~TU#Sgk&AzKeWz0jd9&DI#^pjp2kq|*d9!eGvaN1MUcCeuZvjZrMI2)a zEZ;7`QND#;eMog{O)(b%=0~;Mg4?%N_d}}t4%PLc#+rXHp3)OoO#7H)z+Zug?hhaj z?qEju;sr+NW6=F{Btd09Si~MQ^xsjZPo++dM6?g zFg~hfFvf0Ok9S!Q>mH-)1knBNjgFli1N;u1c8X3;PNNgWiB9>Jk3~k8)3&curx$in z6NIGo7j$~LO{dqXQ$I&1ZNF`fPCuKBzeA@tL?!Da*(5qYKcV)YDXO;(sV; z*^YuwQ^8jp1tXy2tjKTNQjwCGCgYn_@Vwuz;IpEjBgQC5*`i>vg|mvG;JxVB>QVZ4 z#E9-G#e&*$d7FZdQo+9W8mGEZ6s$E0#)kfWogNpRoSa4{iW8k;mXAe7`%$L{sMF35 zv@$hqI#u}{qdh>KPIq*w107)kN2l=b*XbeA$;oMSqBzkhZuwYbG(?@`<+~e=PSlSd z)lwF4bh@27ZH7+y5>UB)GtvWFfyxjl*_Q!L$oh6GCF}v3F(S@26)1kdl=2Z;eHRqK zsK`fS3@$RaufkZ!M|A3rxxHCgj=g7c{f@r0MXK$Thf%)~w*+-v#7J1qs^Ozru5YW| zb*x<>requwH&Xl6KuW7jmT#eI>0z13$(hK)45aMb48&9oM*fT{tY#@2-_VuxY?5=LAA6qyEm+ zH`!LqVJIeFCYj4POXzXGQ|fY-dNR<`@n*gpgJ3Jgsfjw1!qf)jO-tT0nYUsl;v{F% z1=1hjR;teI2C!19FrUKYWl?t^4@KxPpP0Cv&+<`PIj2Nw8l}%LrEUkzk80sj%UacG zEbe0H)`>+xOvDldpIQ5v$qF)6nUiT(s;Qruv-L0mO6sk4=NiZnyWyMOHS(IMhuWEHjbo}SOd&MYi6L#OC8+c!L#L^hX3(E8bef7sM$=8{l5)aR@fRkQ zrn*n(YBN=7e5bAlMHU}v5ZWyZ)%ss-cZk@|(b|eF&d4rVJO8HHhquparOp@!3s((> zGKxQN(5_z9=IT}ZUA?Lsn6#^Rp%E*)v&(g5R`L2jAv>jMuO}u=>9u?mT*XeCk`Bg3ihv5-(r z3A(-%p^mDi0CjY?1DU%&3+r@$1^;5}jGVSgkNnL_cb7_^zrWJO9ZhETiF2R;hY$9N zzJ^X?T-!#6C4BR+6*-kwR&1(aVfUbkn($vn5v#^o&+s+WY#EOjBrbbZ?XZbBa0i$7 zPF1^a0)7jQ%X_=3-2)mg@71c-Ss?NEa@9IZA^r}o+C^|ZUfxSp?dK53%ez_CI-x|n zS=9!M@w|o0U+Jp(u@in{hs!>%hqG}iAg66ui}PS%YkCFJ%n=iZ=tULlL*15Tw*KBy zi$}i&fdBvPSaRt|+~O28Tb$NI+M;0Q7N=n57N?-u;>2A(D}rW=(``Uj1|$bsA@aa(f?@vbIXmTQ0_^1~uodCYo`V$v z*5?51DMsPXo`X`|2!Hk*1iya-s5}W>8wI+2 z8-{vD4mtzzyJvhWb+_X08#%jhE4U1`E#mAjxkslKadx=X+;fV!Ahe-K7KBW0{8r!# zT|TqF=wu&ilK(UNruNwrWf|F}^zbz}RiXpccqQZGeGUy+J&JjIi35h_{Gn@)QL zTVk%MWVKcn#<~p*+E`c6Si!#;>u^~f%S}d$L`#Ns{uj$!CHgrz(faJaB91zhSUwh6 zyuB}Uy13SeMaWG)s%0!%M(cAi^=W`UG3ksKQ~#yy)!XQ(ciit+?^03E$q7x~I~bar z(fX;@U>;nGAJsAlw;Zj>8Pw!nY9d3y8Faft9tA31bp{o)9y4|uk6eEDHltX{MxfK- z%pGEEgR_|P-(W4BM0C-iNX4&kmzDL7U>N$0aGjoa8^Ag3M&Fa|&)fqDRQ z0F;v})e0=#&*W2ictlPgXo$#f`cbVI!ZJ&qC|I;O*+`3Uj=F42Xe@woa%oYW|0#Aru$A9&$1WX!mcW#7KOBLE zE~N&eC;Hv*eCqU3`N>G!DV8?vZ}{htAGxf=Ax1b;DM_a+0X&J%oK^)BW*DY=Du9n# zc@G3hbDZvIzs}MA0RWW;=Fl}+-L59-Ck$GPn#4ae2nP&Tz>GIL+lH6}$D8@mT8>{? z3D1EI{o6y;y!KgjhZH|$hs2sHJzeh4#{n>Rk>YfB)cg4QPs9M$Or^iEvoGj$i{sfX z-bL+WvUYtuoqOvOKxH$Epl3g6y2b0rh2>A;5#xzLeo=fSEgX%|M_D7cO!0`*|S5 z9mE`8f2d_4DlH!@p~9ZAuMZ=GOeG*PHuf~49McCp19Z+X2NGpE2NjnZ{19Tb=lK0>>pC*Al^H5Vt6THu9CHAp13|;q3raIPR>ZR>c z*{csR6`{1HiNUFq*Q*`4hnbM@_{#7!akzEL#Kc!>KCWJ1|T$%Z; zuB?i)%CH+CKdOaVi}Q5&yK$!<2yp(g^?57_%>;1iKTzkPrVrAa;xi0#I*`x6!F#ma ziTA%pE56e3u!PRI#4f*muj?pwX`9r zx~xzj6tHSGR^zD%SJq_3G>~eYAOF=jYfX`6RpYEvg?qWWd#-aOtr};wD%`2U(wT=*dPH2ysjoPdUu$ zL2-fRtN~TRI~=581TkG;?mApS_QSB{;wgt&jZskayWhQs%myr{9C{}c)TbPJrx3RB zOg9YQuAN;m9v((ezx&<0@FT!-%At3WJbd_{Lvwr2rsDdPL+?4H>r)QBOGwwJ9D18c z*QXqM&tD8!pK_>SeafMC5XJmt_g@<-(G+Akx`HxP;X2aWdLr!cO|4;t-^A2ixO zJpn%bgGPHFVf}+f`)9)X2aWbGg!K;^?OzF3g}K^iTZ%|+n5%uZ5~ME7)jr!LNPU>A zeYQuCkzua(*;#^240E;5_6jmJ%+)?R0cJxp!b$wM1Iml9*BkcNb)1n5%tujUb!DTRo)Q=m{SdP4bVp3e(-V(t`90dfetENX_d(#P_a8b0^qNtCNBSRSURgz(>o1rLxR zP3FY88^_Q0E#wqE4xyI3wmm2D3dpwq^gf^$D<~I{SGebt5m zAJ&<8;$-*{lJ$v`VH$@o%cg)k903cgxZWC9+~psj6}<{GTSaHn*hSeev&*t&?KZdf z9u~m0+g!bND=*K^ZCkr#?gV*c?KW@!+HKzcwc9*dyA4I6ua5S?6kNNFzAhlwZlgPn zAayyxH%oQN_-k2+<|l24*`$?Szbbx?3V$OCKU}>zE=U4F6adbf02Pb z@-HypGeiD^+;S^wS|(!uB1LS+3^ys~MBgeoCcc0tDHio081cH{y>7{x>TV?MEV8V_ zk(9>b03HZZqYV9X&`;k_ub6A-KY|Wkzk7;#yiCic1v4E@^X#_URhsM4PEn>>EMKaH z!)mE?X-?>sQ}L}TCRKEwzi^S z%rCWUSQg8LR%)8bz$(OW%Wu{FTm$(XFU&wv>oNo#vtLlhYYlw> za-{Ay2&=Hhkt$V~)K-OuG6ZejFDUhyq0@0b(R9Dt6NR_q^PkSML_3euhE|3DU%KYM z!|@g$kQcp*Bfj)1x`w!4w&m*zxKoPGb07P$V_S|N{HT^CQQTDJrJuqu@g+R>NgsQF zJ=gy-_94j6xgR7W7SGS>ifv&JajbY0Y2u34BE|2vjVo4fL(Tt*hqo?ryyl~vkR#v1 zZaiM|v0cdMUb}H&=T93@`s0*y#4C8tmA!J?iQWga+Jf47A*?#d@tQA_-d&E@6ws>a z@--;<@K(ytLE!ByL)R|y&U_XBs_P--?Fhz*XE}WcD$WzmLrV2VB>aMbxK^IayD8pj z-D}q`to|Aaw;>@ZPwBlCXU%^{j#_zC?<3vMz4r2j$>oPaVqd{yuVDk3sDF^)={JmJ?(W&xO| zCnz2J8g{Y&p$4J-FGfaV|04}q+yB#Vv_jPW5yNzl)ZhWfeyLv!&nobIsChhVKUv@f z8`sE8OT>&()`9ES3@)oZ{9ECdf0Nt3Meu9E1j7) zuJ5G)oOSy30yywYlfrR7g7F07zDc?EYn|sAC^bM*a5CqQVo=_`;Mi$3m7|Q6I>^|5 zdlWC@&_Zxif#uPaQsyh=#9FK4pG+c)Pwm>fznO2+B`R&I>20R^C4=Xgc03n3 zJQYR8R5T|WOUpRJNw;e5F{PfW%d^(yIpf!1GJZ{go66|2%P?}d<3}B-&IYgah((Tf z3qbGwBfa|@lSRBcWVEGspMs3Wy9*3iyt~3F#8H=>otr*!7thH47n8lG)p2A-_SDP_ zp6B=ToRrDaWDqw0cfun_8Ky2WbXq?f72r)D1*fhzbZS&1bR17GWqk9FCwJJOg4Wu3-6wFa^ty$_Z^&8OO_REE@#>9?`>1SGh>LIO1>4$_b^(kf6k!}e}^4F&uBwW z0@~${AxQlLAKTn(w>5RCVe0v5L0g-;oIrG?NnP4yAJJ7h^{-8xw^jpP&1ci6Agc3G z!yPpD4M_fo%ok8k_u8#ZUDjow4>sxh^o2|v0p_kJ9*=i_6FV8$09Iq?7r^l0k@0HN zi3M=UtssAa^j^0CNWTf-dH~Z1Tm|4p0vD5qz_|cMzlF1_DPZ7Zz}5j9_&k880i^1_ z)bi;7wUEAl$Q$VNqTU+~&v2d2<5enlW#rr6^I9FJf#jJ+^LHWnLdhuy%79sq7>sA9 zE;LM^f~i$A;aP$_P56&vj`51X)MJK;I__(y;~G;QT&~pJ%P8!wGl1NlYr9urr(_f( zm^`GsU}WuqtYR2}9f3tnX6slf$J|WrZ<0B_A^AZhk2SSsFF)KQ>uEkZ>lBkHGvzM~ zB3?h}Z*Q;zuXYkLtu}G*#S5Q^j|L+Fc$cXK@NzkNKmV zOJogst2g8y5&5@n(Q^HTIqBd+r#l?MBJNJg4`5*O?sm zqqOYz%mkQ^v3_@z^DK6=DJ8oYCmv~4RS&v|y~s*El9Bk8PHYRmfCsU(j)5PvdaP2a zt3h~k9RQV3Ex&tUn;UT#eH(&(QUhf$b5z0YH6!~uPIl)#h$!!X><72cUU5=Jb}898 zH1j{R4rreh48_xD}9;mNuGdqX-UUwsD7Hrr+o{vqNlo_7!;AkX=HR8ae3a@GA zwh6~?KcL^QCmcJS$qFobfhmbPoQR8_v=A$THyJu_Imagy<$T%(-hB;#K9XeTCB)G&H-y*{2Y zQ83y$p0fDe(Z^#X=at=Mv~%=i{IgNcp_Tc^tI^ImlO>g-`O_a>!PMw?FsSn?{`Y9^ z?Bf+G8GSz<$#@lCFq&J~c!d(9xj%qcsC2Y*YGm=+(fp+puVCS5{h%a7=*eEA( z)}fbcloK-R(7`o&-7x(!#rRK_H^>m#`(3b7r9)(gOwl2-dgChZW0d0OvpOt;nNuRW z0e4QY_%E;h(`;Ewk|=`Puw9+{A!Ga3{?$`dyLbJK0L8rP?>vI~U4I1mR=>ZJU!RlV zCM@sobH|~yCGYQZ7tJEb{i*K6*#!AJba(NE0DblY`0xIlRIa;wQann;mN(<^MKoCj zdBFY80-UN!_;dAu3~(K0(FTD(pb%Ah8elunG#PN&nIK29PoHI}q!$mo`2jiQI6V(6 z6#+ToxMBt1-Y8jY;qlxu62*3eAaB)DmR$nSGm>~ezE;8JanGIw5bN7PI~;Ht71t)Q zclSkVruXhr11q5S?h@u3iEc%5kUSy0u#bAl@~;1N0lB>E-w`8~%e($JIs&x9+whOX z2ulrH;b-y16v2H~_%+~t9o%jCWoxegQ$jPvE>Dc(dDMH%PIi7EEP<|yNQIfXoB zz&ba|IA2a&y$ES5qKxz9l&JTCtco(ums82J8?7}_#`$u(sat`pk221e(_N5_QO5al zY6RIFWt=akR*=?ch)7Sh4mH^tE$#%Qm*}=F$~a$6AN4WHdEClpoG<4ZzwGMI*~m%; zxT`;B6G1D$UHv)Nv$}SGyZUo(V)O9DW_ZT}{)b@0Fh>QdEsjDeTT`e%IMk?Rx5fE# z2Fp9)CC-;qui?EAkuyZ#T*mprD_LglUbt&`m4J-%g;xv6IA0_|MZ(|W-{I)+cze%S zeC0CE7bzyiXa9gSpFIy2kW&>nE;yZyW5YTJFSBAiWLd4k1v(~5@*h|W-x*jqkR#73 zf=BIy+vOQ9F3T1b8{}jl31=4PvwaX0yK;PdY-$l;9&uege%-Dw#@VP>N!B|B$ z>M!?%$-F0Awi~F7`BRuu`yo&n_75ZaJkVlkuBnuE(npv=G00MbH0-=KlisrPO(}nb zKGz``4X1igF?*_2_L@n&8Hw-cM8A8H$qFXFdrcdHN$fOKV!voBxi=#_MAyMU@#?6v(>;jx&}i#9>4S*&G^yvLPa)ci18KlL(NttZ z#k`ZSJl#{VPRd*%49(_;~d%ymHk6T;g`1YSY^*< zh`+6kPIEV*@V7Ej`NM+$q3|y<3g45-0ta&n-)ne2gMxespi}b_(_Qw0*45C@LMqk- zcAjm;C!1u(SkOOKU{sQ^oNgukW3a}LaqwR-B*N2pd22d4v+>+suF5Mx;^pmL`7OS9 zdAoITemxnL?Q0#KDSK`QSEchrlh;t01T!yh|H^aVxV*drDqBI}kokv2q;h>!ODIC z2F16B+d(`fR7}5s)O|-iB!>6`Qumz{ZiT)Ci+c;nE-U8>P-;yQ_)nsZ{I9_#%KtgcFUjH+o+x}VjAM__d$@O0dIOcx{ za0mZm;4k+-1-P^SUx2&&cOkXLe>NyR{a1m~%YO_0AL*yfkM_R{_*nnF_&>`(6g;Q; zTk-!q|NTf^EA0t4f$sa7mUV?XlKu@}&F%^Pjr2Wq1srOYgPNB3 z_VK5Wp|4O=-!D3I9qR7;RWcX+fiMnYV(x;8$lz0o`usoay$O6&)!9FOmn=7#gN^PJ~A+gaw0mD<7D4f z^$tu-{8&RsVCr?uj1!rt)Rh2>A1^Xi>VGmbL1YqAhk=;*GUHJoOHS=%rd%M)NIerY z$5$AnBPaEHtf@3^M>hqavoA&!W91@ev;JWu#N_B&3KxOC&O1?(!bPBOx1gSjK;NE8 zfKA~d(08{0;3Cj>p8((@(04xpGJXfP>)&T-iHUyj`doaXbSJNhWr`o05db$JVCmDc zdI{hk2F%CIiif>_|2kwV-ve+aMk}#hi)`QES;*eYahM%fZ^~-suMq5I_7H2o#4z

Z`{5CEW_ab|4`-GDE~s0!>i^LM9GoU<-yBUfvkD#xJsAhf0Tc~k#oV$ zOmV|z9+P)~vdnYAM+v|DPslz9^C+_iknJbfH=o$_KSTfd#6P`;*?#wP_yH!*{tLJv ze(rMt?I+GQPi6yvi%ze-lUpfn#7Bj zgXmTJBbp$KpjKp~K0w)^2EYs!kJi14Fi4_aB(?m96~576HYcV9pNRE`U=sD| zVhZO+b>E1*Fwb=Gou{gRjtUC1PikX&^tC|Z{ ziV+W#wReJj6h~pSa0R#q=@^U7AjYc2X9jm`_0osp5kA0;@dcq0FMTIVGh@yqz;!5k z9dnT>EJf)fsHy)e1ol-5#Mmd0H98jd`wI=)IGX4WQR&fz5~T|RpHiJ*S4h0@y$da? zW%(*iucTCc<3p4dEKY>nqN3lAAQAdm)Q(-O=%1-3fDEb!fMC!af515K>dv4t!62t^ zt^YVr^Y1#%zYMW7lD`weo99%h=8C_w(PxZUsET0emp~}E?9+x^MvX75Qe#yX3?^*o z$g!wMqkcPqt)v~LJBQr>Uh*A(qcPlx#*;-fKI{t=^BsSiQ5ZV_UKQ`61K>8_35SdB zMIGM>%|+aa=R2Xb=$~wIX8OCaVn3yX>1Q>ePbEmk6{5RrEs8zGKL+S1{6-QDzV?NjOhZ18Hkw=Q zX2C+#`MA{{&8>EG{0io|)h?d(OxyzDM44yYr8-EE(XXDvaU@=cjV<9 z@o8$&za#B~*v@`q9Fm6K%!g;=1urXJ`cCe?C;hra)H3}WXj5`ffsMe#_i{GudW+|3 z`;V6c_V0_kA)1B8DXk>p?@T6s1U&U8$HR$Bt)jdip}aT8NuvHN|3KcK2YnLP5#pKx zTq#wME&T{<{)lXRKlb!G=Z=0k{#VTYR%SPEO1q?fy{5nM5`b}QXk!|;Vtyxc4{S^q z2PVIN6P1^J3^T{QuTPP|29+{JnJ?P-9-^Wu8EO4LXh{0RfgL|XlRms__&yWIkVrU& z#Cu4TF!4Jic%!T@+hwJoh1s!rQ@?B^wxhWJ;|gsB3bKErGEJ*l_;7DQaerUDoK!K~JeA>aFGUZY;eOjQ z+(}yYNDt%=FQjL<6BP`H`$!m!Gu-|&6bOe4cGs)ya%A6CE!Khx?4vw@nBW_#x)s&Q z5D1b-?s7|wJmx2UF0)F@{n%)`FfWvUVNQ}z zItR0a%M3~pXvNaBsCNO8I-F|v=xCHY#r=A`?v;O_rrdXwYWgVE^pBWusiu#zX2&N` zQ=ymp95t1Cxj#%V9}m~dCrH<*PnBKc3PEjA847A2^xzTH2)%6gKvsGo5kNb7 zxlO@PQ0u~AgtSmEZ&4uK^>UZ0d5OdQWdq_vG2DfqSqyhG6CCcNOmMirV}iqt`y9h% zyYS%_qqzSM6k0LdpQ;Rp8;2e|!;R3(Uwa@6y^x;a{$9awxU<7xLc@JmfrJe=d!8!& zJ{sPt8d4jeo=J_}o{}zJO`p;11)SjG6REC-e9-T@HpAuT=2rdKqdJgV?~1w!u=ggPx1 zi2@x-?5{YEq4k_k)IF$(+PBX2y3T`=M!fL4I!nlgr6$2sbGPNjjCbfMG2K!C2PE!Pp zVj3@f=e`i@zDd@#;iN@y;|0NuDrY)JsfJ%+I>Tkm4Y6prJ_fmBRx4<6uV5#0||OF zyIibLFA34~C}|P_YBS?go<^mMFmpBG&-)Ts)~QC%Ln<(V`UuK{1>foaT@es3OIG!h zLP*a{bOySNSk?ebiiqf!QLXMrR?NeB0K<=?IO9I|tB?C)F>a@&8n-~larf1tNP)j= z0?1qZl3GO}uof?zsFOS~=EWTIdnE5s0Za07ao!`ylTqtS4tWWYz=Fs_?ng=vs82E{K~;_`8wKo~nkx8K?xfI}3}ooJFeg zkenV^Zq)M*E=}+nbd&ohnwPVQty#gMH}TSUG8T^)y-%aXFgmKTw<#c6hwsVWfKAKZ zsmjT|C*AV?2UWSy(!4u4)X`K(o!3zY2w@scF&NM)syN62?}}s@pazP?#AtGUz*2Hy zG)o5^WpWH7o5AAnxSYsf=j%|C@0_Vck1`6Jb1`#5fpacqmKE?!jBm5Nz&QXjD+_q| z#kV=M-~$lAw>iAPIjl2_3+AC$zGM0oI1BXH$wQoVf5AUc#dl0r!9UTK@0g5&(J0|N zDkk4KyNm8;6x@j-zGM1o!+WDvdk~IDt?;XB9<;QgHFZ1%gKMd_tPffiC2-f-3Q&Y*>%|70*!Vg2QLZ;29o|^hJu(kVm zzY0GL{W3CF`_xlY9|qVqpL%NQ6Uf}+AsEL9^UazXmPRSg`P^sZ6V%fM%cS zC!j_0m&nIlBa*ydC4T}s@egP>l?!eyx&nXHPe8LoeAV5`2m(Mnrqs&3ib(MNUcRyn-s*Lfov%rDWyHMKuCrH9P7sjG%c?GnHk08?I{mv3T zozsdR2f5ZqFr5+qKD1aL4VA?Ym9GIdy_EAmJpNLak72qfejn50`CXC{&G;CZ`1IZ! znw5c1KiiH#B83y0!WQB~OErN`J{Q0@n5;-EB(-VVh)pxNzvU~aMR^kUw+!xY`Nm(& zJomTac+zDhjOO(?abq+=J~2St7?qDd<&DuMRHqXrBRTQagZP`tbJN7bBFS^p#3Qe< zl;@_2uf30?mRJKuu~3LXl9spxdDe)0td_V6`7fNjb7M5|mEN%V;>Kv=>z%}-MH5Io z%r)_CR*HwYCLU$d;&G*&XNxZ zh=GEt9_E_dc?n9y!(5Za0|CUtT$9BE0mQ>xlkXM)JSVwx~;H$!BYQe+VRcxvsB9S=NO_RW8%lmx(k*M?5ItY5)+pe>SesO%xWFjJu7U z&^ohTbOQZZhjh*;0PFeshc+xAUayKz6zzNpVv{Sn$`@Vz6|qO|-6T9;r&4VA2l9N1 z1@au$99RZ%)bJ7-VpBxz!VcJmIXV+X0|l3c3z9NUApc94KV9apL4LqX031QUe2%YJ ze--JUph6pTRgxrbu-G1*1D}7lD*09~7*fEYCeGZbx*W_sy_`@6-xD384;C9Ws!S{R znWw#IyE+6O*|s2}t>hyIDfrk&izcUHEl$~xfoFsC6J$q~V(6X_L%C)iDj0f#)3^ol zI8+?toM6pk%nIQ-@dUERnElaYV&mKn*LBI<-=Hqed{a?7@N&+Fsc!~IJwPPue1dh~ z5&3DT&lB^Li6gFpKPsxox6_OpQcRvXU2%vI6@0FDWQnv09{9EBXOSMVob*0JdUq$w z8OwzY=L=6=!>Uk@{uz$G9MlXIUlf1lM&KKQGqa(Si`cvo;6o5ZN@hI6-hRmJGaRZw zJ{PgKkTl5*?Qa0VYnV{C7uo$E05MF++e<{(fi>MQAyscts9tCGVhY&@1ilOF%Heb2 z^B?Rbi3W&x>7PFa4_3GeRfS9Oq2-TO5LC@KPzM$w7>2yXT&BgJz*mm)*C~jb!C+p* z1B7+C`r^2je~YRmGlt+DYLE3XxQ+X5gY}x&jYjFf7A;T9U(fF%;KkWmCc&`}(u1TL z*0W;59Cn~LPxJ3N&8PO*{KN3(1wZjL7qW77k4^s?-c&2{le@dfU40ffS1iPS7bm`0 zO!_WPda<}vER$mHc2U5JcXFb4Q742&<0KPZNhQno5NFA6nS79#A&>NkBOYMM^_x+k zuSfC7mJ!Hu?nkzaR4HxLxU*5crX*2v6~0lt^qm$W04bYmNa6<&h|#kZRGNbN7+6bT zQ^iBf)?h1aj01tm5w8*DLZ$CK zh-KAKam%=tVaILgaHzOtynr=z*c=-wf{%sF7GQ&Ws8~{8!0h|T4ig+-MC4sqRtR|1 zPIKpubNA*Kg*PwA_cRw$zM@AduM2Mq(YpwI5N?&M6{av*i~beTqoz;+Dx4MFU4nfm z+4(t~oD{VR&P^YTUCwJIXKp>SVqPaQ`w+8YUaOex1yaYqgcYlP7SZsmt5ht9&$bZZ zH=}m!kJS=#ADEGUP-T9O%s0`%or1NT0=-Jhf6W7Oe;CL{g7By-|6K+1YoK{K3`U|U z(egh~Aa4NVPazO(>>xF@|ABHD z@yAUru-$6W5>DU+fAX>dJORLS6yO>QfX12(&LNop9||NMYP#M5AucR(IETb59tM>E zR|T00$c_-CR$!^2GSEN}`bMGw>|RF_HBJ z-%$*(f?|7g&8G-hPd#GkytI#kX(78AbTRw{P?r z{qcuyU+G!Sr4xAtTzd#EC`v0W#fn0HJ@fK~a=+*$<)C|!MR@f;6RSV@^-Sl+^~t`O zY4Qhhj6sEH;oQGgzgRB6gK6@Iag1**N4+V(c*!JhV}F}XiYI8#?HdCJ`U~@w&cBFnIM)HWw4XxNwg0`n@ZfM1p>g&_V4Ac8~sBPf9HO_{zEdfOdlr9g)+U5 zI2XzE1k$rqrvH=W4KjTr@ifYGCCit|^bEo;m+9%md9h44v#(2JdLLm{$h5)qN|`QX zdX-G~XWM3xjZ!q~CFoXwrqLbfzj!JG zX}og9CrWn4!(^w6*zFfg&Vg&o__c!iUMjZPURRlik-=A!Kd()D@CrIG96kSVi3gY)TpJ2_U z%&w@%9n>dgBl`nnJ>=&o^0Q_rv~PpRBEa#hS$M)eXvLp7TBgI75VcNAP70?k#wx>S z8vVEaNOCtKkB5kSghakgs(3N>5mscSIy62)4Vs6npfTPei%T3DvlZ6Ag2p3ZGs?jt2R>ghas1K2k$)R3bu(P*#8Q~mUbrq&IS;M>!bk){PwL6wIw0 z>5UxeJhy#C>0fgC zwvp}!RG;~wfkk8gBV9zS+c=aJAU2&rtH`~8+&~exZaaV$L;FBno>nM^Qd|zJOaO6B zB>kMCIoJc|xwL+*-VYr~Nxhbo;OWL>^_80yhCU&R#BU7?k-n0E*Ra!T6qJzB+f>FQ zqqO%UfRkTE)!UjC0Q{PG={t{elmcfPalQwfV*1)R=3IP7OHN-Kr>~Y-F@0^Ez8jFu z3@VJAtH^N*>+MLSmc}o}>X%ii27^N+Ov65iB;hiW@C%}CP*AKBCd6^V7?10bF)kkQ z>uZx0xT}EAhmfu%(rDbb660FSam`^)DBxO->sn^TxYlx9&mfzf6Fx3%33pR8ara_C zGe_0JKHh}Q;A^P(MCne>gA}0_cAM0XL_mZ@ZWVGFAE`EC`r=ieCzTn_;-D)L?&x*; zYT%U;Q^$@6i?3hRZN;n(7BX2!nan=|a_Gm|NE`GH4PUKJ>mi%gvZ*#`5QS}y{vV<8 zIV{hm3eOQTAow(gd>Z@$am*o)3Ko!(bD0$Ve1_)4luys(WTbs&PFNB=eV4rqdJ8cg zp8d*EN=l}NdYtO^IMwZOs@vnVupWsi)FU(6fcuHOga~sGEAjQJ_(bVW`Y$;hCG6)# zXF5b~Vt;6~U}Omy`5?1`nI&ZAfNWhk;St2$hOEa4zo{&j#|girin1yc8Fa#ijJ6D` zM9Y|^%E!Q3WCc}b5;Efi&|F-d7O@)i2irY;@btUO=&lvuEVlZQ%5YpuCF(fS=~&A; zq^fBc?{un{_h=mPOaq<`DY~`nPdv?`*>PsietBegQ!Q--g=&binK30a13$%rXW)Bh zv63sPkHE$u;|M!+Ibiq=lOYdM#)h$WI_C?83>gkzc$A5LNJQr%QGmo8B!-Vd!su99NHi@9O}0XFA9fFl zh(!FdbrG>3HMg^fXpoxISwuYgdBu?}OSm@CSz@dYID!BsGpgt7 zGH~;CV3VeB4&)Q$0vi4d!Fmmunzcf~QYgO=u;Bbt4zdh~x~qXo8%k@mTQ%4&x*)^G zrGQ~Kq3Qv$XActZGjT5xrFlsF7>O-N4F4$-WEj!-l_hl;_6Kmih)5*Eh($7tXe7gk z2MmjBSuzDpvqvg?Ux8us1;e&EV+0e9s4;b5ls=5+R18Z{9g$%}1uPi0+d-D$P$wBi z%U`7$h`A+(CY1D8CJ>FKOUiuP>_)eH& zjCD4&OUHo-wAgarBg5hz7xJ{XkS3$qO{()AEI`x->j3n)*m9S=WFad z@kiS*nfqGNFTy5@T~*`AL{zA6Hb#YZrp5M`{6^nN_qe0!6wD7U!NPSn$BJ9c}Hhlg=F** z=J|`*(V4e0$*X43eZI>iubM^oy`Rakvw?FG)&O|e2tHz&FNi7CEd#t^5D_z0CkatT zf6Yols2ej*=3~<}YbYC!SNUYkdgN^6C#Za!W|hrCzD(wIOSA3*S7XX$J~=rmZu%VL zEA?Z*Z^h*`BQsI|Co;)#{$k;#aAgPDNHk(sKQ2Z*7D&lZfgp1`M%VaQ=562!;vm>P{DRC5mF zt!I!nuOW`W2cp$+rk`GS2bX6F}nKRC%3?JeN{FYW#)`IWsHwJ+Hxfak5GDM%03 zlRjUC`zd--3_2^)lg`1PVm;|qNNtIpREy3>=t-mNaU`uL-Gjo>deS}=Zqt)S;7^C1 z^h_P%4?XE>{JB9-dIL1v2rM9Ihn{pNXuL^JszAG&^`tsbaEqSQYbCxiq$dpm4Y#2I zdjF1|R0PfEv=k0pZ)=Oau^`w{3pi@uE1+v|G(nqM<1Cr3gU7#8b?$(n!QTRPQ zsS+LCqbIGycz>WL-3U3|t0(;&?Yi`&=aIW#Pr4i3KBFfchNK?Xlm3DceWE9Qf!wEh zQXF!h=}8HTHSKdf=^G&F3q9#?;Kbkbq`QFSOFijh*rmUN6X^Y)dQuGtJfUle-vbqD zhTiyDG-l{bKx_6i(4pIFFl@t~3^bu_qG2CY*{v*m8bQy-$L*G?K{va+g^ Q#G! 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 NHp90PD-gT%{s-LCwxs|7 literal 0 HcmV?d00001 diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt new file mode 100644 index 0000000..73c16d8 --- /dev/null +++ b/build/CMakeCache.txt @@ -0,0 +1,531 @@ +# This is the CMakeCache file. +# For build in directory: /home/julian/UxPlay/build +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Value Computed by CMake +AirplayServer_BINARY_DIR:STATIC=/home/julian/UxPlay/build + +//Value Computed by CMake +AirplayServer_SOURCE_DIR:STATIC=/home/julian/UxPlay + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-7 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-7 + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-7 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-7 + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=AirplayServer + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a library. +OPENSSL_CRYPTO_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libcrypto.so + +//Path to a file. +OPENSSL_INCLUDE_DIR:PATH=/usr/include + +//Path to a library. +OPENSSL_SSL_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libssl.so + +//pkg-config executable +PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/pkg-config + +//Dependencies for the target +airplay_LIB_DEPENDS:STATIC=general;pthread;general;curve25519;general;ed25519;general;playfair;general;plist;general;OpenSSL::Crypto;general;dns_sd; + +//Dependencies for target +curve25519_LIB_DEPENDS:STATIC= + +//Dependencies for target +ed25519_LIB_DEPENDS:STATIC= + +//Dependencies for target +playfair_LIB_DEPENDS:STATIC= + +//Dependencies for target +plist_LIB_DEPENDS:STATIC= + +//Dependencies for the target +renderers_LIB_DEPENDS:STATIC=general;-lglib-2.0;general;gstsdp-1.0;general;gstvideo-1.0;general;gstapp-1.0;general;gstbase-1.0;general;gstreamer-1.0;general;gobject-2.0;general;glib-2.0;general;gtk-3;general;gdk-3;general;pangocairo-1.0;general;pango-1.0;general;atk-1.0;general;cairo-gobject;general;cairo;general;gdk_pixbuf-2.0;general;gio-2.0;general;gobject-2.0;general;glib-2.0;general;airplay; + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/julian/UxPlay/build +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=10 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/julian/UxPlay +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=7 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.10 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Details about finding OpenSSL +FIND_PACKAGE_MESSAGE_DETAILS_OpenSSL:INTERNAL=[/usr/lib/x86_64-linux-gnu/libcrypto.so][/usr/include][v1.1.1()] +//Details about finding PkgConfig +FIND_PACKAGE_MESSAGE_DETAILS_PkgConfig:INTERNAL=[/usr/bin/pkg-config][v0.29.1()] +GLIB_CFLAGS:INTERNAL=-I/usr/include/glib-2.0;-I/usr/lib/x86_64-linux-gnu/glib-2.0/include +GLIB_CFLAGS_I:INTERNAL= +GLIB_CFLAGS_OTHER:INTERNAL= +GLIB_FOUND:INTERNAL=1 +GLIB_INCLUDEDIR:INTERNAL=/usr/include +GLIB_INCLUDE_DIRS:INTERNAL=/usr/include/glib-2.0;/usr/lib/x86_64-linux-gnu/glib-2.0/include +GLIB_LDFLAGS:INTERNAL=-lglib-2.0 +GLIB_LDFLAGS_OTHER:INTERNAL= +GLIB_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +GLIB_LIBRARIES:INTERNAL=glib-2.0 +GLIB_LIBRARY_DIRS:INTERNAL= +GLIB_LIBS:INTERNAL= +GLIB_LIBS_L:INTERNAL= +GLIB_LIBS_OTHER:INTERNAL= +GLIB_LIBS_PATHS:INTERNAL= +GLIB_PREFIX:INTERNAL=/usr +GLIB_STATIC_CFLAGS:INTERNAL=-I/usr/include/glib-2.0;-I/usr/lib/x86_64-linux-gnu/glib-2.0/include +GLIB_STATIC_CFLAGS_I:INTERNAL= +GLIB_STATIC_CFLAGS_OTHER:INTERNAL= +GLIB_STATIC_INCLUDE_DIRS:INTERNAL=/usr/include/glib-2.0;/usr/lib/x86_64-linux-gnu/glib-2.0/include +GLIB_STATIC_LDFLAGS:INTERNAL=-lglib-2.0;-pthread;-lpcre;-pthread +GLIB_STATIC_LDFLAGS_OTHER:INTERNAL=-pthread +GLIB_STATIC_LIBDIR:INTERNAL= +GLIB_STATIC_LIBRARIES:INTERNAL=glib-2.0;pcre +GLIB_STATIC_LIBRARY_DIRS:INTERNAL= +GLIB_STATIC_LIBS:INTERNAL= +GLIB_STATIC_LIBS_L:INTERNAL= +GLIB_STATIC_LIBS_OTHER:INTERNAL= +GLIB_STATIC_LIBS_PATHS:INTERNAL= +GLIB_VERSION:INTERNAL=2.56.4 +GLIB_glib-2.0_INCLUDEDIR:INTERNAL= +GLIB_glib-2.0_LIBDIR:INTERNAL= +GLIB_glib-2.0_PREFIX:INTERNAL= +GLIB_glib-2.0_VERSION:INTERNAL= +GST_CFLAGS:INTERNAL=-pthread;-I/usr/include/gstreamer-1.0;-I/usr/include/orc-0.4;-I/usr/include/gstreamer-1.0;-I/usr/include/glib-2.0;-I/usr/lib/x86_64-linux-gnu/glib-2.0/include +GST_CFLAGS_I:INTERNAL= +GST_CFLAGS_OTHER:INTERNAL=-pthread +GST_FOUND:INTERNAL=1 +GST_INCLUDEDIR:INTERNAL= +GST_INCLUDE_DIRS:INTERNAL=/usr/include/gstreamer-1.0;/usr/include/orc-0.4;/usr/include/gstreamer-1.0;/usr/include/glib-2.0;/usr/lib/x86_64-linux-gnu/glib-2.0/include +GST_LDFLAGS:INTERNAL=-lgstsdp-1.0;-lgstvideo-1.0;-lgstapp-1.0;-lgstbase-1.0;-lgstreamer-1.0;-lgobject-2.0;-lglib-2.0 +GST_LDFLAGS_OTHER:INTERNAL= +GST_LIBDIR:INTERNAL= +GST_LIBRARIES:INTERNAL=gstsdp-1.0;gstvideo-1.0;gstapp-1.0;gstbase-1.0;gstreamer-1.0;gobject-2.0;glib-2.0 +GST_LIBRARY_DIRS:INTERNAL= +GST_LIBS:INTERNAL= +GST_LIBS_L:INTERNAL= +GST_LIBS_OTHER:INTERNAL= +GST_LIBS_PATHS:INTERNAL= +GST_PREFIX:INTERNAL= +GST_STATIC_CFLAGS:INTERNAL=-pthread;-I/usr/include/gstreamer-1.0;-I/usr/include/orc-0.4;-I/usr/include/gstreamer-1.0;-I/usr/include/glib-2.0;-I/usr/lib/x86_64-linux-gnu/glib-2.0/include +GST_STATIC_CFLAGS_I:INTERNAL= +GST_STATIC_CFLAGS_OTHER:INTERNAL=-pthread +GST_STATIC_INCLUDE_DIRS:INTERNAL=/usr/include/gstreamer-1.0;/usr/include/orc-0.4;/usr/include/gstreamer-1.0;/usr/include/glib-2.0;/usr/lib/x86_64-linux-gnu/glib-2.0/include +GST_STATIC_LDFLAGS:INTERNAL=-lgstsdp-1.0;-lgio-2.0;-lz;-lresolv;-lselinux;-lmount;-lgstvideo-1.0;-lorc-0.4;-lm;-lpthread;-lgstapp-1.0;-lgstbase-1.0;-lgstreamer-1.0;-lgmodule-2.0;-pthread;-ldl;-lgobject-2.0;-lffi;-lglib-2.0;-pthread;-lpcre;-pthread +GST_STATIC_LDFLAGS_OTHER:INTERNAL=-pthread +GST_STATIC_LIBDIR:INTERNAL= +GST_STATIC_LIBRARIES:INTERNAL=gstsdp-1.0;gio-2.0;z;resolv;selinux;mount;gstvideo-1.0;orc-0.4;m;pthread;gstapp-1.0;gstbase-1.0;gstreamer-1.0;gmodule-2.0;dl;gobject-2.0;ffi;glib-2.0;pcre +GST_STATIC_LIBRARY_DIRS:INTERNAL= +GST_STATIC_LIBS:INTERNAL= +GST_STATIC_LIBS_L:INTERNAL= +GST_STATIC_LIBS_OTHER:INTERNAL= +GST_STATIC_LIBS_PATHS:INTERNAL= +GST_VERSION:INTERNAL= +GST_gstreamer-1.0_INCLUDEDIR:INTERNAL=/usr/include/gstreamer-1.0 +GST_gstreamer-1.0_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +GST_gstreamer-1.0_PREFIX:INTERNAL=/usr +GST_gstreamer-1.0_VERSION:INTERNAL=1.14.5 +GST_gstreamer-app-1.0_INCLUDEDIR:INTERNAL=/usr/include/gstreamer-1.0 +GST_gstreamer-app-1.0_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +GST_gstreamer-app-1.0_PREFIX:INTERNAL=/usr +GST_gstreamer-app-1.0_VERSION:INTERNAL=1.14.5 +GST_gstreamer-sdp-1.0_INCLUDEDIR:INTERNAL=/usr/include/gstreamer-1.0 +GST_gstreamer-sdp-1.0_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +GST_gstreamer-sdp-1.0_PREFIX:INTERNAL=/usr +GST_gstreamer-sdp-1.0_VERSION:INTERNAL=1.14.5 +GST_gstreamer-video-1.0_INCLUDEDIR:INTERNAL=/usr/include/gstreamer-1.0 +GST_gstreamer-video-1.0_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +GST_gstreamer-video-1.0_PREFIX:INTERNAL=/usr +GST_gstreamer-video-1.0_VERSION:INTERNAL=1.14.5 +GTK_CFLAGS:INTERNAL=-pthread;-I/usr/include/gtk-3.0;-I/usr/include/at-spi2-atk/2.0;-I/usr/include/at-spi-2.0;-I/usr/include/dbus-1.0;-I/usr/lib/x86_64-linux-gnu/dbus-1.0/include;-I/usr/include/gtk-3.0;-I/usr/include/gio-unix-2.0/;-I/usr/include/cairo;-I/usr/include/pango-1.0;-I/usr/include/harfbuzz;-I/usr/include/pango-1.0;-I/usr/include/atk-1.0;-I/usr/include/cairo;-I/usr/include/pixman-1;-I/usr/include/freetype2;-I/usr/include/libpng16;-I/usr/include/freetype2;-I/usr/include/libpng16;-I/usr/include/gdk-pixbuf-2.0;-I/usr/include/libpng16;-I/usr/include/glib-2.0;-I/usr/lib/x86_64-linux-gnu/glib-2.0/include +GTK_CFLAGS_I:INTERNAL= +GTK_CFLAGS_OTHER:INTERNAL=-pthread +GTK_FOUND:INTERNAL=1 +GTK_INCLUDEDIR:INTERNAL=/usr/include +GTK_INCLUDE_DIRS:INTERNAL=/usr/include/gtk-3.0;/usr/include/at-spi2-atk/2.0;/usr/include/at-spi-2.0;/usr/include/dbus-1.0;/usr/lib/x86_64-linux-gnu/dbus-1.0/include;/usr/include/gtk-3.0;/usr/include/gio-unix-2.0/;/usr/include/cairo;/usr/include/pango-1.0;/usr/include/harfbuzz;/usr/include/pango-1.0;/usr/include/atk-1.0;/usr/include/cairo;/usr/include/pixman-1;/usr/include/freetype2;/usr/include/libpng16;/usr/include/freetype2;/usr/include/libpng16;/usr/include/gdk-pixbuf-2.0;/usr/include/libpng16;/usr/include/glib-2.0;/usr/lib/x86_64-linux-gnu/glib-2.0/include +GTK_LDFLAGS:INTERNAL=-lgtk-3;-lgdk-3;-lpangocairo-1.0;-lpango-1.0;-latk-1.0;-lcairo-gobject;-lcairo;-lgdk_pixbuf-2.0;-lgio-2.0;-lgobject-2.0;-lglib-2.0 +GTK_LDFLAGS_OTHER:INTERNAL= +GTK_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +GTK_LIBRARIES:INTERNAL=gtk-3;gdk-3;pangocairo-1.0;pango-1.0;atk-1.0;cairo-gobject;cairo;gdk_pixbuf-2.0;gio-2.0;gobject-2.0;glib-2.0 +GTK_LIBRARY_DIRS:INTERNAL= +GTK_LIBS:INTERNAL= +GTK_LIBS_L:INTERNAL= +GTK_LIBS_OTHER:INTERNAL= +GTK_LIBS_PATHS:INTERNAL= +GTK_PREFIX:INTERNAL=/usr +GTK_STATIC_CFLAGS:INTERNAL=-pthread;-I/usr/include/gtk-3.0;-I/usr/include/at-spi2-atk/2.0;-I/usr/include/at-spi-2.0;-I/usr/include/dbus-1.0;-I/usr/lib/x86_64-linux-gnu/dbus-1.0/include;-I/usr/include/gtk-3.0;-I/usr/include/gio-unix-2.0/;-I/usr/include/cairo;-I/usr/include/pango-1.0;-I/usr/include/harfbuzz;-I/usr/include/pango-1.0;-I/usr/include/atk-1.0;-I/usr/include/cairo;-I/usr/include/pixman-1;-I/usr/include/freetype2;-I/usr/include/libpng16;-I/usr/include/freetype2;-I/usr/include/libpng16;-I/usr/include/gdk-pixbuf-2.0;-I/usr/include/libpng16;-I/usr/include/glib-2.0;-I/usr/lib/x86_64-linux-gnu/glib-2.0/include +GTK_STATIC_CFLAGS_I:INTERNAL= +GTK_STATIC_CFLAGS_OTHER:INTERNAL=-pthread +GTK_STATIC_INCLUDE_DIRS:INTERNAL=/usr/include/gtk-3.0;/usr/include/at-spi2-atk/2.0;/usr/include/at-spi-2.0;/usr/include/dbus-1.0;/usr/lib/x86_64-linux-gnu/dbus-1.0/include;/usr/include/gtk-3.0;/usr/include/gio-unix-2.0/;/usr/include/cairo;/usr/include/pango-1.0;/usr/include/harfbuzz;/usr/include/pango-1.0;/usr/include/atk-1.0;/usr/include/cairo;/usr/include/pixman-1;/usr/include/freetype2;/usr/include/libpng16;/usr/include/freetype2;/usr/include/libpng16;/usr/include/gdk-pixbuf-2.0;/usr/include/libpng16;/usr/include/glib-2.0;/usr/lib/x86_64-linux-gnu/glib-2.0/include +GTK_STATIC_LDFLAGS:INTERNAL=-lgtk-3;-latk-bridge-2.0;-latspi;-ldbus-1;-lpthread;-lsystemd;-lgdk-3;-lgio-2.0;-lXinerama;-lXi;-lXrandr;-lXcursor;-lXcomposite;-lXdamage;-lXfixes;-lxkbcommon;-lwayland-cursor;-lwayland-egl;-lwayland-client;-lepoxy;-ldl;-lpangocairo-1.0;-lpangoft2-1.0;-lharfbuzz;-lm;-lgraphite2;-lpango-1.0;-lm;-latk-1.0;-lcairo-gobject;-lcairo;-lz;-lpixman-1;-lfontconfig;-lexpat;-lfreetype;-lexpat;-lfreetype;-lpng16;-lm;-lz;-lm;-lxcb-shm;-lxcb-render;-lXrender;-lXext;-lX11;-lpthread;-lxcb;-lXau;-lXdmcp;-lgdk_pixbuf-2.0;-lm;-lpng16;-lm;-lz;-lm;-lz;-lgio-2.0;-lz;-lresolv;-lselinux;-lmount;-lgmodule-2.0;-pthread;-ldl;-lgobject-2.0;-lffi;-lglib-2.0;-pthread;-lpcre;-pthread +GTK_STATIC_LDFLAGS_OTHER:INTERNAL=-pthread +GTK_STATIC_LIBDIR:INTERNAL= +GTK_STATIC_LIBRARIES:INTERNAL=gtk-3;atk-bridge-2.0;atspi;dbus-1;pthread;systemd;gdk-3;gio-2.0;Xinerama;Xi;Xrandr;Xcursor;Xcomposite;Xdamage;Xfixes;xkbcommon;wayland-cursor;wayland-egl;wayland-client;epoxy;dl;pangocairo-1.0;pangoft2-1.0;harfbuzz;m;graphite2;pango-1.0;m;atk-1.0;cairo-gobject;cairo;z;pixman-1;fontconfig;expat;freetype;expat;freetype;png16;m;z;m;xcb-shm;xcb-render;Xrender;Xext;X11;pthread;xcb;Xau;Xdmcp;gdk_pixbuf-2.0;m;png16;m;z;m;z;gio-2.0;z;resolv;selinux;mount;gmodule-2.0;dl;gobject-2.0;ffi;glib-2.0;pcre +GTK_STATIC_LIBRARY_DIRS:INTERNAL= +GTK_STATIC_LIBS:INTERNAL= +GTK_STATIC_LIBS_L:INTERNAL= +GTK_STATIC_LIBS_OTHER:INTERNAL= +GTK_STATIC_LIBS_PATHS:INTERNAL= +GTK_VERSION:INTERNAL=3.22.30 +GTK_gtk+-3.0_INCLUDEDIR:INTERNAL= +GTK_gtk+-3.0_LIBDIR:INTERNAL= +GTK_gtk+-3.0_PREFIX:INTERNAL= +GTK_gtk+-3.0_VERSION:INTERNAL= +//ADVANCED property for variable: OPENSSL_CRYPTO_LIBRARY +OPENSSL_CRYPTO_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENSSL_INCLUDE_DIR +OPENSSL_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENSSL_SSL_LIBRARY +OPENSSL_SSL_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE +PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1 +_OPENSSL_CFLAGS:INTERNAL= +_OPENSSL_CFLAGS_I:INTERNAL= +_OPENSSL_CFLAGS_OTHER:INTERNAL= +_OPENSSL_FOUND:INTERNAL=1 +_OPENSSL_INCLUDEDIR:INTERNAL=/usr/include +_OPENSSL_INCLUDE_DIRS:INTERNAL= +_OPENSSL_LDFLAGS:INTERNAL=-lssl;-lcrypto +_OPENSSL_LDFLAGS_OTHER:INTERNAL= +_OPENSSL_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +_OPENSSL_LIBRARIES:INTERNAL=ssl;crypto +_OPENSSL_LIBRARY_DIRS:INTERNAL= +_OPENSSL_LIBS:INTERNAL= +_OPENSSL_LIBS_L:INTERNAL= +_OPENSSL_LIBS_OTHER:INTERNAL= +_OPENSSL_LIBS_PATHS:INTERNAL= +_OPENSSL_PREFIX:INTERNAL=/usr +_OPENSSL_STATIC_CFLAGS:INTERNAL= +_OPENSSL_STATIC_CFLAGS_I:INTERNAL= +_OPENSSL_STATIC_CFLAGS_OTHER:INTERNAL= +_OPENSSL_STATIC_INCLUDE_DIRS:INTERNAL= +_OPENSSL_STATIC_LDFLAGS:INTERNAL=-lssl;-lcrypto;-ldl;-pthread +_OPENSSL_STATIC_LDFLAGS_OTHER:INTERNAL=-pthread +_OPENSSL_STATIC_LIBDIR:INTERNAL= +_OPENSSL_STATIC_LIBRARIES:INTERNAL=ssl;crypto;dl +_OPENSSL_STATIC_LIBRARY_DIRS:INTERNAL= +_OPENSSL_STATIC_LIBS:INTERNAL= +_OPENSSL_STATIC_LIBS_L:INTERNAL= +_OPENSSL_STATIC_LIBS_OTHER:INTERNAL= +_OPENSSL_STATIC_LIBS_PATHS:INTERNAL= +_OPENSSL_VERSION:INTERNAL=1.1.1 +_OPENSSL_openssl_INCLUDEDIR:INTERNAL= +_OPENSSL_openssl_LIBDIR:INTERNAL= +_OPENSSL_openssl_PREFIX:INTERNAL= +_OPENSSL_openssl_VERSION:INTERNAL= +__pkg_config_arguments_GLIB:INTERNAL=REQUIRED;glib-2.0 +__pkg_config_arguments_GST:INTERNAL=REQUIRED;gstreamer-1.0>=1.4;gstreamer-sdp-1.0>=1.4;gstreamer-video-1.0>=1.4;gstreamer-app-1.0>=1.4 +__pkg_config_arguments_GTK:INTERNAL=REQUIRED;gtk+-3.0 +__pkg_config_arguments__OPENSSL:INTERNAL=QUIET;openssl +__pkg_config_checked_GLIB:INTERNAL=1 +__pkg_config_checked_GST:INTERNAL=1 +__pkg_config_checked_GTK:INTERNAL=1 +__pkg_config_checked__OPENSSL:INTERNAL=1 +prefix_result:INTERNAL=/usr/lib/x86_64-linux-gnu + diff --git a/build/CMakeFiles/3.10.2/CMakeCCompiler.cmake b/build/CMakeFiles/3.10.2/CMakeCCompiler.cmake new file mode 100644 index 0000000..9e0e71d --- /dev/null +++ b/build/CMakeFiles/3.10.2/CMakeCCompiler.cmake @@ -0,0 +1,73 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "7.5.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-7") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-7") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/build/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake b/build/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..85984d7 --- /dev/null +++ b/build/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake @@ -0,0 +1,75 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "7.5.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-7") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-7") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/build/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin b/build/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..11a81f89210470f202bc1fddbbb3d2a45f3d9fd9 GIT binary patch literal 8248 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 literal 0 HcmV?d00001 diff --git a/build/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin b/build/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..06f175697a725345131ebff7865782a6235439ef GIT binary patch literal 8264 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 iczwfnyZ$x`r8#YJ8ArQTEyuF8^<%1m4>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if !defined(__STDC__) +# if defined(_MSC_VER) && !defined(__clang__) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/build/CMakeFiles/3.10.2/CompilerIdC/a.out b/build/CMakeFiles/3.10.2/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..11b7df452ad29dfd7bf1d9b188856c9e33182403 GIT binary patch literal 8408 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 D$)0nc literal 0 HcmV?d00001 diff --git a/build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..2d66298 --- /dev/null +++ b/build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,576 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(_MSC_VER) && defined(_MSVC_LANG) +#define CXX_STD _MSVC_LANG +#else +#define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201402L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/build/CMakeFiles/3.10.2/CompilerIdCXX/a.out b/build/CMakeFiles/3.10.2/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..71c2ceda86a2fae89d661d131b89af3990e37838 GIT binary patch literal 8416 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 L;1d=k>el}!^A2#R literal 0 HcmV?d00001 diff --git a/build/CMakeFiles/AirplayServer.dir/CXX.includecache b/build/CMakeFiles/AirplayServer.dir/CXX.includecache new file mode 100644 index 0000000..4bca330 --- /dev/null +++ b/build/CMakeFiles/AirplayServer.dir/CXX.includecache @@ -0,0 +1,90 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/julian/UxPlay/lib/dnssd.h + +/home/julian/UxPlay/lib/logger.h + +/home/julian/UxPlay/lib/raop.h +dnssd.h +/home/julian/UxPlay/lib/dnssd.h +stream.h +/home/julian/UxPlay/lib/stream.h +raop_ntp.h +/home/julian/UxPlay/lib/raop_ntp.h + +/home/julian/UxPlay/lib/raop_ntp.h +stdbool.h +- +stdint.h +- +logger.h +/home/julian/UxPlay/lib/logger.h + +/home/julian/UxPlay/lib/stream.h +stdint.h +- + +/home/julian/UxPlay/log.h +cstdio +- +stdarg.h +- + +/home/julian/UxPlay/renderers/audio_renderer.h +stdint.h +- +stdbool.h +- +../lib/logger.h +/home/julian/UxPlay/lib/logger.h +../lib/raop_ntp.h +/home/julian/UxPlay/lib/raop_ntp.h +video_renderer.h +/home/julian/UxPlay/renderers/video_renderer.h + +/home/julian/UxPlay/renderers/video_renderer.h +stdint.h +- +stdbool.h +- +../lib/logger.h +/home/julian/UxPlay/lib/logger.h +../lib/raop_ntp.h +/home/julian/UxPlay/lib/raop_ntp.h + +/home/julian/UxPlay/uxplay.cpp +stddef.h +- +cstring +- +signal.h +- +unistd.h +- +string +- +vector +- +fstream +- +log.h +/home/julian/UxPlay/log.h +lib/raop.h +/home/julian/UxPlay/lib/raop.h +lib/stream.h +/home/julian/UxPlay/lib/stream.h +lib/logger.h +/home/julian/UxPlay/lib/logger.h +lib/dnssd.h +/home/julian/UxPlay/lib/dnssd.h +renderers/video_renderer.h +/home/julian/UxPlay/renderers/video_renderer.h +renderers/audio_renderer.h +/home/julian/UxPlay/renderers/audio_renderer.h + diff --git a/build/CMakeFiles/AirplayServer.dir/DependInfo.cmake b/build/CMakeFiles/AirplayServer.dir/DependInfo.cmake new file mode 100644 index 0000000..9859d7a --- /dev/null +++ b/build/CMakeFiles/AirplayServer.dir/DependInfo.cmake @@ -0,0 +1,45 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/julian/UxPlay/uxplay.cpp" "/home/julian/UxPlay/build/CMakeFiles/AirplayServer.dir/uxplay.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../renderers" + "/usr/include/glib-2.0" + "/usr/lib/x86_64-linux-gnu/glib-2.0/include" + "/usr/include/gtk-3.0" + "/usr/include/at-spi2-atk/2.0" + "/usr/include/at-spi-2.0" + "/usr/include/dbus-1.0" + "/usr/lib/x86_64-linux-gnu/dbus-1.0/include" + "/usr/include/gio-unix-2.0" + "/usr/include/cairo" + "/usr/include/pango-1.0" + "/usr/include/harfbuzz" + "/usr/include/atk-1.0" + "/usr/include/pixman-1" + "/usr/include/freetype2" + "/usr/include/libpng16" + "/usr/include/gdk-pixbuf-2.0" + "/usr/include/gstreamer-1.0" + "/usr/include/orc-0.4" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/julian/UxPlay/build/renderers/CMakeFiles/renderers.dir/DependInfo.cmake" + "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/DependInfo.cmake" + "/home/julian/UxPlay/build/lib/curve25519/CMakeFiles/curve25519.dir/DependInfo.cmake" + "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/DependInfo.cmake" + "/home/julian/UxPlay/build/lib/playfair/CMakeFiles/playfair.dir/DependInfo.cmake" + "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/CMakeFiles/AirplayServer.dir/build.make b/build/CMakeFiles/AirplayServer.dir/build.make new file mode 100644 index 0000000..ca03d74 --- /dev/null +++ b/build/CMakeFiles/AirplayServer.dir/build.make @@ -0,0 +1,120 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/julian/UxPlay + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/julian/UxPlay/build + +# Include any dependencies generated for this target. +include CMakeFiles/AirplayServer.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/AirplayServer.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/AirplayServer.dir/flags.make + +CMakeFiles/AirplayServer.dir/uxplay.cpp.o: CMakeFiles/AirplayServer.dir/flags.make +CMakeFiles/AirplayServer.dir/uxplay.cpp.o: ../uxplay.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/AirplayServer.dir/uxplay.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/AirplayServer.dir/uxplay.cpp.o -c /home/julian/UxPlay/uxplay.cpp + +CMakeFiles/AirplayServer.dir/uxplay.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/AirplayServer.dir/uxplay.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/julian/UxPlay/uxplay.cpp > CMakeFiles/AirplayServer.dir/uxplay.cpp.i + +CMakeFiles/AirplayServer.dir/uxplay.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/AirplayServer.dir/uxplay.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/julian/UxPlay/uxplay.cpp -o CMakeFiles/AirplayServer.dir/uxplay.cpp.s + +CMakeFiles/AirplayServer.dir/uxplay.cpp.o.requires: + +.PHONY : CMakeFiles/AirplayServer.dir/uxplay.cpp.o.requires + +CMakeFiles/AirplayServer.dir/uxplay.cpp.o.provides: CMakeFiles/AirplayServer.dir/uxplay.cpp.o.requires + $(MAKE) -f CMakeFiles/AirplayServer.dir/build.make CMakeFiles/AirplayServer.dir/uxplay.cpp.o.provides.build +.PHONY : CMakeFiles/AirplayServer.dir/uxplay.cpp.o.provides + +CMakeFiles/AirplayServer.dir/uxplay.cpp.o.provides.build: CMakeFiles/AirplayServer.dir/uxplay.cpp.o + + +# Object files for target AirplayServer +AirplayServer_OBJECTS = \ +"CMakeFiles/AirplayServer.dir/uxplay.cpp.o" + +# External object files for target AirplayServer +AirplayServer_EXTERNAL_OBJECTS = + +AirplayServer: CMakeFiles/AirplayServer.dir/uxplay.cpp.o +AirplayServer: CMakeFiles/AirplayServer.dir/build.make +AirplayServer: renderers/librenderers.a +AirplayServer: lib/libairplay.a +AirplayServer: lib/curve25519/libcurve25519.a +AirplayServer: lib/ed25519/libed25519.a +AirplayServer: lib/playfair/libplayfair.a +AirplayServer: lib/plist/libplist.a +AirplayServer: /usr/lib/x86_64-linux-gnu/libcrypto.so +AirplayServer: CMakeFiles/AirplayServer.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable AirplayServer" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/AirplayServer.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/AirplayServer.dir/build: AirplayServer + +.PHONY : CMakeFiles/AirplayServer.dir/build + +CMakeFiles/AirplayServer.dir/requires: CMakeFiles/AirplayServer.dir/uxplay.cpp.o.requires + +.PHONY : CMakeFiles/AirplayServer.dir/requires + +CMakeFiles/AirplayServer.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/AirplayServer.dir/cmake_clean.cmake +.PHONY : CMakeFiles/AirplayServer.dir/clean + +CMakeFiles/AirplayServer.dir/depend: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/julian/UxPlay /home/julian/UxPlay /home/julian/UxPlay/build /home/julian/UxPlay/build /home/julian/UxPlay/build/CMakeFiles/AirplayServer.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/AirplayServer.dir/depend + diff --git a/build/CMakeFiles/AirplayServer.dir/cmake_clean.cmake b/build/CMakeFiles/AirplayServer.dir/cmake_clean.cmake new file mode 100644 index 0000000..78b48d1 --- /dev/null +++ b/build/CMakeFiles/AirplayServer.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/AirplayServer.dir/uxplay.cpp.o" + "AirplayServer.pdb" + "AirplayServer" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/AirplayServer.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/CMakeFiles/AirplayServer.dir/depend.internal b/build/CMakeFiles/AirplayServer.dir/depend.internal new file mode 100644 index 0000000..74f4f18 --- /dev/null +++ b/build/CMakeFiles/AirplayServer.dir/depend.internal @@ -0,0 +1,13 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +CMakeFiles/AirplayServer.dir/uxplay.cpp.o + /home/julian/UxPlay/lib/dnssd.h + /home/julian/UxPlay/lib/logger.h + /home/julian/UxPlay/lib/raop.h + /home/julian/UxPlay/lib/raop_ntp.h + /home/julian/UxPlay/lib/stream.h + /home/julian/UxPlay/log.h + /home/julian/UxPlay/renderers/audio_renderer.h + /home/julian/UxPlay/renderers/video_renderer.h + /home/julian/UxPlay/uxplay.cpp diff --git a/build/CMakeFiles/AirplayServer.dir/depend.make b/build/CMakeFiles/AirplayServer.dir/depend.make new file mode 100644 index 0000000..8950a47 --- /dev/null +++ b/build/CMakeFiles/AirplayServer.dir/depend.make @@ -0,0 +1,13 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +CMakeFiles/AirplayServer.dir/uxplay.cpp.o: ../lib/dnssd.h +CMakeFiles/AirplayServer.dir/uxplay.cpp.o: ../lib/logger.h +CMakeFiles/AirplayServer.dir/uxplay.cpp.o: ../lib/raop.h +CMakeFiles/AirplayServer.dir/uxplay.cpp.o: ../lib/raop_ntp.h +CMakeFiles/AirplayServer.dir/uxplay.cpp.o: ../lib/stream.h +CMakeFiles/AirplayServer.dir/uxplay.cpp.o: ../log.h +CMakeFiles/AirplayServer.dir/uxplay.cpp.o: ../renderers/audio_renderer.h +CMakeFiles/AirplayServer.dir/uxplay.cpp.o: ../renderers/video_renderer.h +CMakeFiles/AirplayServer.dir/uxplay.cpp.o: ../uxplay.cpp + diff --git a/build/CMakeFiles/AirplayServer.dir/flags.make b/build/CMakeFiles/AirplayServer.dir/flags.make new file mode 100644 index 0000000..1e0eecb --- /dev/null +++ b/build/CMakeFiles/AirplayServer.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = -I/home/julian/UxPlay/renderers -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 + diff --git a/build/CMakeFiles/AirplayServer.dir/link.txt b/build/CMakeFiles/AirplayServer.dir/link.txt new file mode 100644 index 0000000..9d34846 --- /dev/null +++ b/build/CMakeFiles/AirplayServer.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ CMakeFiles/AirplayServer.dir/uxplay.cpp.o -o AirplayServer renderers/librenderers.a lib/libairplay.a -lglib-2.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgstsdp-1.0 -lgstvideo-1.0 -lgstapp-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -lpthread lib/curve25519/libcurve25519.a lib/ed25519/libed25519.a lib/playfair/libplayfair.a lib/plist/libplist.a /usr/lib/x86_64-linux-gnu/libcrypto.so -ldns_sd -lgobject-2.0 -lglib-2.0 diff --git a/build/CMakeFiles/AirplayServer.dir/progress.make b/build/CMakeFiles/AirplayServer.dir/progress.make new file mode 100644 index 0000000..abadeb0 --- /dev/null +++ b/build/CMakeFiles/AirplayServer.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/build/CMakeFiles/AirplayServer.dir/uxplay.cpp.o b/build/CMakeFiles/AirplayServer.dir/uxplay.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..b162aac177c2ad5c7a7a3600c9b20c70e552ecc0 GIT binary patch literal 72256 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 ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccKz3Sqc.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_26eaa] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/7] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..] + arg [CMakeFiles/cmTC_26eaa.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7] ==> [/usr/lib/gcc/x86_64-linux-gnu/7] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/julian/UxPlay/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_d7c78/fast" +/usr/bin/make -f CMakeFiles/cmTC_d7c78.dir/build.make CMakeFiles/cmTC_d7c78.dir/build +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird betreten +Building C object CMakeFiles/cmTC_d7c78.dir/feature_tests.c.o +/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_d7c78.dir/feature_tests.c.o -c /home/julian/UxPlay/build/CMakeFiles/feature_tests.c +Linking C executable cmTC_d7c78 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d7c78.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_d7c78.dir/feature_tests.c.o -o cmTC_d7c78 +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird verlassen + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/julian/UxPlay/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_72ef3/fast" +/usr/bin/make -f CMakeFiles/cmTC_72ef3.dir/build.make CMakeFiles/cmTC_72ef3.dir/build +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird betreten +Building C object CMakeFiles/cmTC_72ef3.dir/feature_tests.c.o +/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_72ef3.dir/feature_tests.c.o -c /home/julian/UxPlay/build/CMakeFiles/feature_tests.c +Linking C executable cmTC_72ef3 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_72ef3.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_72ef3.dir/feature_tests.c.o -o cmTC_72ef3 +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird verlassen + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/julian/UxPlay/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_0a245/fast" +/usr/bin/make -f CMakeFiles/cmTC_0a245.dir/build.make CMakeFiles/cmTC_0a245.dir/build +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird betreten +Building C object CMakeFiles/cmTC_0a245.dir/feature_tests.c.o +/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_0a245.dir/feature_tests.c.o -c /home/julian/UxPlay/build/CMakeFiles/feature_tests.c +Linking C executable cmTC_0a245 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0a245.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_0a245.dir/feature_tests.c.o -o cmTC_0a245 +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird verlassen + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/julian/UxPlay/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_c9547/fast" +/usr/bin/make -f CMakeFiles/cmTC_c9547.dir/build.make CMakeFiles/cmTC_c9547.dir/build +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird betreten +Building CXX object CMakeFiles/cmTC_c9547.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_c9547.dir/testCXXCompiler.cxx.o -c /home/julian/UxPlay/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_c9547 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c9547.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_c9547.dir/testCXXCompiler.cxx.o -o cmTC_c9547 +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird verlassen + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/julian/UxPlay/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_5ce24/fast" +/usr/bin/make -f CMakeFiles/cmTC_5ce24.dir/build.make CMakeFiles/cmTC_5ce24.dir/build +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird betreten +Building CXX object CMakeFiles/cmTC_5ce24.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTC_5ce24.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_5ce24 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5ce24.dir/link.txt --verbose=1 +/usr/bin/c++ -v CMakeFiles/cmTC_5ce24.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_5ce24 +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_5ce24' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccxSpl3N.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_5ce24 /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. CMakeFiles/cmTC_5ce24.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_5ce24' '-shared-libgcc' '-mtune=generic' '-march=x86-64' +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird verlassen + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/julian/UxPlay/build/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_5ce24/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_5ce24.dir/build.make CMakeFiles/cmTC_5ce24.dir/build] + ignore line: [make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird betreten] + ignore line: [Building CXX object CMakeFiles/cmTC_5ce24.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_5ce24.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_5ce24] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5ce24.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_5ce24.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_5ce24 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_5ce24' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccxSpl3N.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_5ce24 /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. CMakeFiles/cmTC_5ce24.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/7/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccxSpl3N.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_5ce24] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/7] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..] + arg [CMakeFiles/cmTC_5ce24.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7] ==> [/usr/lib/gcc/x86_64-linux-gnu/7] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++1z] compiler features compiled with the following output: +Change Dir: /home/julian/UxPlay/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_14e39/fast" +/usr/bin/make -f CMakeFiles/cmTC_14e39.dir/build.make CMakeFiles/cmTC_14e39.dir/build +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird betreten +Building CXX object CMakeFiles/cmTC_14e39.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++1z -o CMakeFiles/cmTC_14e39.dir/feature_tests.cxx.o -c /home/julian/UxPlay/build/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_14e39 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_14e39.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_14e39.dir/feature_tests.cxx.o -o cmTC_14e39 +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird verlassen + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/julian/UxPlay/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_581e2/fast" +/usr/bin/make -f CMakeFiles/cmTC_581e2.dir/build.make CMakeFiles/cmTC_581e2.dir/build +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird betreten +Building CXX object CMakeFiles/cmTC_581e2.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_581e2.dir/feature_tests.cxx.o -c /home/julian/UxPlay/build/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_581e2 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_581e2.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_581e2.dir/feature_tests.cxx.o -o cmTC_581e2 +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird verlassen + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/julian/UxPlay/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_1c87c/fast" +/usr/bin/make -f CMakeFiles/cmTC_1c87c.dir/build.make CMakeFiles/cmTC_1c87c.dir/build +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird betreten +Building CXX object CMakeFiles/cmTC_1c87c.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_1c87c.dir/feature_tests.cxx.o -c /home/julian/UxPlay/build/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_1c87c +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1c87c.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_1c87c.dir/feature_tests.cxx.o -o cmTC_1c87c +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird verlassen + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/julian/UxPlay/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_ba5da/fast" +/usr/bin/make -f CMakeFiles/cmTC_ba5da.dir/build.make CMakeFiles/cmTC_ba5da.dir/build +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird betreten +Building CXX object CMakeFiles/cmTC_ba5da.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_ba5da.dir/feature_tests.cxx.o -c /home/julian/UxPlay/build/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_ba5da +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ba5da.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_ba5da.dir/feature_tests.cxx.o -o cmTC_ba5da +make[1]: Verzeichnis „/home/julian/UxPlay/build/CMakeFiles/CMakeTmp“ wird verlassen + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/build/CMakeFiles/Makefile.cmake b/build/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..7b770a0 --- /dev/null +++ b/build/CMakeFiles/Makefile.cmake @@ -0,0 +1,68 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "../CMakeLists.txt" + "CMakeFiles/3.10.2/CMakeCCompiler.cmake" + "CMakeFiles/3.10.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.10.2/CMakeSystem.cmake" + "../lib/CMakeLists.txt" + "../lib/curve25519/CMakeLists.txt" + "../lib/ed25519/CMakeLists.txt" + "../lib/playfair/CMakeLists.txt" + "../lib/plist/CMakeLists.txt" + "../renderers/CMakeLists.txt" + "/usr/share/cmake-3.10/Modules/CMakeCInformation.cmake" + "/usr/share/cmake-3.10/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.10/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/usr/share/cmake-3.10/Modules/Compiler/GNU-C.cmake" + "/usr/share/cmake-3.10/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake-3.10/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.10/Modules/FindOpenSSL.cmake" + "/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake" + "/usr/share/cmake-3.10/Modules/FindPackageMessage.cmake" + "/usr/share/cmake-3.10/Modules/FindPkgConfig.cmake" + "/usr/share/cmake-3.10/Modules/Platform/Linux-GNU-C.cmake" + "/usr/share/cmake-3.10/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake-3.10/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake-3.10/Modules/Platform/Linux.cmake" + "/usr/share/cmake-3.10/Modules/Platform/UnixPaths.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + "lib/curve25519/CMakeFiles/CMakeDirectoryInformation.cmake" + "lib/ed25519/CMakeFiles/CMakeDirectoryInformation.cmake" + "lib/playfair/CMakeFiles/CMakeDirectoryInformation.cmake" + "lib/plist/CMakeFiles/CMakeDirectoryInformation.cmake" + "lib/CMakeFiles/CMakeDirectoryInformation.cmake" + "renderers/CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/AirplayServer.dir/DependInfo.cmake" + "lib/curve25519/CMakeFiles/curve25519.dir/DependInfo.cmake" + "lib/ed25519/CMakeFiles/ed25519.dir/DependInfo.cmake" + "lib/playfair/CMakeFiles/playfair.dir/DependInfo.cmake" + "lib/plist/CMakeFiles/plist.dir/DependInfo.cmake" + "lib/CMakeFiles/airplay.dir/DependInfo.cmake" + "renderers/CMakeFiles/renderers.dir/DependInfo.cmake" + ) diff --git a/build/CMakeFiles/Makefile2 b/build/CMakeFiles/Makefile2 new file mode 100644 index 0000000..c1f1467 --- /dev/null +++ b/build/CMakeFiles/Makefile2 @@ -0,0 +1,450 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# The main recursive all target +all: + +.PHONY : all + +# The main recursive preinstall target +preinstall: + +.PHONY : preinstall + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/julian/UxPlay + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/julian/UxPlay/build + +#============================================================================= +# Target rules for target CMakeFiles/AirplayServer.dir + +# All Build rule for target. +CMakeFiles/AirplayServer.dir/all: lib/curve25519/CMakeFiles/curve25519.dir/all +CMakeFiles/AirplayServer.dir/all: lib/ed25519/CMakeFiles/ed25519.dir/all +CMakeFiles/AirplayServer.dir/all: lib/playfair/CMakeFiles/playfair.dir/all +CMakeFiles/AirplayServer.dir/all: lib/plist/CMakeFiles/plist.dir/all +CMakeFiles/AirplayServer.dir/all: lib/CMakeFiles/airplay.dir/all +CMakeFiles/AirplayServer.dir/all: renderers/CMakeFiles/renderers.dir/all + $(MAKE) -f CMakeFiles/AirplayServer.dir/build.make CMakeFiles/AirplayServer.dir/depend + $(MAKE) -f CMakeFiles/AirplayServer.dir/build.make CMakeFiles/AirplayServer.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=1,2 "Built target AirplayServer" +.PHONY : CMakeFiles/AirplayServer.dir/all + +# Include target in all. +all: CMakeFiles/AirplayServer.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/AirplayServer.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 56 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/AirplayServer.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 0 +.PHONY : CMakeFiles/AirplayServer.dir/rule + +# Convenience name for target. +AirplayServer: CMakeFiles/AirplayServer.dir/rule + +.PHONY : AirplayServer + +# clean rule for target. +CMakeFiles/AirplayServer.dir/clean: + $(MAKE) -f CMakeFiles/AirplayServer.dir/build.make CMakeFiles/AirplayServer.dir/clean +.PHONY : CMakeFiles/AirplayServer.dir/clean + +# clean rule for target. +clean: CMakeFiles/AirplayServer.dir/clean + +.PHONY : clean + +#============================================================================= +# Directory level rules for directory lib/curve25519 + +# Convenience name for "all" pass in the directory. +lib/curve25519/all: lib/curve25519/CMakeFiles/curve25519.dir/all + +.PHONY : lib/curve25519/all + +# Convenience name for "clean" pass in the directory. +lib/curve25519/clean: lib/curve25519/CMakeFiles/curve25519.dir/clean + +.PHONY : lib/curve25519/clean + +# Convenience name for "preinstall" pass in the directory. +lib/curve25519/preinstall: + +.PHONY : lib/curve25519/preinstall + +#============================================================================= +# Target rules for target lib/curve25519/CMakeFiles/curve25519.dir + +# All Build rule for target. +lib/curve25519/CMakeFiles/curve25519.dir/all: + $(MAKE) -f lib/curve25519/CMakeFiles/curve25519.dir/build.make lib/curve25519/CMakeFiles/curve25519.dir/depend + $(MAKE) -f lib/curve25519/CMakeFiles/curve25519.dir/build.make lib/curve25519/CMakeFiles/curve25519.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=22,23 "Built target curve25519" +.PHONY : lib/curve25519/CMakeFiles/curve25519.dir/all + +# Include target in all. +all: lib/curve25519/CMakeFiles/curve25519.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +lib/curve25519/CMakeFiles/curve25519.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 lib/curve25519/CMakeFiles/curve25519.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 0 +.PHONY : lib/curve25519/CMakeFiles/curve25519.dir/rule + +# Convenience name for target. +curve25519: lib/curve25519/CMakeFiles/curve25519.dir/rule + +.PHONY : curve25519 + +# clean rule for target. +lib/curve25519/CMakeFiles/curve25519.dir/clean: + $(MAKE) -f lib/curve25519/CMakeFiles/curve25519.dir/build.make lib/curve25519/CMakeFiles/curve25519.dir/clean +.PHONY : lib/curve25519/CMakeFiles/curve25519.dir/clean + +# clean rule for target. +clean: lib/curve25519/CMakeFiles/curve25519.dir/clean + +.PHONY : clean + +#============================================================================= +# Directory level rules for directory lib/ed25519 + +# Convenience name for "all" pass in the directory. +lib/ed25519/all: lib/ed25519/CMakeFiles/ed25519.dir/all + +.PHONY : lib/ed25519/all + +# Convenience name for "clean" pass in the directory. +lib/ed25519/clean: lib/ed25519/CMakeFiles/ed25519.dir/clean + +.PHONY : lib/ed25519/clean + +# Convenience name for "preinstall" pass in the directory. +lib/ed25519/preinstall: + +.PHONY : lib/ed25519/preinstall + +#============================================================================= +# Target rules for target lib/ed25519/CMakeFiles/ed25519.dir + +# All Build rule for target. +lib/ed25519/CMakeFiles/ed25519.dir/all: + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/depend + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=24,25,26,27,28,29,30,31,32,33,34 "Built target ed25519" +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/all + +# Include target in all. +all: lib/ed25519/CMakeFiles/ed25519.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +lib/ed25519/CMakeFiles/ed25519.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 11 + $(MAKE) -f CMakeFiles/Makefile2 lib/ed25519/CMakeFiles/ed25519.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 0 +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/rule + +# Convenience name for target. +ed25519: lib/ed25519/CMakeFiles/ed25519.dir/rule + +.PHONY : ed25519 + +# clean rule for target. +lib/ed25519/CMakeFiles/ed25519.dir/clean: + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/clean +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/clean + +# clean rule for target. +clean: lib/ed25519/CMakeFiles/ed25519.dir/clean + +.PHONY : clean + +#============================================================================= +# Directory level rules for directory lib/playfair + +# Convenience name for "all" pass in the directory. +lib/playfair/all: lib/playfair/CMakeFiles/playfair.dir/all + +.PHONY : lib/playfair/all + +# Convenience name for "clean" pass in the directory. +lib/playfair/clean: lib/playfair/CMakeFiles/playfair.dir/clean + +.PHONY : lib/playfair/clean + +# Convenience name for "preinstall" pass in the directory. +lib/playfair/preinstall: + +.PHONY : lib/playfair/preinstall + +#============================================================================= +# Target rules for target lib/playfair/CMakeFiles/playfair.dir + +# All Build rule for target. +lib/playfair/CMakeFiles/playfair.dir/all: + $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/depend + $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=35,36,37,38,39,40 "Built target playfair" +.PHONY : lib/playfair/CMakeFiles/playfair.dir/all + +# Include target in all. +all: lib/playfair/CMakeFiles/playfair.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +lib/playfair/CMakeFiles/playfair.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 6 + $(MAKE) -f CMakeFiles/Makefile2 lib/playfair/CMakeFiles/playfair.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 0 +.PHONY : lib/playfair/CMakeFiles/playfair.dir/rule + +# Convenience name for target. +playfair: lib/playfair/CMakeFiles/playfair.dir/rule + +.PHONY : playfair + +# clean rule for target. +lib/playfair/CMakeFiles/playfair.dir/clean: + $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/clean +.PHONY : lib/playfair/CMakeFiles/playfair.dir/clean + +# clean rule for target. +clean: lib/playfair/CMakeFiles/playfair.dir/clean + +.PHONY : clean + +#============================================================================= +# Directory level rules for directory lib/plist + +# Convenience name for "all" pass in the directory. +lib/plist/all: lib/plist/CMakeFiles/plist.dir/all + +.PHONY : lib/plist/all + +# Convenience name for "clean" pass in the directory. +lib/plist/clean: lib/plist/CMakeFiles/plist.dir/clean + +.PHONY : lib/plist/clean + +# Convenience name for "preinstall" pass in the directory. +lib/plist/preinstall: + +.PHONY : lib/plist/preinstall + +#============================================================================= +# Target rules for target lib/plist/CMakeFiles/plist.dir + +# All Build rule for target. +lib/plist/CMakeFiles/plist.dir/all: + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/depend + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=41,42,43,44,45,46,47,48,49,50,51,52,53 "Built target plist" +.PHONY : lib/plist/CMakeFiles/plist.dir/all + +# Include target in all. +all: lib/plist/CMakeFiles/plist.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +lib/plist/CMakeFiles/plist.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 13 + $(MAKE) -f CMakeFiles/Makefile2 lib/plist/CMakeFiles/plist.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 0 +.PHONY : lib/plist/CMakeFiles/plist.dir/rule + +# Convenience name for target. +plist: lib/plist/CMakeFiles/plist.dir/rule + +.PHONY : plist + +# clean rule for target. +lib/plist/CMakeFiles/plist.dir/clean: + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/clean +.PHONY : lib/plist/CMakeFiles/plist.dir/clean + +# clean rule for target. +clean: lib/plist/CMakeFiles/plist.dir/clean + +.PHONY : clean + +#============================================================================= +# Directory level rules for directory lib + +# Convenience name for "all" pass in the directory. +lib/all: lib/CMakeFiles/airplay.dir/all + +.PHONY : lib/all + +# Convenience name for "clean" pass in the directory. +lib/clean: lib/CMakeFiles/airplay.dir/clean + +.PHONY : lib/clean + +# Convenience name for "preinstall" pass in the directory. +lib/preinstall: + +.PHONY : lib/preinstall + +#============================================================================= +# Target rules for target lib/CMakeFiles/airplay.dir + +# All Build rule for target. +lib/CMakeFiles/airplay.dir/all: lib/curve25519/CMakeFiles/curve25519.dir/all +lib/CMakeFiles/airplay.dir/all: lib/ed25519/CMakeFiles/ed25519.dir/all +lib/CMakeFiles/airplay.dir/all: lib/playfair/CMakeFiles/playfair.dir/all +lib/CMakeFiles/airplay.dir/all: lib/plist/CMakeFiles/plist.dir/all + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/depend + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 "Built target airplay" +.PHONY : lib/CMakeFiles/airplay.dir/all + +# Include target in all. +all: lib/CMakeFiles/airplay.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +lib/CMakeFiles/airplay.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 51 + $(MAKE) -f CMakeFiles/Makefile2 lib/CMakeFiles/airplay.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 0 +.PHONY : lib/CMakeFiles/airplay.dir/rule + +# Convenience name for target. +airplay: lib/CMakeFiles/airplay.dir/rule + +.PHONY : airplay + +# clean rule for target. +lib/CMakeFiles/airplay.dir/clean: + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/clean +.PHONY : lib/CMakeFiles/airplay.dir/clean + +# clean rule for target. +clean: lib/CMakeFiles/airplay.dir/clean + +.PHONY : clean + +#============================================================================= +# Directory level rules for directory renderers + +# Convenience name for "all" pass in the directory. +renderers/all: renderers/CMakeFiles/renderers.dir/all + +.PHONY : renderers/all + +# Convenience name for "clean" pass in the directory. +renderers/clean: renderers/CMakeFiles/renderers.dir/clean + +.PHONY : renderers/clean + +# Convenience name for "preinstall" pass in the directory. +renderers/preinstall: + +.PHONY : renderers/preinstall + +#============================================================================= +# Target rules for target renderers/CMakeFiles/renderers.dir + +# All Build rule for target. +renderers/CMakeFiles/renderers.dir/all: lib/curve25519/CMakeFiles/curve25519.dir/all +renderers/CMakeFiles/renderers.dir/all: lib/ed25519/CMakeFiles/ed25519.dir/all +renderers/CMakeFiles/renderers.dir/all: lib/playfair/CMakeFiles/playfair.dir/all +renderers/CMakeFiles/renderers.dir/all: lib/plist/CMakeFiles/plist.dir/all +renderers/CMakeFiles/renderers.dir/all: lib/CMakeFiles/airplay.dir/all + $(MAKE) -f renderers/CMakeFiles/renderers.dir/build.make renderers/CMakeFiles/renderers.dir/depend + $(MAKE) -f renderers/CMakeFiles/renderers.dir/build.make renderers/CMakeFiles/renderers.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=54,55,56 "Built target renderers" +.PHONY : renderers/CMakeFiles/renderers.dir/all + +# Include target in all. +all: renderers/CMakeFiles/renderers.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +renderers/CMakeFiles/renderers.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 54 + $(MAKE) -f CMakeFiles/Makefile2 renderers/CMakeFiles/renderers.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 0 +.PHONY : renderers/CMakeFiles/renderers.dir/rule + +# Convenience name for target. +renderers: renderers/CMakeFiles/renderers.dir/rule + +.PHONY : renderers + +# clean rule for target. +renderers/CMakeFiles/renderers.dir/clean: + $(MAKE) -f renderers/CMakeFiles/renderers.dir/build.make renderers/CMakeFiles/renderers.dir/clean +.PHONY : renderers/CMakeFiles/renderers.dir/clean + +# clean rule for target. +clean: renderers/CMakeFiles/renderers.dir/clean + +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/CMakeFiles/TargetDirectories.txt b/build/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..98b7ec5 --- /dev/null +++ b/build/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,49 @@ +/home/julian/UxPlay/build/CMakeFiles/install/strip.dir +/home/julian/UxPlay/build/CMakeFiles/edit_cache.dir +/home/julian/UxPlay/build/CMakeFiles/rebuild_cache.dir +/home/julian/UxPlay/build/CMakeFiles/list_install_components.dir +/home/julian/UxPlay/build/CMakeFiles/install/local.dir +/home/julian/UxPlay/build/CMakeFiles/AirplayServer.dir +/home/julian/UxPlay/build/CMakeFiles/install.dir +/home/julian/UxPlay/build/lib/curve25519/CMakeFiles/install/strip.dir +/home/julian/UxPlay/build/lib/curve25519/CMakeFiles/edit_cache.dir +/home/julian/UxPlay/build/lib/curve25519/CMakeFiles/curve25519.dir +/home/julian/UxPlay/build/lib/curve25519/CMakeFiles/list_install_components.dir +/home/julian/UxPlay/build/lib/curve25519/CMakeFiles/install/local.dir +/home/julian/UxPlay/build/lib/curve25519/CMakeFiles/rebuild_cache.dir +/home/julian/UxPlay/build/lib/curve25519/CMakeFiles/install.dir +/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/install/strip.dir +/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/edit_cache.dir +/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir +/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/install.dir +/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/rebuild_cache.dir +/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/list_install_components.dir +/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/install/local.dir +/home/julian/UxPlay/build/lib/playfair/CMakeFiles/edit_cache.dir +/home/julian/UxPlay/build/lib/playfair/CMakeFiles/install/strip.dir +/home/julian/UxPlay/build/lib/playfair/CMakeFiles/playfair.dir +/home/julian/UxPlay/build/lib/playfair/CMakeFiles/rebuild_cache.dir +/home/julian/UxPlay/build/lib/playfair/CMakeFiles/list_install_components.dir +/home/julian/UxPlay/build/lib/playfair/CMakeFiles/install/local.dir +/home/julian/UxPlay/build/lib/playfair/CMakeFiles/install.dir +/home/julian/UxPlay/build/lib/plist/CMakeFiles/install/strip.dir +/home/julian/UxPlay/build/lib/plist/CMakeFiles/edit_cache.dir +/home/julian/UxPlay/build/lib/plist/CMakeFiles/list_install_components.dir +/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir +/home/julian/UxPlay/build/lib/plist/CMakeFiles/install/local.dir +/home/julian/UxPlay/build/lib/plist/CMakeFiles/rebuild_cache.dir +/home/julian/UxPlay/build/lib/plist/CMakeFiles/install.dir +/home/julian/UxPlay/build/lib/CMakeFiles/install/strip.dir +/home/julian/UxPlay/build/lib/CMakeFiles/edit_cache.dir +/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir +/home/julian/UxPlay/build/lib/CMakeFiles/list_install_components.dir +/home/julian/UxPlay/build/lib/CMakeFiles/install/local.dir +/home/julian/UxPlay/build/lib/CMakeFiles/rebuild_cache.dir +/home/julian/UxPlay/build/lib/CMakeFiles/install.dir +/home/julian/UxPlay/build/renderers/CMakeFiles/install/strip.dir +/home/julian/UxPlay/build/renderers/CMakeFiles/edit_cache.dir +/home/julian/UxPlay/build/renderers/CMakeFiles/list_install_components.dir +/home/julian/UxPlay/build/renderers/CMakeFiles/install/local.dir +/home/julian/UxPlay/build/renderers/CMakeFiles/rebuild_cache.dir +/home/julian/UxPlay/build/renderers/CMakeFiles/renderers.dir +/home/julian/UxPlay/build/renderers/CMakeFiles/install.dir diff --git a/build/CMakeFiles/cmake.check_cache b/build/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/build/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/build/CMakeFiles/feature_tests.bin b/build/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..18b0c801d40b59a2ff9a6657a25dee54acb34deb GIT binary patch literal 12312 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 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/build/CMakeFiles/feature_tests.cxx b/build/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000..b93418c --- /dev/null +++ b/build/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/build/CMakeFiles/progress.marks b/build/CMakeFiles/progress.marks new file mode 100644 index 0000000..f6b91e0 --- /dev/null +++ b/build/CMakeFiles/progress.marks @@ -0,0 +1 @@ +56 diff --git a/build/Makefile b/build/Makefile new file mode 100644 index 0000000..5a4c002 --- /dev/null +++ b/build/Makefile @@ -0,0 +1,312 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/julian/UxPlay + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/julian/UxPlay/build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." + /usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components + +.PHONY : list_install_components/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles /home/julian/UxPlay/build/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named AirplayServer + +# Build rule for target. +AirplayServer: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 AirplayServer +.PHONY : AirplayServer + +# fast build rule for target. +AirplayServer/fast: + $(MAKE) -f CMakeFiles/AirplayServer.dir/build.make CMakeFiles/AirplayServer.dir/build +.PHONY : AirplayServer/fast + +#============================================================================= +# Target rules for targets named curve25519 + +# Build rule for target. +curve25519: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 curve25519 +.PHONY : curve25519 + +# fast build rule for target. +curve25519/fast: + $(MAKE) -f lib/curve25519/CMakeFiles/curve25519.dir/build.make lib/curve25519/CMakeFiles/curve25519.dir/build +.PHONY : curve25519/fast + +#============================================================================= +# Target rules for targets named ed25519 + +# Build rule for target. +ed25519: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 ed25519 +.PHONY : ed25519 + +# fast build rule for target. +ed25519/fast: + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/build +.PHONY : ed25519/fast + +#============================================================================= +# Target rules for targets named playfair + +# Build rule for target. +playfair: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 playfair +.PHONY : playfair + +# fast build rule for target. +playfair/fast: + $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/build +.PHONY : playfair/fast + +#============================================================================= +# Target rules for targets named plist + +# Build rule for target. +plist: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 plist +.PHONY : plist + +# fast build rule for target. +plist/fast: + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/build +.PHONY : plist/fast + +#============================================================================= +# Target rules for targets named airplay + +# Build rule for target. +airplay: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 airplay +.PHONY : airplay + +# fast build rule for target. +airplay/fast: + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/build +.PHONY : airplay/fast + +#============================================================================= +# Target rules for targets named renderers + +# Build rule for target. +renderers: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 renderers +.PHONY : renderers + +# fast build rule for target. +renderers/fast: + $(MAKE) -f renderers/CMakeFiles/renderers.dir/build.make renderers/CMakeFiles/renderers.dir/build +.PHONY : renderers/fast + +uxplay.o: uxplay.cpp.o + +.PHONY : uxplay.o + +# target to build an object file +uxplay.cpp.o: + $(MAKE) -f CMakeFiles/AirplayServer.dir/build.make CMakeFiles/AirplayServer.dir/uxplay.cpp.o +.PHONY : uxplay.cpp.o + +uxplay.i: uxplay.cpp.i + +.PHONY : uxplay.i + +# target to preprocess a source file +uxplay.cpp.i: + $(MAKE) -f CMakeFiles/AirplayServer.dir/build.make CMakeFiles/AirplayServer.dir/uxplay.cpp.i +.PHONY : uxplay.cpp.i + +uxplay.s: uxplay.cpp.s + +.PHONY : uxplay.s + +# target to generate assembly for a file +uxplay.cpp.s: + $(MAKE) -f CMakeFiles/AirplayServer.dir/build.make CMakeFiles/AirplayServer.dir/uxplay.cpp.s +.PHONY : uxplay.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... install/strip" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... list_install_components" + @echo "... install/local" + @echo "... AirplayServer" + @echo "... install" + @echo "... curve25519" + @echo "... ed25519" + @echo "... playfair" + @echo "... plist" + @echo "... airplay" + @echo "... renderers" + @echo "... uxplay.o" + @echo "... uxplay.i" + @echo "... uxplay.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/cmake_install.cmake b/build/cmake_install.cmake new file mode 100644 index 0000000..e8ba9ec --- /dev/null +++ b/build/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/julian/UxPlay + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE PROGRAM FILES "/home/julian/UxPlay/AirplayServer") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for each subdirectory. + include("/home/julian/UxPlay/build/lib/curve25519/cmake_install.cmake") + include("/home/julian/UxPlay/build/lib/ed25519/cmake_install.cmake") + include("/home/julian/UxPlay/build/lib/playfair/cmake_install.cmake") + include("/home/julian/UxPlay/build/lib/plist/cmake_install.cmake") + include("/home/julian/UxPlay/build/lib/cmake_install.cmake") + include("/home/julian/UxPlay/build/renderers/cmake_install.cmake") + +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/julian/UxPlay/build/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/build/install.sh b/build/install.sh new file mode 100644 index 0000000..9637150 --- /dev/null +++ b/build/install.sh @@ -0,0 +1,4 @@ +#!/bin/bash +cd build/; +cmake ..; +make -j; \ No newline at end of file diff --git a/build/lib/CMakeFiles/CMakeDirectoryInformation.cmake b/build/lib/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..f10f855 --- /dev/null +++ b/build/lib/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/julian/UxPlay") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/julian/UxPlay/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/build/lib/CMakeFiles/airplay.dir/C.includecache b/build/lib/CMakeFiles/airplay.dir/C.includecache new file mode 100644 index 0000000..8c782da --- /dev/null +++ b/build/lib/CMakeFiles/airplay.dir/C.includecache @@ -0,0 +1,520 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/julian/UxPlay/lib/byteutils.c +time.h +- +netinet/in.h +- +byteutils.h +/home/julian/UxPlay/lib/byteutils.h +endian.h +- + +/home/julian/UxPlay/lib/byteutils.h +stdint.h +- + +/home/julian/UxPlay/lib/compat.h +ws2tcpip.h +- +windows.h +- +sys/types.h +- +sys/socket.h +- +sys/ioctl.h +- +sys/time.h +- +netinet/in.h +- +arpa/inet.h +- +unistd.h +- +errno.h +- +netdb.h +- +pthread.h +- +memalign.h +/home/julian/UxPlay/lib/memalign.h +sockets.h +/home/julian/UxPlay/lib/sockets.h +threads.h +/home/julian/UxPlay/lib/threads.h + +/home/julian/UxPlay/lib/crypto.c +crypto.h +/home/julian/UxPlay/lib/crypto.h +openssl/evp.h +- +openssl/err.h +- +assert.h +- +string.h +- +stdbool.h +- + +/home/julian/UxPlay/lib/crypto.h +stdint.h +- + +/home/julian/UxPlay/lib/curve25519/curve25519.h + +/home/julian/UxPlay/lib/dnssd.c +stdlib.h +- +string.h +- +stdio.h +- +assert.h +- +config.h +/home/julian/UxPlay/lib/config.h +dnssdint.h +/home/julian/UxPlay/lib/dnssdint.h +dnssd.h +/home/julian/UxPlay/lib/dnssd.h +global.h +/home/julian/UxPlay/lib/global.h +compat.h +/home/julian/UxPlay/lib/compat.h +utils.h +/home/julian/UxPlay/lib/utils.h +dns_sd.h +- +stdint.h +- +dlfcn.h +- + +/home/julian/UxPlay/lib/dnssd.h + +/home/julian/UxPlay/lib/dnssdint.h + +/home/julian/UxPlay/lib/ed25519/ed25519.h +stddef.h +- + +/home/julian/UxPlay/lib/fairplay.h +logger.h +/home/julian/UxPlay/lib/logger.h + +/home/julian/UxPlay/lib/fairplay_playfair.c +stdlib.h +- +string.h +- +assert.h +- +fairplay.h +/home/julian/UxPlay/lib/fairplay.h +playfair/playfair.h +/home/julian/UxPlay/lib/playfair/playfair.h + +/home/julian/UxPlay/lib/global.h + +/home/julian/UxPlay/lib/http_parser.c +http_parser.h +/home/julian/UxPlay/lib/http_parser.h +assert.h +- +stddef.h +- +ctype.h +- +string.h +- +limits.h +- + +/home/julian/UxPlay/lib/http_parser.h +stddef.h +- +BaseTsd.h +- +stdint.h +- + +/home/julian/UxPlay/lib/http_request.c +stdlib.h +- +string.h +- +assert.h +- +http_request.h +/home/julian/UxPlay/lib/http_request.h +http_parser.h +/home/julian/UxPlay/lib/http_parser.h + +/home/julian/UxPlay/lib/http_request.h + +/home/julian/UxPlay/lib/http_response.c +stdlib.h +- +stdio.h +- +string.h +- +assert.h +- +http_response.h +/home/julian/UxPlay/lib/http_response.h +compat.h +/home/julian/UxPlay/lib/compat.h + +/home/julian/UxPlay/lib/http_response.h + +/home/julian/UxPlay/lib/httpd.c +stdlib.h +- +string.h +- +stdio.h +- +assert.h +- +httpd.h +/home/julian/UxPlay/lib/httpd.h +netutils.h +/home/julian/UxPlay/lib/netutils.h +http_request.h +/home/julian/UxPlay/lib/http_request.h +compat.h +/home/julian/UxPlay/lib/compat.h +logger.h +/home/julian/UxPlay/lib/logger.h + +/home/julian/UxPlay/lib/httpd.h +logger.h +/home/julian/UxPlay/lib/logger.h +http_request.h +/home/julian/UxPlay/lib/http_request.h +http_response.h +/home/julian/UxPlay/lib/http_response.h + +/home/julian/UxPlay/lib/logger.c +stdlib.h +- +stdio.h +- +stdarg.h +- +assert.h +- +logger.h +/home/julian/UxPlay/lib/logger.h +compat.h +/home/julian/UxPlay/lib/compat.h + +/home/julian/UxPlay/lib/logger.h + +/home/julian/UxPlay/lib/memalign.h + +/home/julian/UxPlay/lib/mirror_buffer.c +mirror_buffer.h +/home/julian/UxPlay/lib/mirror_buffer.h +raop_rtp.h +/home/julian/UxPlay/lib/raop_rtp.h +raop_rtp.h +/home/julian/UxPlay/lib/raop_rtp.h +stdint.h +- +crypto.h +/home/julian/UxPlay/lib/crypto.h +compat.h +/home/julian/UxPlay/lib/compat.h +math.h +- +stdlib.h +- +assert.h +- +string.h +- +stdio.h +- + +/home/julian/UxPlay/lib/mirror_buffer.h +stdint.h +- +logger.h +/home/julian/UxPlay/lib/logger.h + +/home/julian/UxPlay/lib/netutils.c +stdlib.h +- +string.h +- +assert.h +- +compat.h +/home/julian/UxPlay/lib/compat.h + +/home/julian/UxPlay/lib/netutils.h + +/home/julian/UxPlay/lib/pairing.c +stdlib.h +- +string.h +- +assert.h +- +pairing.h +/home/julian/UxPlay/lib/pairing.h +curve25519/curve25519.h +/home/julian/UxPlay/lib/curve25519/curve25519.h +ed25519/ed25519.h +/home/julian/UxPlay/lib/ed25519/ed25519.h +crypto.h +/home/julian/UxPlay/lib/crypto.h + +/home/julian/UxPlay/lib/pairing.h + +/home/julian/UxPlay/lib/playfair/playfair.h + +/home/julian/UxPlay/lib/plist/plist/plist.h +stdint.h +- +sys/types.h +- +stdarg.h +- + +/home/julian/UxPlay/lib/raop.c +stdlib.h +- +stdio.h +- +string.h +- +assert.h +- +raop.h +/home/julian/UxPlay/lib/raop.h +raop_rtp.h +/home/julian/UxPlay/lib/raop_rtp.h +raop_rtp.h +/home/julian/UxPlay/lib/raop_rtp.h +pairing.h +/home/julian/UxPlay/lib/pairing.h +httpd.h +/home/julian/UxPlay/lib/httpd.h +global.h +/home/julian/UxPlay/lib/global.h +fairplay.h +/home/julian/UxPlay/lib/fairplay.h +netutils.h +/home/julian/UxPlay/lib/netutils.h +logger.h +/home/julian/UxPlay/lib/logger.h +compat.h +/home/julian/UxPlay/lib/compat.h +raop_rtp_mirror.h +/home/julian/UxPlay/lib/raop_rtp_mirror.h +raop_ntp.h +/home/julian/UxPlay/lib/raop_ntp.h +raop_handlers.h +/home/julian/UxPlay/lib/raop_handlers.h + +/home/julian/UxPlay/lib/raop.h +dnssd.h +/home/julian/UxPlay/lib/dnssd.h +stream.h +/home/julian/UxPlay/lib/stream.h +raop_ntp.h +/home/julian/UxPlay/lib/raop_ntp.h + +/home/julian/UxPlay/lib/raop_buffer.c +stdlib.h +- +string.h +- +assert.h +- +math.h +- +stdio.h +- +stdbool.h +- +stdint.h +- +raop_buffer.h +/home/julian/UxPlay/lib/raop_buffer.h +raop_rtp.h +/home/julian/UxPlay/lib/raop_rtp.h +crypto.h +/home/julian/UxPlay/lib/crypto.h +compat.h +/home/julian/UxPlay/lib/compat.h +stream.h +/home/julian/UxPlay/lib/stream.h + +/home/julian/UxPlay/lib/raop_buffer.h +logger.h +/home/julian/UxPlay/lib/logger.h +raop_rtp.h +/home/julian/UxPlay/lib/raop_rtp.h + +/home/julian/UxPlay/lib/raop_handlers.h +plist/plist/plist.h +/home/julian/UxPlay/lib/plist/plist/plist.h +dnssdint.h +/home/julian/UxPlay/lib/dnssdint.h +utils.h +/home/julian/UxPlay/lib/utils.h +ctype.h +- +stdlib.h +- + +/home/julian/UxPlay/lib/raop_ntp.c +assert.h +- +stdlib.h +- +stdio.h +- +string.h +- +stdbool.h +- +raop_ntp.h +/home/julian/UxPlay/lib/raop_ntp.h +threads.h +/home/julian/UxPlay/lib/threads.h +compat.h +/home/julian/UxPlay/lib/compat.h +netutils.h +/home/julian/UxPlay/lib/netutils.h +byteutils.h +/home/julian/UxPlay/lib/byteutils.h + +/home/julian/UxPlay/lib/raop_ntp.h +stdbool.h +- +stdint.h +- +logger.h +/home/julian/UxPlay/lib/logger.h + +/home/julian/UxPlay/lib/raop_rtp.c +stdlib.h +- +stdio.h +- +string.h +- +assert.h +- +errno.h +- +stdbool.h +- +raop_rtp.h +/home/julian/UxPlay/lib/raop_rtp.h +raop.h +/home/julian/UxPlay/lib/raop.h +raop_buffer.h +/home/julian/UxPlay/lib/raop_buffer.h +netutils.h +/home/julian/UxPlay/lib/netutils.h +compat.h +/home/julian/UxPlay/lib/compat.h +logger.h +/home/julian/UxPlay/lib/logger.h +byteutils.h +/home/julian/UxPlay/lib/byteutils.h +mirror_buffer.h +/home/julian/UxPlay/lib/mirror_buffer.h +stream.h +/home/julian/UxPlay/lib/stream.h + +/home/julian/UxPlay/lib/raop_rtp.h +raop.h +/home/julian/UxPlay/lib/raop.h +logger.h +/home/julian/UxPlay/lib/logger.h +raop_ntp.h +/home/julian/UxPlay/lib/raop_ntp.h + +/home/julian/UxPlay/lib/raop_rtp_mirror.c +raop_rtp_mirror.h +/home/julian/UxPlay/lib/raop_rtp_mirror.h +stdlib.h +- +stdio.h +- +string.h +- +assert.h +- +errno.h +- +stdbool.h +- +raop.h +/home/julian/UxPlay/lib/raop.h +netutils.h +/home/julian/UxPlay/lib/netutils.h +compat.h +/home/julian/UxPlay/lib/compat.h +logger.h +/home/julian/UxPlay/lib/logger.h +byteutils.h +/home/julian/UxPlay/lib/byteutils.h +mirror_buffer.h +/home/julian/UxPlay/lib/mirror_buffer.h +stream.h +/home/julian/UxPlay/lib/stream.h + +/home/julian/UxPlay/lib/raop_rtp_mirror.h +stdint.h +- +raop.h +/home/julian/UxPlay/lib/raop.h +logger.h +/home/julian/UxPlay/lib/logger.h +raop_ntp.h +/home/julian/UxPlay/lib/raop_ntp.h + +/home/julian/UxPlay/lib/sockets.h + +/home/julian/UxPlay/lib/stream.h +stdint.h +- + +/home/julian/UxPlay/lib/threads.h +windows.h +- +pthread.h +- +unistd.h +- + +/home/julian/UxPlay/lib/utils.c +stdlib.h +- +stdio.h +- +string.h +- +assert.h +- + +/home/julian/UxPlay/lib/utils.h + diff --git a/build/lib/CMakeFiles/airplay.dir/DependInfo.cmake b/build/lib/CMakeFiles/airplay.dir/DependInfo.cmake new file mode 100644 index 0000000..706e406 --- /dev/null +++ b/build/lib/CMakeFiles/airplay.dir/DependInfo.cmake @@ -0,0 +1,45 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "C" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_C + "/home/julian/UxPlay/lib/byteutils.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/byteutils.c.o" + "/home/julian/UxPlay/lib/crypto.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/crypto.c.o" + "/home/julian/UxPlay/lib/dnssd.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/dnssd.c.o" + "/home/julian/UxPlay/lib/fairplay_playfair.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o" + "/home/julian/UxPlay/lib/http_parser.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/http_parser.c.o" + "/home/julian/UxPlay/lib/http_request.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/http_request.c.o" + "/home/julian/UxPlay/lib/http_response.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/http_response.c.o" + "/home/julian/UxPlay/lib/httpd.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/httpd.c.o" + "/home/julian/UxPlay/lib/logger.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/logger.c.o" + "/home/julian/UxPlay/lib/mirror_buffer.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/mirror_buffer.c.o" + "/home/julian/UxPlay/lib/netutils.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/netutils.c.o" + "/home/julian/UxPlay/lib/pairing.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/pairing.c.o" + "/home/julian/UxPlay/lib/raop.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/raop.c.o" + "/home/julian/UxPlay/lib/raop_buffer.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/raop_buffer.c.o" + "/home/julian/UxPlay/lib/raop_ntp.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/raop_ntp.c.o" + "/home/julian/UxPlay/lib/raop_rtp.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/raop_rtp.c.o" + "/home/julian/UxPlay/lib/raop_rtp_mirror.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o" + "/home/julian/UxPlay/lib/utils.c" "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/utils.c.o" + ) +set(CMAKE_C_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_C_TARGET_INCLUDE_PATH + "../lib/curve25519" + "../lib/ed25519" + "../lib/playfair" + "../lib/plist/plist" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/julian/UxPlay/build/lib/curve25519/CMakeFiles/curve25519.dir/DependInfo.cmake" + "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/DependInfo.cmake" + "/home/julian/UxPlay/build/lib/playfair/CMakeFiles/playfair.dir/DependInfo.cmake" + "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/lib/CMakeFiles/airplay.dir/build.make b/build/lib/CMakeFiles/airplay.dir/build.make new file mode 100644 index 0000000..8abcdcd --- /dev/null +++ b/build/lib/CMakeFiles/airplay.dir/build.make @@ -0,0 +1,573 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/julian/UxPlay + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/julian/UxPlay/build + +# Include any dependencies generated for this target. +include lib/CMakeFiles/airplay.dir/depend.make + +# Include the progress variables for this target. +include lib/CMakeFiles/airplay.dir/progress.make + +# Include the compile flags for this target's objects. +include lib/CMakeFiles/airplay.dir/flags.make + +lib/CMakeFiles/airplay.dir/byteutils.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/byteutils.c.o: ../lib/byteutils.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object lib/CMakeFiles/airplay.dir/byteutils.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/byteutils.c.o -c /home/julian/UxPlay/lib/byteutils.c + +lib/CMakeFiles/airplay.dir/byteutils.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/byteutils.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/byteutils.c > CMakeFiles/airplay.dir/byteutils.c.i + +lib/CMakeFiles/airplay.dir/byteutils.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/byteutils.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/byteutils.c -o CMakeFiles/airplay.dir/byteutils.c.s + +lib/CMakeFiles/airplay.dir/byteutils.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/byteutils.c.o.requires + +lib/CMakeFiles/airplay.dir/byteutils.c.o.provides: lib/CMakeFiles/airplay.dir/byteutils.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/byteutils.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/byteutils.c.o.provides + +lib/CMakeFiles/airplay.dir/byteutils.c.o.provides.build: lib/CMakeFiles/airplay.dir/byteutils.c.o + + +lib/CMakeFiles/airplay.dir/crypto.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/crypto.c.o: ../lib/crypto.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object lib/CMakeFiles/airplay.dir/crypto.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/crypto.c.o -c /home/julian/UxPlay/lib/crypto.c + +lib/CMakeFiles/airplay.dir/crypto.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/crypto.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/crypto.c > CMakeFiles/airplay.dir/crypto.c.i + +lib/CMakeFiles/airplay.dir/crypto.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/crypto.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/crypto.c -o CMakeFiles/airplay.dir/crypto.c.s + +lib/CMakeFiles/airplay.dir/crypto.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/crypto.c.o.requires + +lib/CMakeFiles/airplay.dir/crypto.c.o.provides: lib/CMakeFiles/airplay.dir/crypto.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/crypto.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/crypto.c.o.provides + +lib/CMakeFiles/airplay.dir/crypto.c.o.provides.build: lib/CMakeFiles/airplay.dir/crypto.c.o + + +lib/CMakeFiles/airplay.dir/dnssd.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/dnssd.c.o: ../lib/dnssd.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building C object lib/CMakeFiles/airplay.dir/dnssd.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/dnssd.c.o -c /home/julian/UxPlay/lib/dnssd.c + +lib/CMakeFiles/airplay.dir/dnssd.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/dnssd.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/dnssd.c > CMakeFiles/airplay.dir/dnssd.c.i + +lib/CMakeFiles/airplay.dir/dnssd.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/dnssd.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/dnssd.c -o CMakeFiles/airplay.dir/dnssd.c.s + +lib/CMakeFiles/airplay.dir/dnssd.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/dnssd.c.o.requires + +lib/CMakeFiles/airplay.dir/dnssd.c.o.provides: lib/CMakeFiles/airplay.dir/dnssd.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/dnssd.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/dnssd.c.o.provides + +lib/CMakeFiles/airplay.dir/dnssd.c.o.provides.build: lib/CMakeFiles/airplay.dir/dnssd.c.o + + +lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o: ../lib/fairplay_playfair.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building C object lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/fairplay_playfair.c.o -c /home/julian/UxPlay/lib/fairplay_playfair.c + +lib/CMakeFiles/airplay.dir/fairplay_playfair.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/fairplay_playfair.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/fairplay_playfair.c > CMakeFiles/airplay.dir/fairplay_playfair.c.i + +lib/CMakeFiles/airplay.dir/fairplay_playfair.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/fairplay_playfair.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/fairplay_playfair.c -o CMakeFiles/airplay.dir/fairplay_playfair.c.s + +lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o.requires + +lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o.provides: lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o.provides + +lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o.provides.build: lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o + + +lib/CMakeFiles/airplay.dir/http_parser.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/http_parser.c.o: ../lib/http_parser.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building C object lib/CMakeFiles/airplay.dir/http_parser.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/http_parser.c.o -c /home/julian/UxPlay/lib/http_parser.c + +lib/CMakeFiles/airplay.dir/http_parser.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/http_parser.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/http_parser.c > CMakeFiles/airplay.dir/http_parser.c.i + +lib/CMakeFiles/airplay.dir/http_parser.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/http_parser.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/http_parser.c -o CMakeFiles/airplay.dir/http_parser.c.s + +lib/CMakeFiles/airplay.dir/http_parser.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/http_parser.c.o.requires + +lib/CMakeFiles/airplay.dir/http_parser.c.o.provides: lib/CMakeFiles/airplay.dir/http_parser.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/http_parser.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/http_parser.c.o.provides + +lib/CMakeFiles/airplay.dir/http_parser.c.o.provides.build: lib/CMakeFiles/airplay.dir/http_parser.c.o + + +lib/CMakeFiles/airplay.dir/http_request.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/http_request.c.o: ../lib/http_request.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building C object lib/CMakeFiles/airplay.dir/http_request.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/http_request.c.o -c /home/julian/UxPlay/lib/http_request.c + +lib/CMakeFiles/airplay.dir/http_request.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/http_request.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/http_request.c > CMakeFiles/airplay.dir/http_request.c.i + +lib/CMakeFiles/airplay.dir/http_request.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/http_request.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/http_request.c -o CMakeFiles/airplay.dir/http_request.c.s + +lib/CMakeFiles/airplay.dir/http_request.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/http_request.c.o.requires + +lib/CMakeFiles/airplay.dir/http_request.c.o.provides: lib/CMakeFiles/airplay.dir/http_request.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/http_request.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/http_request.c.o.provides + +lib/CMakeFiles/airplay.dir/http_request.c.o.provides.build: lib/CMakeFiles/airplay.dir/http_request.c.o + + +lib/CMakeFiles/airplay.dir/http_response.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/http_response.c.o: ../lib/http_response.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building C object lib/CMakeFiles/airplay.dir/http_response.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/http_response.c.o -c /home/julian/UxPlay/lib/http_response.c + +lib/CMakeFiles/airplay.dir/http_response.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/http_response.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/http_response.c > CMakeFiles/airplay.dir/http_response.c.i + +lib/CMakeFiles/airplay.dir/http_response.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/http_response.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/http_response.c -o CMakeFiles/airplay.dir/http_response.c.s + +lib/CMakeFiles/airplay.dir/http_response.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/http_response.c.o.requires + +lib/CMakeFiles/airplay.dir/http_response.c.o.provides: lib/CMakeFiles/airplay.dir/http_response.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/http_response.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/http_response.c.o.provides + +lib/CMakeFiles/airplay.dir/http_response.c.o.provides.build: lib/CMakeFiles/airplay.dir/http_response.c.o + + +lib/CMakeFiles/airplay.dir/httpd.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/httpd.c.o: ../lib/httpd.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building C object lib/CMakeFiles/airplay.dir/httpd.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/httpd.c.o -c /home/julian/UxPlay/lib/httpd.c + +lib/CMakeFiles/airplay.dir/httpd.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/httpd.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/httpd.c > CMakeFiles/airplay.dir/httpd.c.i + +lib/CMakeFiles/airplay.dir/httpd.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/httpd.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/httpd.c -o CMakeFiles/airplay.dir/httpd.c.s + +lib/CMakeFiles/airplay.dir/httpd.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/httpd.c.o.requires + +lib/CMakeFiles/airplay.dir/httpd.c.o.provides: lib/CMakeFiles/airplay.dir/httpd.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/httpd.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/httpd.c.o.provides + +lib/CMakeFiles/airplay.dir/httpd.c.o.provides.build: lib/CMakeFiles/airplay.dir/httpd.c.o + + +lib/CMakeFiles/airplay.dir/logger.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/logger.c.o: ../lib/logger.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building C object lib/CMakeFiles/airplay.dir/logger.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/logger.c.o -c /home/julian/UxPlay/lib/logger.c + +lib/CMakeFiles/airplay.dir/logger.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/logger.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/logger.c > CMakeFiles/airplay.dir/logger.c.i + +lib/CMakeFiles/airplay.dir/logger.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/logger.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/logger.c -o CMakeFiles/airplay.dir/logger.c.s + +lib/CMakeFiles/airplay.dir/logger.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/logger.c.o.requires + +lib/CMakeFiles/airplay.dir/logger.c.o.provides: lib/CMakeFiles/airplay.dir/logger.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/logger.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/logger.c.o.provides + +lib/CMakeFiles/airplay.dir/logger.c.o.provides.build: lib/CMakeFiles/airplay.dir/logger.c.o + + +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/mirror_buffer.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Building C object lib/CMakeFiles/airplay.dir/mirror_buffer.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/mirror_buffer.c.o -c /home/julian/UxPlay/lib/mirror_buffer.c + +lib/CMakeFiles/airplay.dir/mirror_buffer.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/mirror_buffer.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/mirror_buffer.c > CMakeFiles/airplay.dir/mirror_buffer.c.i + +lib/CMakeFiles/airplay.dir/mirror_buffer.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/mirror_buffer.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/mirror_buffer.c -o CMakeFiles/airplay.dir/mirror_buffer.c.s + +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/mirror_buffer.c.o.requires + +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o.provides: lib/CMakeFiles/airplay.dir/mirror_buffer.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/mirror_buffer.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/mirror_buffer.c.o.provides + +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o.provides.build: lib/CMakeFiles/airplay.dir/mirror_buffer.c.o + + +lib/CMakeFiles/airplay.dir/netutils.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/netutils.c.o: ../lib/netutils.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_11) "Building C object lib/CMakeFiles/airplay.dir/netutils.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/netutils.c.o -c /home/julian/UxPlay/lib/netutils.c + +lib/CMakeFiles/airplay.dir/netutils.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/netutils.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/netutils.c > CMakeFiles/airplay.dir/netutils.c.i + +lib/CMakeFiles/airplay.dir/netutils.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/netutils.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/netutils.c -o CMakeFiles/airplay.dir/netutils.c.s + +lib/CMakeFiles/airplay.dir/netutils.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/netutils.c.o.requires + +lib/CMakeFiles/airplay.dir/netutils.c.o.provides: lib/CMakeFiles/airplay.dir/netutils.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/netutils.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/netutils.c.o.provides + +lib/CMakeFiles/airplay.dir/netutils.c.o.provides.build: lib/CMakeFiles/airplay.dir/netutils.c.o + + +lib/CMakeFiles/airplay.dir/pairing.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/pairing.c.o: ../lib/pairing.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_12) "Building C object lib/CMakeFiles/airplay.dir/pairing.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/pairing.c.o -c /home/julian/UxPlay/lib/pairing.c + +lib/CMakeFiles/airplay.dir/pairing.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/pairing.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/pairing.c > CMakeFiles/airplay.dir/pairing.c.i + +lib/CMakeFiles/airplay.dir/pairing.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/pairing.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/pairing.c -o CMakeFiles/airplay.dir/pairing.c.s + +lib/CMakeFiles/airplay.dir/pairing.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/pairing.c.o.requires + +lib/CMakeFiles/airplay.dir/pairing.c.o.provides: lib/CMakeFiles/airplay.dir/pairing.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/pairing.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/pairing.c.o.provides + +lib/CMakeFiles/airplay.dir/pairing.c.o.provides.build: lib/CMakeFiles/airplay.dir/pairing.c.o + + +lib/CMakeFiles/airplay.dir/raop.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/raop.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_13) "Building C object lib/CMakeFiles/airplay.dir/raop.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/raop.c.o -c /home/julian/UxPlay/lib/raop.c + +lib/CMakeFiles/airplay.dir/raop.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/raop.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/raop.c > CMakeFiles/airplay.dir/raop.c.i + +lib/CMakeFiles/airplay.dir/raop.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/raop.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/raop.c -o CMakeFiles/airplay.dir/raop.c.s + +lib/CMakeFiles/airplay.dir/raop.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/raop.c.o.requires + +lib/CMakeFiles/airplay.dir/raop.c.o.provides: lib/CMakeFiles/airplay.dir/raop.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/raop.c.o.provides + +lib/CMakeFiles/airplay.dir/raop.c.o.provides.build: lib/CMakeFiles/airplay.dir/raop.c.o + + +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/raop_buffer.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_14) "Building C object lib/CMakeFiles/airplay.dir/raop_buffer.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/raop_buffer.c.o -c /home/julian/UxPlay/lib/raop_buffer.c + +lib/CMakeFiles/airplay.dir/raop_buffer.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/raop_buffer.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/raop_buffer.c > CMakeFiles/airplay.dir/raop_buffer.c.i + +lib/CMakeFiles/airplay.dir/raop_buffer.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/raop_buffer.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/raop_buffer.c -o CMakeFiles/airplay.dir/raop_buffer.c.s + +lib/CMakeFiles/airplay.dir/raop_buffer.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/raop_buffer.c.o.requires + +lib/CMakeFiles/airplay.dir/raop_buffer.c.o.provides: lib/CMakeFiles/airplay.dir/raop_buffer.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_buffer.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/raop_buffer.c.o.provides + +lib/CMakeFiles/airplay.dir/raop_buffer.c.o.provides.build: lib/CMakeFiles/airplay.dir/raop_buffer.c.o + + +lib/CMakeFiles/airplay.dir/raop_ntp.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/raop_ntp.c.o: ../lib/raop_ntp.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_15) "Building C object lib/CMakeFiles/airplay.dir/raop_ntp.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/raop_ntp.c.o -c /home/julian/UxPlay/lib/raop_ntp.c + +lib/CMakeFiles/airplay.dir/raop_ntp.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/raop_ntp.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/raop_ntp.c > CMakeFiles/airplay.dir/raop_ntp.c.i + +lib/CMakeFiles/airplay.dir/raop_ntp.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/raop_ntp.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/raop_ntp.c -o CMakeFiles/airplay.dir/raop_ntp.c.s + +lib/CMakeFiles/airplay.dir/raop_ntp.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/raop_ntp.c.o.requires + +lib/CMakeFiles/airplay.dir/raop_ntp.c.o.provides: lib/CMakeFiles/airplay.dir/raop_ntp.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_ntp.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/raop_ntp.c.o.provides + +lib/CMakeFiles/airplay.dir/raop_ntp.c.o.provides.build: lib/CMakeFiles/airplay.dir/raop_ntp.c.o + + +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/raop_rtp.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_16) "Building C object lib/CMakeFiles/airplay.dir/raop_rtp.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/raop_rtp.c.o -c /home/julian/UxPlay/lib/raop_rtp.c + +lib/CMakeFiles/airplay.dir/raop_rtp.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/raop_rtp.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/raop_rtp.c > CMakeFiles/airplay.dir/raop_rtp.c.i + +lib/CMakeFiles/airplay.dir/raop_rtp.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/raop_rtp.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/raop_rtp.c -o CMakeFiles/airplay.dir/raop_rtp.c.s + +lib/CMakeFiles/airplay.dir/raop_rtp.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/raop_rtp.c.o.requires + +lib/CMakeFiles/airplay.dir/raop_rtp.c.o.provides: lib/CMakeFiles/airplay.dir/raop_rtp.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_rtp.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/raop_rtp.c.o.provides + +lib/CMakeFiles/airplay.dir/raop_rtp.c.o.provides.build: lib/CMakeFiles/airplay.dir/raop_rtp.c.o + + +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/raop_rtp_mirror.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_17) "Building C object lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/raop_rtp_mirror.c.o -c /home/julian/UxPlay/lib/raop_rtp_mirror.c + +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/raop_rtp_mirror.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/raop_rtp_mirror.c > CMakeFiles/airplay.dir/raop_rtp_mirror.c.i + +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/raop_rtp_mirror.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/raop_rtp_mirror.c -o CMakeFiles/airplay.dir/raop_rtp_mirror.c.s + +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o.requires + +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o.provides: lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o.provides + +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o.provides.build: lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o + + +lib/CMakeFiles/airplay.dir/utils.c.o: lib/CMakeFiles/airplay.dir/flags.make +lib/CMakeFiles/airplay.dir/utils.c.o: ../lib/utils.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_18) "Building C object lib/CMakeFiles/airplay.dir/utils.c.o" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/airplay.dir/utils.c.o -c /home/julian/UxPlay/lib/utils.c + +lib/CMakeFiles/airplay.dir/utils.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/airplay.dir/utils.c.i" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/utils.c > CMakeFiles/airplay.dir/utils.c.i + +lib/CMakeFiles/airplay.dir/utils.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/airplay.dir/utils.c.s" + cd /home/julian/UxPlay/build/lib && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/utils.c -o CMakeFiles/airplay.dir/utils.c.s + +lib/CMakeFiles/airplay.dir/utils.c.o.requires: + +.PHONY : lib/CMakeFiles/airplay.dir/utils.c.o.requires + +lib/CMakeFiles/airplay.dir/utils.c.o.provides: lib/CMakeFiles/airplay.dir/utils.c.o.requires + $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/utils.c.o.provides.build +.PHONY : lib/CMakeFiles/airplay.dir/utils.c.o.provides + +lib/CMakeFiles/airplay.dir/utils.c.o.provides.build: lib/CMakeFiles/airplay.dir/utils.c.o + + +# Object files for target airplay +airplay_OBJECTS = \ +"CMakeFiles/airplay.dir/byteutils.c.o" \ +"CMakeFiles/airplay.dir/crypto.c.o" \ +"CMakeFiles/airplay.dir/dnssd.c.o" \ +"CMakeFiles/airplay.dir/fairplay_playfair.c.o" \ +"CMakeFiles/airplay.dir/http_parser.c.o" \ +"CMakeFiles/airplay.dir/http_request.c.o" \ +"CMakeFiles/airplay.dir/http_response.c.o" \ +"CMakeFiles/airplay.dir/httpd.c.o" \ +"CMakeFiles/airplay.dir/logger.c.o" \ +"CMakeFiles/airplay.dir/mirror_buffer.c.o" \ +"CMakeFiles/airplay.dir/netutils.c.o" \ +"CMakeFiles/airplay.dir/pairing.c.o" \ +"CMakeFiles/airplay.dir/raop.c.o" \ +"CMakeFiles/airplay.dir/raop_buffer.c.o" \ +"CMakeFiles/airplay.dir/raop_ntp.c.o" \ +"CMakeFiles/airplay.dir/raop_rtp.c.o" \ +"CMakeFiles/airplay.dir/raop_rtp_mirror.c.o" \ +"CMakeFiles/airplay.dir/utils.c.o" + +# External object files for target airplay +airplay_EXTERNAL_OBJECTS = + +lib/libairplay.a: lib/CMakeFiles/airplay.dir/byteutils.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/crypto.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/dnssd.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/http_parser.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/http_request.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/http_response.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/httpd.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/logger.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/mirror_buffer.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/netutils.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/pairing.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/raop.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/raop_buffer.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/raop_ntp.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/raop_rtp.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/utils.c.o +lib/libairplay.a: lib/CMakeFiles/airplay.dir/build.make +lib/libairplay.a: lib/CMakeFiles/airplay.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_19) "Linking C static library libairplay.a" + cd /home/julian/UxPlay/build/lib && $(CMAKE_COMMAND) -P CMakeFiles/airplay.dir/cmake_clean_target.cmake + cd /home/julian/UxPlay/build/lib && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/airplay.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +lib/CMakeFiles/airplay.dir/build: lib/libairplay.a + +.PHONY : lib/CMakeFiles/airplay.dir/build + +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/byteutils.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/crypto.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/dnssd.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/http_parser.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/http_request.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/http_response.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/httpd.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/logger.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/mirror_buffer.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/netutils.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/pairing.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/raop.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/raop_buffer.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/raop_ntp.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/raop_rtp.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o.requires +lib/CMakeFiles/airplay.dir/requires: lib/CMakeFiles/airplay.dir/utils.c.o.requires + +.PHONY : lib/CMakeFiles/airplay.dir/requires + +lib/CMakeFiles/airplay.dir/clean: + cd /home/julian/UxPlay/build/lib && $(CMAKE_COMMAND) -P CMakeFiles/airplay.dir/cmake_clean.cmake +.PHONY : lib/CMakeFiles/airplay.dir/clean + +lib/CMakeFiles/airplay.dir/depend: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/julian/UxPlay /home/julian/UxPlay/lib /home/julian/UxPlay/build /home/julian/UxPlay/build/lib /home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : lib/CMakeFiles/airplay.dir/depend + diff --git a/build/lib/CMakeFiles/airplay.dir/byteutils.c.o b/build/lib/CMakeFiles/airplay.dir/byteutils.c.o new file mode 100644 index 0000000000000000000000000000000000000000..e65d3c25b8b3bd42c2ff35dc39a0c34d158721eb GIT binary patch literal 12464 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 literal 0 HcmV?d00001 diff --git a/build/lib/CMakeFiles/airplay.dir/cmake_clean.cmake b/build/lib/CMakeFiles/airplay.dir/cmake_clean.cmake new file mode 100644 index 0000000..2449ebc --- /dev/null +++ b/build/lib/CMakeFiles/airplay.dir/cmake_clean.cmake @@ -0,0 +1,27 @@ +file(REMOVE_RECURSE + "CMakeFiles/airplay.dir/byteutils.c.o" + "CMakeFiles/airplay.dir/crypto.c.o" + "CMakeFiles/airplay.dir/dnssd.c.o" + "CMakeFiles/airplay.dir/fairplay_playfair.c.o" + "CMakeFiles/airplay.dir/http_parser.c.o" + "CMakeFiles/airplay.dir/http_request.c.o" + "CMakeFiles/airplay.dir/http_response.c.o" + "CMakeFiles/airplay.dir/httpd.c.o" + "CMakeFiles/airplay.dir/logger.c.o" + "CMakeFiles/airplay.dir/mirror_buffer.c.o" + "CMakeFiles/airplay.dir/netutils.c.o" + "CMakeFiles/airplay.dir/pairing.c.o" + "CMakeFiles/airplay.dir/raop.c.o" + "CMakeFiles/airplay.dir/raop_buffer.c.o" + "CMakeFiles/airplay.dir/raop_ntp.c.o" + "CMakeFiles/airplay.dir/raop_rtp.c.o" + "CMakeFiles/airplay.dir/raop_rtp_mirror.c.o" + "CMakeFiles/airplay.dir/utils.c.o" + "libairplay.pdb" + "libairplay.a" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/airplay.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/lib/CMakeFiles/airplay.dir/cmake_clean_target.cmake b/build/lib/CMakeFiles/airplay.dir/cmake_clean_target.cmake new file mode 100644 index 0000000..735cb16 --- /dev/null +++ b/build/lib/CMakeFiles/airplay.dir/cmake_clean_target.cmake @@ -0,0 +1,3 @@ +file(REMOVE_RECURSE + "libairplay.a" +) diff --git a/build/lib/CMakeFiles/airplay.dir/crypto.c.o b/build/lib/CMakeFiles/airplay.dir/crypto.c.o new file mode 100644 index 0000000000000000000000000000000000000000..60ae4e2bafa58328007e3002b8653110b8273492 GIT binary patch literal 35688 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 literal 0 HcmV?d00001 diff --git a/build/lib/CMakeFiles/airplay.dir/depend.internal b/build/lib/CMakeFiles/airplay.dir/depend.internal new file mode 100644 index 0000000..70d04bd --- /dev/null +++ b/build/lib/CMakeFiles/airplay.dir/depend.internal @@ -0,0 +1,163 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +lib/CMakeFiles/airplay.dir/byteutils.c.o + /home/julian/UxPlay/lib/byteutils.c + /home/julian/UxPlay/lib/byteutils.h +lib/CMakeFiles/airplay.dir/crypto.c.o + /home/julian/UxPlay/lib/crypto.c + /home/julian/UxPlay/lib/crypto.h +lib/CMakeFiles/airplay.dir/dnssd.c.o + /home/julian/UxPlay/lib/compat.h + /home/julian/UxPlay/lib/dnssd.c + /home/julian/UxPlay/lib/dnssd.h + /home/julian/UxPlay/lib/dnssdint.h + /home/julian/UxPlay/lib/global.h + /home/julian/UxPlay/lib/memalign.h + /home/julian/UxPlay/lib/sockets.h + /home/julian/UxPlay/lib/threads.h + /home/julian/UxPlay/lib/utils.h +lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o + /home/julian/UxPlay/lib/fairplay.h + /home/julian/UxPlay/lib/fairplay_playfair.c + /home/julian/UxPlay/lib/logger.h + /home/julian/UxPlay/lib/playfair/playfair.h +lib/CMakeFiles/airplay.dir/http_parser.c.o + /home/julian/UxPlay/lib/http_parser.c + /home/julian/UxPlay/lib/http_parser.h +lib/CMakeFiles/airplay.dir/http_request.c.o + /home/julian/UxPlay/lib/http_parser.h + /home/julian/UxPlay/lib/http_request.c + /home/julian/UxPlay/lib/http_request.h +lib/CMakeFiles/airplay.dir/http_response.c.o + /home/julian/UxPlay/lib/compat.h + /home/julian/UxPlay/lib/http_response.c + /home/julian/UxPlay/lib/http_response.h + /home/julian/UxPlay/lib/memalign.h + /home/julian/UxPlay/lib/sockets.h + /home/julian/UxPlay/lib/threads.h +lib/CMakeFiles/airplay.dir/httpd.c.o + /home/julian/UxPlay/lib/compat.h + /home/julian/UxPlay/lib/http_request.h + /home/julian/UxPlay/lib/http_response.h + /home/julian/UxPlay/lib/httpd.c + /home/julian/UxPlay/lib/httpd.h + /home/julian/UxPlay/lib/logger.h + /home/julian/UxPlay/lib/memalign.h + /home/julian/UxPlay/lib/netutils.h + /home/julian/UxPlay/lib/sockets.h + /home/julian/UxPlay/lib/threads.h +lib/CMakeFiles/airplay.dir/logger.c.o + /home/julian/UxPlay/lib/compat.h + /home/julian/UxPlay/lib/logger.c + /home/julian/UxPlay/lib/logger.h + /home/julian/UxPlay/lib/memalign.h + /home/julian/UxPlay/lib/sockets.h + /home/julian/UxPlay/lib/threads.h +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o + /home/julian/UxPlay/lib/compat.h + /home/julian/UxPlay/lib/crypto.h + /home/julian/UxPlay/lib/dnssd.h + /home/julian/UxPlay/lib/logger.h + /home/julian/UxPlay/lib/memalign.h + /home/julian/UxPlay/lib/mirror_buffer.c + /home/julian/UxPlay/lib/mirror_buffer.h + /home/julian/UxPlay/lib/raop.h + /home/julian/UxPlay/lib/raop_ntp.h + /home/julian/UxPlay/lib/raop_rtp.h + /home/julian/UxPlay/lib/sockets.h + /home/julian/UxPlay/lib/stream.h + /home/julian/UxPlay/lib/threads.h +lib/CMakeFiles/airplay.dir/netutils.c.o + /home/julian/UxPlay/lib/compat.h + /home/julian/UxPlay/lib/memalign.h + /home/julian/UxPlay/lib/netutils.c + /home/julian/UxPlay/lib/sockets.h + /home/julian/UxPlay/lib/threads.h +lib/CMakeFiles/airplay.dir/pairing.c.o + /home/julian/UxPlay/lib/crypto.h + /home/julian/UxPlay/lib/curve25519/curve25519.h + /home/julian/UxPlay/lib/ed25519/ed25519.h + /home/julian/UxPlay/lib/pairing.c + /home/julian/UxPlay/lib/pairing.h +lib/CMakeFiles/airplay.dir/raop.c.o + /home/julian/UxPlay/lib/compat.h + /home/julian/UxPlay/lib/dnssd.h + /home/julian/UxPlay/lib/dnssdint.h + /home/julian/UxPlay/lib/fairplay.h + /home/julian/UxPlay/lib/global.h + /home/julian/UxPlay/lib/http_request.h + /home/julian/UxPlay/lib/http_response.h + /home/julian/UxPlay/lib/httpd.h + /home/julian/UxPlay/lib/logger.h + /home/julian/UxPlay/lib/memalign.h + /home/julian/UxPlay/lib/netutils.h + /home/julian/UxPlay/lib/pairing.h + /home/julian/UxPlay/lib/plist/plist/plist.h + /home/julian/UxPlay/lib/raop.c + /home/julian/UxPlay/lib/raop.h + /home/julian/UxPlay/lib/raop_handlers.h + /home/julian/UxPlay/lib/raop_ntp.h + /home/julian/UxPlay/lib/raop_rtp.h + /home/julian/UxPlay/lib/raop_rtp_mirror.h + /home/julian/UxPlay/lib/sockets.h + /home/julian/UxPlay/lib/stream.h + /home/julian/UxPlay/lib/threads.h + /home/julian/UxPlay/lib/utils.h +lib/CMakeFiles/airplay.dir/raop_buffer.c.o + /home/julian/UxPlay/lib/compat.h + /home/julian/UxPlay/lib/crypto.h + /home/julian/UxPlay/lib/dnssd.h + /home/julian/UxPlay/lib/logger.h + /home/julian/UxPlay/lib/memalign.h + /home/julian/UxPlay/lib/raop.h + /home/julian/UxPlay/lib/raop_buffer.c + /home/julian/UxPlay/lib/raop_buffer.h + /home/julian/UxPlay/lib/raop_ntp.h + /home/julian/UxPlay/lib/raop_rtp.h + /home/julian/UxPlay/lib/sockets.h + /home/julian/UxPlay/lib/stream.h + /home/julian/UxPlay/lib/threads.h +lib/CMakeFiles/airplay.dir/raop_ntp.c.o + /home/julian/UxPlay/lib/byteutils.h + /home/julian/UxPlay/lib/compat.h + /home/julian/UxPlay/lib/logger.h + /home/julian/UxPlay/lib/memalign.h + /home/julian/UxPlay/lib/netutils.h + /home/julian/UxPlay/lib/raop_ntp.c + /home/julian/UxPlay/lib/raop_ntp.h + /home/julian/UxPlay/lib/sockets.h + /home/julian/UxPlay/lib/threads.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o + /home/julian/UxPlay/lib/byteutils.h + /home/julian/UxPlay/lib/compat.h + /home/julian/UxPlay/lib/dnssd.h + /home/julian/UxPlay/lib/logger.h + /home/julian/UxPlay/lib/memalign.h + /home/julian/UxPlay/lib/mirror_buffer.h + /home/julian/UxPlay/lib/netutils.h + /home/julian/UxPlay/lib/raop.h + /home/julian/UxPlay/lib/raop_buffer.h + /home/julian/UxPlay/lib/raop_ntp.h + /home/julian/UxPlay/lib/raop_rtp.c + /home/julian/UxPlay/lib/raop_rtp.h + /home/julian/UxPlay/lib/sockets.h + /home/julian/UxPlay/lib/stream.h + /home/julian/UxPlay/lib/threads.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o + /home/julian/UxPlay/lib/byteutils.h + /home/julian/UxPlay/lib/compat.h + /home/julian/UxPlay/lib/dnssd.h + /home/julian/UxPlay/lib/logger.h + /home/julian/UxPlay/lib/memalign.h + /home/julian/UxPlay/lib/mirror_buffer.h + /home/julian/UxPlay/lib/netutils.h + /home/julian/UxPlay/lib/raop.h + /home/julian/UxPlay/lib/raop_ntp.h + /home/julian/UxPlay/lib/raop_rtp_mirror.c + /home/julian/UxPlay/lib/raop_rtp_mirror.h + /home/julian/UxPlay/lib/sockets.h + /home/julian/UxPlay/lib/stream.h + /home/julian/UxPlay/lib/threads.h +lib/CMakeFiles/airplay.dir/utils.c.o + /home/julian/UxPlay/lib/utils.c diff --git a/build/lib/CMakeFiles/airplay.dir/depend.make b/build/lib/CMakeFiles/airplay.dir/depend.make new file mode 100644 index 0000000..baef451 --- /dev/null +++ b/build/lib/CMakeFiles/airplay.dir/depend.make @@ -0,0 +1,163 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +lib/CMakeFiles/airplay.dir/byteutils.c.o: ../lib/byteutils.c +lib/CMakeFiles/airplay.dir/byteutils.c.o: ../lib/byteutils.h + +lib/CMakeFiles/airplay.dir/crypto.c.o: ../lib/crypto.c +lib/CMakeFiles/airplay.dir/crypto.c.o: ../lib/crypto.h + +lib/CMakeFiles/airplay.dir/dnssd.c.o: ../lib/compat.h +lib/CMakeFiles/airplay.dir/dnssd.c.o: ../lib/dnssd.c +lib/CMakeFiles/airplay.dir/dnssd.c.o: ../lib/dnssd.h +lib/CMakeFiles/airplay.dir/dnssd.c.o: ../lib/dnssdint.h +lib/CMakeFiles/airplay.dir/dnssd.c.o: ../lib/global.h +lib/CMakeFiles/airplay.dir/dnssd.c.o: ../lib/memalign.h +lib/CMakeFiles/airplay.dir/dnssd.c.o: ../lib/sockets.h +lib/CMakeFiles/airplay.dir/dnssd.c.o: ../lib/threads.h +lib/CMakeFiles/airplay.dir/dnssd.c.o: ../lib/utils.h + +lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o: ../lib/fairplay.h +lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o: ../lib/fairplay_playfair.c +lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o: ../lib/logger.h +lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o: ../lib/playfair/playfair.h + +lib/CMakeFiles/airplay.dir/http_parser.c.o: ../lib/http_parser.c +lib/CMakeFiles/airplay.dir/http_parser.c.o: ../lib/http_parser.h + +lib/CMakeFiles/airplay.dir/http_request.c.o: ../lib/http_parser.h +lib/CMakeFiles/airplay.dir/http_request.c.o: ../lib/http_request.c +lib/CMakeFiles/airplay.dir/http_request.c.o: ../lib/http_request.h + +lib/CMakeFiles/airplay.dir/http_response.c.o: ../lib/compat.h +lib/CMakeFiles/airplay.dir/http_response.c.o: ../lib/http_response.c +lib/CMakeFiles/airplay.dir/http_response.c.o: ../lib/http_response.h +lib/CMakeFiles/airplay.dir/http_response.c.o: ../lib/memalign.h +lib/CMakeFiles/airplay.dir/http_response.c.o: ../lib/sockets.h +lib/CMakeFiles/airplay.dir/http_response.c.o: ../lib/threads.h + +lib/CMakeFiles/airplay.dir/httpd.c.o: ../lib/compat.h +lib/CMakeFiles/airplay.dir/httpd.c.o: ../lib/http_request.h +lib/CMakeFiles/airplay.dir/httpd.c.o: ../lib/http_response.h +lib/CMakeFiles/airplay.dir/httpd.c.o: ../lib/httpd.c +lib/CMakeFiles/airplay.dir/httpd.c.o: ../lib/httpd.h +lib/CMakeFiles/airplay.dir/httpd.c.o: ../lib/logger.h +lib/CMakeFiles/airplay.dir/httpd.c.o: ../lib/memalign.h +lib/CMakeFiles/airplay.dir/httpd.c.o: ../lib/netutils.h +lib/CMakeFiles/airplay.dir/httpd.c.o: ../lib/sockets.h +lib/CMakeFiles/airplay.dir/httpd.c.o: ../lib/threads.h + +lib/CMakeFiles/airplay.dir/logger.c.o: ../lib/compat.h +lib/CMakeFiles/airplay.dir/logger.c.o: ../lib/logger.c +lib/CMakeFiles/airplay.dir/logger.c.o: ../lib/logger.h +lib/CMakeFiles/airplay.dir/logger.c.o: ../lib/memalign.h +lib/CMakeFiles/airplay.dir/logger.c.o: ../lib/sockets.h +lib/CMakeFiles/airplay.dir/logger.c.o: ../lib/threads.h + +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/compat.h +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/crypto.h +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/dnssd.h +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/logger.h +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/memalign.h +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/mirror_buffer.c +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/mirror_buffer.h +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/raop.h +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/raop_ntp.h +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/raop_rtp.h +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/sockets.h +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/stream.h +lib/CMakeFiles/airplay.dir/mirror_buffer.c.o: ../lib/threads.h + +lib/CMakeFiles/airplay.dir/netutils.c.o: ../lib/compat.h +lib/CMakeFiles/airplay.dir/netutils.c.o: ../lib/memalign.h +lib/CMakeFiles/airplay.dir/netutils.c.o: ../lib/netutils.c +lib/CMakeFiles/airplay.dir/netutils.c.o: ../lib/sockets.h +lib/CMakeFiles/airplay.dir/netutils.c.o: ../lib/threads.h + +lib/CMakeFiles/airplay.dir/pairing.c.o: ../lib/crypto.h +lib/CMakeFiles/airplay.dir/pairing.c.o: ../lib/curve25519/curve25519.h +lib/CMakeFiles/airplay.dir/pairing.c.o: ../lib/ed25519/ed25519.h +lib/CMakeFiles/airplay.dir/pairing.c.o: ../lib/pairing.c +lib/CMakeFiles/airplay.dir/pairing.c.o: ../lib/pairing.h + +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/compat.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/dnssd.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/dnssdint.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/fairplay.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/global.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/http_request.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/http_response.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/httpd.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/logger.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/memalign.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/netutils.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/pairing.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/plist/plist/plist.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/raop.c +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/raop.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/raop_handlers.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/raop_ntp.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/raop_rtp.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/raop_rtp_mirror.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/sockets.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/stream.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/threads.h +lib/CMakeFiles/airplay.dir/raop.c.o: ../lib/utils.h + +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/compat.h +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/crypto.h +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/dnssd.h +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/logger.h +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/memalign.h +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/raop.h +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/raop_buffer.c +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/raop_buffer.h +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/raop_ntp.h +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/raop_rtp.h +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/sockets.h +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/stream.h +lib/CMakeFiles/airplay.dir/raop_buffer.c.o: ../lib/threads.h + +lib/CMakeFiles/airplay.dir/raop_ntp.c.o: ../lib/byteutils.h +lib/CMakeFiles/airplay.dir/raop_ntp.c.o: ../lib/compat.h +lib/CMakeFiles/airplay.dir/raop_ntp.c.o: ../lib/logger.h +lib/CMakeFiles/airplay.dir/raop_ntp.c.o: ../lib/memalign.h +lib/CMakeFiles/airplay.dir/raop_ntp.c.o: ../lib/netutils.h +lib/CMakeFiles/airplay.dir/raop_ntp.c.o: ../lib/raop_ntp.c +lib/CMakeFiles/airplay.dir/raop_ntp.c.o: ../lib/raop_ntp.h +lib/CMakeFiles/airplay.dir/raop_ntp.c.o: ../lib/sockets.h +lib/CMakeFiles/airplay.dir/raop_ntp.c.o: ../lib/threads.h + +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/byteutils.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/compat.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/dnssd.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/logger.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/memalign.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/mirror_buffer.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/netutils.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/raop.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/raop_buffer.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/raop_ntp.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/raop_rtp.c +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/raop_rtp.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/sockets.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/stream.h +lib/CMakeFiles/airplay.dir/raop_rtp.c.o: ../lib/threads.h + +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/byteutils.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/compat.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/dnssd.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/logger.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/memalign.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/mirror_buffer.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/netutils.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/raop.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/raop_ntp.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/raop_rtp_mirror.c +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/raop_rtp_mirror.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/sockets.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/stream.h +lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o: ../lib/threads.h + +lib/CMakeFiles/airplay.dir/utils.c.o: ../lib/utils.c + diff --git a/build/lib/CMakeFiles/airplay.dir/dnssd.c.o b/build/lib/CMakeFiles/airplay.dir/dnssd.c.o new file mode 100644 index 0000000000000000000000000000000000000000..fd25406dbe9d007a37cd015eeead0afc3789c208 GIT binary patch literal 31232 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 d8P1y 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 literal 0 HcmV?d00001 diff --git a/build/lib/CMakeFiles/airplay.dir/httpd.c.o b/build/lib/CMakeFiles/airplay.dir/httpd.c.o new file mode 100644 index 0000000000000000000000000000000000000000..c9bd3e988d3293fed4225907a38af14fce60a11b GIT binary patch literal 42440 zcmdUYd3;nww*S4kNoYw(0zn9i(qNDvB&0(KARq||(2=Mt2?hn*kaQMFIx*cH!j6Qf zF~$LP9GyXNn;BQs8TGjh1_2Qr9S481vL;9Zj z)~QqHoI17K+g+DUb4%vMn5MzWG|n)b9HWNe-RaQzg3LFD8^er(r3GaL9j_FWmKAsW ztK+*R-b+4pLw#@8^7IsM$GZn&(>DXRx8toUZ)fb-3_)*APXiWD_hHBx9sApk_atvU z0%S?oJ?Yz!qpLJMw&TEoqV(9!2zPugI0fH502Fu5OrP6+%-aluF3CmD6m%T+ zcAbd1-SO~2EtGT|^>&5QT|$Vr<890&7I*9y`GU^%=@~_xMd^v1rRlD=9wYgx4yan( z8A{LYJh}b#Dfqa(J2bu+bkFuyzFyE%ls?hhm3Y3lYw)uj7sVck!LIxZet0|P zxIVc|Rn}s)j+FQG^a#C@M;Qg@iXJU3!=5}GYZwvz_9_6LZf`qunAs0qKi})^_|e-@ z1d4POr7uJ(&D*s#{YBAa5vU6KrU>Cho##&zxw+`oBIr8-??0X)y3y19XbM&W{&1`0dZHMR9X+w(z<_MWc!vparHE^rp-+kddA@tXU(~qwo)YWQ=UUB-P z{m{m0Z)ah4&$9)O3O{!ZUhM5^N-OD#edUvQ881bhDRbKoh4MPRvF!)D3ZUI*lZ*Eh z?D+xO{TLOW(=~V?X#OrVduZQNN51>J_k_}Y3#Wg--s)OodON--nf`S6VK0Pan&+VB zPziWCU-+)QJ9+Exe(vcJBV!b}v2$I<^mX8@>(E)jrnaAZLOJcny5`O9_%gZp={?_% z+H*uWYH*ThZv3-C=Y8*DlkL!Ca{GD+i_TyOYnJ{`YKBgIOorLphmZV78r^~21S%f? zsiy}t6P}yvdEfIH^v6~20f;d(4P(ZQR4!7I%kghX=eq2(%#R8>liLp_Z@mE8DCj&# zy0PO0@S@ZCgFVuwuc-5neD{j9X=?`5DsJ19VkB?95lC<63?8r$!#qnAbZ(0E9DK|G zozc^Bwm|LsW9`mODFW?yN;n?#Hc`;=H1M^r1U|c0PJ}^U+_^dh7+qeN$fiLP`$~EI)Iwbo@i{$nen9@GE1TTRAwutFXF!*Loyo1u%)5fA+! zh7biX#I+yLI@uJaz4E5osK19n~K2Bqg9Bl_pST$FBrY0z>(&%WZe{b>c$_pQHL zPSBxY&YA~^tWwwnE{AC#1T%OfLx>nc$WQ`fFQug8JHo`c;Vi5?w7R3~z!t#-Xy=Y} zT$x}o9Vr&mnxnv-W?tesJ*p9)p7Gg=BWkeeN79%>(FZGc zy6hdVbkdQ}MU09a@h3aDf7YXCdj~5Quj{)wvVTI;yj_jh9|cbc!#j=&6=km^La)Fi z)ZSf?eC<9j6%}>-lMEKy^~ZMg-HaXkp?Ye81qj(8+2bLK)1&9Fz#9j3ed;(0oq?E8 z2>PaTUA`b$&Vj<2LS+%?EP##2O-vuYamFW3lp~ga;Zi2-PDuFM=L=2t7B6hcGvFiF zIIE)7UD+52_$xzoje(%M*#s6uL!l=6bo-l|8=KvA0e8?}4}7xBK`SaN{Y@cv zT@#2C)%q&RGn`g3&uI2v9QFrUQnSC(U)NF>sBt$!8;zB#{2}+)UX3?ZGzWp_bobbx z-b~ORsKV-16`=|$tE#ICj0?GIKvc6o*aW8ejk&FLA!PHGmM(OMYQfYhqrS1G#@}pI zR@B$8tf*WSG#V;eeU7R@_ZjYNqp7huWXvTmfQ*XzI#fl`wKyQ*wf-vbQge&HnF=$4 z<6*uK9)hB=L3d?+oj(wYv@}xmT3bhQle@MeP*o3FPO5Ee@K3rZTwhlam{iufu)bo= zr24v*lZ4l^Dvd(BBcYkbAT(GF9p`wos4mE+v9qf~t1FuQ;3L@~7?XyvSmxY;#t;NY zLsPv!8b$xHbm+&(mZe;2Cpa(U51^5uMmGi_X$boQ z;bOf!&n}lz4B5rLV5qT4BEo)OUC`GY4xr#jKI&-zC0{U90o{p->OtR$to?yQ57XtT z@;YjSfm?1!E>V;yVdrz8m@Z@<@1%{GS8;e-F5Ckcv9WP=fskRvik#&Vw~~A@UC3g^ z$TAbBY(t2!#-1+<1h+)St+Wfr&$G!Z&$7ubhrHGyuR}7<74O1T!;($(Lt0ARkD`PY zDX}gz@C3*kvHf@9MbZh60_l?caUK-ce{CK3zNcz%sKo3^vA(Fl<0OHfQw?y;(MxX@)GWr#cfqW9sM!&ghfK8I~9CSW%$OoGO=e<5CSPV^MaC;LaU!!&X5vMrTxOsfA>1#Nnf_)x zWNKw5(L{xtWF|#qLNYVRydFwgWoC%E5;B`*W~f;QnJqGtW+sBPHklb|j)ctRGBeh^ z4cNBHOs2UHGS|yYmdM;JGm}K-4w=aonfqlX$IOH}kI2kqpS z0L$)48i8|}93@F32LYXCoQSM10Lu_0h6oD9Iu!I6POR}Rlt1*S%_^vGAqz!+0>8w& zeuPZC>nTD11DUZ2As66&KnpJ?os6CnWb)`&p}HVbMy>=B{b-~l-**8p3mcOk$O4k+ zKOr0=VC2gpIU*vGbr{#A$y6Y#31V zX$m?!lKS$Quz-ol zG4;P4^40Tf^tFp{g-hrGc?i-9k zjUhK9m#8r07M%Mf`3Hw#m&0%$G6Xhkp2J&k>Xv4pi06^ zgb73Y8~t8}@{^Ilyh}`;f)_q6B*NTr4=6ecbHIUOF}d->yvMFF8uL#8;|VY=$~1O5K^tfEmo~1~Y+TX@ zZVfk#FySp=ZK;`kin++lcD$1W99KthOo=SKQxuk(3Oo$zJWp^Q$a55Rs-^?a&r+@x z?6#YBSi!R~LCu6A3B66j#xez7YECvzMNeUx1aL&g_7V2C&ky2+4oh4$M-QI$TJZc&0&ksG7Y5==Fj|Z%3=I)}2}ZvOK#xOrn2+wm3#E%; zKEY(}SPv6OMn!Xt!Z2QxJkCSxG?9G*8LjR2ubxn6n18|f0h0*D8==Ipb0XrOz&1eE zdkQz?P_HF3)MA)>--AMH`^_z~jeRU^WDFW$7+EOHd2f27nP}oZ0h1{B8CHvI%$b=cuC&(n>sv&@y-?s51-T~fnlVYn zDPs6p+pleLBWUK?1KK0hpK9lGZUvWcI+F;~YmNZflXp>>Lp(}|9f|YQNL&P&0ZKjC^=u2By2QX?sS*?)D6ZM7+vZp$8g_7jZBUVcU!Aw z;IU&AE1*W&@HTSU?7c$TqS)=5K^t2JT4rZ9^d&GivUMZEmoS-%WR5cPU~}!b&~_^O z(wL(50ah}{nZNt@b!^3Y`M(P){#*Z}JDwz_sgV}g)57Jz^MT}v-F`S64{TO{BUbB) zYk;dq;d0z{6O`C0-U%67GPXVoBE63eu`4{N)_zj2y^d;YeIL=nPU6w*vqR!PSTED` zY0GW^7p`NXfwI``Uxbwa##uH6<`Y2^WVAZ*}i#fSMli4WH=LBy^M3?8rV*{ zMf5JU=dXwn!PA|&+*|{^|7JwkkU07I62)#)pH!D;o=*? z^TIFiVE2D5c*?K=yDoY^0lEkGY$}cpoFwp4Q;SEtF2-X()^(OAuv5(}ig7&&5#vCP z4KG6z^5&)sgyiAPPLCy5SX}YM3Y%#3!@{Yehwe5pkdV(X@5a@WNU`or7jPSQ7v`Ra zl@XJVUUezU{90D7t?hW*W^M1@AhVaABC_{W_A)BnC`&Jwr4Me9>tqMs zn_|+klKBd3*V_IFiK6Ti8{|6O$y!aQt};wJHv`R3lX*)ue6KS35rQY*%fzir{Dz4x zCbkfP-;f!z_EK)v3q;tRivf@g()*b5>?Np3md9-9W8Kn6o)dC!f#gn6v&{P1EQJQ- zj1jY1iOVCvbiZVRdkN&(0H2Gj?GM7*%056H|JA3C5OOEmHz+nCmgnrO4AU5r3Nu*5 zP0BYQYXmp}2Ld)#ioN4Bg~g{+G0tyL{De}B!}MG#mfL)7u-cP@i25_o0@IJ(Y`zNB zWFY%7HfLj(ixL7cj)+A5zR@fpux1}z@?rm2D*~uMfal>SrqS{O!(sMN9uDX6aIk%P z2k0;o%Fz!&Wj*Wx3+Ipo12ez?-B)H9g@~F{SrX>H#}7#6j)&8@sj1?z6M(0SlBrmN ziLxB>a=1)qX+mkdwRL6?Th#=(A^xjW)%0M9xLTbK!@{Go(A7fQGT<@2&IE*3*uro! zn*l0;Sx!?>LCwHqHY;*6i>SW#m#fc=tZpv=zqqu=xMoCFg&Pulc2|V`#pyaC%pEx0 zPkxAs=BhlSi05qJm?t>qb9FBI&$Y7pKc;Uu9FL+7)$oUr)B;Zgxfxt?E|GW~1kfp7 zrwSI`;8d}_I}|$eeu2aNv%`)pJmav>QComkNxD(Yc-oIK4jpfu$@s9jHaYx6n;h|$ zO(vXXlW8B@A_iBPHav2yO(u@9$q_%;h#Jk}x-f-f!^P*Co&*NtgmdDF=D1<9-63&8<)Mh69%-@W83||&Yd{^hEEloBeKld z!-Qkv#tm}|14qW$t-`Z9Y_T{sci2eq)yXPzaVoktKkYYjL`(2nN-3r|H3r=6c2vjg zXciL#lg^lqEhhAkM|kR#E4G+MOxpH2P>{|A@Px~$kJ_FJB?eZ3#}`@99cT{PELFHp zssO)=wOq1`vCZ)$0<6dEX-XE_ngCgad18WDHWWRUso=nt<5W&)@^s2{Rr6AoR2 zCV8k9W}&T|lR#BuEl*e$hwPK%438+ul_nxK1(_B@v&@tyf(F*lsg8-VOQw-?MOaRE zO4$L_2d6u1sKpGW0nxKF(MZ@v<&rXIsFGw$vmGD8+U)oOel}otK6pN&>*q+Dem!Rx z_D`Y8rzu#JMSiivW^Mu@=#hEoCG76`($O#rE25F3ILpAm4mf49*JO#=7rU^$)!wo+R#!a*}_-@_UpF2yBtO)S#in8 zx!tyQrA)Horm>XCHyth}RU1lo>NdP+O2i!_uh5fB{+f0^&=pMHOOVUJrynlw$eoP* z>@YJazmA9ft5L?}Nhiow(6q9hoEt-^BbAW?DghOA#lQLgRq-#$(|l_cV`T4~5G&1F zL|4R^ejGNan4p&r5P3E~7&n%-6L}+Du_n_=cAqTo?a-xCs`JU+ejn+Fl9o= zu!G5N8(P7#$CK5jvEr8mVF$3JUACkP^lHqq-ey^N4Uu;`kY4LU>Ig@lUW2nYOE249 zBxRu8t-Yl5X6Ys6Dyn^BbSb@AdP(^sdDa;)y++4gVu`UMrDTcDm_{j+`8HI>Bny)343+n~jIt{(Vse?S>IF=) zawu!jPR?-)rqL_(9w)I++Ts^7nP!V$!GfM~AYH+30`LcPm~eU^a+3qeGUsy@kz42r zwVXmp6%uff!@^{?EqE!Dxi(bB&EH`|OPR#qN@I#KE{3*Zfqq%gQf{6-3acWM zEL(N1BRr~e9W9r$aFzsPvA34JM%`vIz^S#6YdvM#)+@Z&NuQI^IAt@<$9Q4e!zxvg zq`sEcFKF-nlf8#8V=@80a>fLbn1nlgg36doAxKU%oZ}zt!XzbYIG+n?U$({GpOrEB zrVXuN@-2d-c+P$5Ffti$Z-&d5Odv?s<=j|@k;&5{7&%wuFfv&j!RXi|DYk5btz9XT zuiMaaCfOF$u5>5o*c=ESCVT9wI&Rlp#3UO6qms#?wzi9yWJ6>NoXc|-5G3!=IoEEZVYuz(+@&^(w?LfR z;|OK)DVq^*`#JZtjiOM_9k5Xp%DH!Jp=C^d7{RD}bRqz9_fNYVV&IuT=kF$9KV5lF zbJJvXAzg2yE6>!tS*;-Nlr0c%jkMOU43-b>vKK66`DmG z{TFF7`~_XRX}9?zT^G{k@R#&sc^8u05hRc0-%Rp!`Pn32*LOb2VR=hfKbA}KqSfcU zcQNttR+;tC+xrIEi!mC(d#3p#JT^8V0T29{QI6dhlfuDfasH;JvT{=Ev^-y4Zf1R5 zAl#Z+69`Y5I;k#DSs$+QOFqi<=37}83jPNylR|5n{J+E)TocI=DL3GU<4^E2FL~|- z&I^HY!BAC|zdEZH$A)MDNVq!;hML2bAz!Gj!QWC*4;Xkyp8f(FdO)73$qd%Q;i0Nb zrDBsTQ4lzwRM*H-s{{#M0-E~#&CPh$N0!NhSU`hPcrM3BN0K5Cd63J2sw62-I022C z!}+m_s;Xw0Lj!;Ujlobjgp(PDkAN(z!z)BzH~>nZBv1>^i#0Zd-~d=NRs(S)0E(nx zL4ZL+GE-Kn2*QysGy}N6zu{0_J+aw}fdXJ{0R4c*hpNCUl7=Ux_K3CGOw;P`s=g#_ zwaf$}D}3F1ZEe@ZOd5Rfl3CV*a%*b2RlIGxD|2VC!OC&H^7y38<<|U|3Fh&yFSumc zz1C^f*16@@nrh4A+GY*f;u_?dYz=muX&p3fvhLpW%+3YpUVHwf4_~yvYMN=KWNm*u zW@2iar!8i3>H;Gs)^w%c?z*yl7Jv(^)@m!U+%>8F*I4j4e#}^gpH}~v9Qg78voTqz z2d_c$n3evFm2i`_*tMnQzL>nB54e`O7Ib{Qz4*`1ZN9qgnx$KRbIbhM$E~$9m$_<| zxh}veE;u0*8)NO>^p%zBdf)ohCRb?tvaR9&-oDfN+L&oIhPGQtu4?PDO>ns4Ce!7% zzTXIJZRS_jhZ|kxk~M7o)_mW(Ym@8!o!4AydBMyp&2m@T4K1s!LmORZBGbXPuxRII zv)W2{tZipo3;eYn3~zOvZ*ATLese9e2A0D|7(P%htFYX9&~&{b=-+QDw{G4TlV#rW z_`R!LqnFQerCKMH*I8?Cn!S4d@2!i!nw2Rlg|d*}^|Ji5o`{J#)ja$0t3SYed?-FV zE7KZRZmsyrmHO+ou0;af690*7#l)?Gc2&o>ow4+M>*A1WNa?b+wl?dca@XT+&=wY3 ztG40A^|F->V$V7+>~Dj7OneAFGUaJ^D<9ye6 z1?lE;>y`~Mp}9Fw6OTjn&n@kP(I$_BjVA4PRw#MP0yL^6`b*GZd_ydd`->%7PthV6*wbU6$E~H z_zr8e_>~iv_5jB7ea#g$enT8()X!ytFdWL$KoA}}l$t;Tpo`%vKF62i^MHUV7<4|7 z2i1KmE8q|)ondWks(=%ZaQqXFA&QT1AXrxufFqN5RL|$D%Ek|mtP2N2!%ecf&lm8w zg3U0?)cXUr8DO+(18|`~VKV-O6Pq-T_!`0?f2*$^q(ZYe=d5iEsM?`Yq#yK4GtWQ1 ziyEPiq$g!hsai;(^6)5jP<2(%@Kx7=-i_RiazgdNv?u#so?Z39PfXB>ctX|(XKO_U zl>;eosi;Tq=lQUwJ$a&#+}#)s`J_*!7l~@v}KWw;s4st-4?sdSI|H2XUJY$KstkiezV&zCTjVlpjIie?EPlH~CaOJ=x$MKAXfdhw>L8Zpk zpsW$BkQORaOI^SxrU5V$h70T(@HhM%Vl)|IKtc(+h(gUCjd*5VSRe)&hA0M5VbA%awN{KUgYK``PLE}mOjy39AP?CiqQ;&aaS`3w%_iU3T(5Kh=_zzDD}jLr_U z)HS2C#d&owA{Ri8Z5T!V=0HWg7#oJKp%M16zNW??dZN0bp{{<7x`hJ<5voBkhR|xC zPwt9@CgmouWkaOx&hfB3q-D@S{t!oWka3J z25V3=$f6>^7!m?1S`dX#QZF~lCeWPvwX!wfZw^s|we_f7b5(Po3a-_jyh^+TYl1kK zMM=;Pt1;->TwPg^?56b|_9z^rj+o>N^B1aDU_EG~pkF#1J#aQ7sJoEY=LAkQeyjD{#SB3(B?U zT+l_%g@!MTJItyaT*ky=>H{~*85R8|rXiZpU@hcnw-OeckRNBbs$dAGWHBM(CYt6@ zS_bV68s%j(Wz9`;Um07FlyPa?yrk^5 z`1wgM##pDD{gbi*D@bw!5Ae=Oa?QsdtCYZB70D3?{-EqvDCa6`PLjJTc1}{pm2m}0 z*_Xx_Bu#7UH$Um-{??xO{z=mS19`w>%PT;6)8OwxlJ`AcL0%WiyV8QTFGaoD;);^8 zW7hUh$|y>57qB*k38L;7R975*g}PV90LP_Rw=H&4|D?16q57E#F+1#xXg34uO$5JS zx)49Kx@#16{Ox}^@m`0#AoNmfr_BP5s)4g8DWxFEbxuNqP0t16;3s_s`X1A0{Fs-N z(iT&;m%q10NKeQfYkb+G-|0kACiGvN^w`WF*@Rb|Wv8gZ{c;S3C2FC-k}024j%Hr4=*{3!yZS3m%L zHQ@x?axibr_tax_F{EnBNNx`8ebE8vYL9Z)o^OA|KzY-OmV@{%|UNP53_@NKj%< z0&gDEa5+HZ>^SG*STP>rjAaba72jqGKMsetJV&Nvfydk9f=dSz{}=}7I*jm;hL0kA zgt$6|V+kLq;S&g#dO7?a!WU`$Q$;@B$k6av#LqvdU`hC@Bls0Oy zkFXq?_{6>f;_%xj{QY6+?aOZiqu}l+xCe05pMPt9A&r7Lg!9kB#r^}z&Wa-EJeETX z>1dK8cjE8`nY>Tv{bW_*bkoqsqnE5HQ>IUaop7&bGEgvOO5X)}lcN>n;G+u=BuPM!0u|LIuV^ku zNXikib0i|FppEm-ZBRa*E@e6Q0F4Rp8SuyW69_`maTly7m{306FEYQ} zk4S!1KJN!m&P;`0?js~W`h?{?q{u%>!Nn_;A+PIykoXbDy%Wnh6%~Yp_-y!NoZqg3 zc)o(qC4Rh|tl(>4zQlz51@Omm9z_5W@{fW)#`hDB7u65{Q1Cel|5plLsNg>;c#(o9 z)2$g6&sFg03O-N4mnk^jW3isUQgFQIV*Dn;(Jr@w-=*-Yc0H)z#R~t^3Vx=7|Debp zt>CeAi-C5j^6~w1m=IU(nxx=rTuoDOHLeyZ_yUl{_Fk;u`0Rr5b%diI#whp|3csr7 z9~Aym6#hR&;eSQpPgnTgjl%zhg3nX<2hc4o`bYJ{5CvELkViP$HCB-`N8wlPxQ0f0lx)^5-hJ%D+s()p?^< z!Bsz8OgQ>;oZ^R#3cu=yKP&th3jdQ)_+L=?$1D8*h{AtF;Xh5`|27K0Nsl;C|0MXs zSj03y!6!hT$Ax^Ctep2ID)=zs$9_3W!B19jb$%YJ$XDC-D7f10GzHI8T$|0v7Dg5XMmOosZ6@FFzbOl%C=PP)&B7bfa`5^^Y$IF!pp0CKcL&5PR7W?O*g5yyf#@~;E ze@!_0*`x6HDE#WU!vnvV(Ep|I$MUBrc)o(e<71IfevX2ltMIGx@!fuyP`)~!)I`A> z6+9p6us&-P9Dl~lcpKrU&twJPuJEh++@Rq33jgmFIr!X~ zQSd1W{xsowoIkJdtMXq{@Ck~Xe=4{-&wN0*F28>wREC7O8i!*QJRizf|6Ib+pQsOI zjeG@H^_j2W6BRingzNfLE4Zr9?-V>=k@E)yFIVtg3a-j|mT=ae?RrJQRsG*o@QI52 zcL~?^|3SgeRrsv|kb#8!>O8qc;m?OM)@N@NJTZzK+U6KIjNyG|b|NtX9|GuV+8;0v z@*|G_6BVWt<;CWIpZ4*14}}TY(08216M=HLE<#xfj`HVF9`BVfal3r@wOGP7{us53 zzQV-(i>Yz+Ehffykp34)*v2=LWBeNaYwQR}_3~o#-$imR*6>Ftzfr>GPV#e?8&vYxtMspD#50 z18VnQ8t$XGI)VJh{ethB#xzpHyD2cIYxteypCSz(Kynspc$E}yEZ1;;4&JEYKT!Ov z)o^@Hi0M)duOYjx*6=$?|C==YWV%n|IATBWVb+H={xitWd_<1<*Hgd0pz(JS|35T* z5$SV8!+(}$8J}x7zHbhbN&et==aT$H4gafTH->6>E6JIx;iJi)eD;Lpe?-JPkip!p0H}e~;R|P{YsW{?%~iTdUy#>X*wjJWTkt8s0?tTQqzt@$b^` zv1Hfd8vb9ze^A56l7C**@arl6hK65G`NJB%mi+ULhEE`UCQ~{0Z#LzpX?Pa-vq;0| zke&-Q{3YtIA^2~;C8#(S|CaRMrQzEN|Fed- zkX^eqyoT_-8a|ZfffqEqAK@=)cn;0~{6-G;!)b(ntnuGZemJJ#uTegR>|i-}kpGi3 zd^P!hxQ6rn;i($_EDD5_qv7MJ-7_>ip7cCZ!|$hdmufg101;`WhR-9vHEQ@c!q;i| zcT$XTnT9__IKOy<{gY05?$r1P5I&6bV*WzXKV8G~Xg=iUpUi(d$>Dfp{1D+h?=qfE zau;jzxjz~;d^_32&qZ0z79=2DrtwcFzg?r@2S}g4XgL0-7?}2I_}{7D4{G@9B!|yz zvOYEBw>LEYK_vgMhJQnH_@_ZEr-$$as>k??G#>f+D&qm-q{hJQ}>zN_Jl z6c0aX_|1g7==mh;UrKzb8or(4|6~ofh=06>*HZlCYBVE{>fZ(ppGEv@G@P-HimK z=M{d`lV8dAzQ)hK1UaiE5?pGOeR ze#Y;xF{LXw>fcKFnHs*0@}(Mn59M1l9REibO#JdeY!~GpCj2gq-=g^6r{LIM{Cl+* z6ddKaiT|jE^Y2#qc`~;GPzyu$9jcd%qPTuv4W!<9$)Je9I+xAN1GKK z`M)MPzfo}H|B3i_C^+)-IO6BMY*z-9VY*M@9}IbZZup3TqnwYiBBYl!{2FTaZ3Rbt z_&MR{8jkOP!1T3(W4qe~3eRyB9NRsS+U-ZrZ`uFD2~Q;)v*;T9{TrqXji1-S90f-` zcVJLJnx^2W&x->a&^jFHvxm^CZbxq~ItgoAf+S!BGzH7cWw9~&l3Mz8vZc(^BV<6);FkK zD_IikH;$iCgyZhyy6Nmh~<3oiX`>>FBXamW3D)sMh4d?#KRd7_j7XC1uq2SnV8QHZ!!{I+45~*Cn`5ivZ3XZD$ zUa}kO6&&TyBmZBg;3)cj;=ftJk)L15`+$O@{1EZ)R&bQ#CH#OleHu$JNss&TrOyk#P0{i8nsd_*wp!3Xa(K)bGa> z9QQv-Xapu)Y#{NvR!)A7Q*h+xc|KXeQU2}3KUl$$zZm{7ouc90)NYQ3-$Cnj{GIWA5d`QFC+d98qUwJuTyZ8vxVf`uHnBY z{9eMjAG@IrriT=MA_cxr!BKt&>GQmXUqJXP8h$O|Z)^D5gdf)M47v~eQp4K`Kc?VB z3O#!i9QAyG_+9j)4QvkaSh{Z+Ksfs$4GBo&6dcDXscCo=9J`$N|8q5*$IJN&j^o-5 zf0$|%9OV=U)G)5p@KuCApy9U>{+xoNd`_<_IO@;o9S!HQpA;PRxt}VG#NdO({^=Gu zI18ZRd=|P~!>5ox{Tj~afP;jif04{5{x%KAKErgqhV!_)O~ZM-?9y-^caLf~kE4AW zPSc6;nuafx>KJbm&i>(-^B&XqS$|`wtjKYA4#i;{;VkE8!cWq0zOOz_!}%?~`HFm0 zp_&5sOpTwSWi`~eOB6X6Fn zob7#waGobOQonx?1^-OLTS)$wQSk3I{9JSrq@SYTvBPCK>$8a0*(i9jhCfLAtJEm? za1Fnm^f@^SK32o|cfjML;Mp2}t2D>Rje^hA@Hc5*&5wf5*YHmA|AHv^VhtZn`{boj z@D&>V9mPXM6uef$TXAqes*i#PHT(cQ&s-e^->BhY@&ox>qTn4G{x}XYNL^9zYc-so zdt4s{->Ko{_|IT1n6#O9#&z9;Nk4C|}HN1r4e_s^*ISv1Utz28T{#bH#?f#;JFnonZ!kZK=zqK02V z@thI`Pt$Pzed@?4I88S~A9^$;^kACTBLTw4dWv5icM}5^6N^AEE(Zwu7Gd%mfdbBZi{a~l_fK1LS2?y$iRFUHCWz+2d|;KhRQ7B+lwsZ_vU>#K%W z!uiRi|Er4|YNJazURYQ@5&FCIIewTA!w-i>J_B@pwL%hZ+DGGd6WihY5!x<^|CkqX znx17P_~h@kY=8*lRntVspv?c*`W~o@GIQWhP27G!Yml>i&4)^T)$gXw*nDOr;cP#{ z=TLo&XEmjeqnD^4(7ON61q@~JeFn2P5u?t}dA?pm^|>BjHxt7tG`}#;dUGCwu&@3< z9*`WhS@MegkGCFdKlgtNV7g4KaoYs^ggP|u%3N>Wtx(Wc{d*?K8rQR-BtYlAHcI`X zd|4rz>hVRd|0^iy%l->*jI59L<51A;$LAorOspBo$4~g(kyfZ>jfa6p$FN@29Q-tl zDEwDZsFO-A~Ks0|@Ck+PBD@qbuwDJQVa*e_W}oaT-^o zE7#-eD^y=&GZs;O9p`$Ce?s;3@mEgu@6al+{apV;Ao}v(9pt||h!OpVkEpml`xV9O zZHp>P#i!9k6_9@_{OR>^OzCqU)@-5!R<&B8W{x<6rm`iIDYi$3XuCY*` z^6}>0eQh_l75Zr}?q}vAX&+4W?i_m;?E3F~{k19xY3yFFAL_2LBi?RV-|O82^^u9J z|GV!mJL2sF28esTDMftNdq@!vdygyPOWsq8_=@+8BEIIGP{dj9IUpbzVgIp`CG{8@ z_^Ai1d4e-~&HnD&v#N9BVXwzOe#Bcf3j_Lh|5%5&%0J%abs^XUTF+dZi7l^ojqk7j z-VyI2fW!+OURRB(E1RT;4sQ)5OC`;Jti2B>$9n&<+aP%8Sa{F9Fc?TrX9Dm-^#?$iUB+z1!@hV9Vai z2VVB!8IV`OmR&$v1z7eG(ls)uvOgj1QS?Qm>)mh>Wx_zFNil|GS{37v%tpnONXD<2 zQpt2Hrc5$>6yq{}2od%vX1Z|>n5beZ4GcJ?m@3I+6*JrT9JGumX0Cx#;*etI88KiE zE2hSH39OAO=2GK#z#LV~65~-2JFb`p<4IsXrx>4PPAR5QGLI{!Nit^?(_%D$&NmdZ zT*fw`n3cxs;OBWY6y^16fq|_>h|NG$_QD1K~RVZ2ZkR0clvQwBvHCB%xN%R*npES;=nkUCBa{7D> zuktF;O~c`iwA)el~=70Z?I93|AwR-&6$fGuL51>!nG|M ztGs!#1^cK_*trn;Qfk&IOLx{IxM?Z$bY9@eyuepcK;~@r za@^KxffdHBc*SxnKv;~2Ux9nYd`aGlBo<=P7?uT*!7QlCNdfGo3lTKpuYt7l#PM4$ z3#NoI*aSo7Jn{a%Mc9aCiK;{^hr0+#*W3t4H$Ky@h9?O zc{z#~B-Y~?0s}H0?w{<4#oPkEVCZo@$+iChs9k|~6gU+vMO#J}X2I~llB&;S)4*e1 zm!(Ze@%7k5Bh`i^mVK&%k$N3;)X=mQj#L{iE-VY=x@*IAhviDVTmY?nG7FM;KQv+b zhlIEaMX_KK&nUd~ZKL<{`uxZYKof}PjZGRRS3Bf0-wrvzT?`|TQ@UD|V;|I1TrJ(f zWit`R!)IZgsSd6#?4VpJC?6Cl8aHwN2NAPir+Sy81(hMNiuU@lk1J;*!l)d-dCS**VK? z^ujz{{f0vrvy3I~>I$cOfqRxQyS!>1Y^8IB)4itR+KNutb)8;OQL!G{;dVtN%3Z=@g5LmgY4X3-J0(A{wr_HbowSx5Yc}BjiBHspU$1pmpQDa6O*l7e=H#L`b zR-@`n3<*6{acn}&ss?N=%*fd*lpB!UP>Vn{0T7x3F2OlBXO6M77M;v3mBG#f7cSLJ zbWyWfqP0F_L#^um(pt>O#+nB=NwxWm-PueR|*G~~0}n^O;~$S8sEp;W zZ2mdRd=HaB%ls}T*&v$lDPn$C-ms!3o8Q6aFIpb=G3l{9?qHHbM~^#B>gLZ8@Fvxe z941RF^E;U=CCDj;_MBv9h6U#KoMgsLph_ci^_IzACL0O_rwZ?FE4&^i%Pm_sGs(^! zBG<|^yH*KjuFg{KVbUH*&y;y$?}pgHj%7S(>`Ii>d%j9W-)W|S5kr!n0y9I*8Sk)n-*tsEkn0$nq46%zzcJ36p zbAlQ6t%ioVZ(7*lEU;{uJZM3^OyV;SEGi?4&R?sDtfSfx z-Arz@pq)$xEU23(tHMKvTApxMvlU*THb|1!fv`jT%z*95_z-SV1{7#Oeu@WdqA{0A z%O`CEp-|&U>#D%26%FxNA~(`7kjOQzZj2>D@m$zca>PuQ>yKqK1tJB^Wckd2Lh;6g znT^4ppyzz>zz>4XWW!-I;)`MqvIkOT21xidl8vU#V7MU@4W`X-gRLQ@T5JeBLX0Jq z78nbr2b8h3{kd2?+Yn2v$FxC<6oRum#1$~p>3A%YRa*4?F^b`2V}mB3rAi}_ZOFm% zzl4&DVO=IfE&-}xpuyOHnN6nP`D8MUY8bdO08J`T><`$bu$59UlQGli9HYsGp#zGB z^9pU$aO$Zu>VA9VA^f;$Et~5^G zTYtBj+r zZ#zn1`UC>WNFH%VUA=mS;<^hMAD|o`ut=VTvLvfN+6zu$HjpFj>o}d0_E8U znkFyM%e0U#0?}Y19G9Jp#NuWmna_ur2ulVnf*YuUaqRJ`KrkFmH?LBr(W(V5ZxMk= zJUEa6NY2ApB4FhM@(ei(NVB0_8YWLXH<%EZ!RA$%We^xn$FimziAhhn1Ic)pb8OWh zDp!n5IoN<4ns#0s=F8&dR*QD(#19o3_FawhMdweg`H~-4tR)Gq3cuQy3=0GZ*!?^axFyn!6 zFdG!%-~pIxQ5Z2;wh5RyFzax}sVDw{fC+OfmP~+Ee2Gx_vHLIY(ic41<5!dz!~EsMt;D8M}ul5K-~N<{By( zbv39s?xB8~*c>(+z&X@?!{(lz8v|QcE#@0cpe zQhu0W5X^KU7*~sMD3hRZ38a!4`yR-ibJ+;2-y~)Or?(nl91XQw1tP&%JU`NM;mGAL zS88A=8|;VGLrXtsPT~V0QQ9}ywZW4X1_9yTMbTH@EJINa;P75f@TK6C`zP4@xfdiiDW92$YN{%AY8#wd^iO}WDv!G z1!9GwMv~ajKNwSNW&k4t76SpntTYfDLKLnP-U^>ZV0YpNl{b)2XUSnSj?tyV=|mXn zNb{-?R+)hePH@?hF=6k7SksYE6mt*^qm#%;CJogHE(We)ngR*dA%d07E!cgFF;Uv$ zLTJ(AQX~m?f{2*~FIkK>6pz5#jVhzk4~8ZQOr@nA{+ONX#}KWyA%FmNz*(Ccq6HB-3C3?}o4qKN2imp@2QQfFgk85L~{wX zr3Y;LklK5#1mF!=F}yW0>@X6#pF*-fjh^F!j;SIcUeiFPWAQ&d>7r zH6ilF?5~*uZ<_+|oC2ra8h(ElIcxe>wyehOebONm8d~u#P_$vS@O8B};iVZbEqtg{ zC+DqQ+c&j!1-5V5vU77!pr>sU9QFC$P`Go`N!xzp)NTWX^1T1se-YyMLh9E+p{%?o z6hd^P;6u3mLnFeV68W<;-PZUg&ZHBp8ed+?xP!sF0CC}>DwnBdxwGM$D#n*hfp-v& z&jfHcSwVca4aZf@c6Qrv+`AaRnQ)8;*8=0F4PR)(6I0+PY`DiJ|7F5C&P$2^TN`eV z^Q;ZG$N3$?^*GfgvjcW=Ex+h5T zypB+QrbN`mM>N~PvB7e!sx12{GS;c#n+WH1$96VR|9Rap{wnF;qS?8c`pfH%bNpW>{5ehj$4&+O zM8mHl{+~6R{k@^#&r_TqX!!34=QmCq&qI_4-X9qMG~v8IFus)HIs# zJUpY}yNUmyhLaibl7`n1|B8n52NG}SI2rn*hMyq5jQY)aj!>M{8vX~eLWM@8>LEM*TXf$)6$l`!)P_!oR5D z9Td-3HGB=t2cD1Ymw$r&K$Aa9_FvL){G1BQZ!~-<;cscUkMNH){7UAj-yF|6lAovH zZsNTfzK!HtG<-Ml>ooip>ens}{}b8i*YN9AcSS2X;49P#E;cpWEk%k{8c?ZSC`EMjSw}#(D{Co``P~nSa4c|lf zS`A-Iez$7)Uz7X|8s0;B-lyS@k)06@e~029)$qR~`(M^@9;dHq_{Yi4goZyvc7CMc zS&~1m;a{gX-_r2c2>(dK>jxy3gZlLa8$Lsc%Il*x9MAJS&!4d2D9;~1oYnAW$kwwq z9PK<$`G1*kj+4*l?`ZNI|3yuHgz`3z?6IBC5MFP?QI%M6jSWXpK7a1e@SjrNVj9ll z@_>dfBfoqe=Xll;{(Vh;GvP04IDZ-PN5XmD${%PDZyk*ro zHXQTzk2GFB8;<$m_0?*_QJ&8+>uk6^pIZs%e0o3!OScV2m-kB)KI_-;(}drt;ol|v z(>C0m&yzOXp3kRkIOfhnc78@U=ks%v_wzP+jI)pA-_+zepC8z8%+IfBUj0e46C*ow zX;69oqzU(F_-%xD5YBP(bCc^ec@h_(|N?<4$88*U%p3pU(7zBB115zjY{6Thm)f@&D!^EAH8r@-ZB zx;FXk*f}U0GVcAQ{cxmd@tF*ZwmZD4Zno)^A}U#JU1}UBqAf?`N->w!W1tf07b_= z5>;mt8ghxO)$l&z`F94&;@=^{k5J9{IpQZYoX-!!mpL#9-?2cQO{+S}RN9OOeefk( zR`}#+NxuF}M)=Z6WKg`>*ILNJdl1zMHR^`V{@eh3?G{Ob1xW|{`|)Es;_yAWT@pS? zNDP?hBd?9$AFw?56uwY$aL|MgWqb+vmcR#}$H2D)_^+guk{Jy|;KK%!y8HjGJYWIG zipQA^ZX|-wC5-d9Gmq~ca0zT=fa>orC4%M`J~u%>G(F|}bd&dAe1Ql={6DnFE?J{ z_lnjrT^7I9)-lve&vUfw9j-mK_^q{WEri-L5dnaJU`aiK=DY8DA!*?Be z|M9tjZWA@Hn2T2-cKn(C-w!gy{J%y1InU@HQ>yzv4H)|8IDwR9m=x7N{AV;DE64m4 zG!@eyty4NQ4J-q!$Mv^J-x46=3DVbb)?*ysBOs=wNt_}5_gRo??mxpn1fp2}TpN_c z2nk~Ta4NGt=e3w`RC#ZA6yKB}#>wxTVXUKQ?Id#`oo%ueR^yZ5`> z=A5Ppx5ftwC%qaabHyjr}=oV~-Ty30>!Qcz<+sZYx9qq2##}e**1* zG=t<8z$nbyT%0Ez);-f$jN>7i6OF|V_g*!U9quYMwDHOAoloOnUv_!j=DN%4uBh`I zk@Y%n=`3~4+J!YmT`SCq-Jix*xf8FrcfTC-!z^(pPW%+-*prvQM%Hle9*LcMbTqF? zz$T|9QS?l$Y#6llc}GW2tA(&mb63M=O(V8;#62_#y+5%DHZ;EOp{0nFKRSHr_=m0W z!TeQ|_t$la7a-Qe33uXi_uz+)y&Lm(zkF?V#mJKw3il`R@w}H3&keZ^<0-fAW!Iyv z`304&nWAn_LB`(odG1pqi=Nx@Tle0p9gT?(=DoOkq;aU%)#z$IuEO#~^Xdlwcw8O- z*lobbs)^!;Bh9|oni79&9$Hcj2c&)D`O&;*8e}FK6UPsa&N}?Tj5_0I;KEfm?`KWB zKXvVU9TM3z?*yJZ?xASGSA1VWk{SwHj4$g3PdZ%J{{oJ?_cp;4Xea<5?!B#}c8BxD?Kuj0+bXj{MCv zs}_7+?RXp`;>cZ(HWW1M$yfr-8LnMRp*h#1>!;KWH5u-2VOD_KT)XBdemZcQ$?dLP zlN3J#xZUI#u3aZE<&Ul}1fF5?OxLd8DLxf=rpdEhyN)V84S1Hxvt7FmDn1=}w#gl? zUAHMd1GvNF6I{ElQG6!w2_~Ny3qUMq0-I>EoLC#MS-^5kmK&=BRs<~9WRqegz-9xR zWHMKLDzLNa29G+MeMd1#$@Aqg%x&Ymkjw$%dU(E1Kv?N?V*|Jf#WvHD)?Tjph(xGjRGL!WcId>5p z%*@CPgkoefuNH{SVX?VjrRm_NU8XpMVwNM@@d(P3Dxzpih9q;u2#pS3}D(7a6h{xyhP)ZA#l&i}t1H*>7MTY?M}&AQ_p%QT-A} z=BU94RAi0?C}%)Z55VDEw3(DQ;Z=;wiAED%Pl|7xZqnbJ1EO$^zy@I+w(1hD=V6CO zq@FEYuYq2}x?SZcZ^A390m+U|c=JD@K}aqdorcncKj1+nzK7yuq!Z7w^?{u2cn}nM zFsC>vR$>?ZfVq``wpgCC%Q%^?S3 zGKgZ*F$0gv1i#@tF$70sx166MCi!y=K@Gk03zYMe&6g+_D)}VJMM^$}^4xsbzz7(q zlqMf=*ldIoeu}WSz)n`kn~o&g@fjS;c0?fqE?f(6UEq@q^;=n=B~Axb z7<+JwWwzQ0c!ETmZ3*uVRO>OvjB8W_5;C`%qO!`uT`b2UwknhFB`qP8@(s$C&|P zT*(%~G+9lN{1i>D6vhtI#O!|`ba@te5<5Y84{WCy>ulFrl5`XBBCF9fqtzBIm}ab% z+jT}QrQ2xbT%a}H&tNeQOofYuN=K`_CID1w8y>-;)D5hvPG7>_&O(ziFr5H1RTVSn z??7;kO>ZPewVcJwf zfUY0I1_PFJb+WL}0$I(axzqtsV9upQ(2PpJT<$Tc?~w7CzF5C7&O<{iXXC~=e>tf3 z{l^ECTA|cK+m%{LM@g;1g><5szTx6%pidap8dX*2ua=GvU9Hp_Qm;{JBVMQN`(LDH zo0R(YfH|lB18SSY^Ak`SU}b_d+M=*+we`Vvtx=n5(v@QJ)oPquj-sT^&%w>tQf!o) z@}$WtVDc21T#GGPhi$D@S!df}i4g1k7uCDwe^Ku(s5cqbS=F;-9N6P>lVgwJTuRBu z`jn$%@_~KbW;Li(d~v2l2MNNN1Vl%wM|{tv4OOfbFiKSSfW z@Td3u1hDgoZ^KO5_rE=mTx;b`a<*d-RwcQX$z%;Bwm^nmnFsX%(GY+rx|mc`8jsy zbmwWtUCubQTI8V+I%@9_`>B8>3FlTWNDw%W`mV_)9Si-dicX-H=4|Yr7 zf;1uDusd^du!;eE;v}>FLa@&P)uG&>n!7+YGU*H>S;LvE0qHi3=6v*%HybR=pvr00 zro-h^vBAj%GMn=i$R`H?u#E!l0bHhML&8rlHI`3ReL8n4cD%Om_WG&V#u=HWYa1k^ zFmXNHb{Z9MWGaY|uG{LTqBiYoaKKi$zaAEj>B(@g&Wxlg#LOJ1GdUYwp9!4$jb^iy zzY5v4B39s9WR0ykKP9@e&~xNREsU{L7h`7Fcl%E>L%RTr+`c$&P@S1 zAsFzvNd#FM0V6Cg(B2SjEWT!<^(?+=qBa(PODIFYP0288{BQ~Gl>g**gsv)6?23U2 zi(5?h>sh=q#XW0}B@L5~mBjAx=Tj_(Xl3yZv&9W8vLlSXby(F%ZrRuGOkZnR^qCQC zW|4zKUu%b1;}#6DIq6tQ?4IK@#5xvlG()|dMRtVl*Nq8vK2=z2R=k46%_dr_M{qSA z;(H!LTroE8E7H~C$g;#W;#x6dnDymmZZ2nW1tGh*CNj**Wu~2nMGhnzJBdEWhI6?d z4(IHj<|wUUktY^pR@&rn-O)MT}d8Wyh46|HevZcc; z^B~#8vN4mbh%&vz%y=7%_#*%onC>iYBcxUc*7lo*Z7hB>#gMf_NkbNYm}00JOl~>4 zIzV3FfdD*$U>GYwl=7aCY#KzryQiek0r*R)rv1bWKRrY2v4LKHw6q&D5sh`g zZ@(pR*n|`bhP%4pH|lOQO!;|QAzx&mHx^bhRPOM1f(%!qSfIxb5-er`bOZ}iJQM%} zkm0$%%O4B(#yq}o1dX6wGKWJw-dMLXf{X;vGlhjB9EWat{E0! z|Nh58+lu_ZJ7(WtpU`RVzy9V;p-nemYO5)189ey@Wt%Qu8rit%9{6qDu*WXJo#S=; zB-?q0+5xwbV%{>GO5%g(grz;yF?!kwL-nD8{O_P{HN4o`0^B0RosZy+Q* z@WP)HQy-~l2 z_@l9)KO}?h%P2z}d4~P7gnzDkb z3lT%yo;B;5T3a`HR!B@q+Q5P-hSUL>ii8KSeW+Mf2|mVK6L3~`;7cGm=VgZEt0NqR9&co;KcY@TIA1Jz zPC4^rq#k(XBp~;_kp2#M;{>N6B76&luC_%2F~6K09o~UppsO2t1ZPeNMi^!W&I&m_ zic(s^icxQ$UkyEU2VQzLghL^}FBS-gnj1xIyQc@%u9!c%4SEY*mFHL>LHYvJTnr33vGM)tJW@i>UOb_JdQVQ`sBY4VstGf(ZHhV~wh#4dFP>J?N`97!skiMl7kPE)uUE1Pp3Bkos%OB zCqY-NJ2@rf>BFe$tzd26*W{;6fG#7Us_&N0Ij9m zfe6d6+E%JvmE1-BYVWW1g6`|Ds6p)Q?u1=WxUU`Sz)&FUMvGowuqPfwA>8W=#qel* z4{V{K;I>{6I(yIzR1m6_)E~wJ?L7gdM!PUFP%#iNj7bOHKBTav@TyBq0lO32u37{8 zNQ@fn4q|kXj!38j_MH_qKHNpSqPR-RBT+xBi4bd~)7OnT@OEG$o&C`W?E3Mv;yq** zMDPv~%&(}#?wg7qtxe5`9!;&6EPEsVPJawqiD9(9U}rE6C$n@a+riMJfT=WVcU)!F z+A&1)SRZED)B?$f*-RX@&wma7}H^5d-_mbX7I0j2vI8uTucBo684J~|?OIZ@>LS zXAfO{7UJn57gk)OfWu`%p6Y(ff-JAr@{-DHB`>zPPT^%%u0Bw^*V|E{cCdt^R;6~; zYB%3pu6X%WYn$-IL-DA;qY|$lG8$UDJiRbKES1#iiWiqIZ;$Z75*qfwO+z29rT&mS zidTHKDE7mW$&y+R@IJzF!GRz5aV5peV7!+u9B`KbuMwao-fy5Z{-qFac~h2txE;kB z@!k$^j4vGh&}+*grmkx;k8tM!3mry>7d^4Eq2a=!xoz!mX^5+Js-!9|wTf#i7M7M* z&r=ld0p)v4*c;o|38O#Hn4X*MxCL%-TY$+IWN3r;i}lXDn{D;Z!hQB8XVFkby>sqO znT^i!8?x%03kS1TIuB*p|7uKhF06Bw*E#3bJBz>;>eM?Ob?{TBz~_q~{9%zVso>a6 zwmN6w4fZ-`(O`yc^+ac3UDDnSb_b-j5b_ORvVHJP?XNW3zsOl@-)$SW`IR~FyQ2CW z4ED3p=L%=upl!_&XX>L49x)4~0B+eoK4k)nV8fNywN!hMmPmjZKq{bHe*iUVwkzIYRF{XkY-gA#v z?CRC^m_v49?TtEop4^SiPZ@Ff!rI~q-vGkT{FXN#>fj=|8=Ft{D3mGYDl>Dd9?mm` zYRAMG#uVnjccDs!*5N)zmtaFn}$D>hCi8x{|Y$v zw}_r0`GxblY3z@s;h&M85%R-t`SC-*@$zzOKcydc}(MO|72Ry84zT zk6ilYCvTQ(0E+6io1e#!sHZ=a_!6itQS^{8=C(HFBBLHe=(3l3vz=;37di9FIriy* zTV+eSvg>Ztb79h0>GGLb4Ued$J+7G3;O~o5s`ObneyPBGPa4ki68+$HjP3cCUz~Qh zhA_VmWGu)h!yofQ2%(@K{K$j(j}SsZdtAMkA4Uj8_w&5MWBj~g;b(%(ex|{E#DeWw z`+Hs*zR1F@{jIZbtN$A<-0J`KH2nJ(ZuO790Aj&7XTcxG|AvJZS$G~M1`68GhCjBi zxA3zqd^>U6;pLj`Z?JH@hhaWs;ZrR9>%_6$VhjJa#op@wUJJMSf55`=;}UN7p)~&I z(JcYCdyd7v!NT!nI{VpV;d3qgOAEK!|B}`>^pDp}_Vc=hpKsxOC4|onQtkqBLC1m| zUa5+HbO?p7v&;t#^Bpu^ztH@6DbCk59;W`jtMPJ*b5!H?#O>sd+g(IleX5HTQz<= z_4j)k@1}Sj*Z4nZ9G}+sLGu4Ajo+`r6K`s~g8aX)@hZ}fYn;dTOO5B!JhxH%oQI1j zPN&9uNuQ?iGRpHg8YefRQsbXdzm{qIQOf5<8vl|UZP54}>QB4I&mujn@eXSDs~WGN z_!Anxg8Y9|fJdZeU&r|$|H2XJ6|B1%=y7-*NKcYBa*Erv2yr=O9#s9I!>xuJq zlH)v!=1&gond7w|3tz{W4^tlIX!iI|J+M@2{9Ve!a*ZD&-lFm2#5ZaDGvb{ZKS?~Q z@q-lSbsC>RFsOa4bSegVbvrN%!bKm4%@ z=YJvDO`-cV=B+9mF^qBK!cgHM#@V@jlisvKZY|n9K(G4!=ljF&=aEymP z%b#N5=-*A_GRwlz{w4UsQf%R9&!1M5S~%Lz#K53bSvcBnp!v4c!qNV#WM6OLXupNV zvBkpC{^w-B*22-A*Ne>>zY30F>9lb4bCUdQwQ%(F2E`e-aI~+c{BI|Y)e-%H`0bkg z5#ry~>EkLL;BFU}y&{VJmPt2BGQ zFI{Tkn4kI7uX+o|eDeKgi-n{8D`dac!qMIhe^@TFaJ0XQ=KU56NBeis7|N9vj`q3K z|FDIl{R?OeWq>&Lm!_KJ*IPKIfWM>~);NEc^@xRIh;yYEAr4zOg(8pq+QO~v{@%i| zUH-W1BMV3W{QK+|7H;+LBBy%4<`d^}A4LNwi!Jsv^aYyEgbV)MvZ$d9P=C` zXZ(DC?V|lYvfpm8NB&ph{M^QIK1luCXR$~B2jCCOcQt;u!r}pqze@dmj5w+^rDTm? zY8>C4V0lCHlS}8ry75l#_PY*aD#p@<$1e`uH%_$IA5F4o=$x^ z0{pIv&legN@g((6=S5_I;ZcZ^^lF^%Tkh2O2vzz}=X?<;jSlp{cT=Ji-p#0eH%k$J z&|4bA4?9ZXvjndwZI4DpX(Wsanpc#=4~_|sC%dgBLH}Nw$CvH!T?uh5bl%|a2-pstcIJESbBL3fss!8F zdO&o9rjcoP0Z8cc|60ES>Y~p|__G#nf3X#U%!?h}wW zh%X(X%+xxj+v0mrongJ_@Ff+L8oK@{ZLIALaA3Up{IO3tSERjeyA$|${ok@uRp9#A ze@vy`|2u%`KCxyw{SdtKU-bVrupO`cTc~}`Gq#WS6MFmi0mJq=P7q~z2w#punPy#_ zLFZU`{}3^~{`2QzZS@XLNovdWc>e@omaTRtsJ@k^761SM literal 0 HcmV?d00001 diff --git a/build/lib/CMakeFiles/airplay.dir/netutils.c.o b/build/lib/CMakeFiles/airplay.dir/netutils.c.o new file mode 100644 index 0000000000000000000000000000000000000000..5bf0bd9ba93babb271c177db8282b5d24271be9a GIT binary patch literal 20088 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 literal 0 HcmV?d00001 diff --git a/build/lib/CMakeFiles/airplay.dir/pairing.c.o b/build/lib/CMakeFiles/airplay.dir/pairing.c.o new file mode 100644 index 0000000000000000000000000000000000000000..1b14ce8535f1e074e4827149278ca2c5eec60cda GIT binary patch literal 27016 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%0AF{-0Mr=wm2(-m3H&_|<2;YKjAx^A z;4i=ckiVh0TO7~ZFmMqX!HN7k7sAlCV#ID zqDWt$_NOvHIs4Ck1OU&b|83HrtLd{I=PO7b*GWdAh8mbimHrHpVXT9)MiGn#dX9RT z_CZ$Dxu1cGY~wd?DQVyUL&EVxm$?5tel39MHUToK=paCq)-j!n->>T!>i1E*6X`ht zF-$tQ8?dbYHz33DU{C&v8@R>1#COaeYB+`pkcs^tCYA`lq-dQsDlx z{)-@Fi{GgR$>7gB9DjUY&H5ZyG_SXfnuqYP6QpP8a}fD{_|x@qnd^HWK*nY~oCIl+ ZR;hJI+@oj|p*Ox!WX5Tk*;ifve*k0|F%tj) literal 0 HcmV?d00001 diff --git a/build/lib/CMakeFiles/airplay.dir/progress.make b/build/lib/CMakeFiles/airplay.dir/progress.make new file mode 100644 index 0000000..ad29967 --- /dev/null +++ b/build/lib/CMakeFiles/airplay.dir/progress.make @@ -0,0 +1,20 @@ +CMAKE_PROGRESS_1 = 3 +CMAKE_PROGRESS_2 = 4 +CMAKE_PROGRESS_3 = 5 +CMAKE_PROGRESS_4 = 6 +CMAKE_PROGRESS_5 = 7 +CMAKE_PROGRESS_6 = 8 +CMAKE_PROGRESS_7 = 9 +CMAKE_PROGRESS_8 = 10 +CMAKE_PROGRESS_9 = 11 +CMAKE_PROGRESS_10 = 12 +CMAKE_PROGRESS_11 = 13 +CMAKE_PROGRESS_12 = 14 +CMAKE_PROGRESS_13 = 15 +CMAKE_PROGRESS_14 = 16 +CMAKE_PROGRESS_15 = 17 +CMAKE_PROGRESS_16 = 18 +CMAKE_PROGRESS_17 = 19 +CMAKE_PROGRESS_18 = 20 +CMAKE_PROGRESS_19 = 21 + diff --git a/build/lib/CMakeFiles/airplay.dir/raop.c.o b/build/lib/CMakeFiles/airplay.dir/raop.c.o new file mode 100644 index 0000000000000000000000000000000000000000..f9c12b61912fec527d03186192ce7f0a16b99695 GIT binary patch literal 114480 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 literal 0 HcmV?d00001 diff --git a/build/lib/CMakeFiles/airplay.dir/raop_buffer.c.o b/build/lib/CMakeFiles/airplay.dir/raop_buffer.c.o new file mode 100644 index 0000000000000000000000000000000000000000..6ffd3ae2cfd921382dad81f90204f2a42d7e382c GIT binary patch literal 31568 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 JWF7VP{{=1m3a0=7 literal 0 HcmV?d00001 diff --git a/build/lib/CMakeFiles/airplay.dir/raop_ntp.c.o b/build/lib/CMakeFiles/airplay.dir/raop_ntp.c.o new file mode 100644 index 0000000000000000000000000000000000000000..53ba58c6f39bfc32d542332983a2cdc26d7758f2 GIT binary patch literal 40928 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 oKQlij8!Czni?0_ai{Eb~V=a9Rnc;A<7t| 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 literal 0 HcmV?d00001 diff --git a/build/lib/CMakeFiles/airplay.dir/utils.c.o b/build/lib/CMakeFiles/airplay.dir/utils.c.o new file mode 100644 index 0000000000000000000000000000000000000000..6541a3088b02aecf0b9e066b1d16da50e3ba1bd6 GIT binary patch literal 17856 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 literal 0 HcmV?d00001 diff --git a/build/lib/CMakeFiles/progress.marks b/build/lib/CMakeFiles/progress.marks new file mode 100644 index 0000000..82cced2 --- /dev/null +++ b/build/lib/CMakeFiles/progress.marks @@ -0,0 +1 @@ +51 diff --git a/build/lib/Makefile b/build/lib/Makefile new file mode 100644 index 0000000..3953827 --- /dev/null +++ b/build/lib/Makefile @@ -0,0 +1,740 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/julian/UxPlay + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/julian/UxPlay/build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." + /usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components + +.PHONY : list_install_components/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# The main all target +all: cmake_check_build_system + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles /home/julian/UxPlay/build/lib/CMakeFiles/progress.marks + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +lib/CMakeFiles/airplay.dir/rule: + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/CMakeFiles/airplay.dir/rule +.PHONY : lib/CMakeFiles/airplay.dir/rule + +# Convenience name for target. +airplay: lib/CMakeFiles/airplay.dir/rule + +.PHONY : airplay + +# fast build rule for target. +airplay/fast: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/build +.PHONY : airplay/fast + +byteutils.o: byteutils.c.o + +.PHONY : byteutils.o + +# target to build an object file +byteutils.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/byteutils.c.o +.PHONY : byteutils.c.o + +byteutils.i: byteutils.c.i + +.PHONY : byteutils.i + +# target to preprocess a source file +byteutils.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/byteutils.c.i +.PHONY : byteutils.c.i + +byteutils.s: byteutils.c.s + +.PHONY : byteutils.s + +# target to generate assembly for a file +byteutils.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/byteutils.c.s +.PHONY : byteutils.c.s + +crypto.o: crypto.c.o + +.PHONY : crypto.o + +# target to build an object file +crypto.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/crypto.c.o +.PHONY : crypto.c.o + +crypto.i: crypto.c.i + +.PHONY : crypto.i + +# target to preprocess a source file +crypto.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/crypto.c.i +.PHONY : crypto.c.i + +crypto.s: crypto.c.s + +.PHONY : crypto.s + +# target to generate assembly for a file +crypto.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/crypto.c.s +.PHONY : crypto.c.s + +dnssd.o: dnssd.c.o + +.PHONY : dnssd.o + +# target to build an object file +dnssd.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/dnssd.c.o +.PHONY : dnssd.c.o + +dnssd.i: dnssd.c.i + +.PHONY : dnssd.i + +# target to preprocess a source file +dnssd.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/dnssd.c.i +.PHONY : dnssd.c.i + +dnssd.s: dnssd.c.s + +.PHONY : dnssd.s + +# target to generate assembly for a file +dnssd.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/dnssd.c.s +.PHONY : dnssd.c.s + +fairplay_playfair.o: fairplay_playfair.c.o + +.PHONY : fairplay_playfair.o + +# target to build an object file +fairplay_playfair.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/fairplay_playfair.c.o +.PHONY : fairplay_playfair.c.o + +fairplay_playfair.i: fairplay_playfair.c.i + +.PHONY : fairplay_playfair.i + +# target to preprocess a source file +fairplay_playfair.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/fairplay_playfair.c.i +.PHONY : fairplay_playfair.c.i + +fairplay_playfair.s: fairplay_playfair.c.s + +.PHONY : fairplay_playfair.s + +# target to generate assembly for a file +fairplay_playfair.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/fairplay_playfair.c.s +.PHONY : fairplay_playfair.c.s + +http_parser.o: http_parser.c.o + +.PHONY : http_parser.o + +# target to build an object file +http_parser.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/http_parser.c.o +.PHONY : http_parser.c.o + +http_parser.i: http_parser.c.i + +.PHONY : http_parser.i + +# target to preprocess a source file +http_parser.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/http_parser.c.i +.PHONY : http_parser.c.i + +http_parser.s: http_parser.c.s + +.PHONY : http_parser.s + +# target to generate assembly for a file +http_parser.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/http_parser.c.s +.PHONY : http_parser.c.s + +http_request.o: http_request.c.o + +.PHONY : http_request.o + +# target to build an object file +http_request.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/http_request.c.o +.PHONY : http_request.c.o + +http_request.i: http_request.c.i + +.PHONY : http_request.i + +# target to preprocess a source file +http_request.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/http_request.c.i +.PHONY : http_request.c.i + +http_request.s: http_request.c.s + +.PHONY : http_request.s + +# target to generate assembly for a file +http_request.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/http_request.c.s +.PHONY : http_request.c.s + +http_response.o: http_response.c.o + +.PHONY : http_response.o + +# target to build an object file +http_response.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/http_response.c.o +.PHONY : http_response.c.o + +http_response.i: http_response.c.i + +.PHONY : http_response.i + +# target to preprocess a source file +http_response.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/http_response.c.i +.PHONY : http_response.c.i + +http_response.s: http_response.c.s + +.PHONY : http_response.s + +# target to generate assembly for a file +http_response.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/http_response.c.s +.PHONY : http_response.c.s + +httpd.o: httpd.c.o + +.PHONY : httpd.o + +# target to build an object file +httpd.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/httpd.c.o +.PHONY : httpd.c.o + +httpd.i: httpd.c.i + +.PHONY : httpd.i + +# target to preprocess a source file +httpd.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/httpd.c.i +.PHONY : httpd.c.i + +httpd.s: httpd.c.s + +.PHONY : httpd.s + +# target to generate assembly for a file +httpd.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/httpd.c.s +.PHONY : httpd.c.s + +logger.o: logger.c.o + +.PHONY : logger.o + +# target to build an object file +logger.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/logger.c.o +.PHONY : logger.c.o + +logger.i: logger.c.i + +.PHONY : logger.i + +# target to preprocess a source file +logger.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/logger.c.i +.PHONY : logger.c.i + +logger.s: logger.c.s + +.PHONY : logger.s + +# target to generate assembly for a file +logger.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/logger.c.s +.PHONY : logger.c.s + +mirror_buffer.o: mirror_buffer.c.o + +.PHONY : mirror_buffer.o + +# target to build an object file +mirror_buffer.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/mirror_buffer.c.o +.PHONY : mirror_buffer.c.o + +mirror_buffer.i: mirror_buffer.c.i + +.PHONY : mirror_buffer.i + +# target to preprocess a source file +mirror_buffer.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/mirror_buffer.c.i +.PHONY : mirror_buffer.c.i + +mirror_buffer.s: mirror_buffer.c.s + +.PHONY : mirror_buffer.s + +# target to generate assembly for a file +mirror_buffer.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/mirror_buffer.c.s +.PHONY : mirror_buffer.c.s + +netutils.o: netutils.c.o + +.PHONY : netutils.o + +# target to build an object file +netutils.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/netutils.c.o +.PHONY : netutils.c.o + +netutils.i: netutils.c.i + +.PHONY : netutils.i + +# target to preprocess a source file +netutils.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/netutils.c.i +.PHONY : netutils.c.i + +netutils.s: netutils.c.s + +.PHONY : netutils.s + +# target to generate assembly for a file +netutils.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/netutils.c.s +.PHONY : netutils.c.s + +pairing.o: pairing.c.o + +.PHONY : pairing.o + +# target to build an object file +pairing.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/pairing.c.o +.PHONY : pairing.c.o + +pairing.i: pairing.c.i + +.PHONY : pairing.i + +# target to preprocess a source file +pairing.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/pairing.c.i +.PHONY : pairing.c.i + +pairing.s: pairing.c.s + +.PHONY : pairing.s + +# target to generate assembly for a file +pairing.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/pairing.c.s +.PHONY : pairing.c.s + +raop.o: raop.c.o + +.PHONY : raop.o + +# target to build an object file +raop.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop.c.o +.PHONY : raop.c.o + +raop.i: raop.c.i + +.PHONY : raop.i + +# target to preprocess a source file +raop.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop.c.i +.PHONY : raop.c.i + +raop.s: raop.c.s + +.PHONY : raop.s + +# target to generate assembly for a file +raop.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop.c.s +.PHONY : raop.c.s + +raop_buffer.o: raop_buffer.c.o + +.PHONY : raop_buffer.o + +# target to build an object file +raop_buffer.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_buffer.c.o +.PHONY : raop_buffer.c.o + +raop_buffer.i: raop_buffer.c.i + +.PHONY : raop_buffer.i + +# target to preprocess a source file +raop_buffer.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_buffer.c.i +.PHONY : raop_buffer.c.i + +raop_buffer.s: raop_buffer.c.s + +.PHONY : raop_buffer.s + +# target to generate assembly for a file +raop_buffer.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_buffer.c.s +.PHONY : raop_buffer.c.s + +raop_ntp.o: raop_ntp.c.o + +.PHONY : raop_ntp.o + +# target to build an object file +raop_ntp.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_ntp.c.o +.PHONY : raop_ntp.c.o + +raop_ntp.i: raop_ntp.c.i + +.PHONY : raop_ntp.i + +# target to preprocess a source file +raop_ntp.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_ntp.c.i +.PHONY : raop_ntp.c.i + +raop_ntp.s: raop_ntp.c.s + +.PHONY : raop_ntp.s + +# target to generate assembly for a file +raop_ntp.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_ntp.c.s +.PHONY : raop_ntp.c.s + +raop_rtp.o: raop_rtp.c.o + +.PHONY : raop_rtp.o + +# target to build an object file +raop_rtp.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_rtp.c.o +.PHONY : raop_rtp.c.o + +raop_rtp.i: raop_rtp.c.i + +.PHONY : raop_rtp.i + +# target to preprocess a source file +raop_rtp.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_rtp.c.i +.PHONY : raop_rtp.c.i + +raop_rtp.s: raop_rtp.c.s + +.PHONY : raop_rtp.s + +# target to generate assembly for a file +raop_rtp.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_rtp.c.s +.PHONY : raop_rtp.c.s + +raop_rtp_mirror.o: raop_rtp_mirror.c.o + +.PHONY : raop_rtp_mirror.o + +# target to build an object file +raop_rtp_mirror.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.o +.PHONY : raop_rtp_mirror.c.o + +raop_rtp_mirror.i: raop_rtp_mirror.c.i + +.PHONY : raop_rtp_mirror.i + +# target to preprocess a source file +raop_rtp_mirror.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.i +.PHONY : raop_rtp_mirror.c.i + +raop_rtp_mirror.s: raop_rtp_mirror.c.s + +.PHONY : raop_rtp_mirror.s + +# target to generate assembly for a file +raop_rtp_mirror.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/raop_rtp_mirror.c.s +.PHONY : raop_rtp_mirror.c.s + +utils.o: utils.c.o + +.PHONY : utils.o + +# target to build an object file +utils.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/utils.c.o +.PHONY : utils.c.o + +utils.i: utils.c.i + +.PHONY : utils.i + +# target to preprocess a source file +utils.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/utils.c.i +.PHONY : utils.c.i + +utils.s: utils.c.s + +.PHONY : utils.s + +# target to generate assembly for a file +utils.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/CMakeFiles/airplay.dir/build.make lib/CMakeFiles/airplay.dir/utils.c.s +.PHONY : utils.c.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... install/strip" + @echo "... edit_cache" + @echo "... airplay" + @echo "... list_install_components" + @echo "... install/local" + @echo "... rebuild_cache" + @echo "... install" + @echo "... byteutils.o" + @echo "... byteutils.i" + @echo "... byteutils.s" + @echo "... crypto.o" + @echo "... crypto.i" + @echo "... crypto.s" + @echo "... dnssd.o" + @echo "... dnssd.i" + @echo "... dnssd.s" + @echo "... fairplay_playfair.o" + @echo "... fairplay_playfair.i" + @echo "... fairplay_playfair.s" + @echo "... http_parser.o" + @echo "... http_parser.i" + @echo "... http_parser.s" + @echo "... http_request.o" + @echo "... http_request.i" + @echo "... http_request.s" + @echo "... http_response.o" + @echo "... http_response.i" + @echo "... http_response.s" + @echo "... httpd.o" + @echo "... httpd.i" + @echo "... httpd.s" + @echo "... logger.o" + @echo "... logger.i" + @echo "... logger.s" + @echo "... mirror_buffer.o" + @echo "... mirror_buffer.i" + @echo "... mirror_buffer.s" + @echo "... netutils.o" + @echo "... netutils.i" + @echo "... netutils.s" + @echo "... pairing.o" + @echo "... pairing.i" + @echo "... pairing.s" + @echo "... raop.o" + @echo "... raop.i" + @echo "... raop.s" + @echo "... raop_buffer.o" + @echo "... raop_buffer.i" + @echo "... raop_buffer.s" + @echo "... raop_ntp.o" + @echo "... raop_ntp.i" + @echo "... raop_ntp.s" + @echo "... raop_rtp.o" + @echo "... raop_rtp.i" + @echo "... raop_rtp.s" + @echo "... raop_rtp_mirror.o" + @echo "... raop_rtp_mirror.i" + @echo "... raop_rtp_mirror.s" + @echo "... utils.o" + @echo "... utils.i" + @echo "... utils.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/lib/cmake_install.cmake b/build/lib/cmake_install.cmake new file mode 100644 index 0000000..52f5bdf --- /dev/null +++ b/build/lib/cmake_install.cmake @@ -0,0 +1,39 @@ +# Install script for directory: /home/julian/UxPlay/lib + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + diff --git a/build/lib/curve25519/CMakeFiles/CMakeDirectoryInformation.cmake b/build/lib/curve25519/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..f10f855 --- /dev/null +++ b/build/lib/curve25519/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/julian/UxPlay") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/julian/UxPlay/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/build/lib/curve25519/CMakeFiles/curve25519.dir/C.includecache b/build/lib/curve25519/CMakeFiles/curve25519.dir/C.includecache new file mode 100644 index 0000000..73b135e --- /dev/null +++ b/build/lib/curve25519/CMakeFiles/curve25519.dir/C.includecache @@ -0,0 +1,14 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/julian/UxPlay/lib/curve25519/curve25519-donna.c +string.h +- +stdint.h +- + diff --git a/build/lib/curve25519/CMakeFiles/curve25519.dir/DependInfo.cmake b/build/lib/curve25519/CMakeFiles/curve25519.dir/DependInfo.cmake new file mode 100644 index 0000000..c22d2c8 --- /dev/null +++ b/build/lib/curve25519/CMakeFiles/curve25519.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "C" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_C + "/home/julian/UxPlay/lib/curve25519/curve25519-donna.c" "/home/julian/UxPlay/build/lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o" + ) +set(CMAKE_C_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_C_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/lib/curve25519/CMakeFiles/curve25519.dir/build.make b/build/lib/curve25519/CMakeFiles/curve25519.dir/build.make new file mode 100644 index 0000000..d412243 --- /dev/null +++ b/build/lib/curve25519/CMakeFiles/curve25519.dir/build.make @@ -0,0 +1,114 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/julian/UxPlay + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/julian/UxPlay/build + +# Include any dependencies generated for this target. +include lib/curve25519/CMakeFiles/curve25519.dir/depend.make + +# Include the progress variables for this target. +include lib/curve25519/CMakeFiles/curve25519.dir/progress.make + +# Include the compile flags for this target's objects. +include lib/curve25519/CMakeFiles/curve25519.dir/flags.make + +lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o: lib/curve25519/CMakeFiles/curve25519.dir/flags.make +lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o: ../lib/curve25519/curve25519-donna.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o" + cd /home/julian/UxPlay/build/lib/curve25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/curve25519.dir/curve25519-donna.c.o -c /home/julian/UxPlay/lib/curve25519/curve25519-donna.c + +lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/curve25519.dir/curve25519-donna.c.i" + cd /home/julian/UxPlay/build/lib/curve25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/curve25519/curve25519-donna.c > CMakeFiles/curve25519.dir/curve25519-donna.c.i + +lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/curve25519.dir/curve25519-donna.c.s" + cd /home/julian/UxPlay/build/lib/curve25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/curve25519/curve25519-donna.c -o CMakeFiles/curve25519.dir/curve25519-donna.c.s + +lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o.requires: + +.PHONY : lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o.requires + +lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o.provides: lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o.requires + $(MAKE) -f lib/curve25519/CMakeFiles/curve25519.dir/build.make lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o.provides.build +.PHONY : lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o.provides + +lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o.provides.build: lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o + + +# Object files for target curve25519 +curve25519_OBJECTS = \ +"CMakeFiles/curve25519.dir/curve25519-donna.c.o" + +# External object files for target curve25519 +curve25519_EXTERNAL_OBJECTS = + +lib/curve25519/libcurve25519.a: lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o +lib/curve25519/libcurve25519.a: lib/curve25519/CMakeFiles/curve25519.dir/build.make +lib/curve25519/libcurve25519.a: lib/curve25519/CMakeFiles/curve25519.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking C static library libcurve25519.a" + cd /home/julian/UxPlay/build/lib/curve25519 && $(CMAKE_COMMAND) -P CMakeFiles/curve25519.dir/cmake_clean_target.cmake + cd /home/julian/UxPlay/build/lib/curve25519 && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/curve25519.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +lib/curve25519/CMakeFiles/curve25519.dir/build: lib/curve25519/libcurve25519.a + +.PHONY : lib/curve25519/CMakeFiles/curve25519.dir/build + +lib/curve25519/CMakeFiles/curve25519.dir/requires: lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o.requires + +.PHONY : lib/curve25519/CMakeFiles/curve25519.dir/requires + +lib/curve25519/CMakeFiles/curve25519.dir/clean: + cd /home/julian/UxPlay/build/lib/curve25519 && $(CMAKE_COMMAND) -P CMakeFiles/curve25519.dir/cmake_clean.cmake +.PHONY : lib/curve25519/CMakeFiles/curve25519.dir/clean + +lib/curve25519/CMakeFiles/curve25519.dir/depend: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/julian/UxPlay /home/julian/UxPlay/lib/curve25519 /home/julian/UxPlay/build /home/julian/UxPlay/build/lib/curve25519 /home/julian/UxPlay/build/lib/curve25519/CMakeFiles/curve25519.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : lib/curve25519/CMakeFiles/curve25519.dir/depend + diff --git a/build/lib/curve25519/CMakeFiles/curve25519.dir/cmake_clean.cmake b/build/lib/curve25519/CMakeFiles/curve25519.dir/cmake_clean.cmake new file mode 100644 index 0000000..2522a85 --- /dev/null +++ b/build/lib/curve25519/CMakeFiles/curve25519.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/curve25519.dir/curve25519-donna.c.o" + "libcurve25519.pdb" + "libcurve25519.a" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/curve25519.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/lib/curve25519/CMakeFiles/curve25519.dir/cmake_clean_target.cmake b/build/lib/curve25519/CMakeFiles/curve25519.dir/cmake_clean_target.cmake new file mode 100644 index 0000000..0326bda --- /dev/null +++ b/build/lib/curve25519/CMakeFiles/curve25519.dir/cmake_clean_target.cmake @@ -0,0 +1,3 @@ +file(REMOVE_RECURSE + "libcurve25519.a" +) diff --git a/build/lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o b/build/lib/curve25519/CMakeFiles/curve25519.dir/curve25519-donna.c.o new file mode 100644 index 0000000000000000000000000000000000000000..eb4b062d1a92c3fda5e2a8239ed925c7b8c5c582 GIT binary patch literal 18568 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 NIj`&FO1|Cp{|9AXAHV]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/julian/UxPlay/lib/ed25519/add_scalar.c +ed25519.h +/home/julian/UxPlay/lib/ed25519/ed25519.h +ge.h +/home/julian/UxPlay/lib/ed25519/ge.h +sc.h +/home/julian/UxPlay/lib/ed25519/sc.h +sha512.h +/home/julian/UxPlay/lib/ed25519/sha512.h + +/home/julian/UxPlay/lib/ed25519/ed25519.h +stddef.h +- + +/home/julian/UxPlay/lib/ed25519/fe.c +fixedint.h +/home/julian/UxPlay/lib/ed25519/fixedint.h +fe.h +/home/julian/UxPlay/lib/ed25519/fe.h + +/home/julian/UxPlay/lib/ed25519/fe.h +fixedint.h +/home/julian/UxPlay/lib/ed25519/fixedint.h + +/home/julian/UxPlay/lib/ed25519/fixedint.h +stdint.h +- +limits.h +- +limits.h +- + +/home/julian/UxPlay/lib/ed25519/ge.c +ge.h +/home/julian/UxPlay/lib/ed25519/ge.h +precomp_data.h +/home/julian/UxPlay/lib/ed25519/precomp_data.h + +/home/julian/UxPlay/lib/ed25519/ge.h +fe.h +/home/julian/UxPlay/lib/ed25519/fe.h + +/home/julian/UxPlay/lib/ed25519/key_exchange.c +ed25519.h +/home/julian/UxPlay/lib/ed25519/ed25519.h +fe.h +/home/julian/UxPlay/lib/ed25519/fe.h + +/home/julian/UxPlay/lib/ed25519/keypair.c +ed25519.h +/home/julian/UxPlay/lib/ed25519/ed25519.h +sha512.h +/home/julian/UxPlay/lib/ed25519/sha512.h +ge.h +/home/julian/UxPlay/lib/ed25519/ge.h + +/home/julian/UxPlay/lib/ed25519/precomp_data.h + +/home/julian/UxPlay/lib/ed25519/sc.c +fixedint.h +/home/julian/UxPlay/lib/ed25519/fixedint.h +sc.h +/home/julian/UxPlay/lib/ed25519/sc.h + +/home/julian/UxPlay/lib/ed25519/sc.h + +/home/julian/UxPlay/lib/ed25519/seed.c +ed25519.h +/home/julian/UxPlay/lib/ed25519/ed25519.h +windows.h +- +wincrypt.h +- +stdio.h +- + +/home/julian/UxPlay/lib/ed25519/sha512.c +fixedint.h +/home/julian/UxPlay/lib/ed25519/fixedint.h +sha512.h +/home/julian/UxPlay/lib/ed25519/sha512.h + +/home/julian/UxPlay/lib/ed25519/sha512.h +stddef.h +- +fixedint.h +/home/julian/UxPlay/lib/ed25519/fixedint.h + +/home/julian/UxPlay/lib/ed25519/sign.c +ed25519.h +/home/julian/UxPlay/lib/ed25519/ed25519.h +sha512.h +/home/julian/UxPlay/lib/ed25519/sha512.h +ge.h +/home/julian/UxPlay/lib/ed25519/ge.h +sc.h +/home/julian/UxPlay/lib/ed25519/sc.h + +/home/julian/UxPlay/lib/ed25519/verify.c +ed25519.h +/home/julian/UxPlay/lib/ed25519/ed25519.h +sha512.h +/home/julian/UxPlay/lib/ed25519/sha512.h +ge.h +/home/julian/UxPlay/lib/ed25519/ge.h +sc.h +/home/julian/UxPlay/lib/ed25519/sc.h + diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/DependInfo.cmake b/build/lib/ed25519/CMakeFiles/ed25519.dir/DependInfo.cmake new file mode 100644 index 0000000..2e6a802 --- /dev/null +++ b/build/lib/ed25519/CMakeFiles/ed25519.dir/DependInfo.cmake @@ -0,0 +1,29 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "C" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_C + "/home/julian/UxPlay/lib/ed25519/add_scalar.c" "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o" + "/home/julian/UxPlay/lib/ed25519/fe.c" "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o" + "/home/julian/UxPlay/lib/ed25519/ge.c" "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o" + "/home/julian/UxPlay/lib/ed25519/key_exchange.c" "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o" + "/home/julian/UxPlay/lib/ed25519/keypair.c" "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o" + "/home/julian/UxPlay/lib/ed25519/sc.c" "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o" + "/home/julian/UxPlay/lib/ed25519/seed.c" "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o" + "/home/julian/UxPlay/lib/ed25519/sha512.c" "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o" + "/home/julian/UxPlay/lib/ed25519/sign.c" "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o" + "/home/julian/UxPlay/lib/ed25519/verify.c" "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o" + ) +set(CMAKE_C_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_C_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o b/build/lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o new file mode 100644 index 0000000000000000000000000000000000000000..667ee522082fbac2f4690cc3730a4ec9c3f82739 GIT binary patch literal 2848 zcmb`IL2MgE6o%j0NgLWUHU%W4qSift(yCp>4N*!DmDAv4gaSbjt3@2P>-DC#YCD#_ zMlPVV$QZ@4R?5YKQ{ljY6XcQ{K#?pe5h0|gy&!R`5QtWA;Z}))d2e>co@~4q#EaH5 z^UeR>yf-_uxtUy;3uzii)8HcXN0I`>M*95(?KuBHT3*AIvfa2Jd|9c_B$@pb{g+v1OmUGYVkg^ z?y^>c;xg@SWGgD@Cu>W?>vgWs>f7XWe05g}>zxykEvVnWxt9Ej)wd}(hF($+c)c`HhLj{ls-z8 zXS{mqotRfB&qe!IRvFoPd3a+jw5QM$t3O~-wC`BdW6DO9=p1LQwpU)G^O%b0t@!X8 z(zV+BZMluBfA5)PZkv+<6Q0z4y@pkAO}$f7;`Tj(?^+%V= z5#wq0H`8r%;`;MPM_y5@;hneMI_s>Je3W66-idRD`Ahu%4$RNaUWkpS($%67f*QS$e0bnZ0|?{aAPZxpK^BGsgD^%p7{G`3@i8Pvm3(-O$WG!D z-KPea4&XBZ{M7*db^y-?@b?1v#{v9y0RJ+8ZwBx?0sLM72Q!l~Dwdfy%en=2=G@d& z{3W9g!I)oIyfm|5EY8innOriKW-cux4X9W~p_)e-RI=t&{G5?1<{a6tmNKSe%h7VK zXy)OXEmlD{$4HwMo6vH3rI5bi*cGE_Uqc_`9kcA@3N|d;L`YJaG@KQ~GOetgp)svV zI9`g=L}{`o;(@?0DvoJgH>~V+W7*8*v2L=TyoR65L)gbF%#B|?9Mg$Ctnfp0A<&4A z;v@Cr0sNxEk0|;Lh11!Uads6RQTT5Pr}HfJBXpP1C?A!dRQQuPC-u_`SJ%C)@S}>p zr0}N{-c&e!b7cJ63V%l7G3=Akw2<&I=#?7<$4q1El)W}9du2Os>W*D=K*xh)f}XBa zK(|&31-po>xZ>FQ{A;PR{KbOK<#rYikBKMcf3g_Hp{@6Sp%Tc*JhJ{gSp6A}XHFZGMU-(PN2_@9?T(aQak_!aC7+W#-azZSXAwEu*pzvPsU ue{Dp-#QIS&N#73g_4`xYL8V?1|H6L8dDZ;&)7>59-x2x0r8;BZ@Bc5nMQ^15 literal 0 HcmV?d00001 diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/build.make b/build/lib/ed25519/CMakeFiles/ed25519.dir/build.make new file mode 100644 index 0000000..7d98de4 --- /dev/null +++ b/build/lib/ed25519/CMakeFiles/ed25519.dir/build.make @@ -0,0 +1,357 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/julian/UxPlay + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/julian/UxPlay/build + +# Include any dependencies generated for this target. +include lib/ed25519/CMakeFiles/ed25519.dir/depend.make + +# Include the progress variables for this target. +include lib/ed25519/CMakeFiles/ed25519.dir/progress.make + +# Include the compile flags for this target's objects. +include lib/ed25519/CMakeFiles/ed25519.dir/flags.make + +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o: lib/ed25519/CMakeFiles/ed25519.dir/flags.make +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o: ../lib/ed25519/add_scalar.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/ed25519.dir/add_scalar.c.o -c /home/julian/UxPlay/lib/ed25519/add_scalar.c + +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ed25519.dir/add_scalar.c.i" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/ed25519/add_scalar.c > CMakeFiles/ed25519.dir/add_scalar.c.i + +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ed25519.dir/add_scalar.c.s" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/ed25519/add_scalar.c -o CMakeFiles/ed25519.dir/add_scalar.c.s + +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o.requires: + +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o.requires + +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o.provides: lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o.requires + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o.provides.build +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o.provides + +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o.provides.build: lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o + + +lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o: lib/ed25519/CMakeFiles/ed25519.dir/flags.make +lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o: ../lib/ed25519/fe.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/ed25519.dir/fe.c.o -c /home/julian/UxPlay/lib/ed25519/fe.c + +lib/ed25519/CMakeFiles/ed25519.dir/fe.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ed25519.dir/fe.c.i" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/ed25519/fe.c > CMakeFiles/ed25519.dir/fe.c.i + +lib/ed25519/CMakeFiles/ed25519.dir/fe.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ed25519.dir/fe.c.s" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/ed25519/fe.c -o CMakeFiles/ed25519.dir/fe.c.s + +lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o.requires: + +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o.requires + +lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o.provides: lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o.requires + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o.provides.build +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o.provides + +lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o.provides.build: lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o + + +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o: lib/ed25519/CMakeFiles/ed25519.dir/flags.make +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o: ../lib/ed25519/ge.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building C object lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/ed25519.dir/ge.c.o -c /home/julian/UxPlay/lib/ed25519/ge.c + +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ed25519.dir/ge.c.i" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/ed25519/ge.c > CMakeFiles/ed25519.dir/ge.c.i + +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ed25519.dir/ge.c.s" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/ed25519/ge.c -o CMakeFiles/ed25519.dir/ge.c.s + +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o.requires: + +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o.requires + +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o.provides: lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o.requires + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o.provides.build +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o.provides + +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o.provides.build: lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o + + +lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o: lib/ed25519/CMakeFiles/ed25519.dir/flags.make +lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o: ../lib/ed25519/key_exchange.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building C object lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/ed25519.dir/key_exchange.c.o -c /home/julian/UxPlay/lib/ed25519/key_exchange.c + +lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ed25519.dir/key_exchange.c.i" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/ed25519/key_exchange.c > CMakeFiles/ed25519.dir/key_exchange.c.i + +lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ed25519.dir/key_exchange.c.s" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/ed25519/key_exchange.c -o CMakeFiles/ed25519.dir/key_exchange.c.s + +lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o.requires: + +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o.requires + +lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o.provides: lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o.requires + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o.provides.build +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o.provides + +lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o.provides.build: lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o + + +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o: lib/ed25519/CMakeFiles/ed25519.dir/flags.make +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o: ../lib/ed25519/keypair.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building C object lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/ed25519.dir/keypair.c.o -c /home/julian/UxPlay/lib/ed25519/keypair.c + +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ed25519.dir/keypair.c.i" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/ed25519/keypair.c > CMakeFiles/ed25519.dir/keypair.c.i + +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ed25519.dir/keypair.c.s" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/ed25519/keypair.c -o CMakeFiles/ed25519.dir/keypair.c.s + +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o.requires: + +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o.requires + +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o.provides: lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o.requires + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o.provides.build +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o.provides + +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o.provides.build: lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o + + +lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o: lib/ed25519/CMakeFiles/ed25519.dir/flags.make +lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o: ../lib/ed25519/sc.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building C object lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/ed25519.dir/sc.c.o -c /home/julian/UxPlay/lib/ed25519/sc.c + +lib/ed25519/CMakeFiles/ed25519.dir/sc.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ed25519.dir/sc.c.i" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/ed25519/sc.c > CMakeFiles/ed25519.dir/sc.c.i + +lib/ed25519/CMakeFiles/ed25519.dir/sc.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ed25519.dir/sc.c.s" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/ed25519/sc.c -o CMakeFiles/ed25519.dir/sc.c.s + +lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o.requires: + +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o.requires + +lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o.provides: lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o.requires + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o.provides.build +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o.provides + +lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o.provides.build: lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o + + +lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o: lib/ed25519/CMakeFiles/ed25519.dir/flags.make +lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o: ../lib/ed25519/seed.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building C object lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/ed25519.dir/seed.c.o -c /home/julian/UxPlay/lib/ed25519/seed.c + +lib/ed25519/CMakeFiles/ed25519.dir/seed.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ed25519.dir/seed.c.i" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/ed25519/seed.c > CMakeFiles/ed25519.dir/seed.c.i + +lib/ed25519/CMakeFiles/ed25519.dir/seed.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ed25519.dir/seed.c.s" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/ed25519/seed.c -o CMakeFiles/ed25519.dir/seed.c.s + +lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o.requires: + +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o.requires + +lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o.provides: lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o.requires + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o.provides.build +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o.provides + +lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o.provides.build: lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o + + +lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o: lib/ed25519/CMakeFiles/ed25519.dir/flags.make +lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o: ../lib/ed25519/sha512.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building C object lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/ed25519.dir/sha512.c.o -c /home/julian/UxPlay/lib/ed25519/sha512.c + +lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ed25519.dir/sha512.c.i" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/ed25519/sha512.c > CMakeFiles/ed25519.dir/sha512.c.i + +lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ed25519.dir/sha512.c.s" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/ed25519/sha512.c -o CMakeFiles/ed25519.dir/sha512.c.s + +lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o.requires: + +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o.requires + +lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o.provides: lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o.requires + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o.provides.build +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o.provides + +lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o.provides.build: lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o + + +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o: lib/ed25519/CMakeFiles/ed25519.dir/flags.make +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o: ../lib/ed25519/sign.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building C object lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/ed25519.dir/sign.c.o -c /home/julian/UxPlay/lib/ed25519/sign.c + +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ed25519.dir/sign.c.i" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/ed25519/sign.c > CMakeFiles/ed25519.dir/sign.c.i + +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ed25519.dir/sign.c.s" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/ed25519/sign.c -o CMakeFiles/ed25519.dir/sign.c.s + +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o.requires: + +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o.requires + +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o.provides: lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o.requires + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o.provides.build +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o.provides + +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o.provides.build: lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o + + +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o: lib/ed25519/CMakeFiles/ed25519.dir/flags.make +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o: ../lib/ed25519/verify.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Building C object lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/ed25519.dir/verify.c.o -c /home/julian/UxPlay/lib/ed25519/verify.c + +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ed25519.dir/verify.c.i" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/ed25519/verify.c > CMakeFiles/ed25519.dir/verify.c.i + +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ed25519.dir/verify.c.s" + cd /home/julian/UxPlay/build/lib/ed25519 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/ed25519/verify.c -o CMakeFiles/ed25519.dir/verify.c.s + +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o.requires: + +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o.requires + +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o.provides: lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o.requires + $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o.provides.build +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o.provides + +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o.provides.build: lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o + + +# Object files for target ed25519 +ed25519_OBJECTS = \ +"CMakeFiles/ed25519.dir/add_scalar.c.o" \ +"CMakeFiles/ed25519.dir/fe.c.o" \ +"CMakeFiles/ed25519.dir/ge.c.o" \ +"CMakeFiles/ed25519.dir/key_exchange.c.o" \ +"CMakeFiles/ed25519.dir/keypair.c.o" \ +"CMakeFiles/ed25519.dir/sc.c.o" \ +"CMakeFiles/ed25519.dir/seed.c.o" \ +"CMakeFiles/ed25519.dir/sha512.c.o" \ +"CMakeFiles/ed25519.dir/sign.c.o" \ +"CMakeFiles/ed25519.dir/verify.c.o" + +# External object files for target ed25519 +ed25519_EXTERNAL_OBJECTS = + +lib/ed25519/libed25519.a: lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o +lib/ed25519/libed25519.a: lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o +lib/ed25519/libed25519.a: lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o +lib/ed25519/libed25519.a: lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o +lib/ed25519/libed25519.a: lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o +lib/ed25519/libed25519.a: lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o +lib/ed25519/libed25519.a: lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o +lib/ed25519/libed25519.a: lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o +lib/ed25519/libed25519.a: lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o +lib/ed25519/libed25519.a: lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o +lib/ed25519/libed25519.a: lib/ed25519/CMakeFiles/ed25519.dir/build.make +lib/ed25519/libed25519.a: lib/ed25519/CMakeFiles/ed25519.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_11) "Linking C static library libed25519.a" + cd /home/julian/UxPlay/build/lib/ed25519 && $(CMAKE_COMMAND) -P CMakeFiles/ed25519.dir/cmake_clean_target.cmake + cd /home/julian/UxPlay/build/lib/ed25519 && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/ed25519.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +lib/ed25519/CMakeFiles/ed25519.dir/build: lib/ed25519/libed25519.a + +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/build + +lib/ed25519/CMakeFiles/ed25519.dir/requires: lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o.requires +lib/ed25519/CMakeFiles/ed25519.dir/requires: lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o.requires +lib/ed25519/CMakeFiles/ed25519.dir/requires: lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o.requires +lib/ed25519/CMakeFiles/ed25519.dir/requires: lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o.requires +lib/ed25519/CMakeFiles/ed25519.dir/requires: lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o.requires +lib/ed25519/CMakeFiles/ed25519.dir/requires: lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o.requires +lib/ed25519/CMakeFiles/ed25519.dir/requires: lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o.requires +lib/ed25519/CMakeFiles/ed25519.dir/requires: lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o.requires +lib/ed25519/CMakeFiles/ed25519.dir/requires: lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o.requires +lib/ed25519/CMakeFiles/ed25519.dir/requires: lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o.requires + +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/requires + +lib/ed25519/CMakeFiles/ed25519.dir/clean: + cd /home/julian/UxPlay/build/lib/ed25519 && $(CMAKE_COMMAND) -P CMakeFiles/ed25519.dir/cmake_clean.cmake +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/clean + +lib/ed25519/CMakeFiles/ed25519.dir/depend: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/julian/UxPlay /home/julian/UxPlay/lib/ed25519 /home/julian/UxPlay/build /home/julian/UxPlay/build/lib/ed25519 /home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/depend + diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/cmake_clean.cmake b/build/lib/ed25519/CMakeFiles/ed25519.dir/cmake_clean.cmake new file mode 100644 index 0000000..d7433fe --- /dev/null +++ b/build/lib/ed25519/CMakeFiles/ed25519.dir/cmake_clean.cmake @@ -0,0 +1,19 @@ +file(REMOVE_RECURSE + "CMakeFiles/ed25519.dir/add_scalar.c.o" + "CMakeFiles/ed25519.dir/fe.c.o" + "CMakeFiles/ed25519.dir/ge.c.o" + "CMakeFiles/ed25519.dir/key_exchange.c.o" + "CMakeFiles/ed25519.dir/keypair.c.o" + "CMakeFiles/ed25519.dir/sc.c.o" + "CMakeFiles/ed25519.dir/seed.c.o" + "CMakeFiles/ed25519.dir/sha512.c.o" + "CMakeFiles/ed25519.dir/sign.c.o" + "CMakeFiles/ed25519.dir/verify.c.o" + "libed25519.pdb" + "libed25519.a" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/ed25519.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/cmake_clean_target.cmake b/build/lib/ed25519/CMakeFiles/ed25519.dir/cmake_clean_target.cmake new file mode 100644 index 0000000..f56a87d --- /dev/null +++ b/build/lib/ed25519/CMakeFiles/ed25519.dir/cmake_clean_target.cmake @@ -0,0 +1,3 @@ +file(REMOVE_RECURSE + "libed25519.a" +) diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/depend.internal b/build/lib/ed25519/CMakeFiles/ed25519.dir/depend.internal new file mode 100644 index 0000000..91e01d7 --- /dev/null +++ b/build/lib/ed25519/CMakeFiles/ed25519.dir/depend.internal @@ -0,0 +1,60 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o + /home/julian/UxPlay/lib/ed25519/add_scalar.c + /home/julian/UxPlay/lib/ed25519/ed25519.h + /home/julian/UxPlay/lib/ed25519/fe.h + /home/julian/UxPlay/lib/ed25519/fixedint.h + /home/julian/UxPlay/lib/ed25519/ge.h + /home/julian/UxPlay/lib/ed25519/sc.h + /home/julian/UxPlay/lib/ed25519/sha512.h +lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o + /home/julian/UxPlay/lib/ed25519/fe.c + /home/julian/UxPlay/lib/ed25519/fe.h + /home/julian/UxPlay/lib/ed25519/fixedint.h +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o + /home/julian/UxPlay/lib/ed25519/fe.h + /home/julian/UxPlay/lib/ed25519/fixedint.h + /home/julian/UxPlay/lib/ed25519/ge.c + /home/julian/UxPlay/lib/ed25519/ge.h + /home/julian/UxPlay/lib/ed25519/precomp_data.h +lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o + /home/julian/UxPlay/lib/ed25519/ed25519.h + /home/julian/UxPlay/lib/ed25519/fe.h + /home/julian/UxPlay/lib/ed25519/fixedint.h + /home/julian/UxPlay/lib/ed25519/key_exchange.c +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o + /home/julian/UxPlay/lib/ed25519/ed25519.h + /home/julian/UxPlay/lib/ed25519/fe.h + /home/julian/UxPlay/lib/ed25519/fixedint.h + /home/julian/UxPlay/lib/ed25519/ge.h + /home/julian/UxPlay/lib/ed25519/keypair.c + /home/julian/UxPlay/lib/ed25519/sha512.h +lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o + /home/julian/UxPlay/lib/ed25519/fixedint.h + /home/julian/UxPlay/lib/ed25519/sc.c + /home/julian/UxPlay/lib/ed25519/sc.h +lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o + /home/julian/UxPlay/lib/ed25519/ed25519.h + /home/julian/UxPlay/lib/ed25519/seed.c +lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o + /home/julian/UxPlay/lib/ed25519/fixedint.h + /home/julian/UxPlay/lib/ed25519/sha512.c + /home/julian/UxPlay/lib/ed25519/sha512.h +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o + /home/julian/UxPlay/lib/ed25519/ed25519.h + /home/julian/UxPlay/lib/ed25519/fe.h + /home/julian/UxPlay/lib/ed25519/fixedint.h + /home/julian/UxPlay/lib/ed25519/ge.h + /home/julian/UxPlay/lib/ed25519/sc.h + /home/julian/UxPlay/lib/ed25519/sha512.h + /home/julian/UxPlay/lib/ed25519/sign.c +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o + /home/julian/UxPlay/lib/ed25519/ed25519.h + /home/julian/UxPlay/lib/ed25519/fe.h + /home/julian/UxPlay/lib/ed25519/fixedint.h + /home/julian/UxPlay/lib/ed25519/ge.h + /home/julian/UxPlay/lib/ed25519/sc.h + /home/julian/UxPlay/lib/ed25519/sha512.h + /home/julian/UxPlay/lib/ed25519/verify.c diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/depend.make b/build/lib/ed25519/CMakeFiles/ed25519.dir/depend.make new file mode 100644 index 0000000..234eb62 --- /dev/null +++ b/build/lib/ed25519/CMakeFiles/ed25519.dir/depend.make @@ -0,0 +1,60 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o: ../lib/ed25519/add_scalar.c +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o: ../lib/ed25519/ed25519.h +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o: ../lib/ed25519/fe.h +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o: ../lib/ed25519/fixedint.h +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o: ../lib/ed25519/ge.h +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o: ../lib/ed25519/sc.h +lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o: ../lib/ed25519/sha512.h + +lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o: ../lib/ed25519/fe.c +lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o: ../lib/ed25519/fe.h +lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o: ../lib/ed25519/fixedint.h + +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o: ../lib/ed25519/fe.h +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o: ../lib/ed25519/fixedint.h +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o: ../lib/ed25519/ge.c +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o: ../lib/ed25519/ge.h +lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o: ../lib/ed25519/precomp_data.h + +lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o: ../lib/ed25519/ed25519.h +lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o: ../lib/ed25519/fe.h +lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o: ../lib/ed25519/fixedint.h +lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o: ../lib/ed25519/key_exchange.c + +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o: ../lib/ed25519/ed25519.h +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o: ../lib/ed25519/fe.h +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o: ../lib/ed25519/fixedint.h +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o: ../lib/ed25519/ge.h +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o: ../lib/ed25519/keypair.c +lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o: ../lib/ed25519/sha512.h + +lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o: ../lib/ed25519/fixedint.h +lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o: ../lib/ed25519/sc.c +lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o: ../lib/ed25519/sc.h + +lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o: ../lib/ed25519/ed25519.h +lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o: ../lib/ed25519/seed.c + +lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o: ../lib/ed25519/fixedint.h +lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o: ../lib/ed25519/sha512.c +lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o: ../lib/ed25519/sha512.h + +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o: ../lib/ed25519/ed25519.h +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o: ../lib/ed25519/fe.h +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o: ../lib/ed25519/fixedint.h +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o: ../lib/ed25519/ge.h +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o: ../lib/ed25519/sc.h +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o: ../lib/ed25519/sha512.h +lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o: ../lib/ed25519/sign.c + +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o: ../lib/ed25519/ed25519.h +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o: ../lib/ed25519/fe.h +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o: ../lib/ed25519/fixedint.h +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o: ../lib/ed25519/ge.h +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o: ../lib/ed25519/sc.h +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o: ../lib/ed25519/sha512.h +lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o: ../lib/ed25519/verify.c + diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o b/build/lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o new file mode 100644 index 0000000000000000000000000000000000000000..19e3de5e4bc96cb066e4e95bb813269140526ddd GIT binary patch literal 25824 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 literal 0 HcmV?d00001 diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/flags.make b/build/lib/ed25519/CMakeFiles/ed25519.dir/flags.make new file mode 100644 index 0000000..929cc6e --- /dev/null +++ b/build/lib/ed25519/CMakeFiles/ed25519.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# compile C with /usr/bin/cc +C_FLAGS = + +C_DEFINES = + +C_INCLUDES = + diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o b/build/lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o new file mode 100644 index 0000000000000000000000000000000000000000..b2b55be7e636a4d1ba602d208dab4cf0fc02a8f6 GIT binary patch literal 48352 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 literal 0 HcmV?d00001 diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o b/build/lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o new file mode 100644 index 0000000000000000000000000000000000000000..0da76cb4128e2f51e022609cb55bc780b78bc95b GIT binary patch literal 3864 zcmb`JU1%It6oBt$lSXZtUF#3UD(1mRly=OvCao29(>Tc>X(O6YMapEeJL#5Wv)k;X z&5CGsnVMl4=*z0$gZol^5-QjrNU>ER>Vqy6eAK)M6~)rGptb8c_hq$|@cJ;L6Bo~vchizxmhWo4W_8%9)$8axaZ#No- zdufJu)mNa)7?sZc0dO!}eKT=o-6;S>|KA^}R8cl64%!)!dTcFT;p)|?u6mhEk@97< zdHD3T*qUB1Z)~pWV5Z+FZ#=iE-{8`>Nsx?6m5=E;XEB!hli{vk$59MVueIdqn&Ele z!gC4@H2k5ZtO~^uut6W9K{rGsDv!iNs3D2HbCD;ZGH^DwJj!vLI8T7YbdsD1w{>R) zyl@KZjt$ankbZlwgRu&K^j_?CuEdP5u5Lz+4`OT2cR^X|LRH@AcCTLh%dNZ48{k;J zfcHp+KO}h6N)=;6DR>H=Ot(3KrkdyD$@E)l9?9jA46iDTRH*i<^2vK1FNwdf)h$YY z9&N!z9h-@OUPSfeLWueiJzpg;hJO}@hf28%$Rfy)zU5Yl%8H1kBLn&L?TLyEac>38 zvZeHGJQ-HzPO{{=i|G9kKRA`^7J|-x>h4Zt^$Wua5?vz>G!V7u2Eiq3#072Xc;YULFR0w}9gj*qeA%vd_;iVA%P6%HO z;nfgc3*l_uDw)9#Wqrz=8aX_nn{3W9 z=a%xh*^+G)@gae?R3?L6ad{TIlZ&UVB^#yO@&a~)cuVICCEgd$qzWh$PvIR*68jRv z!^8Ms=S5u8EZV8`yqV6lv<{zz@b3w~2Xaz%*a+e3$ie(+K7H~i^3UrT!f8Io2&Z)@5Ki+sM>w9n zD$kDyr}keGPV@YQaGKAp5dH*C2pV>DeUFCl6NJSqmx6wpMJWWm0yEX|u&5)6)4|&RPVvn71u${OI&v z{zfy6n_F2pL{d3CM*o-A2T|~q@PC1lz_6+Bh)XV8K*E^+)jt8g7;_LV+SK@uQwXveU-gFwqo)1s zpJ=XDe#&-I`fu4Yzy_rML1id=RX>Ga03oRUH9QQVsXAl*@!y2-WdF{@Md#tMaeQr}#jcfBtxu2l;<4^M952qUiVk7i`^9`Tzg` literal 0 HcmV?d00001 diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o b/build/lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o new file mode 100644 index 0000000000000000000000000000000000000000..1430973410f49aad538bb3d206cef01957c6376c GIT binary patch literal 1840 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 literal 0 HcmV?d00001 diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o b/build/lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o new file mode 100644 index 0000000000000000000000000000000000000000..3797cc3f9f84b1fb3916a6aa0bc4cfd5816bcaae GIT binary patch literal 7856 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 Uzd!i&>YMogmvdBgv8b*8A4eK2p#T5? literal 0 HcmV?d00001 diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o b/build/lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o new file mode 100644 index 0000000000000000000000000000000000000000..c038e7140bd9f351cf67d6dfda1ee0cab08299d9 GIT binary patch literal 2424 zcmbu9O=uHA6o6lv{%L=#qEM)ZTrBmcOVS!zdyupx=_1ieZ4QDkY?5sgo1c>1Kq{zs zs1ieDu~Uc3lJMD*5!8sD4U$&PFGQeT+7H{ZNB^XARW-j2p& zZ9X3e@xgg;dV&H}IvqR0%?R{D4ks1eZKdr(NL>TzjL*@%T@gos(5w% z1FE!IYdReqM9PQn5!o?p1GbN>PJ8eP z4<7a43m*KM2QPZ?n;!h02L~g&Tu@S=r^mwK&^bn3U~}>Lndvy2kHxM;7un+UOgzfK z$Y|lv7|Ry2rm)MaY0cC{Zz)^Qa$uxbNl%wkIxOqVNNG8(lrQH@medT6R>zrHOs<)_ zL9RHYrPIKeVQQ%rmddQKB`uo+74s#blRk*;Cq505>jY7V_h1wJK0y>W-{#cfy=V*n z#}e<8_)CfROZ=n64@vxs#N|A@?T@HCpJ5Lk^WaS4a{dL0%lSW$INevV--i-EEb)My zKYqV~T2mBbEpKW`Pz5Q;SdQMYJy<&ob$FG5sGz?Hu#e7~bAS)D2U75R-80AL_ z3U}8tY^kK>_2&HlX#_Byw&Z^C5o9Fd-C8}%SJu*tGT5G7;R>j2thiZ9zB z4WbNVBkuk}eY4}pM;13egM&2Ze&a(JOLGRX$s*Q2B}25u`a(}hOm-do>k>F4B2JKb zJKpUs;wOcptwsF=zJNxn`ilbV$I39sdW*9@VS> literal 0 HcmV?d00001 diff --git a/build/lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o b/build/lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o new file mode 100644 index 0000000000000000000000000000000000000000..09484ac43df2d9d41ed74e22a1822f5ec371bb5b GIT binary patch literal 3280 zcmb`JTWB0r7{||Mb8Bw9jjh(E)_tk8VuoyM(3WC14Vw%Sjc5ak$}riTBun>FcV|i? zv_?xL%Q}z;13n5q`PK&wRS*`6w-@P?&jAr4iYUHRysZE4%$z;vY%(C?7iQ1@{D0?s z=Q3vwc_TYF(-n&`5i#}@lQrQocK3kP87?zyhz+s@v;MtVzrJhMy`3+zEoL^dyNT^2 zik-wZOW)ndw#YJXHe;b3NTB{U>XHajLve{9HPkH;q=tGVg49s2M35TllL%5n{SrZH z=zv6!8XAxYQbU6hL2777B1jDlO9ZK*5s4r*l#mEgLrIAsHFQuSNDYlj1gW9>B!bk? zA&DS0bXX!t4c#vhq=p`l2vS2wB!bk?gAze%=%_@H8XA)bQbWfig4EDM5@BP(kne~r1d9k&@3x5qo-fVQAIEio7 ztY`0~n`UF3H@(@sfTT!tVh3!!=?>hc@A-$r`0UNb7WFj!_0->#^;@(4}S-# zo16#GZ1_BL;C`B-7WHpLSI{sg_1Q~rJnZZ^@56x9KW08_(R!n`egjUb;Pe zKfb=hW~ZmmrA{s^dS%y3Jz-256XRz*UQ6FdKWR)nekyR00dXiOSnT!ZS?pReHa67P zzlrR};L}6l#_=;Xl6<>sdbl@UiK7W;=Q+hopxLzfT8wy9P}6SqYimCq-}i=RERMhZ zB92U*F#w}W$;0O!Hj1;}&gQ%xXMGWV&mR9MoKfT#dHLGmox+pc)0(jh5&p{&{&Ixx zMfh(;`0qscA4d2eMfmKhQ!Om58abA$lxwbAC^?q%nr9c8lRrHvh6z7Rl7=QSZ&3gOrN$2<$^1;cO{P& zqPA2hW1L#fsycZu=TNeI#ak>oRxM{2?P|#@y6tR$ZiSD-EUV_)xyx2=<+8P87m8RK z`z|~}bYcea{MiaZ93k?D6#sa5w5S+X{PPk1D-nKG@kf+AHxxgi_#Y@fohLERPZa;4 z;{T@jql%w`rodgyA6~&vCKSRK=a?C_)sky3qI9c4xgu26DcXkXTyvR$*JCqdu~uV7 zu2L#FWq9R^>lm}oE{yYCX9jQXtl-7lc+3A&q>zX1j?OPQ1CQeOa36wN&{k+F$M8^- z3?4O}3$LnQLX-ZTq;bRzb|my43H{ES=`z|j-os)W;nn{+Rg@6>CM^2q_UnHooc~LrVOVzd{|7Fi4Y2?K literal 0 HcmV?d00001 diff --git a/build/lib/ed25519/CMakeFiles/progress.marks b/build/lib/ed25519/CMakeFiles/progress.marks new file mode 100644 index 0000000..b4de394 --- /dev/null +++ b/build/lib/ed25519/CMakeFiles/progress.marks @@ -0,0 +1 @@ +11 diff --git a/build/lib/ed25519/Makefile b/build/lib/ed25519/Makefile new file mode 100644 index 0000000..60c21f1 --- /dev/null +++ b/build/lib/ed25519/Makefile @@ -0,0 +1,500 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/julian/UxPlay + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/julian/UxPlay/build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." + /usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components + +.PHONY : list_install_components/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# The main all target +all: cmake_check_build_system + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles /home/julian/UxPlay/build/lib/ed25519/CMakeFiles/progress.marks + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/ed25519/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/ed25519/clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/ed25519/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/ed25519/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +lib/ed25519/CMakeFiles/ed25519.dir/rule: + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/ed25519/CMakeFiles/ed25519.dir/rule +.PHONY : lib/ed25519/CMakeFiles/ed25519.dir/rule + +# Convenience name for target. +ed25519: lib/ed25519/CMakeFiles/ed25519.dir/rule + +.PHONY : ed25519 + +# fast build rule for target. +ed25519/fast: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/build +.PHONY : ed25519/fast + +add_scalar.o: add_scalar.c.o + +.PHONY : add_scalar.o + +# target to build an object file +add_scalar.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.o +.PHONY : add_scalar.c.o + +add_scalar.i: add_scalar.c.i + +.PHONY : add_scalar.i + +# target to preprocess a source file +add_scalar.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.i +.PHONY : add_scalar.c.i + +add_scalar.s: add_scalar.c.s + +.PHONY : add_scalar.s + +# target to generate assembly for a file +add_scalar.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/add_scalar.c.s +.PHONY : add_scalar.c.s + +fe.o: fe.c.o + +.PHONY : fe.o + +# target to build an object file +fe.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/fe.c.o +.PHONY : fe.c.o + +fe.i: fe.c.i + +.PHONY : fe.i + +# target to preprocess a source file +fe.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/fe.c.i +.PHONY : fe.c.i + +fe.s: fe.c.s + +.PHONY : fe.s + +# target to generate assembly for a file +fe.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/fe.c.s +.PHONY : fe.c.s + +ge.o: ge.c.o + +.PHONY : ge.o + +# target to build an object file +ge.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/ge.c.o +.PHONY : ge.c.o + +ge.i: ge.c.i + +.PHONY : ge.i + +# target to preprocess a source file +ge.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/ge.c.i +.PHONY : ge.c.i + +ge.s: ge.c.s + +.PHONY : ge.s + +# target to generate assembly for a file +ge.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/ge.c.s +.PHONY : ge.c.s + +key_exchange.o: key_exchange.c.o + +.PHONY : key_exchange.o + +# target to build an object file +key_exchange.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.o +.PHONY : key_exchange.c.o + +key_exchange.i: key_exchange.c.i + +.PHONY : key_exchange.i + +# target to preprocess a source file +key_exchange.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.i +.PHONY : key_exchange.c.i + +key_exchange.s: key_exchange.c.s + +.PHONY : key_exchange.s + +# target to generate assembly for a file +key_exchange.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/key_exchange.c.s +.PHONY : key_exchange.c.s + +keypair.o: keypair.c.o + +.PHONY : keypair.o + +# target to build an object file +keypair.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.o +.PHONY : keypair.c.o + +keypair.i: keypair.c.i + +.PHONY : keypair.i + +# target to preprocess a source file +keypair.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.i +.PHONY : keypair.c.i + +keypair.s: keypair.c.s + +.PHONY : keypair.s + +# target to generate assembly for a file +keypair.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/keypair.c.s +.PHONY : keypair.c.s + +sc.o: sc.c.o + +.PHONY : sc.o + +# target to build an object file +sc.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/sc.c.o +.PHONY : sc.c.o + +sc.i: sc.c.i + +.PHONY : sc.i + +# target to preprocess a source file +sc.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/sc.c.i +.PHONY : sc.c.i + +sc.s: sc.c.s + +.PHONY : sc.s + +# target to generate assembly for a file +sc.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/sc.c.s +.PHONY : sc.c.s + +seed.o: seed.c.o + +.PHONY : seed.o + +# target to build an object file +seed.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/seed.c.o +.PHONY : seed.c.o + +seed.i: seed.c.i + +.PHONY : seed.i + +# target to preprocess a source file +seed.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/seed.c.i +.PHONY : seed.c.i + +seed.s: seed.c.s + +.PHONY : seed.s + +# target to generate assembly for a file +seed.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/seed.c.s +.PHONY : seed.c.s + +sha512.o: sha512.c.o + +.PHONY : sha512.o + +# target to build an object file +sha512.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.o +.PHONY : sha512.c.o + +sha512.i: sha512.c.i + +.PHONY : sha512.i + +# target to preprocess a source file +sha512.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.i +.PHONY : sha512.c.i + +sha512.s: sha512.c.s + +.PHONY : sha512.s + +# target to generate assembly for a file +sha512.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/sha512.c.s +.PHONY : sha512.c.s + +sign.o: sign.c.o + +.PHONY : sign.o + +# target to build an object file +sign.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/sign.c.o +.PHONY : sign.c.o + +sign.i: sign.c.i + +.PHONY : sign.i + +# target to preprocess a source file +sign.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/sign.c.i +.PHONY : sign.c.i + +sign.s: sign.c.s + +.PHONY : sign.s + +# target to generate assembly for a file +sign.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/sign.c.s +.PHONY : sign.c.s + +verify.o: verify.c.o + +.PHONY : verify.o + +# target to build an object file +verify.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/verify.c.o +.PHONY : verify.c.o + +verify.i: verify.c.i + +.PHONY : verify.i + +# target to preprocess a source file +verify.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/verify.c.i +.PHONY : verify.c.i + +verify.s: verify.c.s + +.PHONY : verify.s + +# target to generate assembly for a file +verify.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/ed25519/CMakeFiles/ed25519.dir/build.make lib/ed25519/CMakeFiles/ed25519.dir/verify.c.s +.PHONY : verify.c.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... install/strip" + @echo "... edit_cache" + @echo "... ed25519" + @echo "... install" + @echo "... rebuild_cache" + @echo "... list_install_components" + @echo "... install/local" + @echo "... add_scalar.o" + @echo "... add_scalar.i" + @echo "... add_scalar.s" + @echo "... fe.o" + @echo "... fe.i" + @echo "... fe.s" + @echo "... ge.o" + @echo "... ge.i" + @echo "... ge.s" + @echo "... key_exchange.o" + @echo "... key_exchange.i" + @echo "... key_exchange.s" + @echo "... keypair.o" + @echo "... keypair.i" + @echo "... keypair.s" + @echo "... sc.o" + @echo "... sc.i" + @echo "... sc.s" + @echo "... seed.o" + @echo "... seed.i" + @echo "... seed.s" + @echo "... sha512.o" + @echo "... sha512.i" + @echo "... sha512.s" + @echo "... sign.o" + @echo "... sign.i" + @echo "... sign.s" + @echo "... verify.o" + @echo "... verify.i" + @echo "... verify.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/lib/ed25519/cmake_install.cmake b/build/lib/ed25519/cmake_install.cmake new file mode 100644 index 0000000..41ad95d --- /dev/null +++ b/build/lib/ed25519/cmake_install.cmake @@ -0,0 +1,39 @@ +# Install script for directory: /home/julian/UxPlay/lib/ed25519 + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + diff --git a/build/lib/ed25519/libed25519.a b/build/lib/ed25519/libed25519.a new file mode 100644 index 0000000000000000000000000000000000000000..7ff2e516c3b709eef598d3f2022ca72736ebc406 GIT binary patch literal 117356 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 literal 0 HcmV?d00001 diff --git a/build/lib/libairplay.a b/build/lib/libairplay.a new file mode 100644 index 0000000000000000000000000000000000000000..cc446d56d773166cf78d5345c4b547e5b6b6af19 GIT binary patch literal 735124 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 d_E)5ip{Akv)?SjhhLh!=8R6ut?=^a1wPWJ(ZvQ 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 z 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

3CVzdYNb8M0t3xws-pG&u( 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 literal 0 HcmV?d00001 diff --git a/build/lib/playfair/CMakeFiles/CMakeDirectoryInformation.cmake b/build/lib/playfair/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..f10f855 --- /dev/null +++ b/build/lib/playfair/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/julian/UxPlay") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/julian/UxPlay/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/build/lib/playfair/CMakeFiles/playfair.dir/C.includecache b/build/lib/playfair/CMakeFiles/playfair.dir/C.includecache new file mode 100644 index 0000000..193a748 --- /dev/null +++ b/build/lib/playfair/CMakeFiles/playfair.dir/C.includecache @@ -0,0 +1,58 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/julian/UxPlay/lib/playfair/hand_garble.c +stdint.h +- +stdio.h +- + +/home/julian/UxPlay/lib/playfair/modified_md5.c +stdint.h +- +math.h +- +stdlib.h +- +stdio.h +- +assert.h +- +string.h +- + +/home/julian/UxPlay/lib/playfair/omg_hax.c +stdio.h +- +stdint.h +- +stdlib.h +- +string.h +- +omg_hax.h +/home/julian/UxPlay/lib/playfair/omg_hax.h + +/home/julian/UxPlay/lib/playfair/omg_hax.h + +/home/julian/UxPlay/lib/playfair/playfair.c +stdint.h +- +playfair.h +/home/julian/UxPlay/lib/playfair/playfair.h + +/home/julian/UxPlay/lib/playfair/playfair.h + +/home/julian/UxPlay/lib/playfair/sap_hash.c +stdint.h +- +stdio.h +- +stdlib.h +- + diff --git a/build/lib/playfair/CMakeFiles/playfair.dir/DependInfo.cmake b/build/lib/playfair/CMakeFiles/playfair.dir/DependInfo.cmake new file mode 100644 index 0000000..79b5a01 --- /dev/null +++ b/build/lib/playfair/CMakeFiles/playfair.dir/DependInfo.cmake @@ -0,0 +1,25 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "C" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_C + "/home/julian/UxPlay/lib/playfair/hand_garble.c" "/home/julian/UxPlay/build/lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o" + "/home/julian/UxPlay/lib/playfair/modified_md5.c" "/home/julian/UxPlay/build/lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o" + "/home/julian/UxPlay/lib/playfair/omg_hax.c" "/home/julian/UxPlay/build/lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o" + "/home/julian/UxPlay/lib/playfair/playfair.c" "/home/julian/UxPlay/build/lib/playfair/CMakeFiles/playfair.dir/playfair.c.o" + "/home/julian/UxPlay/lib/playfair/sap_hash.c" "/home/julian/UxPlay/build/lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o" + ) +set(CMAKE_C_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_C_TARGET_INCLUDE_PATH + "../lib/playfair/." + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/lib/playfair/CMakeFiles/playfair.dir/build.make b/build/lib/playfair/CMakeFiles/playfair.dir/build.make new file mode 100644 index 0000000..66a18b3 --- /dev/null +++ b/build/lib/playfair/CMakeFiles/playfair.dir/build.make @@ -0,0 +1,222 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/julian/UxPlay + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/julian/UxPlay/build + +# Include any dependencies generated for this target. +include lib/playfair/CMakeFiles/playfair.dir/depend.make + +# Include the progress variables for this target. +include lib/playfair/CMakeFiles/playfair.dir/progress.make + +# Include the compile flags for this target's objects. +include lib/playfair/CMakeFiles/playfair.dir/flags.make + +lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o: lib/playfair/CMakeFiles/playfair.dir/flags.make +lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o: ../lib/playfair/hand_garble.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/playfair.dir/hand_garble.c.o -c /home/julian/UxPlay/lib/playfair/hand_garble.c + +lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/playfair.dir/hand_garble.c.i" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/playfair/hand_garble.c > CMakeFiles/playfair.dir/hand_garble.c.i + +lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/playfair.dir/hand_garble.c.s" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/playfair/hand_garble.c -o CMakeFiles/playfair.dir/hand_garble.c.s + +lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o.requires: + +.PHONY : lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o.requires + +lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o.provides: lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o.requires + $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o.provides.build +.PHONY : lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o.provides + +lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o.provides.build: lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o + + +lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o: lib/playfair/CMakeFiles/playfair.dir/flags.make +lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o: ../lib/playfair/modified_md5.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/playfair.dir/modified_md5.c.o -c /home/julian/UxPlay/lib/playfair/modified_md5.c + +lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/playfair.dir/modified_md5.c.i" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/playfair/modified_md5.c > CMakeFiles/playfair.dir/modified_md5.c.i + +lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/playfair.dir/modified_md5.c.s" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/playfair/modified_md5.c -o CMakeFiles/playfair.dir/modified_md5.c.s + +lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o.requires: + +.PHONY : lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o.requires + +lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o.provides: lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o.requires + $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o.provides.build +.PHONY : lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o.provides + +lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o.provides.build: lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o + + +lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o: lib/playfair/CMakeFiles/playfair.dir/flags.make +lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o: ../lib/playfair/omg_hax.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building C object lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/playfair.dir/omg_hax.c.o -c /home/julian/UxPlay/lib/playfair/omg_hax.c + +lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/playfair.dir/omg_hax.c.i" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/playfair/omg_hax.c > CMakeFiles/playfair.dir/omg_hax.c.i + +lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/playfair.dir/omg_hax.c.s" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/playfair/omg_hax.c -o CMakeFiles/playfair.dir/omg_hax.c.s + +lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o.requires: + +.PHONY : lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o.requires + +lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o.provides: lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o.requires + $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o.provides.build +.PHONY : lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o.provides + +lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o.provides.build: lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o + + +lib/playfair/CMakeFiles/playfair.dir/playfair.c.o: lib/playfair/CMakeFiles/playfair.dir/flags.make +lib/playfair/CMakeFiles/playfair.dir/playfair.c.o: ../lib/playfair/playfair.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building C object lib/playfair/CMakeFiles/playfair.dir/playfair.c.o" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/playfair.dir/playfair.c.o -c /home/julian/UxPlay/lib/playfair/playfair.c + +lib/playfair/CMakeFiles/playfair.dir/playfair.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/playfair.dir/playfair.c.i" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/playfair/playfair.c > CMakeFiles/playfair.dir/playfair.c.i + +lib/playfair/CMakeFiles/playfair.dir/playfair.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/playfair.dir/playfair.c.s" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/playfair/playfair.c -o CMakeFiles/playfair.dir/playfair.c.s + +lib/playfair/CMakeFiles/playfair.dir/playfair.c.o.requires: + +.PHONY : lib/playfair/CMakeFiles/playfair.dir/playfair.c.o.requires + +lib/playfair/CMakeFiles/playfair.dir/playfair.c.o.provides: lib/playfair/CMakeFiles/playfair.dir/playfair.c.o.requires + $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/playfair.c.o.provides.build +.PHONY : lib/playfair/CMakeFiles/playfair.dir/playfair.c.o.provides + +lib/playfair/CMakeFiles/playfair.dir/playfair.c.o.provides.build: lib/playfair/CMakeFiles/playfair.dir/playfair.c.o + + +lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o: lib/playfair/CMakeFiles/playfair.dir/flags.make +lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o: ../lib/playfair/sap_hash.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building C object lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/playfair.dir/sap_hash.c.o -c /home/julian/UxPlay/lib/playfair/sap_hash.c + +lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/playfair.dir/sap_hash.c.i" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/playfair/sap_hash.c > CMakeFiles/playfair.dir/sap_hash.c.i + +lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/playfair.dir/sap_hash.c.s" + cd /home/julian/UxPlay/build/lib/playfair && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/playfair/sap_hash.c -o CMakeFiles/playfair.dir/sap_hash.c.s + +lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o.requires: + +.PHONY : lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o.requires + +lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o.provides: lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o.requires + $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o.provides.build +.PHONY : lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o.provides + +lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o.provides.build: lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o + + +# Object files for target playfair +playfair_OBJECTS = \ +"CMakeFiles/playfair.dir/hand_garble.c.o" \ +"CMakeFiles/playfair.dir/modified_md5.c.o" \ +"CMakeFiles/playfair.dir/omg_hax.c.o" \ +"CMakeFiles/playfair.dir/playfair.c.o" \ +"CMakeFiles/playfair.dir/sap_hash.c.o" + +# External object files for target playfair +playfair_EXTERNAL_OBJECTS = + +lib/playfair/libplayfair.a: lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o +lib/playfair/libplayfair.a: lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o +lib/playfair/libplayfair.a: lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o +lib/playfair/libplayfair.a: lib/playfair/CMakeFiles/playfair.dir/playfair.c.o +lib/playfair/libplayfair.a: lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o +lib/playfair/libplayfair.a: lib/playfair/CMakeFiles/playfair.dir/build.make +lib/playfair/libplayfair.a: lib/playfair/CMakeFiles/playfair.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Linking C static library libplayfair.a" + cd /home/julian/UxPlay/build/lib/playfair && $(CMAKE_COMMAND) -P CMakeFiles/playfair.dir/cmake_clean_target.cmake + cd /home/julian/UxPlay/build/lib/playfair && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/playfair.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +lib/playfair/CMakeFiles/playfair.dir/build: lib/playfair/libplayfair.a + +.PHONY : lib/playfair/CMakeFiles/playfair.dir/build + +lib/playfair/CMakeFiles/playfair.dir/requires: lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o.requires +lib/playfair/CMakeFiles/playfair.dir/requires: lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o.requires +lib/playfair/CMakeFiles/playfair.dir/requires: lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o.requires +lib/playfair/CMakeFiles/playfair.dir/requires: lib/playfair/CMakeFiles/playfair.dir/playfair.c.o.requires +lib/playfair/CMakeFiles/playfair.dir/requires: lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o.requires + +.PHONY : lib/playfair/CMakeFiles/playfair.dir/requires + +lib/playfair/CMakeFiles/playfair.dir/clean: + cd /home/julian/UxPlay/build/lib/playfair && $(CMAKE_COMMAND) -P CMakeFiles/playfair.dir/cmake_clean.cmake +.PHONY : lib/playfair/CMakeFiles/playfair.dir/clean + +lib/playfair/CMakeFiles/playfair.dir/depend: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/julian/UxPlay /home/julian/UxPlay/lib/playfair /home/julian/UxPlay/build /home/julian/UxPlay/build/lib/playfair /home/julian/UxPlay/build/lib/playfair/CMakeFiles/playfair.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : lib/playfair/CMakeFiles/playfair.dir/depend + diff --git a/build/lib/playfair/CMakeFiles/playfair.dir/cmake_clean.cmake b/build/lib/playfair/CMakeFiles/playfair.dir/cmake_clean.cmake new file mode 100644 index 0000000..15e5689 --- /dev/null +++ b/build/lib/playfair/CMakeFiles/playfair.dir/cmake_clean.cmake @@ -0,0 +1,14 @@ +file(REMOVE_RECURSE + "CMakeFiles/playfair.dir/hand_garble.c.o" + "CMakeFiles/playfair.dir/modified_md5.c.o" + "CMakeFiles/playfair.dir/omg_hax.c.o" + "CMakeFiles/playfair.dir/playfair.c.o" + "CMakeFiles/playfair.dir/sap_hash.c.o" + "libplayfair.pdb" + "libplayfair.a" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/playfair.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/lib/playfair/CMakeFiles/playfair.dir/cmake_clean_target.cmake b/build/lib/playfair/CMakeFiles/playfair.dir/cmake_clean_target.cmake new file mode 100644 index 0000000..4837e6f --- /dev/null +++ b/build/lib/playfair/CMakeFiles/playfair.dir/cmake_clean_target.cmake @@ -0,0 +1,3 @@ +file(REMOVE_RECURSE + "libplayfair.a" +) diff --git a/build/lib/playfair/CMakeFiles/playfair.dir/depend.internal b/build/lib/playfair/CMakeFiles/playfair.dir/depend.internal new file mode 100644 index 0000000..56d3e00 --- /dev/null +++ b/build/lib/playfair/CMakeFiles/playfair.dir/depend.internal @@ -0,0 +1,15 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o + /home/julian/UxPlay/lib/playfair/hand_garble.c +lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o + /home/julian/UxPlay/lib/playfair/modified_md5.c +lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o + /home/julian/UxPlay/lib/playfair/omg_hax.c + /home/julian/UxPlay/lib/playfair/omg_hax.h +lib/playfair/CMakeFiles/playfair.dir/playfair.c.o + /home/julian/UxPlay/lib/playfair/playfair.c + /home/julian/UxPlay/lib/playfair/playfair.h +lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o + /home/julian/UxPlay/lib/playfair/sap_hash.c diff --git a/build/lib/playfair/CMakeFiles/playfair.dir/depend.make b/build/lib/playfair/CMakeFiles/playfair.dir/depend.make new file mode 100644 index 0000000..9e36d93 --- /dev/null +++ b/build/lib/playfair/CMakeFiles/playfair.dir/depend.make @@ -0,0 +1,15 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o: ../lib/playfair/hand_garble.c + +lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o: ../lib/playfair/modified_md5.c + +lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o: ../lib/playfair/omg_hax.c +lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o: ../lib/playfair/omg_hax.h + +lib/playfair/CMakeFiles/playfair.dir/playfair.c.o: ../lib/playfair/playfair.c +lib/playfair/CMakeFiles/playfair.dir/playfair.c.o: ../lib/playfair/playfair.h + +lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o: ../lib/playfair/sap_hash.c + diff --git a/build/lib/playfair/CMakeFiles/playfair.dir/flags.make b/build/lib/playfair/CMakeFiles/playfair.dir/flags.make new file mode 100644 index 0000000..1fc5f69 --- /dev/null +++ b/build/lib/playfair/CMakeFiles/playfair.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# compile C with /usr/bin/cc +C_FLAGS = + +C_DEFINES = + +C_INCLUDES = -I/home/julian/UxPlay/lib/playfair/. + diff --git a/build/lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o b/build/lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o new file mode 100644 index 0000000000000000000000000000000000000000..97396129cf33b960c9cdff8345255240c76403cd GIT binary patch literal 24056 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 cSJH{`QF2pF%G#w1`$N_)q5%e$ z8gHI83t`DV7{fDl0peNv0{#Izu2(6nvMthY*R z66SyM>#gb9{E?dr4W`jx8VyQr1}#>p#hPB=2oB4v8BppP+bY?i8J7ETlF6kgJ6)t~ zq(E(}XcK1508_C2C^GykpuK-g1nH*d{=5c|cWH-H=fIScY_ zkefi>0dgMXd$7MT*mOFIQIT)0X6blY@UnD&S@5y+2@r0jPr@e_geHrnH8!t%L7m66ZvHGnIv%@ym7$<%LVBP3EdJvb^nwvGmrhml2x zno15^g~MB;8~y^z#?%5PmawmIkV2&{OXH4FEh&#kyPr}xkm&=A%Y(P2iR&d-W%EB7|+63 ztc)+a76yL(t%k8!8G15V2Ez~IIT(wTmw?YxFiaTFz*wvd`9&H9SB)OFkC^O@!y!KQ7E0+n8Pb|mAY{lqxwH`e%;ddJ{()dPkD=|%i# zTjBqtYUlDLhrs|u)V+Z?P$m6gp(b@WEC22}|5H-`ysi(;>A#TrO8(cSev9rO7yd5+ z_OsM~kHuB%)0D?^y+#;Gz1svSfSUfrzk!{4kLxcfLOk&2Mjn1U7HT~F*16$$n-`LY zVCEN+hu@z0INr;Z`hM_0K=@WxY5V830}OMFxRTY3wL!ccW+YwM#!*6e&47Pd;$KUg*9!P;Fz^gcdItbEe0K$$3=Bp4di!G0@IZ8X zu!kh#eZ5K2K{^Q~yU6fRKS_KLIWfkfFaXej@K%= zj~xoM)oBd~Sff@Q1U`I4az{yn_FGzp2PsEU%J@7Ta(7y?l8kMB~CJjSY9Y@W09~G~gu2YH9K^NPD z5_9f9p!^-d6|BPU2ga>_NBRG3gj|+}SU>bt{wgmR-nllq1h9Dl73BJO9T0N*Bj&6f dK*THWPZ$M_9LM3mLtXu`i2+5#RQ`1O{|AgXftCOO literal 0 HcmV?d00001 diff --git a/build/lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o b/build/lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o new file mode 100644 index 0000000000000000000000000000000000000000..6f882b057ab9d2d8ae1f7fa5f912ee026ba68ebb GIT binary patch literal 124704 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

>Ski=K%U7l;g=U#6w@AE&ti*;xNo4q=OSo<8U zMHi(37gA2uq{e$D{VL;tGTV=?viae-M3P@U+%)%YnxoITmuQh5*$aSF(G$Y<#2lg4 z^0eRU8gW0+D!KOtQ@Hd~rzz*<3d(LsH-szMb9pIcIV^%!Gv>D4HIL=I0Sk@|0$GVC3ADarkuzQp_F!eS(*NI* z+q}_bw~3zYk10LDA0t&6de3s?hUOy?N?kY@IG27GoexLr^wHieUY}Fdb|GcU@I`Lu z6NQBb@1fbVGciDgVz#tlTW0x4kne(eBkc*f3ZV9v0qWWZ{G34I`le?(iNswD)yQRV zt`9~F^`pYQugLd*pkgabmU-G6&dGSTJ?oP7a@%znc0?Qj?k}LIr7S;Bxb7gQU?S<~ z4?~ozx`9_Osu^9gEf7=Jsg`8>7c3ZKL6Ti}L!e6!FrxnoOHJRVgxGXB*(!(AA(j;l z#MaU6>+GTlxU%rYd(}P{F*D{|iTnqkpDBsdvGeF( z9es$3(Z+*=qYUMY29#XRBoYO8G_s~zq`1z!;Z)I6s2(1ibP7TcsH)o@`3-M>XKF=; z#RSMs<(mFbWByevnsH&gX9wF^Z8iLX5??0zz};@sGxR^gVeMo^B6nI1*BEo*(m!Z2 zfOrY8H>jL`qb^dL_+H8T9HFz=euLyV&}=osShCa*;1Q zjA*pGz+_r_-V)JYAcn$YL_(U4NjK`WTx*Kn*HF5mq#qIoZVS)I;-*R=Ju|5Oij)pew7Wef;)@l8?i4;#{)c@I=a-pi~Men(q*&BdJI=zHRbx zv#7=aAX|CBQz{KTXN?1L{)*x3*(SvKJbdnuwS$g~Phq%alo$B$kbpT1*4N6D?Sr?T zVgItwih4&kMY{mbejexBV12#5@w-nl~b+?GztfjuZ#${INYzjKw-(?KNb0}G{UnG9 zlZnFP)Y!GJ{xAjXN1VW)1!s&8i^o3r8X$g;$)FND@XS`IBMc~G2w0pgG!w+`D_2Xm zQObmo(<7%hGF^bIIyDLwA3%fTg7NQ==)`$3Y(!WU*0pG>U|Ys>Zx9uXqk}z>d}4_U zuVhXamA#GbQ7CHj>RMw)n?eOrY?(CP-oqMpw!Yc5OK!!;u>_MN_kguD!wptW+6H)L z@dxeMAoceVl%x!$&xCplc4;dT34b{|$Sk@@ujSLBLGI-vFhTjuWl*=nL(`0JuuK%r&d084&8ac#23km2z$As zmXADvKEuJQO7tD}B>CCQ1Tk_?W7=5(x;dMi$CXA<+%W`Hda{?-{kNRl&NJ8WAcsNj zpe+nYJ74zfw*L#nvS^)+druV~=aH)^o#|e6n`>!|t zP4~0j*-B{0A}Py>DaRIgqXef@5a2sT8fi9T*fC8){jWtTNCBFyApPQ$>}GOWF{Nlt zlGrCyrzsED%vwqHs4K+F@^`Un6w@7*H6w}BHu#iwm(;v!4TE!nB>rD+@^&Elb=zr*`F241dE zK-|TXZ68-}WlL$p6mS{(ahjevaF&A!YtGWv70BEn_A0up3hjRM4GacWTJ4}avDe=B zyy!$;VZqP?{i%k!Iyb%ru6(NXHcuHT!oVxQACVyLpN8lSCP{+Oc9bSSh}Noc{fKaw zUAi{o*K=d&`Yy}gu|$vHPH`n2Q4-e=X=l52^C|xz&Wz0f6zh?WBC?TWEvnTg@7X3W zU!4f8`=UDD9a)NuEM(BTzSOV@3VunKc$eHEMRn=c7f%X_ZErX6Fz0^bnAH@P)(JC= zya}rMw+(VR==K3OwNM2IhT^iLR1(3(ZwS1!(V&cGPZ1`PfxUMVl zX#8#3BMn|k0y%ec9WJR3c(W}}Hj_^9T2!m)B{CwtD_v5@W;D@+s43m0>`Ql+nih`I zfG$Ge%9Stq4E%y_SUBAGImVQM`#WJOa{r}Nc>@2Ch#bJaAlE_5A7(Si*HUB4VhBP# z%`q?S)J{2n{SNAU4yhv)W+HjS;<5_>w&wi}7OePci9g2htUoUT(3&=r`*lzfZ?O&G zp0#hdT9~FgPsA06-s#StiiH16uE~!6d-;Mp)4~SnsW*DJx-)LWXbf=ZpCR+=qRZ~J zxn?f^kUVB>;3MLujTFuyK(M`CRV&%D`u-Q?Oi7qV1&8$1FWLjK3^GrQC&hb^dZ~6) zL5aS8L+@79j5ahE(@Pr3*I2cH(tkJ7Qms1g@peeDxJ>01z3h&Ll&caueyK%kEp=9K z^hfTC{@8K`$);2~C_jzwFw+D_0B?CTpxSTdadiinU=VRbIj#G%zTSSu|& z%^Nm>kt(AD7q%`~-u;bLGz>8!BYcCB9Gn)NbwV4$ zIoaYMN!y?&gE3ajw2`fGXA5Fd532RQEJ>59rI z!tC2F{D>3*&3Cs=w*X_$te02%gkug@oywI%PnI2U`M0Q&=ouhGc70TuG&ezf{-j^2 zHrd?6$r?&~$y8J4Q~W@&0=?H$<1PHjXfIEhShlT3RQP7Q zksu<~Dqi7V-$0`{Pz%$|L+A@rl169t*3IX-CB%H0GfBptbbsN%aJBKtiH%uM`Q9@?%?x* z{MEKf>JsXN9yen`)dKts>6rOPX{4!}n^8@1oJHjpYqb|oWarr@0nV!-Gg_Sl#HmlO zYX#Jg1MnZd5xaQT=L8|;Qu``-B(&hEjK{~qxK?iv2n#3Z8{g+twZ=*luv;A-R-FXR!2;8}Hq=-x@~G?_f6=<4m>y^>zKiwFoMn+En4t zyg9lg$Ux~hyOkd+JOP6{X0AQ7Ei9b|L)L0lrYJuJ1}}ofO^oM`1j+ojW+xwqukz_4 zUsLU@umOGm4FpTk#WGTev)haLojxFY%{sl3(!WDg33QI-QFDsyM6;&h{;KVbSs@a5 zqG#r79ka9$fzGzLNPcsTvKAsZcdU`Bxq}}bprwR& zx*T+D)QaA&X;BMd(${Z!fPclyfb>qG8HG*y4tx-%>w`m_<908S<&YONrxV(;cOQo& zj|^vuzxAUWec59Rhy2fy_Qp0p-41dt>!0 zgZ!GDD3~QeE~3r7eILilaKtb>b6N=MKZnLklcj?AnRxWP;N4iBAUZS$1zd~cOf$tv zJgAp%`c-K}_jVjtjcn&83qbA{d2mvTC33PxgoyISB+2^63yz8(=E2 z4z>Qf&h6ofw?~EZUpW8PCE`^r8e(u?^G6I$s&!Mye*d}{q;B5bR?BM8AkDJuhah7^ zJ~we&KxOiCfle?6l24^CxxI&xXzfH<+;(J{B1wMwv7n42FgYDw6s(&7$M;Ic)RPv}g@$wBMiLkoG zH73rPd?|`dT>1lYA*%-5h7Gy-wNKw|L#pJmTfrLoAqOeRk23LI-cyO8KNaGLov^)H zW0rTd(It(iFe?1-o4!*(qF`UHZvonE)*^Y4PA{_`M+&W2BrBBGJVPO9KGEcN@N zAY4VwCOn}}bXr}Hq8|g8_3HEt`>4T}cp3N^(fOFF@WIXT{(bK_TSF>>#xRsA z{$j*F`cb2Qt1`qotFt?BO1D-RBqe`t7o}Q2bOQG#PPkr*cQ#4; zg^h8V8zym#P^#3-U~>lnxqx*(sVJ-c+`j|Z(CYJkXn$8#vd>BSSzt+cmlCRFSyUg; zF$IREN8InP@sTKx63r2!Q@&8KVIo#85Z#B>BgX2?bqcPJ&IyIPj*QJ$fi9474J55>|9nqLF9lWvYv zt34RcKdwdUvsiHnI8GCz2w{z9z#l_=w4^+`Fu_bPkTnRcV7~&#dEeGZ{r#J|-4~>a zRk1*Av%VnY_rxi?t0Ltriu;EaK9QqWkM;6m4DdVTQ>g$DSZC!Fo|q9dlxUko2`u|T ziWmz=Zk_pN&JV2thTPe@By6#}BAb4V?$l|4muW`TvFj z>vmuhG6P|lf)#ZCFbL2s&;EyG_bmuty+U5|MYYwwkvPqGJX2BJSmWitaQ0K%Xg<3HJAE`FY~h?^sB^RBm=;c7?Hr(gEXF*^xX6lyc*)d2=i*bU!1Y6>i} zLB({(rqmuM{xfQoNAOzNEJ^GREFm9;&A@uMr6?z*>J;J-@-Iqn7_8nw$ zun@K!F~|w}hL3In-p0-bk;(+0wQZrW*(kR56FuQ$%?f3S-;y51A^M8LhcSIp<98$N zcyNLK4Y@+>h1gSAqtplZ@0J>O3KmVg3@Z?F2<%kX^)PMx+`Ow%Jx@7lne(EDWTzA8 zb-n$uoJ%RehY@1{-Jj?4`Q4d7gzDvH2?TH30m4?>c zDz`tsUPtb(02%X^TSkIdMNw?BI=s@Y!EX1N-17ASwjAWtDDkciLClj56j$Fl?!A&A zRv{3=(CG+Ui93(1^-wcS-mxlz0vYW5O+$GdpxA1*8Bp}VT)S`RV}GFnxa5|W1t*tn zdYHy$kXbkUQ|K69uV@ifCSf#-ejE+5@Cs!cPSxUfqOIMdDJ2Ph@;egUmuL&hf{9sa^Rnf-%JoGp;~awJvbII5>nVNGC65&ay<}s^_*wh}X-!D~IkCE~FWllG_$jp^xlRnww<)g*?VSfk_9pA{(*8}6OXQ@W z{HW|hszAP(M%O=7t?IHk?Vpc>w5MZCe|#qXAQL6yq>RkHL01Y;s;>(lHpi`D(U^Z&dXQBKyqOe)S)n%)#Wkc);JH$J12RMz zsRC<tROypXVDxy*u9KWLMcQ z@TmWl#!a9y7-$#SPZVujY5pqEis>Jo*y=|_=nk>(#{%P`1gmPcLvW8W;ig-bxxGGM z0GU{+EmDQ6$!iPz3SAJyv^v7YWxJj+a60Wlk=y~6e)Ha&LXCGlJe`9kQi%B=u%?dp zom5^mg(UOkR*)Z+8gJGgk9@RatF)7 zA>0IMsbR*dRPb8YE*p$J>7Obq+!IJq#Tlph?wImNKk5+ni#ij#&>Q6x=yo&>7vLr& zS2LtnaQe(Yd!ZdWs?*u8&m`1Obs;lRX74F=W_H^MLvBjmtclAuXw*1|Y&KzoK)+%a z|JzcW!`vHAbs1OQLR|h&zF-i+;%c!p2$cyG0K4M0e}%W0CxNme@H!6=sy&)S9;vyd zAfqaLOnWEi2khU@Hq`=>V#bg7_E+j@Zi)&&(O?CB0r~waZI?%qHHypObsCuBxyZ|U z2n$ZZ@Kg2Z2Vb`kO576=@4{)qb=q;SUHm3ra-N;UmRgIF(}CtnKy^7u?wct!$GNh{h#M_mKa! zG6BJMRx*uMPE1dj8x{ZVsN;?}IPT4ooW9SBE!I$-8g4BD#iMxr`Ud;0HQ<}WyMwX# zWAC{&vx+bZvSd0L@(2@MM`iTOpiepqJZ;J zVh9l#pCk?UXhHwYzHV1+x2(7r0B+^m<_ig1@kK2Nb`}-0PW!3B+3N7G=uyB==?aGC z5H;fzipkFyUmIfuzi5_8tTXmv@>oL3;PbQ9PiR~UZn9xKM3Sd0FzRKPG zEz+5EASjHJQYvrkFgj|KZGt4W-H=h!lT23W=}h;p>PRPGwW~x@&=o*p!@KYL5qG43 zI&InEl=aCy3Uqzfz7(wZ+N|GS2#`)Y76B75rU`gq&o`qW{mL9UVSMkr(B&J%4S#fN z-7Bf{wC4*o<+T-l-ZRGl6|T05LbjtjnBEwt@G_b`+(7~H>el()L!*4A+mDM^iFfT} zPJpp)Zn`1e;HW{%-gwO>B#8)-rG5uUQE`O^vfRh~syZY{S-xwrCNyVK3lYNmg8HRi+U(ZoJ3v2h>>g9)0)M&E# zp-b>;s?jzZ7hN+9gUGYST%gL=IC^5X;#YEw)r*9sxwMb0EmS6Ll>5TjU_x)Pq6*ei z2-wY4ScNa9=S(mw1&l<}J06G{(CK?xr1O;{{0U?aejnhDbTL^F%qPSgmJuv<dLdzHsBu{xLA7FqHej5af$o4?FiR)UI@a1vTh>s zjX+E!MLzH;F)oe{OFH0`{S*U|z-6Hd`uO6~-*JS7g`Etv4#Y_`0Uf)4%;Qt-6Mp9m zCE6;1UZ?zPm`z*ntXnu^^r@;X13j8|QLuHb*crDFp#Le=GRcSz%=oS#O{%JgXhY7^ zJ`n}eoovE1^?t{e34Vs6E<&(gF9=i(X7IK@08Drn7oFOo*OyX9f89%~P_7Wfhz(A) zq$+(%0nabWR;tHsSAdkdute(`5kh%$CIR`5S~te4iqed!x$$@6lYGmCCtMnm!c-Hn zFHO7qkjG92AV79-2#;j@@0`61?-uu)d2zpnog+c)pGtV5hte|4QN7DJS}-0qL-#UW z-%{7CYcl_V-E8J0r|Y!V4`c%Th9EDLPmq}(BjV6gu(?L)HE=cc7Mg?E}__3F~646%)QXYr9ldltqYUj1NpD7Y* z6HL>1GeE=4OL=;>O?;5TzC7>u9~ZD7CvOm>%^`I%n1E1f?jeuGowPRTx5>}}6i;TVf074amxzw9>P{?S?s`9Sf=%-+`u~8 z{w|J4=cyzGL9$WzJQu_N(&L;q@QWZKG>71a#X@nh1|~}TB{?|T?_+I;nb4DVPfVG$ z;^YRn{P|Bo*2OHU^lGOb79H&xw~HXhcbn&f87D4-i-!Gy{Ddil+7$W5N^U9`f1!7n z(E=c8oCsR1GT;m^Jm_$m!?MISVhQ-Ryn0>UJWzM>@j}}6FF;LK>;`61F+!+D_R)^N zvqhj_?nNs_I0qZW$o};qtw-`H`KSZak$p?qiw|w5qB!`T2Im7~C4ZyH=^H3}sB#H0 z?9`NGii#EwStrV!rLTdb3EsNbFr!RV^QuHi!=V%y9Nz*K>n!kKdcY^EI@iX`oRBAa z^=lavJ!m|hl&cFG$v1OMaP;kD&t$N0JLH+u;}8nr64hJkc!r5S+*$6EqII9y>XxA! zaRg&Aay4eEv}6pF|8I&$p_DH-3&R&8 zx*6X;P2y%Zc)P%U;nuE*_{2r}542nqtYPfg%I|$(-k&!>xuP+sPD>FIAxQoW zlfj`04rjW|kj4T>J+1LunWOh7(r5b$iF1fETKudjbt}*lgj2>pg|UWSPG%M5Nj9}> zjOA_|vAtKnBp8pT>_}BIFozzUjx}%}u21f8)luZ_$o4VwiS8f@k-9ziWl+giU+|5| zj{^uwklJl z$8H67Pt?qUJiJoD&I)Bh*v-&s7!tte;<_`HVQ4)@U;hn*{GP?*{aQuK*f@?i zlGr)_ za{=a=ohSU?u z(IaGtUYy9dq$aCuv6VA0Vp=yTqX>s+UkxDX3=MPSGA^l?Y-W)<%V0B5Sc!Gb3;>XI4mpKMZHe19OtklZeajYmIHr0 zU~0aBSv1bMFHl*hpAmSLKGk9U5c8z$5?*i{=uUkH#ma^i{^RF2aL^@qXNUP7;)UZ$m&aZp|2BqDKQcAB*f; zw0Cuh^WPBq#qZV2R`k36)R0q677bT8l>~Q;hoGrA@NL>IQ-(6SuN1H(89xm5IoS`W z)q);{zicp!nVjvU1wG=gPZ%^1TdwkTvmGTr@G7`60PZy!%$(!#m-P(n=0%u=j{%wAY)Lf&iKM#E8s+p04-vH$bLx-xbk>fepkWavW1Oy>JiAnH2yYdam4QMp_?iEs9^g|joIAw?sn#%E0M4Dl5FEiyCwd408lzvua_DS%8qUmj z?Jb4;2FN+QvNvAx?l$@QpnCb|7pxmY8zAjcgo~g=3~{GI-Q`o3E#!X-YQvU{reABm z0t+KC)PV;bN~)@N^0`vp_wUpEkYzP~mCipqXTu-3FzP|}nvAxWH?;>&E*b5>^P9`Gt7vFmh$xqKD1XA)$wrOi zBscgu{DXU~8DP{~DfQx%kv#b#@cw;3$Mvy*Kl0L8o)S<5wm478T!jVS5SYy_l2$qq z6F)Cnsx1tn>=wMv>M9||4-c}26P<|W#bq&-LROC2Q?Othes@#vdK*>5R7_*i?+rn- z@inYRMN130A#ssIEpjKI-@X_Vo3x)~qiH#iVo2WZlvw<)F+oQGO=C(Ot2*zXoi+?~ zOFbqQ4vgS|2lp>y}oFcrGXnx+TJU+JKGIdicMd(zp_c8bx`=K{3Bs#8tJ4 zaFt2m0*{kI6uYvf2#Tk7b%_rlv@qy}J2v6PfpWg=$F6f1o{mvwNwRI{5u{wK8uRxttEfB~Q8ypiIa&K|BhNVq@b-s8yhL$T zX#moX4P=X|Yf>}5#Hnzuun!Nq$`xRhd=rC-Z1+}(-vUGLGIOHA4W-N%&?h{U0_PRf z|C3V%M%X1G+Ya_4in~8oDfD2%sNcxz##cmpUvfDD5JdhMF4tk{;#v#j6n|g+%0Oo< zkjjt62Y)b4^~K!bOMxV!le)MQtc;?jOj7?5>YNC5et@_%U$GhRMA|jfgUdE~RXopW z*dyZYp)#>l+Gx=?Zio1mNSmGJC0EsA3;P5mf>9~+9mZdeZeozVx9mW5F!M9UX60WP z%9sN#ZCH~8hd+=)s}=TyrhBVk(FlH@o#Wm}E!xJ=&O!{``dd!#jsdKp47+Zn9N}d5 zb2;4+$g>V)J{of_f3<5nqTRbWBlAvXsOESQJ>hHWQud`e)DQz(Qd36IpPwX!>a#Jk zNU*9JtRray-ct1wFKE2tTsn)T4aaEC;x{-N!M#n;20z92u*(DU=AEV*%T)^nG|MIz z!2(I{DE$gjH0rz`%%F#>x7Lo5wmf?5k>z5DqyF42_xS~y+Y&I=)NL_|WV=j3yBT_t zbn;w5C}Q1Aa=HWb{v!g%O&3qjtUW=M(jmBJQSJzi6(GFvJ9LqM?!k>i zgjo%L(*LEmUjXCuQY0{%)FjJgxLkq5bI*aLH8~XVFGt;(ZshV)fA_SBNT(t9SxelO zRys1q$QvLD>#55R{mAAeG^pKemQ?QUMJAHjbF)ryEJmkdw(7iBIJInVb$AN~vMAAQ z3ml)A0l&S@8qzM^mxy{!^5yB55_fU7rCSEQGQ2qBIA>A=!1)^lg#KyL)B2_qR$&xN z?bzsh9VX4-<7XX-Uo!QO(}^uAV?k=b2Z7&&NLFn@dBI*hHe;_&`^3D#ngy=mmK7SE zuc&96szNxS5IE=}h6=KK2$45;t=#&G5iAg;{ueL?T8wSREZqM)OG>-mvqT&VFM1^5 z^Rqgm*A)i90Ej_kflGbIHJtONsYZeC?5dRc3MFt6*>cZI?pXWsPC4f-jcK1`&}cK5 zQT`~`_kA*dDtUtd=MW6eAFq&(9x;X*Ep*6Pa-d3o{xoUX)QJY!0jxeQl~CsnlpJvB zzt#Lz$?E$N?gU|;%M_x#qg}cjL&s5-C?1$KO_c^4Dj#LF_-ThFVsg#Sw~e%qr_pN4 zSfR)k=cU5pN7A;3^U#|joBiD2=Hc>JGg0PgsGk=!$_=7}Vk@{-La7pWZ9=FLkWiU>gKJX#l0On2U&woqe%XSWt4*>4-iQ}Mt9TZi}`O&H?-GV(C5zXYbxBvV>+g~?j+ z`r(RN2!~wN4-%SPZWju4|0ltJSQLKt7+q|u{=jkdi4)gWV5_j zZ4C~nRosHw;=$8|^J?34@-dzLD=zpCkd5y17AZ%9iRLYT;X8@%CwVpAYzN;zm$!wv1!v@42cZobg8asTJWefChfvj>r;U!K5 zsCp{nB<)K^2A983BKA&9OQX#($5@XQysYHgS*Ri;?T9GUC-}9HN1Y!Un`KZgPbFf* zDJ{}G=BssBT$g+}I`boOpAxkFi6%~8l@~Aj=oESq|J9@o3B^ML?A&4U(Ei$-uzwkR zM8x;~Ve?SEM(+$ech^B05f`bKsxNOX@|;{xjN>t@yHzJBB|X(^?1v_w_u$Ts=#^rb zI>p9tH$M$sqXPecnF%JcFdQtRN@*-Vr~++XwWbhxQ}!49bBN;s+cF5TE9yIOea*#b zHz?^m*B9HP*^1Ofy}y_Q_0O6}?VCN!u+os!Ku>GAU3l;Vto}nzMFwQ8xBkcsR;Epb z8YgFoTocc=Bcb^qd?35sRU~iGa>vpOj&NpR0OmBGNxp+e%K78UhCvEtww-{E;lurw zTFE;$V_A{Gl=Gy#*dFQfTFfci8f7m;%7_;0?-jr}?L>9)nddsL3}z7qB?y^{wUNB{ z%-)JH*WekiCoGi3D%vrSGX##Q;$8$n3(2wnf;$TmFNII)Y+ZDA-C{y)Xo8$^$Gd<^ z^zn|8RACmvw(KL+BoC`qa^z4c`Xb*yIG$IQdyObyY7ZyUt5j2&~EzNgBu0093%)v!lf zO;g{IKxf9&aub{}Jdq~zIDvfmYVM>!j8!g^`J;#Kv*IZBrawR?q`q#``!##zkDz?^ zch74$q)CmQ(!^D8i6&k92&e6G@#wHfqfb5sRO{>=1)leX@R9QWshv?C zEQ5OXhU2>;cQP0JT>6q;Zg`JSNOuFP=U8=U524Z~nJ(8iG-<=!;I|@upu{@inmPx% zPGOhfLCrg>%00~arg_WH3X_xN9ta8`Y!%qLkMexfsSpW9oAm2`x@Fom1_gJ{o*RkG z@IqgwFi6;|Ec|E|jYUWmF4~`1kTmV13&eQUbN#1&0bNpkaMzx4E=Z91My zAR@O6Y{Q}n<;z{?Kr7sa-oLt{J3H6^*A_K0ON3J^XFws93;pA6&QxhmGp*&KFn zXW?3Ni6+0klm8G267kZ;W_}Q>g{W0`C660pb_i%|%`my=pNFKj;g%1+5tmf>m`+Qb zO7-ZAmUB!Z=j?+>8iZc#ib5Pvy9r{tQkQW2DLsLiA`H|4HA9YNDx|yL*PGZK<)fWV zzX8)V+5~0?>fRxHMCf>1uGe56-6b>J`jvOWXE9jt6!()rM&_;>O>`bY!@#tIy=tY- z16N=BG}p}0PV;BPFcH-itu-y0~cmTb`R$z@o_J zO}G!qB_ydYmXOK^dnJ|~++Pz+&Ger71bx`ouC!`lXV@Ajt4Kk<5Y39s58@A?I+Am5 zoRQINrF!~q!x>05eNg$5$CrgIQe{L;5LB{MJcyp0GV z#5C^lP4ixnMB`YQ9$myoAl}BZ55t>}=Yr6dO0E}M2q?w<>{gqF8^P?9ABr7lkU9W- z_r{sorTirt%*lWiLi6{f#p8aC3OfsF8&d08)OrT&w_>4M>oBk(Zna4QS5Ljy_?a-> zwYONsazJR&ED}G_2W_7;!T$7@$CN?UE6Xwui1^GPuc%Cis!aeEd7T%d*_1R!Q9XXC zO8pZ+34vU`Wf5E$uHwmj=)7{{>mFg0CfRcwN65!GOZczFa=8RDv>9Q!DmMl*Ntx6| zs|ikC;o_U2n4^pRM&@*lp7kM0fp>v4-Zp1494V#j{iRr4EDc?%!gY{K8tlP2+Ui98Uic$X?`Ss`(jn5+mht*Lt>Fj2v-&na#J!>KDmbY1U zCFV3oZ?clgI>gjSQ3rXH!~5aa{ab+Kk#7AG3a#WC7oGn~MnZvHNVQ_FE;x>P^>~Sx zlETh;B(o)3N@F&Bz{>SSM3-qT0xq(nDuFuoE_u4!jlEV>zf_9_v^vPwV1fs*)%>&G zhqTcDSuFLytXR6q4`pvLz2N5`;?|&ThRH`*JT!Pa{susPu3X|U);Z^es*1$ri((rK=eN?06HWH}+OG74Sdy$yt(Pa~cK5A$V zP3@Wj+?9lrfub~<>hpb_F|u!XuB-FzO%OsysaC)3=E+ZqJ7FGmxunF{uhnsx@Mm2(M1_lVeC^S8wqF?leg~8O0mrcgEZjBmDd*vrj?_(|K&xUxcb8I+VH=CD9lyn?LG&@*Y_Bb@ReaitPg4!{b)psES)A3zn7jm#<`sfO)Vkt++LP<Jn-%*vR;i=E!-ThCPADeH*%$Qjf1gLq&ZpQlAS#@xaz&Y9GLv}F`|3XK-Xplwh-B~eD zk_M#Cxvq_%F(Mr~6klX^BACBPu?LTYJZ*wJJ=R(Bw z+}?G{>cqe*G}&(xDB@gMCOZ7dzG@ysi+qfy1O3`e_<>T2cbAYhe?LqM(vE%6B^oWl zt0s%P;~$}i-lc`nDZY#k)E z+cVYtFHNywiKP zh`ajtA3;?z6$P3;-OcqK--=1}2%G+BG`+Vgu$e zPs(YCstIyFXrG{2*QPw!2d9tO5>jIRT6U8<7kv5_(`QNYbor;-6-@xa zO8XF!&w}ALigb`@DX(u^4}H0si>&?9;8z+*QH$GiG`5BM>n1kLY z^F;1xp8ZNoX!k+5FNL*HgxVNNkw8S6q0X!Oj&cuGi6rqALaElq1f&9}fqcDAH9Oj} zYISZI}W=r-@P5dA`v-Ya*(5l}IIcskUsMDS_@(k~la)Md(#s)S ziIh-^mxI1|^lsR{!+iaR&fxC@q!9MrI^(PiQ{I6b21U&){IQraL^A@=!utwIn<<^X z|5_nm%%dof5DWhBS5a#bvdVb87eeO3PN{9`;c}w@s`i|O7d3@{be7a~noA|_S^5@D zy?Pr*G;=oZ#_%#5}g?b74WKxQe2NbB~W|@|+GW0u9 zjzGl9tvyl$+qo1yCn1lBl|g*&c%shNeI%NOLO-hH6Aqb*W946K@SU=xM3eBT-w<(- zQMs+q!kCGZWxZ#&&6X>-Y%>c&>aJk?L6$w6-b|X0D#puRr@-b;Pm&q?7xP-IZo}JC z7$WCBa7+zJSOJr4c0x44Ab5^wyg>ke@sqnptSt~nx@Mf>+Gc$bH;=YM2%jFE%Sz7| zT3-9}HiC(r9Pi;G%PNKvihV!hyc(Q2-i|bN#UA*Ub3=JSmqq?C&VRhBbqZl?D=ERmfsL;i`+t_}C3RDa<7X?x!ybYox z=SwU7_%8WITR0`a-;q>bF#D-D?Qc2pkK+is(Fx%s!*`mFGAfb3XR?OyJ=U2Q2yA31 zYpzxhF8&O%V1{Y8)wEe{lE}ZemeD)Nrdi!A0pF5Lh~uaQ*N0AtK<4YKI#T_QTjSy8 z4qzOqHsO2H!iu#w#!O0s=0>_nmfQX*^D%Vw3qC+0OAM_?L%dRm#Tzy<`4U!ColPI{ zeA<)eNFXu$c|nzidK7$-yUJr{t1WGUvJafTkhJpNfnrchjnva9veZ}OkHXdJ?{FliAO^%o*BN#!yUi+ zpMpG=n5QM_{_e475uWR+_#H@OaXb@hAPCnNmRFkO7*nmN#9;Rh8@2^+QSpk zC%FhY2Sr5AFPU>$R;m$acx7zcY}2_Lo$ewP72w9Xy69ds zvEMa|$E?iiCsBvo+R`TvqIvf`x(-H3+n>pu5+9-zjIqa`@1LM$aoay%`kC>BB9 zFg7VCLQK*tNSJM3JZ;Tb5eRwe4L@@8OQh%sK1DrO-~cTfPMCSpILPZGUtX`ur%(tV zJ8m%b>#r`i!vPZ16r5FXm0xMoA&BR)y;7C?_`ZPc9x-GE&1TzQ`b_WUS}pTAnSG0J z#C#`=^a=^Ho%xJyV)Is{1fjcFdD{xhG0*U4| z01?RgM}yIWy8X`!^dagLzX5DfZ9b; zXNnQFNO=3}kxyNpFA&xs#x9@CNOvm1Sc_T~{p zexuZg#$tH`ItxP_aQTp9bat)cdBOuJrNeg|eeJ6#>%xtf*#PQTB1dkn$`iRw=NmJfh(U4$n=x zJ>3zZQ#gl3l;m}!nLiZoa16`yzDy%?XUwUIk-yn7j_B@M>Q^va&|eRa?Nzt}wnE8) zD0-O9HMF@Q*YJw#3Wm;-Pb%zENJjN{E;(U7!M8h3+9jQcryDkX1a76@9%WSdGMxQh zN!I1F;1F`2Bt#Ry7%hUmg!*brdv;@hn_?pA5?I502aE~4ZDGBnA3m>RwD3=UI=v~-TQLM*1 z`7NX2G(E!}t1yh$|B^f}CIUeUvxFWv=~VW!n~-uMZJj2EGMQcY>e|7>e!NKsjWwmc z3~>E6MnWYx)N0!FG~UK5xs&4@Q^cO;*Wz`cS^;8|6jG7R&SM2Tlud|eDUTrF{K@+S zxN7au+%q<{>WdQ7BBt36;6q@6cY)TMPd~9pPVO+&yZbR`${JUS9dvoM5y%F7x3?Au zt=I!{t2-^kg%{sdzYec>ZrvIb9}$09z=D_LoN>M(|0vER_bSQ>sAQ#<>E&MmXG=l# z$L`IeQ4Ont5@h)CElWfT=I~63|KIojagu3dF#Cyckgp2gcv+VJ&3%1=Yd@#u(QW`r z8?F_e51CQe$5q2-dvaKXcI}bM4hz@62=E2f1RvT-Y%-s{nEA!x+<+LAivM)bR%cF3 z=U8}FQn;o|{eil0&dao@Zd)w)jMf?M9yO6~NZx7_z!>EP0;FxM-kCrg??bnUzfd{4 z2WDTMMRAFC<~3Yk4f+>bv%|$aDzAc6&TI|smq!NM_>nmEW5QUyb~o$1RU!V4wkJuU zM4a%8Iy!}$P~w@FoRigZnhDucgERCZq;jc4rh0@%4^3zq{1C14#_M^_V@obU=_MK| zXl0Gl$DoJEeQE^3f!z-#=$?FaOTY-4X0Z{V3k1V)M&SRwcMywdR4owXBA?&f+86&11;HQ2x_1N@Dq_<-9@|JC}D7yCYnq#v0SN;deQ?JTDj z{e2>D4BKa!eTBqAg0|vr0p;e)BoAVoa$iZG(ISm_yRnGcMKa0mVh#L|U`7~2DZDyx zP5?GrThW#7d)OWeGjjyz*e9D!0ffXpFQfFph^D1L-ylw8-3uKvIn82|n9K0`uZVC5 z(7sF}16u_mFnE4z8g)SouGNqmOI?{brbaPx8BWKHsmcHOfd=n#W*0UGWt@f)@c1?i z)Tzjo6~OT;4qLlL+VnxO)47*C$$q$0RoGtV;k$MUROf81E@C~rh3|`X45_By#TyV7 zscTu z@1}&W1;RucL5-8BguDcs`Sqr1i#`E)1Yf{wBva7eSZZyeUT=r}WYzsC=R?nTzRgtf zvS=AUPt@tvU^~m*PGg98Em)wj)obe$p%-kx%UN^WzPA(8pQS`iE>4PW{1?~ZTd4qV zIyKrIb8t2YWtO?@jYaNL*K)*XZqlWDu@UtR_)PSt1kGZ!OKb10VD2ihDU;e%nqe8*fYpz6W7I ze0qIu!>`SH^)v&Es8*3aAO5=}%Gi|e;OQqWMUnb3$1%ywWZ@dLA5br>_|Ojn_DG_v z&Lb_Sx!Ro38Yq@Y3A~U82==A_jF@VMp>f_AxA}Bc5#kB2yY5x)_Lmlla#K2ExhRNQ zXV?*@dus_iQt6EDz5gn@cVD^Zau;sTC877vOM7sXb{b6wVQt2iAs%Z#b zZiRXRf}nPGRBzR@#=BXu0KP_x$r0;1|(2{2j)hlKFQ zIpQrwi{ICCY^~Lh6ZgfHYm$B2Ng_|K3{11B7ABK0U=^3>uX0qotuM--og8=&InIb% zf5nm}E=vj){Pl~x2!88R2L)pwfcHDzYqZd!rZKV2QQ@|#95Y+C-i!BKU`Wgl~!F6#%jb@z0S zrT|ctiPtQzc+Wb6c?~+kvYP1`)yhfdaB1S;O##b8*yM8>5VWbz%zL6?GKq}i(m?Y3 zqxNxbFUi76We&A+$ml_{nGa7zi7h^$ke1M#vYX6$t3GiIr`@HR?DxktT*tT(8(0SG z&f-@}2j^O;zxmv2v=i0~Q5<5|DJ~BKX~S8Il&BZ*;BM#@l*un>JU{ubg09ic=B~fk$}^1 zcdEWuc>@Rb&0YFw+F3h{hpjZLO;EoJ4POOJS{W{!2$T5kEKlDL-V`!KKd0MRV1oSt z8wr=AN@S%G=603}y8J=+oAi4mr2a;!6X_i)V&@guh-b_q0@OO1aziEYMgQ;fzoR!B z`Dlejx>BssPFKea2~$1QH?D!Z{XV@R8lE`J*ObVGdJ8s+{@WH{B44@GA#>5WonUeI zvLf*H#{@$(+%{yHdBAFxJa_6zwhP9=9(BZXa225@YFepwsH;Y=3g_cfh(9lX9+4ig zaIz!;Df&O2O1D7}S*Sl#1=caSV~!-y>2dINN^2chwOz8H{2qs)_Tkq7p#&POzDqD5 zuf{;tjMUr7%yBY`$pCQ;8)+WAQpr{$1ibZ7D}(Y_dl4?&E;5~+FV{`>16?cx51LEo=9>%-chX>N*IUGr;SIFj5qrt0%F57IX zMn}p__4BD@7)JH}dwJkqTrc}I&pdW%o39fD2zK+9kXJ;y=UmfW*#g;yv*IBb{^4aG zj59JDK=rqP^{Nax37Y)FECB+B{Aj+@6mc?W%*%qHiy`JqrjkKfD&K@9z(ir*>m&*VAt05YTPBV7%0pcM}^l6-Ps2` zQ#NK4?~=$Axon8vG)r5VIiEEg;ULqfrbjRL=;trE<1MzDM2wm61)twK6wFHGBTS(7 zzc=a#)2HgL7*v1CUJArjU8vV0kZ;AR@qTfR{Z|5p5Y%a3*>nulM_OxMB=or`#$+Qi zjF0xr_0HyyD~lQ6iC3oNgQEtM_r|i3+GE>BJ85xG3aX~K>2aU~7X-Yb=VaTEUVdSnMd3|If5Sus}gea4YPNmr1? zj>%lIXWl&U<-Io2PRs_SrjQ5t+Dp?FVv@X`jsAIl$8<8RDph`{?Kg8ZD(H}Lz0CFY z6VV?D5oNaZf*@1OAhF>TC@&jpoQpO1{!2|phZmo9uA`NPTE;w?Qj*hnxcU|_vfyL}+}Tr;>TQg82woJ}qk?Qh5Yqv2 zT8F3q7xCeJWHL;l_RiG$$a1yOq+7@*KbX-kBB;uLb9c09eSlY+8x6Zmz)ifZr}y8P zA`Bti{;UR)>feFk;zYSHZZ-}rKWHC@H<%vXaS_MD6vKRB0w4Ott8Qfq!IKTwWdqBV z*)o9ZGus~db)d8e5UYhD-^37rK(kEW& zmQ<{|RdXEvOYXSQd7XY5$@fnulf?a(%SuT-3UsSv55kt7IwjAg+#=gFk^pN4 z=S2nj;BRl*c`01pq1HPc^5kZN_S97|S#XEJ5;lz6PiF!{U$wl#^+7kH8cs|qY017O z__3h3rG^l{&evJF6_!g}ijUXIX*6bIjdGjG!tG0~A4NJ*or6<5qsVBzah9VP06g>n z6^$-vjuA$@EQ@N_Kabde=9a2Ulp)$Odcr?~*TnH{4zRHqF4xRl?z@oWw?HL-d`~8j zBmK{hCtwNGqW;KiDO1DeRrihI3A}lgBjPQa^I6#(MopVh=L|NTwdug^Pn3ZaX=ZP`B!hBN!#Yi&*UGN+AmOGePg$y#9+Gm z)H9~&N3;Lrof@IJpfSe9d(VpkmFcj)SyGgQ{!D7PmM46Gv_@RhH%!sOc;q%o1odlYC#?na4A(Mv_BG{gu&QT6Serx5rE#h7y1XK3 zD{+ym$SyIcR=%4Ymh`_tYw&*|BvGLX`BR-9BWQ}>RGVJ%s0Y|emV3l)5GVXxF={+I zyn+OQ21K{nWOvA?fEs>~0}K`pK>n=9v<=JLrRBcEvPtd{TkVt_b|xu^>+~<@ayTV3 zdOaVGG`*_7gdKQsm!r@E)gbQ@tJ>xT{`0479_I%*ov8250l$5K>K6PcFmguum)(px zf(e)o#!pbfRPpTP&l2H!23?t)KW$wg52rER^m)#0dB?$H3mmY zqWtKOsOM5eEAFoHAPL8@Q(Ce(@M4}x=~(mpJBj`=?(qfU%1n+iFZYB|o-^EAm?PqZ z2A$4v1so(ySpkVu5J1YB)@?031nb*JS(n{ZEds_nUNmeL7`>*Vsds4V*&5J)f{4!y zNe}p7%pzT{vQcHM6H)`OIk?zh`&p(uCG|JKU+&-GqoOFuf0Ra)yO}(8f2&DOco@Q6 zwJ^1Yq}8A|F4ez>OF<`k8fTh8aHjVO>bwB(Mrw~H3t;97&wEwwXyv=d2~ix~R_6?k z)1Lh(mS~K0HM4U^6QA%D7dqAck!^#nxNacRe2Gdxc`LNTI3JVz4r7tG>9W{O%Ynb~ z$EvCzWFLwt@A|@m^%gOr)LnpL#Z>2%tnB<4q6G+8~Bdw$mIHAA1;Y>U0J7zX8_oPNn3^_TqRC|}9)MoTow>K0nKI>~(kEWzssv&ZrZjvN?HBY4kf=ha zbH7EwthVHT$AEO@N6vE74iO#I!ieh>7op~E+>9nMA742{vq<#p1iC#|_fB0h;CgC= z_W67MzWgIijh?0kkjucvct)@yfozvP-Ri|~VXg?I{ZjB-sRQI^lG%9$8Z6r-tKO=Z zhF8PQ6V@m{7_6h%r)z9e{K=ZTD^*dlr>Z#fvr4TJiNkH!UDnhoLcV;cCS3R z2~t|j8 z)Lyg&q;qA~5g!y9^i#`;obQ)nAa*?LcdtaON1ZmUt*NiH^<*$WeDy~%Pkw`bkVE~y=l|b&9#^Tt63QQ#`y#pO9UAA}RP_a_ty>53fohR(fbL$$C&3juXJKzO zFeXHEV)oR)6FqHdr<{;Cume#u?dF&0acli!Aj!`TjC=eX&|s4JMub%*v}IU+)h@Bk z3NpWq;ODfAp4^xio zEt83dG`8>fpnm{%`i~prTuEly_q@fgWd8q1D{y?NaRAIXTQn|r313rhxm$i zRuy$`MT4|P$5Ey;1$vE}ko#Pva){|{aM>2EP(y_>N__+uxRoGkDGU=dubG+Le!>Y@ zyRoeewnvKes=;R^1^Dnb9S0+{HOB~dK-G!j>Hhiw)-J08ADS>D-((LsLH6d#Wp;mB z7*p!qM`5rHuj<0dD|J zx(J^q=dAX&KqFv!Lw1|ajZ|t+uONx7cfmgX2 zIoK}PkHQva=n)sUX^rBdXg-re4%0*}AnZtyUnTDDPf_%NS}XEmbe-Hzh79Ic_8~Wf zLrq3VrU9AT&b`GbCwZoDmwm2tlTh(J{Liqw23S547_6SRl==u%^4m*2p{R5c9a8^M zE166}m3>$Ye;{Z27>dp#emH0wrMjg8@bUqaGyFbNx0NJK<#A&W6)^CQ9FcoCWMkfps zFTV2fe0ZB1B`rRH1oPR*4rtq;gh0n$|4 zGy_w9wNTS6xNdUy%lw!7WS2Z|3hRr`< z<0Xr=sbah!nx##G)8ASp7^qL>dLjPyb^(Gzy1vPLT1* z^l1I-974)5`d2*F?06OiDpD;a>*vgKg|4!{sIhDhy$AR)M#>pI!o-0vYHaQgVe1us z7+6z?^ELAW0|qXrbKRERV(NZWaWAU1ZS92nSx#7%9@-C5G}v>JqKOe?O-gfrXDutS)Z`{5jkz}5YLh+;9K6l$669HD{;F9*W+r0k-Yw^w=hb` z7aF(f|KDk+f6`Np?3S_gsNifgicBdHlOQfw2VY1iUD2oR`$N1NP<_E!!w6!ZG6Q%x zoBCAMgRn376n2KDbs|E{)=w~Qhs0XkE2(J5ce`67;a)Yu6N2)Ia@l{Ct!fq(MJm|u z&#D1eKNqwwRxym}X*srJ-ZP8muO!g$x!ss;wPg;4T;I68x=kKZ^Lar03Js#o zCRLzGC)YM+fMEH?z@4&zmy*a)#nj`Pv}bcW0M5#!7mznWN|g5Tl!-T;ldLY{_2s&3 z8kOLo^A4hc@l4$?2Cq=2Be;dgD0aHf6e5UQS|H%D(i$xv> zlTR_OxX+}KXuU^R-0Vc{ht0A=z93^;LAP*ofn@RlC#;+4toBQ7J%o=rm~(=eB6np6 zutUdPryx8%^5k0xSpMG7*glL|xS5YA38{^jU&Zl)Ks>3V| z%=MHRV-D8|7pSNmZL-HQ+q5Ju%TVzzc%|e>mDB}hssd|NlVpF^L8Mlf=%UF-1)FAK zm`$}{$@qK}YPTbS>zs?Ig%k%k95H%9QwP0TZImLap&3Z0SG*nm5eG=#rW2VBiFo83 zYz;p}5rogeq4W2l-k-zEA0qgbY#NU9_y#_***Bkd!d$ab1x>L3(Yi_RUZrGfC$u-x zT<%w~=mCBZ&K(1#1wso~Y;A7dIOdf@(>)sWD z0l5~$Et7BpApI`pSB`iZ8)aC|t6V@siaqEfnrGs1^}kz}PBn<) zxSaK<`7`akBwIbdrFF>QE?|C_yJzie)NmueQkI30hZZx+Wh6%s4}s*1#TWnsY7gbc=KZ#^a8e^y!Pp~7alNwYw}wywe;-Qr2C$rY(EXGU{5p-J z7@iYNG5@9NE1(hjcqM2H++d!1g2P3HvE^w7;^E9A2xXgfSWcMMC5nH%wvXNZkGykO z5JgwCVB5BB+qP}nwr%gWZQHhO+qV0i_Z@ebS;on#DyW88y$oT$vP|gx$R)R@PU#?q z^NSiXov&Mi{`xKe{59%br*X7 z)$wSzeEDHn;T)l~r;-jWlj2$p^shh7nA3;kBL-YwYz4Cb-mJ_7Ln`uiQgYz){ z`jp3@`*C`t#?w}db)Qjg>>$_2c&^x&BBL?Xfh{aJplQzX6CdLXR|U(5&sKsrC}atQg(_X@U72BsEA2$5uD}K{aM_P5S(#?7$4Cp5{_{SBcHWHcX4lJdTOP?J2~8C?5Ul@u*FAA1%v6nO zw2;1T4p@$Pa^SDc3Ams;*Uz!;zd4)}VV8}}o_JbN~lXVVV3jLYx# z6;52}u-{SBQaS(oj0K?tGHL696Ffak5wK$(-q?S{WAv9K$p{Yeh@@|ZxR5BfEsMZ{ zsckPZZE`F{=z9qF{N2$c%({u{s(V=l$?R`hdZh6>1 zGP9B4KU!j2!%{%A?O~o#ficC|m87h^0y#Nc*iI5{|8nqq^XV^ktW~#+N+q$*N$azk z9-l88T%nMo1BPo-HC8IBD8GFY!DPXnT$cqGxO{OL-f2{Wh=b&yLa2hZLzd=#ZKEC8 zBi(Ecr3U)hm*@^;J@cghE+PDL9z``cC7xpXP1aLHC-C+DrzLoUaqIyGA05t~rxAdU zJBuisY2INmVN#bM_VL_0b`4!Wr=Kq5Uz!DV5V7d~*d-OrcyV4$uKRgsIMC1uh?ilS z!1L{Ivm1%v-q!bDw3#i#%&9T|Kugx{d6=QsxDdPmz_Xs zA*CB9G2GZ^Y&wnCiy^-QGUCaVdd^l|)Wr_jVRbTEj7_7kT|w=AqKq{sz&}&sdtg0K z38V`yNJlRV*Ww~rzE#(XhM4>s48W1HUXG>65W_QdO{JhZFFkC8;}$Rq7=VbT)Fb70!PZ3sb!aIaQDo%|WRE(Goni zf|cm1|4e@j#fc^<_I50kyTRK}_^{PS3R*QD@X!Y6NT88-!xwoP;q17x0r(il zf;aHd9$;c0bqQnF&#jr}h{6*l9To=>Sx}E%i|%v!(DnYM=|YABpLc+G4V{b^Qo-c9 z=hYB#jcQZ~kQ@S+vf#rzFD`qev?HO^o6UB}Rj{vZ(%j!Ap7hS6gn#=IKtHT!-GS%? zdW!$Fe7#SJQ4M~RrrD+`-`Je)h*kaGTZ=WXDS+G@&;hHMSm5M-fiH3}V#A6E?$U+h$U> zisGb;P5M`F=w~`bi_@N+*Jcb4QXIXj6zC50wKDO=ksWZB7Q2^!67K>mIP9QN{t3v! z`>8fUx}6e!jp7qEX)s#PN&`J{MJOnu<{k^Ht$RQKx0jt^-wH**fO>0ZvxLmx;RKsx z2q2kHT6cbmCRN`Jx4h|0H$nXOdXN=;2$|mg;IeSZ6dI!!XZJnJxWIr*0v#i^b2^*7SvbzN8>f(@J&Q;VvLsd!#GZi zqNJ;t=-~&iKFc7rgKq|YUO~0DcyRjOC6?g-?CV_PR5p|nX{C~!Ye7CWXW6|vP`m^{ zD@$#lRu5ZMnXiZ?et)wyfx*sP5KbEPFHL1he|0YUiC2MM_uVyNlj5;lq)QMK;(Q zl2g6xw~?eEX}B-l(4mOfCr9uZ&YxjKyjN$zc++*J)MD+jooZR&Oo1BQJUIe7dvWK~ z7WixhpkL~r(8DJx;po<%UZyFv^AK^urNV#*H1tDb558c0etfAWD8k&C*1ZV{T>qz` zL;X7+>t(JdlOI3umPyXbGs^xCs#X0JZ3&aDxDf#icMEn7qZUw}b4ONt=6U&KZUBQzVb+_vOi|mp6aWOr8V>U~=x}b(Kcg_UaiWt7_{72CyJHB3z}fe2RKP3 zuE|P$lvV_J9agK)`$K%4MZW{*<+*!;ZS!doU!ELX zgSiGagCKA@hxoT*M2o#Y+K-J4XaFhRs7p`fyf!{tDhBMutE?Dq+kYv0=3pStzXH*- zow?uRj87c_!0GNq3Z~6%Ct=z?bf_1EK{sh7==C_p5Qx=f#I!?W$Pu2k{nCmWvzVx_ zBCg?H%B#dD9Nk@NGE^iO`9_myfXHyoFlBZ_-`soytL!Cy?i>jsRt56sjgGzKLXi)B zJ(ZH%CJ;<|-s_<;Rp$jiQ@eJ{N0t@W6tDUqaJ9*|bdOl?YNHt~8sg&GiCOikDaTMr z!oV#d>m&GoCv;#a<6T)d1Op^enFnPUyx91N2Mb9@O%8h@&W`{N73Wm&ki zIH3Hl0Bld>yMb3C(yTys7V;tI=(;b-6^{g5HuV>mEK6o;AWreV)sEYt|LM(&4n7v& zRUTlGZF8}R5@n;HQnnyc^}k6vek7Pa@0MNailI?T@T4}?W1Fn-<8q#j#%j-+DGW|B z?NPk~=riO7#M)>7tJt>1Xk~}5vPUDNE2X(lA3K9yj`Xi-^P+M8ukZg7m{7t#=t=mKU7IK#xR+U?(Zzc8KN#T`wbxE3aNm_?ThC(KOpOTE11WFWDylrnUT7BJcl{SJ$?oNa035Y?z&tPLo+l7!yVdzj z21H=LS;O`9u>M`iXs)?~!?cwX?@@)xj1TnXY1|7yZmx^x>xQfr!PWWk1*%(612{6L zL%2^HwukD=lg;S(u-2o}y^6$U?pxD?l~V9-jQYCKhWAHd0XH#8&i!*;yZM`4u9&oO zVEm3b!~nXy7IMaoC+8X=cog$C;y&*MZ00yUCM;W2=6r!Un@`QiQS0uUN`iWh!`vzy zqOrZjMk6KS@efkzV(4hIY&8Z~l&wur(5gOyhpzEJ0yRJ%zKFalPIQ^Dw=+rE4Q8Rl zhuwa9GZj9NQ`L*m90WNLEs+XnWHd5^BzL3lv%s$58$wV1DYk8oiHyFJBm$2=Dsj-w22W5WYaag?35`a! z7Rl1t7KYswh@^V7r_Md5;RGu5blMqo9?yme)Hdy&(2yo-M)Y7b`fX*F=@_b3`;bpZ zPq4!fKY23Lijh(TIM5xH3lS{9Vk%jPuOs+=LD)c9N%E`xG|v1HZOHp;x${L`<95>z zQ{eFKY3gG!2exgjOjebIyPr$jD~-anyd0w-B*RB?n8{By_-Ad!K)V^f{)P=%ex{;V z;R6kCf{X?jd)0pfG=fzbpo|+7>bdQZh<1{-Wx@oj^45?P znpu|<9eVPa)C_Lj>fq)`UqY6vDYs<_0IK6vQI+UzBgENGU9=)>{5Oe?g>{ZE9k@^L z4}TMZzorWl9%T_^6tN6KjA2&N_B@~GG3N|Pnz-Q#kis;wXqdOSVBij0DqODWo?s?A z{>w(B(C=Y^E4`OSIW#VXZx1s_`=4JfVb8UtS&}mjS)_P^{P*T_%A5gVki= zF+@Pc%?O;Ag97p29Mu$<43uL5{elF7C%~X8YwH`v$L~ykyk_y4jnS3CcDrq(v}67nH zO(`yr?LU)ops@Id1+-o`@#IvfM^e)W{=SR>+mRSjz!C&p>47r(a; z@^@NEeBk|EJe0#4LD3^N9cenvsIsww%WbZ3LISF-gc&b$Md8Gr4rNm$WyQ<&_$dk5+&Wu`L=q>l@|CfcKyE+9@HGiyDS9{tJaZ|B)vW@mgBsQ z|MmXIlk5>2J(K0)V;nmO~wz=cx8d=qzcJ zmt}tRws^e&>vBnmhS&B*bD5mG1ScnEiW<6_fX zLo?92F>1L%E&Ofu^FWr}o>Q@U4M&(&%J!MUe@O5QGMr3XvQ`DKSi4&46g^;1(v?S= zG8yfG;*yey?_KcWj%ozSFeCwj{hE%X>Cg9asbB5}MPP@9UIyCNyA3{UbnL=SH>m%4 zJ|VWn%cJv3k^nBBX#p6C3sxQ?GrCRDK7GTt zdL)+84R{dzX4NE!1?*>(Dt5D@Ys`<-YTy~H5g}P_wz~4UV}#1d&V2z2yC5iHbNP__ z&&>)~(R{&}(SR@N679jvrznZNJ|5phXBTlP&?P$C({sa1HKsF;fj=C8#vf=v%5N<_ zF-8^P-u3pBbkd=hVOD-V57Wi?!dM--t$(XN#)nGMB>lMaLX4Au-Wc-A_pe4+o)y!eq0SxHlAR zMyGfG8r*j6$e&*=G z=rhsAC*dQ%ebKjwCVt!7nmiJdPkKl;^VwfwZh(aQSvjC#kQA%EQt;9;#M5Od{fz^9 z{ak`(2uXw0c&Oz#FUQITqPn%t1O=qJ?rX5X8HpcvHl%Im47?pm-LI*ptfNh8voR%> zFT%`{OdEZcM3{Ix>(}NbTUP9|)cNy9bX-Vqsa z@%oqc6|o-lYLMaq;fuWwMV6cLep5kC3#r}CW~F0YYkN?{Xcq%+oQ+ucA`Sn3$TQH# znW!{K?K|8rCHu62NR%_J993@1MYX1{wvW^NuXjcukIOCZx>hJuIHhd+L>it|?sSEda?ZEmOo2 z4v9Da$9)^?Kof9ysa5U7gOVvvrrU{v4{GfJ_-MUW9 z(M@e=qq^IuX3_xvB_BUA!$qK^OYi>!L<+5#?=gb05Yx&kabeew#0|0R@jaVV#2Sa&Z%cvXlH#Nz%pHRAmua%1ywEMo4&=U<-O%r(4L^sUC;OTg< zEt+l>#&X*4RPbb3e@wA?xlibo!d}JyEO5-;+^ytAeWK3~FdjH_h1y=5HV+fn0vabD z^Ehr{;Gd)t^`FO^K>L?_e&XYe!#?DRX~~@Q)uXs^-<+*ZObO{#n(CaWkE%@Z?iPV4 zNuZepV{=z4m|vEhu?q0h%gWuz8G68Sg+w#AWJtHZ_(>lbn{pVQU<++6CjE*)hJJc| zQ`HKn#YtUy|17U$lzfQ_PL%E7mc4^pmMz$+{@JLt5DJEEl#tpc`3^i3N>c)0@H-S8At zA@>r6wFAy|v@2gclg8Bc3qR^oU2|cC(N{?l^86>Fo!wzTmKaM6LW9z#4-^JXD_nHt z%jBgwO8LS^pfj(6z}xKtj+y^#{4ecc#^D$dn41vLI@jKU|9;n8_x9pXd&*f=0CgRP zM{71;G9GCnL<6C^R z3G-S3E^=f2Bc#7ib9v1$-fZnsU4Nv^7fFL#rrnTq`_8#j_#nCl>?L)GnzC)m2bv{D zYx;6EIh-G8=?25fJH#pl_F_gV=ceg|xXl<<6Hbh}w;mha^pO>PZ!lPosH<7rHr5HL zL}l0OcZDD;yW$f@2v`pL^hBQr2~$QUQ41VA>hBmSte1Glp9@Wz~V$^}42` z#U~z7adJs_*mOs{RIWLP($8Z|*V@7>uVU@73@w6mM(_%xf^w|Y-d)cW+c4_5DG#vf zC6t1@4NlpU@huC~QYkx$?3N$8 z9_+sj9pcsMA}LI;x+ zSZJ$6s+n}HIMv}nnhhOIETb%gLVy-C8^}3*r|BZP9_F>1FxiUky^#ee%W9W*h+wYc zTt(F$J7G8H9h|d?&oqw{D69(p#fJKqNErmU%*g~&5N)&OBSFKnuTp(^zYxOv)fRC& z?vE8;c*Z4BQBJ(qt+G8Ne8KAjz)N0V$%vu5!_bF-U1kq5O#3f6P*Vy<_5fv6qsG{A z^^q&@PTZv2U~j&48+9Ps`ZCHemxnx_=q&5Mm^$Ny;`!4h#bAEPnom?j%fdvl=-sIs zRX~G3Tc}d~HSWzy;AGEjY(KR#e;jR+?|YaJ)jVt@8<}Y0q)kZZWal__P=_6#nj58% zuJ@(Fed(=Y{6=fFnCut4__|Z$(I3(@JxS*F?-kdtTPW1pl3x{M&53z~gG?NuQV>2G zTyQVUzM?~Vea5K;PX2%SvpUZgXitPG);Ha0!6;%Ff8)hoLdT3oo(=FW#-#YWfy zdXPGyEtg|{njKjZ(#XcOcdj|%zCqVJ&RQky2*(??eT44CKb~dOxw0I+-bq%a(_oPD z9;Cz*K$tB8-2{5-OMCWX0PEtSsgl@({09vGc;3eG3aW4Onw8Jf!27Yte}|Mh=A-B< zkC3)38|t6^K?~bBGcFD_#Z=05AGrHk$It1*+5Kwj7}lts3YIc_)+|++Gq+&2%6827lO9uQY38 zW!M-hsY*k<5KoKG_TvqpIFNB|oRQORC42a6!kapw8#LwqrZ1fU_hMioA67gI>sfeJ zg#;k6q;e8b{?WBKCo(PazKsYV#@6rgPx4%mM&VkU99_gkB3#F?4Z@j?W`oicORN@J z3M$8cZ&#X!8N=?B?gQF)`mnTt(Flyf5xL?uI)&Q~2Q{{MERGI4Y(L>l$ADIp7c)4b zJc|I}d^)b@R|Z$DYPC9BK@9>KfxK<*s_=cPP(Tx%d-yBwyGcdskhQ;4t;Q0hhJ7gJ zModQ%t#k2+-NPS$=6k0+*2>As{dV(lz(t;h=>4R{D2&T906^^W8}fn$GfKKg^ZV4X z+sADS=5>Mm%+0yJ41Cr|{)54w?cnVHcOl!5apqx3+7^YSEZ#SGhd$MGhWTr)Ey*su zzzURPYwC7rYAwvQ!QCKPHx=>^IqQBOJ7t8UY=k*>=mt#HzsHHhy-ECg>Zm2Y2RT3; zQ23b)Qg-0C1$QH{3gTJ{T_c?vU#;e-2uwd=<<&~UvJ{Wgu$=l}=Y2<|WBxn_G$8v2 zHm-uSVOLvijLt63+Yjr{*@2#Xj^GqrRA*`L1E#F@0VvT;R>=UAyHIr}{E@Ia{u{-G zx%zNGJ!B2@YPrbbXfw55Kgwi?(n}FLg^JWFhXkRK&}E*O4)x?KQS@I_rgX6q8MYds z!jw&t&&&aDKu(HGL{fe-%aGEU5VJY|uQ9URt1Vfo6z^SYzu=~w z4`MC83x3wvxV&X^Z=a40&>aOX)B)~DYr~bpV#aQ{-9+Vv*;pRnW}2;2wYf$m0z1tX z1}7$Pu_aEZ?lqS1O$F;bm=p3oLun#}DhH4cWbJPU2slZoc#mz52Z zI9IM9<78DvZ06p1X!0ck=P)rsQ#;x?{JBvF_^G;KS8EBC(mY?anre zQtYsYO!`Cq{dnlY`)EC+NUD$*lbL&A92@Xb7zZ0PmqmZCp1_OQAwnSfC0_HKnw(fS zL9eq(_ANMS@;=iHMg7-J;q)vkUUsJlT4H>5<)H7~Hj@Oqff0|Gg$-oxGS44%J<8-0 zj7V<~h*Y#zJC-Nq?4`_uQzu7&S2L`}=<&?NMCd!B>q?A)?^Z|qK(zE!o3|e_G&PhF zFe!g$pX&ttmhShOIc!9!J#dfTlCnH(Ns-qI<`Y~o;t#h^P0gbY`NCL8R$$XhQhXRK z{ho`SCcR+Ti9hSxjUxcPBH?Q$E98(+q-Gm)pnA|1FStXx^qZ)_TNxwcUj@j8@P}_u z&kSvwsUz_ail_7I^hhvBU(*t!IsA?&8hEV3Y*$H`_uflWk@45qqIK0H)S5PcX8|;8 z0WPTEJgTY-Lf;^CiNOOm2NoP<3XfX@WqC_w(3L2En`6pTWsCC zc=q z)_Nwmut~Brlg+T$<@|NMesgzdI7H*aE5P9}T{jY&?xYZKsGE%YvmcHS%^;+fz_zA+ zx`8_Og#|br+9 zS`fnOm-hcer%bR4uyMd7K4Hp;#au;4Ycfx(@b^E3e(yDDr6Qq*$OJ1YQ`uVtoypOt zMiky>hQp_I@u^L_ zzqvBs#2F|2Rx*B}1$?Ibyi)_8F#dlf<$pq(4)1xE@C= z59K=Y2Zt|GusqHVtR32xo2JFd`a98)F~Bg*E#V}U8X66YK~@?6ZCml5)EL>%yYA)@ zftAmp@1hJC*WvtAbI-p|J*~?x;zO=olgIu&Oe=#!I9|{r<*`*zlr;q~N!g%CBJI<)ZA*4j-HWfDe`}8?u7JHk62N%_;amBRTTyxP*NpcItQctyc#jV@C}Q`1&&* z{3|)KXO>BvsfI%^ay!hwyj8|iC+N0)$@sicGDWC9A7i4Dgx=D;3eMON5p!3cUmaa@ z#Gox*O0Xw!Q4Jw-*uBf%LqMDGjZjfsR;^y+nEg~g13n~?^)4>m7UMcnJJm4$pa?+F zE*MID)y0L=dy9`B;CA1!Zf4c(|FPJPaS8zz}M-lJg+$=lBv1^9R?eLbo(|#+qAEiY( z&@1>ee6Z+4Qa)8l{>5`$k%-P$-4os?~(x(}+>^x(pvvE+Ec!T~Q(+-H%dRLHf81B_}+LR#wp4GK*L)t1Gv7%XBdKxCPv< z*xIPnq^v}P#ButM=mRcP*WDWRud?%^&uw)gyd0Z#+{14Vq_qKAz-Wfqvl*$6*Tn6+ z&4>Z+tyY1qUngzbzxf$Jz>o74pi*;{(<7h2v;M1L%aKAfD^J9<*gh)ZxZqwI$Cj{9 zr%NzT)jHT3wdYjqEXBOJOd2>jKC9PkUbLVWA;3;TK^@A%GHfK5Qn3;?D%|^HN&|o6 zIdYS>S*_*GCfNy`Mg)x{Hc>vbJja#!^X7K(L@W&57l0Ve69 zeNYGY9gc^0uK#T!4kcTIc22U^7LztsW#ZZc1wX8KdHIK0(l3cy)yz@w6}VrUDd>na z=~96;46t6B%nC4XGUjZ<@>pfU6}Gu<)dbWnB-#dmv#N}E6wwqz%MJ&50%2l@O~O(FvAyR*CEfw7n7!h=0$WXCjWUV!5yuI z0jErJ{!Nh3KJlL3+7n4~8ljkQOa&^T;l;qI;39HxP2!lCxg0D-7ShU17d3d4xcR2` z`Un^&Rmk!uR4qXM`|YX{0TUj>qSN@pqclny0Q3Y3<;S(tN(W!vOYk2p<{$^|643o$ zb}X{CfA`1DCvJQQqm&Q3_!Zi!`rW?~p`VZ@=+N`nN78^(P8WM6;T6yp<%t_`N{g_= zk!VA?K5EE@I`%!_mGp@1i{4I)B;5J1AV4ssmY}7yo|rOu!0kjHcN&A^DIe98Atypve|2#v60@&LiYHuqHArqpbPC-KmqN)sg>J3@ODJIHqd-`K-nb<=p6&DAq)h zx#(B_h{SjIsU#~oQZe(S_b+UdbUHK+RoZB{&d)I8W9IJE8S*yCIR4fCh74rIJ~CRW z${FgAh}lzofAZsc0e4~)_Fd90wH<3hLpR%a_=@D_51>>nOknLnx=LMkBO2kD)G$$^ zmhkA#VA}i_n#j&HTbiyz-x}PSGf%v|ySXK2SL{U+)2uhkJ=s^jNkS-Kr58vRA(z|F z&ca)v{9_}25H>>#khU<=c;ir~4jeCe;!RHoVog2PiX2^-3M)fI=6WMBV){_%jH@u6 zc-Krr6oD)>kO5z9zgItkP4-7!p`a%yCLmPt$#yh^zYI)TQ(Gu4)!SS2JB&Zmvv{Hl zTQ0(W+pe*vH~7)gL4z$1snpGRDOA3o#RJ|>_oAi}81=?yoOQLna3a;q1X-yTY7fm| zu8+RCg4tRRN1E-|ug!g-D@_P|#p-VkwP6s`oi}i%S+@g!HsNCu1V9_k=oWi8Zee){4s@(h3V9$6cL zn%QVubc_rt0QYq8?4lHfXd-8vhj#}twbp;^S%V*&-UDnxF;)ySM=fyat9THcE%;+a z!>t2QF(1KFhAh3R1|K}LDU0EVmv>B|4+$~K+UmSX{tp~hv{FrtRN>Rw?RAneUkOXJ0$-Wy-3lKnFLhW5?OP8XP#m3W8KuUqn4m!6g|nKEybH|xR?E1-Y0xUabtkL| zB@3459L z>N`yHYt=7qyEx50H=nZm(^4+!!ax`>poOkL$)$ehU^YMGDM^5!n~U6*?ClOXj#{FQ zrTGzSy;5sKX$)rYZs?<5Ii31O%^d{@ygx?9xDS_Bej6vDq!-H-x$j5>WzfWRq>yS+ z-Q>TU@OY-cPfrCfwoH2oLvL)e86p704jaa5f=Wf>MwDY|16L|6P$N8M)aT;Zu0uWR zvEH15q^UxL6r{zt`*d_-I1h*EVJql)nHK!Cp1t!~70qtvO_2i)AXrm7;A)*uB_m!6 zZ#Am_?B?CN#AuaI7b~yv8kfOaqnTPe*8219Ash^1>B2-Yd+I+RVfkq<+|P(O2o*4i zWVE7EG6rQQ3kvMwNKPyPmX3etMLtY`{jsd}#etKCSGZ6EB^yC!6JBF;au|$_0ROSZ zbjr+>ni5u_$DSk))R>1BjKz6KL`StHQ?d#6Tm+MA58xUHyhMe`nPMSVbdq2@)%~jZNMVZHkQgCuQG%f!Xy$ zo+c>WK5NOPP%lCT3R!wD=+zoBpn4{oYZU6nDz;xoKp8KCrW#=p!j*2d>`2?+ReX+c znn_S4vRVWiG_A820b091HPA{zn4*YDz2@x>xp0#V0O_O^bb9RJZIJmj=9gT|$l7)R z=*#C|Ow-X*AaUS^V+-ut)U%0CT%L>0J1k`gj|UCHe7sfp@*;apaZtg)#i2UrD>51Z_cJDv_Q?pFXz=HE?MIUmv3*xn z|0S`TS+TmM?P+EL72=Nd{p&7yPc+34K@Cwut$CODZ|FbH3 z$2D2}aufIjz&4FJAw$ky^p|3O)IplP6Y#LRxF_lTWyf2ixcvy$`(5yi-Y83U$;hJV z`>~Nszcm#D32me8yVW^8-G->K2vRUL*Lxg7uQ zQb?k^RCYoH2kMHHH0Z{lP}##wE$qN|Kw`68Z4n-QPQ7v78}YDeebLV!;@et zWbKG(Ge!Z0-DJjHN|mo|*^YNBXys3U0B?c9iT_(0-f*sBIMbX~l`&9`m4~q&@|lQB z3F726I%@#9Db|OY)3$Ortf$=SIWKpm1OaYulEXA;GW}iDdNSU;r0qmB)DyvC>n?49 zIO>8cssS=A{4yX%hE-a-4z|;cBsgK5iNObHU1Aj<6vv(j)84eTy!gxMEk9ea5p!LM z_jYIK#(P+ur-xkiz=f~!=Ng=>&n=GQseY`fI3HF=liMM)Uq4gRHn#eV?RC~^-xBWg z%J%ust|0XM=1BsSbVUIjJT*)HSFcY>(GjM{cy4VyBet+Ti9Y$(`gwb^8I5}tTkp%AyOA-nyx-mRq* z-ML&FMr8KsYVOC}A;g8F2C*O$N=bRVKs#A6?!#|lh6&8xRmdYlOezP>n`FK95dk!2 z6VEiTk~{V*C|5uK9rI?~r3GNC`7?lru+4DCS|25B>{NQ0HVBo(y*ktZ&_bu`fH5TM zza@EUD{wawisYZ}0yIsrA_Kmcp>?btpDq!c`N6U1I(qmGBVO7+uUZ*dDF-e86HlTb zxJ4Dxs)#7^Mx=%>!pi-8yR4K6{F(jL26w$ta`tq?v5$$SQpX_y3_xA6f!KBnMmZ-G z+jU^{j%krRv*CMU=_34{DyC@2wAP-5U2a@E82kM2sEbJKy30prldm;Do++vAYApUw z#V`l0e`g$-6=>SewZSWtmEBn! zGJEEr)U>mt9)(0;2`&+B$8LFIL^Z=xSk)SL%NG6KsAVzuEd~j{b!}S}S~jV|Noc;d zA0>0V9Y_A7;hR+<5uwP01uW)o&|&2|$E9DjvghbN_11R4HCm`JCw zg1SGmbi|}G>2jw{S@&Gb=-xmAefrBB=vmt{TBxK1P&1q4$6%zEX3KF>5WL_q{C4;R zWIhyW#%3V(l2T=oGZrm=-nnXo<4(Jsc^Jxi6c`Z-+RYyqch;jI$WG?c4!}8)AG?Wf z&jo?JCXPaBfKbw9}yzBmV69q)=oq4=q%R-05D3M1if&-|VgH@f5?l1iJ z7N{R`B8`#2H6&=R!1T?$y0vCErFw7~6dPS;K!lcdAF$H$BwpLfL2uIaG72vBSZ*u^ zTS~Jz17?ILN&wdb01>(O>N>WM+HsNme486zBShSL#CE+)T4!H0&i=mL&|HbA;}ZiZ zr#H8F7RNeoN)=X*EISKdWvMdo^%0?DIJktnk<@8(e#*zW!w-`RO!?porKq-EK>m{< zP%(mn?F7vb?mStH-)7aX?BPHt-xulzVj+_)*+kY@IPu^2g_j0qK99P#3#i}kwAM03 z`xSSvyJn&zi6=Zyt{{ZcPyL%tMmPKSDnaJDqb`)!wJl^1z5L*ciVPeIvYmRni7V#x zhRB{O8cE+~`tj%Evp7t=GwGc$FIL(t9`#h?@_Fy6>6-ceSDE1$-#-9Udwp~VG3!8s z_l3&wt{fUdunERG+GG!RY=oOoH6vK>4p97t62E@VL#v9Q1g;j*sIA{b|ClDpRxccRkeRG~V8B8b0oR1;eACs;eX*2t+ zQWJacVN`^=_+CMb?EHZ^klP1K30PID3sdz4zKL`x!p3Y(hK|_^5N}6g(Q)w|PBaV; zYRNbE4eNJMs9HqV)u+m#8*9JTqrfA-nF>ZgV;x>5l0S;v5zT>R_=*A7O^i?5PS>BZEk|Xp4VO* zmkiW~CDwWh%Ru3#fnoo;=$bDYMQBRyMcq*^+#T3;!wLmi)0GYCU+zW-78uBDrf`s_XAY z6c8n}3ElP%6?IIkf14E{qzdBUTqW>le%aH1r&y(alN$m5c zfzXq?VVo}#D)VDc;T=1kyyP;rh||K$y;%dm5GzquWWfge-*x|gL~n%5nT|T-%X8DU z1H^{J`E6mi3hw{U|5vKn07q3_ar`C=N);3-f`y3BsC-yh6Ci>q))18Nr68ad6_?HK z+homt#QiWIq6tu)`hlftTeN5?ZFSIUt#ztYMyWcL){n8()>6^NL1*xbDvX*TI`o|P z&RPF?;f~Jq%)EW~{?57od+vQN_ubtWziK@D#h3-__IDQdZ5eaz^A|RczoqNI5AJ-E?(T8EjP>(_3npCg z#s0ljKYggRug9EIaaQ+XLx+Fku$W-TcXWIWJDkMVXx4GKcFf8{<;zUj3)4@(;<7PK z`KOOL`SHs0dmHDS5dZI*qaF&+2<=?6>6B%6zw^m!^S58tIX*SNaotN@q1!v(`gGKr zLytc+?UuhDdib9EpLqM&m63~nxUFk+b?;~YUbXoHx8s@bZe2IxnLk`rb8m8S?WXtlu|8CuR>t1?$%DLlr*4+2&Pj}W=4EyEB&zU9r-x=Ne^1-(CeQVd(J$LIJ zZGr3 zvozY~w74BkI$CgZ$!LmX8l2{6-f7Kc|=)CP(Eka z5#`G%!uQQ$PPUdmO8#q0{>zz@+5D@0x4D?lrS=z=+HVs7yng;UCI5Eu*Q4L>-phTr z_$$%B(rfPdKNtVM%Bi6Jhh8b?hzdd#G!JaG{GtBhm+fbXKg@sA>JLo{Y5U8?f2g1S z!IJ)J@n1O@+q;9c{U+_dU;CO;`|aXi!sk-|3(K_qZt;IO6#aXLs{eEGSCPBazJ5@WGOU%*TfYI0%G{bQo}kbWt3@x#NKrGCW}eEo6=y2#JIY zk7%HU%n<|N(L|1eeClKlMhn+^owTeJ-Ys#%g-;Z|A;7;+Q^5M013WD8JA`Y>Gn5}C z!ZMUP zxKvJFZ8|;B?tK=bjVU*huQ5_MQwuY+FjEWFT9~GV=~|eog|oC!U1i#{xrnzJ$WxD0 zG40-G!TY2QNrY126J;0CJ&#Fd;%+-tGfgSCl(V0k=Q6FiWTxQjnpSU1=K8frb*b*h zPc7BGEFx1)lbdmKw7c@U%*z(ZL>d+?uAjXqvUu*?W#=uAET3J!=)8!DMDm4btR)g_ zZiytK$&~SSOD68daviOO2qjLrCJVGri{$;CjyIp`=P8%+`TkWfq*qABBKd4F7jr4w z{`ILQ-$s+s*imrvUnYvuX*V5fr3;yjClg6G9!bY*y!oRoVl(xXh!#_RUjA)xx7-f= z=fQtMpC9t=B)LzR^J7=}&A^8N-w&LZa*dxZe|LO39{4rD`A<&cAF%M(EIcINL)eWv zwHBVR@Y^i>Q44?H!iUMDKA6wB7M`&1yDj`L7XFEakCt^en9sL?b5ZBN3i!#un}PFE zsPQ)fKLz+B7QV;AN6Hq4^F*B`7QV*9AF=Q~7Jj^JwSxW5weWTe-)iBnTli3U?gjfj z+rl#zemiiU+R1dVZ3K?j@k04R&;4@zN)9Hw7&yi!fsds)z3y$mS*Mjn$W{YKo%?~G zL~*L~goVFg;cr;@ak8)Eaq$;%)!z=B^ISs*+n<1Ao(F()Jnz@odVynnLG~RwpIiNK z(*YdgHwx!J*9mlJo&{cH$yle74&^(69|OD(__4sp^P)_~I=m-QofW`&U!nY2;Hdu@ zaMVAYgUDDPbyfh!e)j@L{V^;`#yY6K2sr9@0!RJFfusI=z`3a7tzc2IVEzk$qkaMS zsnkw&$~lNEcpc{mXMMhZ9_1jidBE|0NC5v9#i@Q9@DqWr27Vgw+ktbxPtn1)5jghy z0`Q3xr~SSQoOS-mB4qo3qt1!)y^Y7qzcr}NBfwebBRbd~1CBcH0_X2Isxw0N<2s+J zGa5MR%n}~FEZ1CH^p0>}6fyjdX&&i@qP4*6BT1vu*837l^|jo)VBZ&>&t3!lJ?CK>06`VAJ| zV&Us8{4ooE&BFUE{6u~TkqyYx!kaAoW($AN!runYe`-4aW%7cH^Fi*vh4J%5{vAtv zqlI@__$CYAX5l>+{)L5~%9~@d;J9X6c(a9HZ{b@k{3#2c}6pf%EgRLY`~40>|gtTfk9gBnOf4{9wQ1fn)qa;MngH;9S)FJA?msL`QjPqp9dTgTtT(sZt>4wfsVeOxI7rrT$g6o*Y`%7(V|-+9Ts~ zF!mB*!TcYV_A>*HVE#*~{o$@(&s%;^8>K_Oe%w~u>-A%IpbH|#?ESOfu$RTj_~$a- oj|bZ`3tl@yrssLTeR)7!(%}%#_~(qnwQt|!M@A)1Pr>&81DmptEC2ui literal 0 HcmV?d00001 diff --git a/build/lib/playfair/CMakeFiles/playfair.dir/playfair.c.o b/build/lib/playfair/CMakeFiles/playfair.dir/playfair.c.o new file mode 100644 index 0000000000000000000000000000000000000000..298326563abc258fa1db4a4de465fb1e0a2a8bb0 GIT binary patch literal 2152 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 literal 0 HcmV?d00001 diff --git a/build/lib/playfair/CMakeFiles/progress.marks b/build/lib/playfair/CMakeFiles/progress.marks new file mode 100644 index 0000000..1e8b314 --- /dev/null +++ b/build/lib/playfair/CMakeFiles/progress.marks @@ -0,0 +1 @@ +6 diff --git a/build/lib/playfair/Makefile b/build/lib/playfair/Makefile new file mode 100644 index 0000000..2e57609 --- /dev/null +++ b/build/lib/playfair/Makefile @@ -0,0 +1,350 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/julian/UxPlay + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/julian/UxPlay/build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." + /usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components + +.PHONY : list_install_components/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# The main all target +all: cmake_check_build_system + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles /home/julian/UxPlay/build/lib/playfair/CMakeFiles/progress.marks + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/playfair/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/playfair/clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/playfair/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/playfair/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +lib/playfair/CMakeFiles/playfair.dir/rule: + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/playfair/CMakeFiles/playfair.dir/rule +.PHONY : lib/playfair/CMakeFiles/playfair.dir/rule + +# Convenience name for target. +playfair: lib/playfair/CMakeFiles/playfair.dir/rule + +.PHONY : playfair + +# fast build rule for target. +playfair/fast: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/build +.PHONY : playfair/fast + +hand_garble.o: hand_garble.c.o + +.PHONY : hand_garble.o + +# target to build an object file +hand_garble.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.o +.PHONY : hand_garble.c.o + +hand_garble.i: hand_garble.c.i + +.PHONY : hand_garble.i + +# target to preprocess a source file +hand_garble.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.i +.PHONY : hand_garble.c.i + +hand_garble.s: hand_garble.c.s + +.PHONY : hand_garble.s + +# target to generate assembly for a file +hand_garble.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/hand_garble.c.s +.PHONY : hand_garble.c.s + +modified_md5.o: modified_md5.c.o + +.PHONY : modified_md5.o + +# target to build an object file +modified_md5.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.o +.PHONY : modified_md5.c.o + +modified_md5.i: modified_md5.c.i + +.PHONY : modified_md5.i + +# target to preprocess a source file +modified_md5.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.i +.PHONY : modified_md5.c.i + +modified_md5.s: modified_md5.c.s + +.PHONY : modified_md5.s + +# target to generate assembly for a file +modified_md5.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/modified_md5.c.s +.PHONY : modified_md5.c.s + +omg_hax.o: omg_hax.c.o + +.PHONY : omg_hax.o + +# target to build an object file +omg_hax.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.o +.PHONY : omg_hax.c.o + +omg_hax.i: omg_hax.c.i + +.PHONY : omg_hax.i + +# target to preprocess a source file +omg_hax.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.i +.PHONY : omg_hax.c.i + +omg_hax.s: omg_hax.c.s + +.PHONY : omg_hax.s + +# target to generate assembly for a file +omg_hax.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/omg_hax.c.s +.PHONY : omg_hax.c.s + +playfair.o: playfair.c.o + +.PHONY : playfair.o + +# target to build an object file +playfair.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/playfair.c.o +.PHONY : playfair.c.o + +playfair.i: playfair.c.i + +.PHONY : playfair.i + +# target to preprocess a source file +playfair.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/playfair.c.i +.PHONY : playfair.c.i + +playfair.s: playfair.c.s + +.PHONY : playfair.s + +# target to generate assembly for a file +playfair.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/playfair.c.s +.PHONY : playfair.c.s + +sap_hash.o: sap_hash.c.o + +.PHONY : sap_hash.o + +# target to build an object file +sap_hash.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.o +.PHONY : sap_hash.c.o + +sap_hash.i: sap_hash.c.i + +.PHONY : sap_hash.i + +# target to preprocess a source file +sap_hash.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.i +.PHONY : sap_hash.c.i + +sap_hash.s: sap_hash.c.s + +.PHONY : sap_hash.s + +# target to generate assembly for a file +sap_hash.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/playfair/CMakeFiles/playfair.dir/build.make lib/playfair/CMakeFiles/playfair.dir/sap_hash.c.s +.PHONY : sap_hash.c.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install/strip" + @echo "... playfair" + @echo "... rebuild_cache" + @echo "... list_install_components" + @echo "... install/local" + @echo "... install" + @echo "... hand_garble.o" + @echo "... hand_garble.i" + @echo "... hand_garble.s" + @echo "... modified_md5.o" + @echo "... modified_md5.i" + @echo "... modified_md5.s" + @echo "... omg_hax.o" + @echo "... omg_hax.i" + @echo "... omg_hax.s" + @echo "... playfair.o" + @echo "... playfair.i" + @echo "... playfair.s" + @echo "... sap_hash.o" + @echo "... sap_hash.i" + @echo "... sap_hash.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/lib/playfair/cmake_install.cmake b/build/lib/playfair/cmake_install.cmake new file mode 100644 index 0000000..97b9c0a --- /dev/null +++ b/build/lib/playfair/cmake_install.cmake @@ -0,0 +1,39 @@ +# Install script for directory: /home/julian/UxPlay/lib/playfair + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + diff --git a/build/lib/playfair/libplayfair.a b/build/lib/playfair/libplayfair.a new file mode 100644 index 0000000000000000000000000000000000000000..e594fc4a2359b219430c6701525fe980c02d19b5 GIT binary patch literal 160670 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 R;du8qe]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/julian/UxPlay/lib/plist/base64.c +string.h +- +base64.h +/home/julian/UxPlay/lib/plist/base64.h + +/home/julian/UxPlay/lib/plist/base64.h +stdlib.h +- + +/home/julian/UxPlay/lib/plist/bplist.c +config.h +- +stdlib.h +- +stdio.h +- +string.h +- +assert.h +- +ctype.h +- +inttypes.h +- +plist/plist.h +/home/julian/UxPlay/lib/plist/plist/plist.h +plist.h +/home/julian/UxPlay/lib/plist/plist.h +hashtable.h +/home/julian/UxPlay/lib/plist/hashtable.h +bytearray.h +/home/julian/UxPlay/lib/plist/bytearray.h +ptrarray.h +/home/julian/UxPlay/lib/plist/ptrarray.h +node.h +/home/julian/UxPlay/lib/plist/node.h + +/home/julian/UxPlay/lib/plist/bytearray.c +string.h +- +bytearray.h +/home/julian/UxPlay/lib/plist/bytearray.h + +/home/julian/UxPlay/lib/plist/bytearray.h +stdlib.h +- + +/home/julian/UxPlay/lib/plist/cnary.c +stdio.h +- +node.h +/home/julian/UxPlay/lib/plist/node.h + +/home/julian/UxPlay/lib/plist/hashtable.c +hashtable.h +/home/julian/UxPlay/lib/plist/hashtable.h + +/home/julian/UxPlay/lib/plist/hashtable.h +stdlib.h +- + +/home/julian/UxPlay/lib/plist/list.c +stdio.h +- +stdlib.h +- +list.h +/home/julian/UxPlay/lib/plist/list.h + +/home/julian/UxPlay/lib/plist/list.h +object.h +/home/julian/UxPlay/lib/plist/object.h + +/home/julian/UxPlay/lib/plist/node.c +stdio.h +- +stdlib.h +- +string.h +- +node.h +/home/julian/UxPlay/lib/plist/node.h +node_list.h +/home/julian/UxPlay/lib/plist/node_list.h + +/home/julian/UxPlay/lib/plist/node.h +object.h +/home/julian/UxPlay/lib/plist/object.h + +/home/julian/UxPlay/lib/plist/node_list.c +stdio.h +- +stdlib.h +- +string.h +- +list.h +/home/julian/UxPlay/lib/plist/list.h +node.h +/home/julian/UxPlay/lib/plist/node.h +node_list.h +/home/julian/UxPlay/lib/plist/node_list.h + +/home/julian/UxPlay/lib/plist/node_list.h + +/home/julian/UxPlay/lib/plist/object.h + +/home/julian/UxPlay/lib/plist/plist.c +string.h +- +assert.h +- +plist.h +/home/julian/UxPlay/lib/plist/plist.h +stdlib.h +- +stdio.h +- +math.h +- +windows.h +- +pthread.h +- +node.h +/home/julian/UxPlay/lib/plist/node.h +hashtable.h +/home/julian/UxPlay/lib/plist/hashtable.h + +/home/julian/UxPlay/lib/plist/plist.h +config.h +- +plist/plist.h +/home/julian/UxPlay/lib/plist/plist/plist.h +sys/types.h +- +sys/stat.h +- +sys/time.h +- + +/home/julian/UxPlay/lib/plist/plist/plist.h +stdint.h +- +sys/types.h +- +stdarg.h +- + +/home/julian/UxPlay/lib/plist/ptrarray.c +ptrarray.h +/home/julian/UxPlay/lib/plist/ptrarray.h + +/home/julian/UxPlay/lib/plist/ptrarray.h +stdlib.h +- + +/home/julian/UxPlay/lib/plist/strbuf.h +stdlib.h +- +bytearray.h +/home/julian/UxPlay/lib/plist/bytearray.h + +/home/julian/UxPlay/lib/plist/time64.c +assert.h +- +stdlib.h +- +stdio.h +- +string.h +- +time.h +- +errno.h +- +time64.h +/home/julian/UxPlay/lib/plist/time64.h +time64_limits.h +/home/julian/UxPlay/lib/plist/time64_limits.h + +/home/julian/UxPlay/lib/plist/time64.h +time.h +- +config.h +/home/julian/UxPlay/lib/plist/config.h + +/home/julian/UxPlay/lib/plist/time64_limits.h +time.h +- + +/home/julian/UxPlay/lib/plist/xplist.c +config.h +- +string.h +- +assert.h +- +stdlib.h +- +stdio.h +- +time.h +- +inttypes.h +- +math.h +- +limits.h +- +node.h +/home/julian/UxPlay/lib/plist/node.h +node_list.h +/home/julian/UxPlay/lib/plist/node_list.h +plist.h +/home/julian/UxPlay/lib/plist/plist.h +base64.h +/home/julian/UxPlay/lib/plist/base64.h +strbuf.h +/home/julian/UxPlay/lib/plist/strbuf.h +time64.h +/home/julian/UxPlay/lib/plist/time64.h + diff --git a/build/lib/plist/CMakeFiles/plist.dir/DependInfo.cmake b/build/lib/plist/CMakeFiles/plist.dir/DependInfo.cmake new file mode 100644 index 0000000..79bfa08 --- /dev/null +++ b/build/lib/plist/CMakeFiles/plist.dir/DependInfo.cmake @@ -0,0 +1,31 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "C" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_C + "/home/julian/UxPlay/lib/plist/base64.c" "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/base64.c.o" + "/home/julian/UxPlay/lib/plist/bplist.c" "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/bplist.c.o" + "/home/julian/UxPlay/lib/plist/bytearray.c" "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/bytearray.c.o" + "/home/julian/UxPlay/lib/plist/cnary.c" "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/cnary.c.o" + "/home/julian/UxPlay/lib/plist/hashtable.c" "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/hashtable.c.o" + "/home/julian/UxPlay/lib/plist/list.c" "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/list.c.o" + "/home/julian/UxPlay/lib/plist/node.c" "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/node.c.o" + "/home/julian/UxPlay/lib/plist/node_list.c" "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/node_list.c.o" + "/home/julian/UxPlay/lib/plist/plist.c" "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/plist.c.o" + "/home/julian/UxPlay/lib/plist/ptrarray.c" "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/ptrarray.c.o" + "/home/julian/UxPlay/lib/plist/time64.c" "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/time64.c.o" + "/home/julian/UxPlay/lib/plist/xplist.c" "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/xplist.c.o" + ) +set(CMAKE_C_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_C_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/lib/plist/CMakeFiles/plist.dir/base64.c.o b/build/lib/plist/CMakeFiles/plist.dir/base64.c.o new file mode 100644 index 0000000000000000000000000000000000000000..70acae31cc9212810491296db073991f5aab4c06 GIT binary patch literal 3464 zcmc&$&2JM&6rWu?2?wZAPM@(Ek1EJ)jlT2xV6yib=l5uR)KpY3+H4U_G zr7l5Uxsh^=)PJA{4ylA9tD$x=6BLUS7ler2WF-;!}OL>u{yo}`&_Y{4k7iIU9uF(Ptz)csNYN1K{ z0mR38(Fur@*XVr|xmH#SEnNFVFIEa|5ws9YR||(U`Y=Na+FeLD%dkK#FbikNu`!p2 zg@0ya6?jDVlv7Si8G8Tu48@6zv#-g}A`9miBGt=t72h4i`{OAYq&xyCkK~w?OM8T? zaT(zH@E^FUH1FX42WZy)<%PdWC4Lf2BjxXkgqhTQgzaqM?N%y^c)EK(ilMj&LooqE zF}`#lCX7iKUzh~9%ma?I3}K_XQVofbpK}2NF=lvVn5R6SrBX?hjuS?+I6m|iOoK*sXskx>;L93mQd76c$kq(aj=4thpc#5= zdfuts&CnY>@D0pwG;yrnpZ0KjA3n~J2DB|WwP|=()ARDPe01VY>o5{(>JD&Iz@bl} z5`FKKcYN>_SdKrq&h0Igz&JsDMrGqn!?}gNEjL?uB+F`R?|7GXcCq&kzu$f2=&_y; zj-Tiae0cKIN2f!5;Yjq{$NlFo48#WGLl-X%CzRynPe!g>ZSudpbJy-Yd-pYO+d=T@ zJY&JFKks@63=bJ`_aA6E2ojvKL?qeatf;J7QC+jrRa@uwtXjRMe(eh{u3K-!eQCqS zmtT3+``YVoyt!%fTMb*bZrk4I+kqt-`v3Wpbaiy>_cjFjl5r*J-Rs-!Yiit?FRMJjd-LDuBsK|@C-HrjvLoncjK3rbd zXnz(cU#0>C2dNU^V&Whx76U?Zkjf=^BOt3S=jC?{*nZfaCDw%Wl)*!QV;s|;_X4nZ z8T(`zob-hf(LK9-VZj6w%CN~^3`I;<3H8OILWsu0Ly;&6c6A?XZ|e>o>+C#1dxO1g z?cFp;f)F4S9tei}2ZHB9=VQVr66HP+JQj_U!B8wV6o!fj@r(P#QNk|$Dc;fPGWe%u z@ToF5{$An2iK&Ba#y@Yt@!n1RYYV>0f;Wp%H0wMAI$Q%{6z%c7TuTVri;x^?wc%#} zh%a$v5N;W$GHlR(lN*l4LOvxrq7Yvsq=bmCFOeX=;UPl^4-F1R;KYtrfTTA*+HOCRCQeS=9t!TWAK6d!#`_Mx z8XrU!A+fQNEgy|1osLu6n6P6K1&N{pXWgKq5>8-nJca6poc>U8F>*8WgZnBUVI*Er zoH<>^`njfFDn2q3^|UlUQrvVZ@_LdoRO<2hP#qY+)cmqmXJywr#7D37a!>AVNY|gUSNb#Mhxj#8>q=vE~6QG6g}>+CEMBum_;ye)|YoVmbXb zx3J$H<|OquwX82y;L1g6i#3m0!L|>gpklEBF-Vh!ccpLu5^HrTFZBXE(+lFIh7ccu zw|d!$+37&dj^>xgUu?RJ!yj$=aIAUQik3nEaxb8Kxi2+sfpt7+!CwcgxSbmLCUQi; zk*^`HN(Og5h5{UaCAj+m#EDa|wJl3c+!lT#;fyBiBOMiic;ylL z6p%#(2IJptFJY1yvD8O9oR*15CchKOg!v<+X%>4*(5A* zJWyqt21~5D$BN7Z1Jw;Zz}y7&i5dghK^el}X5;qxuB2hjqfjnc^^k-q4q>V8*u~fo zH`TE!<#fh;zK%D)M$S{JmX1FEs^qqY}6eaxu&np=yuoN2u-zyj8i9aw2bK z3hK@S2C44&6Apc@*N$rlxot^ z#;r&|VX7!QyLP0qI1@77DU9elaH-wia8nNBK{TtKXI5OBlL(bMmmb)1QBI-Gh6N`S z>O7%P6HQO|>TXqj`7Jm*qv*2YrZbHsDWanSeNG|_W{NlxZ(Bo}$+mvkl%}(hWHe5r zRm~S*J~zFIsq3@cA+D~L6-5o|9#Hr2G`1A9@#ILChq@qoNtSmvsJr=l(RL&C)ngo} zuSVNV3Q<8aW2$jkAQ}`dGTU92W!eR%c&W1t1Mr*r?tX*Jlx8_DwXf391xjh1u%QW+ zmVyj;F%J6E3sA$vN*e+-X04#jy#CHgBMTZ-O1oL9hyqdCXB47>ccHWaFvWY4O1lnX zLTPDH8jQFErk-rbV~{oY8t0Ow^O1d&$?RlY4@2cbpPh!%dj1j3!+we?2T!V;8zhO1 z6-LfMb6gB@&nP*he2Pl}H&g6^WES@hjL2buecB`TpDD4&@P!+*Xn0H@Oy+9-60nRs zRRv4%tfWy2v9nN&{aXNV3lv`LT*~R-&N;uK(QEH@9k5!6HMir#05`dZJyXBkLwvQf z?S->V5`coeXg&NTN8uEiTshfZuag}>v2H3hGNkm5m7KWO%5LRbX&piW!jceWhnPgP zU3tS~11UpFks&A5A`{u{2ic_!=+0CwEoM}Op*c6pKsz%qQR6ZRTj|pIaAUOm?ox(I z#%dAcFCN2iykE7K1%U(8bScoMcp$C?6};C@lTNM1i60MGHP5{lv!Hv`;Isb$alFaQ zYF7reChrn2b+O1pEyqhb(i-&hPrvvN9%`dRD&uUlfz}qeTFR^eG)iV@w=0{u8*>1N zDmIv>1itTVWME_%ncYnm)~hTG&UxqQyf_-CFfcOJ8MJzOPqD_(K zentK9zq%>12~|QxLuyk5U0%`)=Q@tBbrWe5xH&&uuC$ha<7BEbBX^rg6*p#iu5#<4 zT#Wi?XAO@uj5i(x#&F%sLnV&>k2QB%QCZS`1=A#O?SzrT)@t_FEEuJ|qV6o_1fNV| zl>w7L=c>&LtbsVnQ}NzlufHP~=>Y-~-W96#HGv9VBOer&8Fa`wob$XuR8OCocY z(;P1{V|f<^lSU$Hgu0cZ8q|G%wr*4nd9XkmD~X7}uk#emD+emS-`Ew(aw(x4IgAnjR@dFPbjyIXPoXC|6=rOkCsOTVy;^lVvjs46odF)Gn z87k<+!XXntvy}cYeL;=rwTfWtg;#$9;I7QHrVyf-5Ev3D84tKCYsTM7FpmZ?e#zahH}0+Bi{o@U3d(n zv;`xD$MhCSw(wYP;X6^7htEhWVkq5f*p^yz(x(Gcmw`qxrcVnYZ{pdV$}{d9fpx4n zSr&8iu^2*Ej{FX7q-AiS9t6K4;AF&lS_pH*nhFOsLPHi_DoJcqTasH&$pzfTeO}Qj zds0pN=6`~RnxmZ@kIPQv@tvdKagIpn1d`BauO6J!HLUiDMBT|Pr?I>_peyE!Yzf%D zBJ);a{)RrY-IT_5Tz$l+0&Ht{g2-{%;ha zIoibaO8NJK5Q67aIy?#vlbFBq^Vj1TV=Ekedpz1|Ze^qwC;RPt*u4Agy%O?#3;w@{ z(uvAe2q+VQ0}W!dKT;M4xT2J@F)2F(OTFO3b}P<5cn;Ph#jx14dm74AN>Murr^G0Q zXxJQ17u8ksK|<(_ee|j8gbVBx2mCjP@Kol5RDa^evK&r*N~qAH_{+I_%Ukjfu*8+!EQU z)hDh!QBjsRGX-nMOLHN&OlvYCW8v!9rh5Xh=6kGd|0I>E2}gSz>^dry8dbsHVO&D9 z-7X!iXqb*qK5j{43+ya&3(Sc=UJv~YXPgwTQc8@u@aQ=i*)Co%K zpuG$4ZrUc)ql`FET93ANN%N=!&Z9T>1o8eraM!Q7XL$>2KOY@*T*UM;BWz0s+kTiO z!Or01{TM=)b0XQl=8zRb2R#Ws3d4wkX4T;pk6>l0uybgp6C-?byS+=IQ`+s_6y-@f zWccQ*tW8odVI^c=|ERDo!R8W{U<_*pqnd7fp!VWZekKHKY2Jm{sT|vl7@d8he3!G- z-W!Y+s8lynJ;9xCQTwQ~mcoC=Mv%e*%&y0kS_YlBs`uVDi6$B7Cpuee#|*}a55!V| zRw(NUE?f!A2Lt{fcdH$J*p~tJ26ujuDV4mK_K2=%Hq1_*PCxD4?R+G>tKEKy8DbtM zryP1FF$#PXhcuB@h;*?)No9z)yiKYjmGE{Ugd|GniW-tRyEAiEXXcE~%;}w(Ih~o3 z&dkit%(TwTl+H|1r<#z_X01B&^d3#Y2Q&|X9R`bHht3{DdJH`jw}(YU*xD%7)o&lA zK=Lt(+H%Xuon?=K?I=nYqcpn))IqafYBQpt;<$Y@GaFq1IkJR-&K>sfq|>Ng)zk$E zd$=z(DSiMUp97E51op`!PD<=yoa2lJVs<)!8T3;7Xv1L;xl5Q3+KDwKw%Pmbl(Zp< zy3!B;FPao0J12RNL_ARma@T(#ORZUhZ4aaLQ`8O?2^rXAZ%)yMO2tky!H)R{arH{Si|AJW}?Y-ckx?^qxb(q~7-- zXt#d>@}lS`jT%mYkzri&&4xI6$=s_9Ds5g~5JX*9pcANKy0S2m1b>u<)zX!LCCcMU zDtiUNCCFYnaG~rq0}Z8$-3tI@yK-5;&7JG!8dnM2+_G$L&gB7@KxE`5s4D|F2&Abw zUDcsspTyM~8odXd_`mZQpSVBS*HV9;XllQ>032Z=hH4~bszxAFH3FHcQIMZ%B-ckZ zlIyP;AvjSrhDL_=Po>UyH)_G{2;2=A!rcH|lp6M!dvB1~#hM3$PVg#waGE{bZoh>g z^%jQI2`+)?X3<_)B}64R!2a>K_=2`H53h+9Iftr|L7A)Qy9a`k^b_Pd$KX0iP`Kz- zc;U?9S)L4WYx~pZ!3pQO+WhntLVp~am|6M?_X{PLB=pC&-yTB&3sqs+l!VmrxGS;u$mP5&O z0phqrRkOefG6Y4;2n<4=BWTAFX~$0>&rc?lr*LE+q<}n6H8qGV${5y*EH_iAWk4ma z42Mk_rf}6MRGpHlUq#igPFQt8<|E*JxHY-;DheU`Fv<^0`PWeXwF%3UnT}x+k6Rn_ zachGnwK*3zFwU|UH;$5jrgI+ZKJHPz4TK&Ytm#+%kb8RrZYMg3Q9a=CJML7`GYiID zuK~CpTr=WzCW`i_FVR;u*ri|w!oFeX$u(3V@=Mft*r*=2ozx=VS$T!&3*rN~JNizd zk#i82fEhU^vf62mveO)m4Rp2JFGA`UQSrbD^A=n%QBIRQ8op@kGzWf-*^X|zQ31_) zGu3Ef3dFtUEE(S~*?%Ts`kv?6(hyxnMYpSqp3b>__*4w3SsH3`y)SsBbQ7oszLte< zPFay@$V;R9M;pHIC)C@aw2$WSNqU!>yA#(8d^Lwnj(5`B?!&*o=Gp6Uvhj-rplxtGb3gn$Ab9yQhWH07ol0TJ9WLY z<0wrkust=GR*vyUOE}n5jKFj?*!;y6Cc02WH6luvS15Y0?fn!x*!BSmkWrDPxiK51 z`zTV9wk{;PC>yQMMz^|AyG0So)vFi_iLIU=(G7;!6C^8AKcG~ijZ!pmrv0t`ihx=H zf(Ma$%EAIut-s@PF^cYPq2<_4k=Q|}WBIRe)T_y;jbKczh9l}hl#w`mT}LG)mCo2l zei>%~q6=L_?Ig4~JDOXl!A(m!hG^3VRSb*iGkU=sr?z&>Nvx#XS;;x4cjepN34 zZ>7ODt?H3ycuu&7(wbAw_QqZeoV|ws?LxW>n?Q8qefKMvTAs{CPmHgv1x6~UGD#30 z-cgB-%?j?ii*&CMwc$Yb5)_5nbih@tY#O>MRq2Xi(b<8MQW<7{<1J6nZ((%G!8VE% zX_0WFpVCf1-LjMF$Rem>OX;N*UvzB7(M(xMr>I9F&_x!*l$@E2+#)bm&c&3C(9%nE ztjh;@bv}^0I)`;(XH)46Ww6Vrc%4GL6h3vNNHKQ%hTUAYSgg5wR#OuUtJ^iUZt8tD zHpEP0>;5Ba4tk{FkHeX)?3M6PXp1YZd{zHH3hegXeWp>Gee!>)+^mhUQDDZ)gBep{ z4xOd!1A;q0Kr>HeER!WHaCSUFK7cLaN}V91SmY*XM^6S6^FImGKtC(LBjZL@S_*-v zvaIh=yVPp4I^RhI3T!}ue5Vh{svutYQy_!iR)S*uM?A(p>kPQ>eEY2ZS*Q0fj~!p9 z=T4O{=}=1TIQ1EJocizqEq4etIpc%Ot%e2Tu<`pZ&J4dIg#i%z6? zpCmI$?G~zAymUdmLy;*ZQSqEvvbyXmbN!KL)Nn%sARz8iL~+(j=PO{N1Xs?igszhO zolEPD8= zzkm4{?$Kth@ap^oy}b>+W#~d5T2kU_gJ%%uV3oxS+Wf)DGw-3s9 zs@?8KLG~{oc^?Z#XLLM^B3Vlm1kvT5d4Kx1&ye`E1->c?m=wLglq543u1aj~*b)%X zW`r0#lolr+QVckY(k=v8=s}?xK{kM8u6Iws+3_^Z)N!oLh5krCYwI`GHb$&Pi{1sl zg&Q_+s$Te)(T%lLbqg!ER&1==ws2$Z+J($&q2gG+&Z@0jU%fTlRJE~m-tyAbl`B_T zn`>$st0RqW`d!p{GNg^w4YgGpYj3X(t48r}II=mswzkf)uD;@m%Sy{C*GB6i(b7xG zFDhSj{smD^E&lxCCFP4QJXfKXb*fYrxcxdSu(c#`=8P%Do$yj;0jHOqS@g4FR>`h{ zD`rmq7zmK0yk&&rp+hYf}gqN*GNA7b%0w(VSy`S zi{#JA$)DxscS-)=lMpWdJud&Ge|Pq!)D{DQxB>+h2MB{}k6;L4wr{GaCJ zA93?jlK*xN|6jZOEjl;FL&r1O`mf>qQb47W|M+wx-+_%hI9(|LaK4AcDYE{PzR4#% zg?ayH0?R7IzkE-j7ShPXE{9cM@L?YX4EH7&*J<`mz)A(j(Fi~6QzTwUf8XkPsK1H- zL23vd_Av-UcnQBo^uoRc80nAjy9H;T0&K0Omnzto0NW~f897rt>_ZSH@DiU(rxI#e z>^l&C2`}N#3eG+Q*aL#UF&7a$JeCoD8!ypci{l}B*oPo|9xve!iDKAy0Q;HX)9Eq- z9`+dsU&l-Iuf3O0nbaesD@QEP*$i7ez7d@bJOF+2|4@K*iORMzVjS~^Y})Tu2ECH*UeWrk84E#Lh#xJ3g_{RXtm%a?^ihWD?Rmshdg+* z;Pry@xCQ;)g1>ey7q@u4B6^?TcYILcJWdh)hTxBUNZ~v_5v5xqB>x^UL>`yG4+wr& zxuPd~qUSl_q|Z`>^vqNN{}x(eJO)Nl91nUBl`K?W+MK)$_|8TR(v2>~+k%T4TzoqG zsqRyg5#379hwt&hFZRJN_rb6C!PolWwLbVZAH2l}-|d6n<%9pd5B@Jc_`mt!-}S*? z^}*lr!Dqmw=IfUQz^UI?&_@Ulf8P;a=tIBM2fxM#zr_c?)dz3(!4p3Cy*~IuK6ugx z9|TT%ctyq?f9IfwAN$Z}eDL4-;4|?($fy7J_~7UH;7fh*)joKo4{o_jmT-7&#jKOze0L-ax_66&Z@jik7Bnh!LhiE7tdwT7Ir zmfA=UwRN=-Be}ksf$-HUuf2T5%J8*UU3I;EL->Xjm#?(LLRMG3MJ+5(FYn zHH?a@*4-Ljx8c@sO;zniDe>9rh@#z8wQ=L-b%NG3R96dJy=h(jHVZ;;tgf?2fw@!` z*HIM#?+sE|bulq+#6s7QjC(@$tD>o@udl9KA4Y#|$|;K#_=zAfG$_|?-UOppHc2b^ zsIIA|Ve=+lPH%$fo9d1FRqv2Bg(FpKH&%x?Zr*%rv>vLdYJ_=3lwOSd+B$-*`ba}q z1YW;hHMpj>0i$KzhT4q+)Kzb#_O9KC0cEY-1`9Nss0!7o0u4}P&bmL#AN?m;Z1~bf z%MghvTzS;UGOEkXrfxI~udhZwZr)}=Gf=T9CR4(HeiSb~a6=YNfv{iC&t?Mg;B&>Z z7meS+=!y8(1t&h|;nnm>nGX?8Qz?y)8n{_+0TJTy@>y))CLi0t>C>S3-)`Uw4g9MH zZr1y417Bp&|J=YA8~9XNCs6i>4g6dKzret412^Tr&%n)k9hou`e^bu;4BV9GCkB3@ zQSaF@#Uwsvy%!j`ske_CxLNOQ25!oEw}G4TJZ9jgeg+KOlxGqx6!Cc5d!>P!^v?7w z{Y8lCet&6Zeq3#iDgGw?l3DrbR~xu#KWh!#?Q{B>S$v6s&ol5# z4ScbIn|vw_+~l*#z%MiS+-u-V4g7H*e9*v`8T1#+I)wCDZs6Y&Tz@Y@$fM`5LH`k? zwH{vg&|l5emi4v|{cW{6RB9G&Pmy{|3 zk|%^$%X4li5_kwV{p8Y8LbKmZI$@;e>QWBe?`%XRt<@gIM1f*BQ7;zu&-3J^b1SpC%hKq&Jh#*A3jXlPcMtB6`!0H5s_c=UWC& zV@UVQF#|W{d=EJyqf-E0}mN^qk)@zwi~!@&_870rkrmYxGCqk)JQxekIDa& z25!n(Z{Q)6(ei)8z)e1n8@MTFpAUY_z|DH6lXJ&Ia)$8gdL08d>%GCi&3bS4!S6C~ zQ*Wy&fyb+#hz}k&aFfqra(2S!V+ghUKNXzJg_^GMjDdgLz~46bTw~zJ$cXWfoGbBa zKH~;XMKwNuF%ozR@Y2*ZiI<+mKKPet5{ZZSoA&c@nq=eg;!EjcAowbTy535`b-f`X z!gGs3Z}wxohhBfDw))T~4BQ;oU-9rcE1>Fq*n?~Tzt4kzLy=qmX7FDDOt)*;z)k%h zHE>h^OK4JsN9$o&B`w-)v)Qh{GjLOH-3D&j)pIn7!9#pZIcL)(29Fp2vVpHg zzHaY>27ax9@21HU9^zxl^N@j?@;q(e6)2IyP|?W?V-O+{Oo`Se_Q-p&#<#ePZi-&(%{NT%W6R zhd?wfzdpC0Pk@2zbGa)$xITwp@4=sy4ruk@KP+Xo)>l2aK5u{8gX{D5VGpj)+lz3{ zMGs}utIyl#dvJZ;ex(Q3=k4n~xIS-h_2Bxv{i_~apSM5l!S#9jum{)Y?L|c-eO7*b z-ag-h>+?XXym8wmZ1N+FG^lWcjx|(otSXOSzuqe6W1sT1jg3}0qYaxCf{pi0)i^dP zuiG4{F28zp<@tPgB2?8I!Zi(5o2r#af6#9!N|VV=_HYSFdaukQbhenMPFl1rLn;Wl zh>CQsRN@Q?JhO)_)!{i0AKHp4>3;6thK4Jt?XG zd{2cXnm|Hw`}x{G`e{W_A@)J-C)eU_|3`pP6^rni&rF#>$gu`Pv^^qbTM|$58uet6i7Z{ZI0E>!y-hL-cD| uJyTRT13?*HZ+YVB?RzRw=Fl(h@p$C-w*M5+ CMakeFiles/plist.dir/base64.c.i + +lib/plist/CMakeFiles/plist.dir/base64.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/plist.dir/base64.c.s" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/plist/base64.c -o CMakeFiles/plist.dir/base64.c.s + +lib/plist/CMakeFiles/plist.dir/base64.c.o.requires: + +.PHONY : lib/plist/CMakeFiles/plist.dir/base64.c.o.requires + +lib/plist/CMakeFiles/plist.dir/base64.c.o.provides: lib/plist/CMakeFiles/plist.dir/base64.c.o.requires + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/base64.c.o.provides.build +.PHONY : lib/plist/CMakeFiles/plist.dir/base64.c.o.provides + +lib/plist/CMakeFiles/plist.dir/base64.c.o.provides.build: lib/plist/CMakeFiles/plist.dir/base64.c.o + + +lib/plist/CMakeFiles/plist.dir/bplist.c.o: lib/plist/CMakeFiles/plist.dir/flags.make +lib/plist/CMakeFiles/plist.dir/bplist.c.o: ../lib/plist/bplist.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object lib/plist/CMakeFiles/plist.dir/bplist.c.o" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/plist.dir/bplist.c.o -c /home/julian/UxPlay/lib/plist/bplist.c + +lib/plist/CMakeFiles/plist.dir/bplist.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/plist.dir/bplist.c.i" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/plist/bplist.c > CMakeFiles/plist.dir/bplist.c.i + +lib/plist/CMakeFiles/plist.dir/bplist.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/plist.dir/bplist.c.s" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/plist/bplist.c -o CMakeFiles/plist.dir/bplist.c.s + +lib/plist/CMakeFiles/plist.dir/bplist.c.o.requires: + +.PHONY : lib/plist/CMakeFiles/plist.dir/bplist.c.o.requires + +lib/plist/CMakeFiles/plist.dir/bplist.c.o.provides: lib/plist/CMakeFiles/plist.dir/bplist.c.o.requires + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/bplist.c.o.provides.build +.PHONY : lib/plist/CMakeFiles/plist.dir/bplist.c.o.provides + +lib/plist/CMakeFiles/plist.dir/bplist.c.o.provides.build: lib/plist/CMakeFiles/plist.dir/bplist.c.o + + +lib/plist/CMakeFiles/plist.dir/bytearray.c.o: lib/plist/CMakeFiles/plist.dir/flags.make +lib/plist/CMakeFiles/plist.dir/bytearray.c.o: ../lib/plist/bytearray.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building C object lib/plist/CMakeFiles/plist.dir/bytearray.c.o" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/plist.dir/bytearray.c.o -c /home/julian/UxPlay/lib/plist/bytearray.c + +lib/plist/CMakeFiles/plist.dir/bytearray.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/plist.dir/bytearray.c.i" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/plist/bytearray.c > CMakeFiles/plist.dir/bytearray.c.i + +lib/plist/CMakeFiles/plist.dir/bytearray.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/plist.dir/bytearray.c.s" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/plist/bytearray.c -o CMakeFiles/plist.dir/bytearray.c.s + +lib/plist/CMakeFiles/plist.dir/bytearray.c.o.requires: + +.PHONY : lib/plist/CMakeFiles/plist.dir/bytearray.c.o.requires + +lib/plist/CMakeFiles/plist.dir/bytearray.c.o.provides: lib/plist/CMakeFiles/plist.dir/bytearray.c.o.requires + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/bytearray.c.o.provides.build +.PHONY : lib/plist/CMakeFiles/plist.dir/bytearray.c.o.provides + +lib/plist/CMakeFiles/plist.dir/bytearray.c.o.provides.build: lib/plist/CMakeFiles/plist.dir/bytearray.c.o + + +lib/plist/CMakeFiles/plist.dir/cnary.c.o: lib/plist/CMakeFiles/plist.dir/flags.make +lib/plist/CMakeFiles/plist.dir/cnary.c.o: ../lib/plist/cnary.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building C object lib/plist/CMakeFiles/plist.dir/cnary.c.o" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/plist.dir/cnary.c.o -c /home/julian/UxPlay/lib/plist/cnary.c + +lib/plist/CMakeFiles/plist.dir/cnary.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/plist.dir/cnary.c.i" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/plist/cnary.c > CMakeFiles/plist.dir/cnary.c.i + +lib/plist/CMakeFiles/plist.dir/cnary.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/plist.dir/cnary.c.s" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/plist/cnary.c -o CMakeFiles/plist.dir/cnary.c.s + +lib/plist/CMakeFiles/plist.dir/cnary.c.o.requires: + +.PHONY : lib/plist/CMakeFiles/plist.dir/cnary.c.o.requires + +lib/plist/CMakeFiles/plist.dir/cnary.c.o.provides: lib/plist/CMakeFiles/plist.dir/cnary.c.o.requires + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/cnary.c.o.provides.build +.PHONY : lib/plist/CMakeFiles/plist.dir/cnary.c.o.provides + +lib/plist/CMakeFiles/plist.dir/cnary.c.o.provides.build: lib/plist/CMakeFiles/plist.dir/cnary.c.o + + +lib/plist/CMakeFiles/plist.dir/hashtable.c.o: lib/plist/CMakeFiles/plist.dir/flags.make +lib/plist/CMakeFiles/plist.dir/hashtable.c.o: ../lib/plist/hashtable.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building C object lib/plist/CMakeFiles/plist.dir/hashtable.c.o" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/plist.dir/hashtable.c.o -c /home/julian/UxPlay/lib/plist/hashtable.c + +lib/plist/CMakeFiles/plist.dir/hashtable.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/plist.dir/hashtable.c.i" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/plist/hashtable.c > CMakeFiles/plist.dir/hashtable.c.i + +lib/plist/CMakeFiles/plist.dir/hashtable.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/plist.dir/hashtable.c.s" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/plist/hashtable.c -o CMakeFiles/plist.dir/hashtable.c.s + +lib/plist/CMakeFiles/plist.dir/hashtable.c.o.requires: + +.PHONY : lib/plist/CMakeFiles/plist.dir/hashtable.c.o.requires + +lib/plist/CMakeFiles/plist.dir/hashtable.c.o.provides: lib/plist/CMakeFiles/plist.dir/hashtable.c.o.requires + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/hashtable.c.o.provides.build +.PHONY : lib/plist/CMakeFiles/plist.dir/hashtable.c.o.provides + +lib/plist/CMakeFiles/plist.dir/hashtable.c.o.provides.build: lib/plist/CMakeFiles/plist.dir/hashtable.c.o + + +lib/plist/CMakeFiles/plist.dir/list.c.o: lib/plist/CMakeFiles/plist.dir/flags.make +lib/plist/CMakeFiles/plist.dir/list.c.o: ../lib/plist/list.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building C object lib/plist/CMakeFiles/plist.dir/list.c.o" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/plist.dir/list.c.o -c /home/julian/UxPlay/lib/plist/list.c + +lib/plist/CMakeFiles/plist.dir/list.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/plist.dir/list.c.i" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/plist/list.c > CMakeFiles/plist.dir/list.c.i + +lib/plist/CMakeFiles/plist.dir/list.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/plist.dir/list.c.s" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/plist/list.c -o CMakeFiles/plist.dir/list.c.s + +lib/plist/CMakeFiles/plist.dir/list.c.o.requires: + +.PHONY : lib/plist/CMakeFiles/plist.dir/list.c.o.requires + +lib/plist/CMakeFiles/plist.dir/list.c.o.provides: lib/plist/CMakeFiles/plist.dir/list.c.o.requires + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/list.c.o.provides.build +.PHONY : lib/plist/CMakeFiles/plist.dir/list.c.o.provides + +lib/plist/CMakeFiles/plist.dir/list.c.o.provides.build: lib/plist/CMakeFiles/plist.dir/list.c.o + + +lib/plist/CMakeFiles/plist.dir/node.c.o: lib/plist/CMakeFiles/plist.dir/flags.make +lib/plist/CMakeFiles/plist.dir/node.c.o: ../lib/plist/node.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building C object lib/plist/CMakeFiles/plist.dir/node.c.o" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/plist.dir/node.c.o -c /home/julian/UxPlay/lib/plist/node.c + +lib/plist/CMakeFiles/plist.dir/node.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/plist.dir/node.c.i" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/plist/node.c > CMakeFiles/plist.dir/node.c.i + +lib/plist/CMakeFiles/plist.dir/node.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/plist.dir/node.c.s" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/plist/node.c -o CMakeFiles/plist.dir/node.c.s + +lib/plist/CMakeFiles/plist.dir/node.c.o.requires: + +.PHONY : lib/plist/CMakeFiles/plist.dir/node.c.o.requires + +lib/plist/CMakeFiles/plist.dir/node.c.o.provides: lib/plist/CMakeFiles/plist.dir/node.c.o.requires + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/node.c.o.provides.build +.PHONY : lib/plist/CMakeFiles/plist.dir/node.c.o.provides + +lib/plist/CMakeFiles/plist.dir/node.c.o.provides.build: lib/plist/CMakeFiles/plist.dir/node.c.o + + +lib/plist/CMakeFiles/plist.dir/node_list.c.o: lib/plist/CMakeFiles/plist.dir/flags.make +lib/plist/CMakeFiles/plist.dir/node_list.c.o: ../lib/plist/node_list.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building C object lib/plist/CMakeFiles/plist.dir/node_list.c.o" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/plist.dir/node_list.c.o -c /home/julian/UxPlay/lib/plist/node_list.c + +lib/plist/CMakeFiles/plist.dir/node_list.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/plist.dir/node_list.c.i" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/plist/node_list.c > CMakeFiles/plist.dir/node_list.c.i + +lib/plist/CMakeFiles/plist.dir/node_list.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/plist.dir/node_list.c.s" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/plist/node_list.c -o CMakeFiles/plist.dir/node_list.c.s + +lib/plist/CMakeFiles/plist.dir/node_list.c.o.requires: + +.PHONY : lib/plist/CMakeFiles/plist.dir/node_list.c.o.requires + +lib/plist/CMakeFiles/plist.dir/node_list.c.o.provides: lib/plist/CMakeFiles/plist.dir/node_list.c.o.requires + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/node_list.c.o.provides.build +.PHONY : lib/plist/CMakeFiles/plist.dir/node_list.c.o.provides + +lib/plist/CMakeFiles/plist.dir/node_list.c.o.provides.build: lib/plist/CMakeFiles/plist.dir/node_list.c.o + + +lib/plist/CMakeFiles/plist.dir/plist.c.o: lib/plist/CMakeFiles/plist.dir/flags.make +lib/plist/CMakeFiles/plist.dir/plist.c.o: ../lib/plist/plist.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building C object lib/plist/CMakeFiles/plist.dir/plist.c.o" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/plist.dir/plist.c.o -c /home/julian/UxPlay/lib/plist/plist.c + +lib/plist/CMakeFiles/plist.dir/plist.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/plist.dir/plist.c.i" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/plist/plist.c > CMakeFiles/plist.dir/plist.c.i + +lib/plist/CMakeFiles/plist.dir/plist.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/plist.dir/plist.c.s" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/plist/plist.c -o CMakeFiles/plist.dir/plist.c.s + +lib/plist/CMakeFiles/plist.dir/plist.c.o.requires: + +.PHONY : lib/plist/CMakeFiles/plist.dir/plist.c.o.requires + +lib/plist/CMakeFiles/plist.dir/plist.c.o.provides: lib/plist/CMakeFiles/plist.dir/plist.c.o.requires + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/plist.c.o.provides.build +.PHONY : lib/plist/CMakeFiles/plist.dir/plist.c.o.provides + +lib/plist/CMakeFiles/plist.dir/plist.c.o.provides.build: lib/plist/CMakeFiles/plist.dir/plist.c.o + + +lib/plist/CMakeFiles/plist.dir/ptrarray.c.o: lib/plist/CMakeFiles/plist.dir/flags.make +lib/plist/CMakeFiles/plist.dir/ptrarray.c.o: ../lib/plist/ptrarray.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Building C object lib/plist/CMakeFiles/plist.dir/ptrarray.c.o" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/plist.dir/ptrarray.c.o -c /home/julian/UxPlay/lib/plist/ptrarray.c + +lib/plist/CMakeFiles/plist.dir/ptrarray.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/plist.dir/ptrarray.c.i" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/plist/ptrarray.c > CMakeFiles/plist.dir/ptrarray.c.i + +lib/plist/CMakeFiles/plist.dir/ptrarray.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/plist.dir/ptrarray.c.s" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/plist/ptrarray.c -o CMakeFiles/plist.dir/ptrarray.c.s + +lib/plist/CMakeFiles/plist.dir/ptrarray.c.o.requires: + +.PHONY : lib/plist/CMakeFiles/plist.dir/ptrarray.c.o.requires + +lib/plist/CMakeFiles/plist.dir/ptrarray.c.o.provides: lib/plist/CMakeFiles/plist.dir/ptrarray.c.o.requires + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/ptrarray.c.o.provides.build +.PHONY : lib/plist/CMakeFiles/plist.dir/ptrarray.c.o.provides + +lib/plist/CMakeFiles/plist.dir/ptrarray.c.o.provides.build: lib/plist/CMakeFiles/plist.dir/ptrarray.c.o + + +lib/plist/CMakeFiles/plist.dir/time64.c.o: lib/plist/CMakeFiles/plist.dir/flags.make +lib/plist/CMakeFiles/plist.dir/time64.c.o: ../lib/plist/time64.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_11) "Building C object lib/plist/CMakeFiles/plist.dir/time64.c.o" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/plist.dir/time64.c.o -c /home/julian/UxPlay/lib/plist/time64.c + +lib/plist/CMakeFiles/plist.dir/time64.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/plist.dir/time64.c.i" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/plist/time64.c > CMakeFiles/plist.dir/time64.c.i + +lib/plist/CMakeFiles/plist.dir/time64.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/plist.dir/time64.c.s" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/plist/time64.c -o CMakeFiles/plist.dir/time64.c.s + +lib/plist/CMakeFiles/plist.dir/time64.c.o.requires: + +.PHONY : lib/plist/CMakeFiles/plist.dir/time64.c.o.requires + +lib/plist/CMakeFiles/plist.dir/time64.c.o.provides: lib/plist/CMakeFiles/plist.dir/time64.c.o.requires + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/time64.c.o.provides.build +.PHONY : lib/plist/CMakeFiles/plist.dir/time64.c.o.provides + +lib/plist/CMakeFiles/plist.dir/time64.c.o.provides.build: lib/plist/CMakeFiles/plist.dir/time64.c.o + + +lib/plist/CMakeFiles/plist.dir/xplist.c.o: lib/plist/CMakeFiles/plist.dir/flags.make +lib/plist/CMakeFiles/plist.dir/xplist.c.o: ../lib/plist/xplist.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_12) "Building C object lib/plist/CMakeFiles/plist.dir/xplist.c.o" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/plist.dir/xplist.c.o -c /home/julian/UxPlay/lib/plist/xplist.c + +lib/plist/CMakeFiles/plist.dir/xplist.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/plist.dir/xplist.c.i" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/lib/plist/xplist.c > CMakeFiles/plist.dir/xplist.c.i + +lib/plist/CMakeFiles/plist.dir/xplist.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/plist.dir/xplist.c.s" + cd /home/julian/UxPlay/build/lib/plist && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/lib/plist/xplist.c -o CMakeFiles/plist.dir/xplist.c.s + +lib/plist/CMakeFiles/plist.dir/xplist.c.o.requires: + +.PHONY : lib/plist/CMakeFiles/plist.dir/xplist.c.o.requires + +lib/plist/CMakeFiles/plist.dir/xplist.c.o.provides: lib/plist/CMakeFiles/plist.dir/xplist.c.o.requires + $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/xplist.c.o.provides.build +.PHONY : lib/plist/CMakeFiles/plist.dir/xplist.c.o.provides + +lib/plist/CMakeFiles/plist.dir/xplist.c.o.provides.build: lib/plist/CMakeFiles/plist.dir/xplist.c.o + + +# Object files for target plist +plist_OBJECTS = \ +"CMakeFiles/plist.dir/base64.c.o" \ +"CMakeFiles/plist.dir/bplist.c.o" \ +"CMakeFiles/plist.dir/bytearray.c.o" \ +"CMakeFiles/plist.dir/cnary.c.o" \ +"CMakeFiles/plist.dir/hashtable.c.o" \ +"CMakeFiles/plist.dir/list.c.o" \ +"CMakeFiles/plist.dir/node.c.o" \ +"CMakeFiles/plist.dir/node_list.c.o" \ +"CMakeFiles/plist.dir/plist.c.o" \ +"CMakeFiles/plist.dir/ptrarray.c.o" \ +"CMakeFiles/plist.dir/time64.c.o" \ +"CMakeFiles/plist.dir/xplist.c.o" + +# External object files for target plist +plist_EXTERNAL_OBJECTS = + +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/base64.c.o +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/bplist.c.o +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/bytearray.c.o +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/cnary.c.o +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/hashtable.c.o +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/list.c.o +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/node.c.o +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/node_list.c.o +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/plist.c.o +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/ptrarray.c.o +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/time64.c.o +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/xplist.c.o +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/build.make +lib/plist/libplist.a: lib/plist/CMakeFiles/plist.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_13) "Linking C static library libplist.a" + cd /home/julian/UxPlay/build/lib/plist && $(CMAKE_COMMAND) -P CMakeFiles/plist.dir/cmake_clean_target.cmake + cd /home/julian/UxPlay/build/lib/plist && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/plist.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +lib/plist/CMakeFiles/plist.dir/build: lib/plist/libplist.a + +.PHONY : lib/plist/CMakeFiles/plist.dir/build + +lib/plist/CMakeFiles/plist.dir/requires: lib/plist/CMakeFiles/plist.dir/base64.c.o.requires +lib/plist/CMakeFiles/plist.dir/requires: lib/plist/CMakeFiles/plist.dir/bplist.c.o.requires +lib/plist/CMakeFiles/plist.dir/requires: lib/plist/CMakeFiles/plist.dir/bytearray.c.o.requires +lib/plist/CMakeFiles/plist.dir/requires: lib/plist/CMakeFiles/plist.dir/cnary.c.o.requires +lib/plist/CMakeFiles/plist.dir/requires: lib/plist/CMakeFiles/plist.dir/hashtable.c.o.requires +lib/plist/CMakeFiles/plist.dir/requires: lib/plist/CMakeFiles/plist.dir/list.c.o.requires +lib/plist/CMakeFiles/plist.dir/requires: lib/plist/CMakeFiles/plist.dir/node.c.o.requires +lib/plist/CMakeFiles/plist.dir/requires: lib/plist/CMakeFiles/plist.dir/node_list.c.o.requires +lib/plist/CMakeFiles/plist.dir/requires: lib/plist/CMakeFiles/plist.dir/plist.c.o.requires +lib/plist/CMakeFiles/plist.dir/requires: lib/plist/CMakeFiles/plist.dir/ptrarray.c.o.requires +lib/plist/CMakeFiles/plist.dir/requires: lib/plist/CMakeFiles/plist.dir/time64.c.o.requires +lib/plist/CMakeFiles/plist.dir/requires: lib/plist/CMakeFiles/plist.dir/xplist.c.o.requires + +.PHONY : lib/plist/CMakeFiles/plist.dir/requires + +lib/plist/CMakeFiles/plist.dir/clean: + cd /home/julian/UxPlay/build/lib/plist && $(CMAKE_COMMAND) -P CMakeFiles/plist.dir/cmake_clean.cmake +.PHONY : lib/plist/CMakeFiles/plist.dir/clean + +lib/plist/CMakeFiles/plist.dir/depend: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/julian/UxPlay /home/julian/UxPlay/lib/plist /home/julian/UxPlay/build /home/julian/UxPlay/build/lib/plist /home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : lib/plist/CMakeFiles/plist.dir/depend + diff --git a/build/lib/plist/CMakeFiles/plist.dir/bytearray.c.o b/build/lib/plist/CMakeFiles/plist.dir/bytearray.c.o new file mode 100644 index 0000000000000000000000000000000000000000..37ec7bb351cefdf7317f0d93b8d352ce57103187 GIT binary patch literal 2416 zcmbtVO-vI(6n<^_smf0!nwVf>FB$>afIm^uXaNhOAwrNQnwXTOERslDvfc6*>mOj; z5E70a^ya~%-V7HACKA2q$#CRi(ufDV^aUY z=W7u^4%_)Wv)8uDm&t~f9JBiZd|n6zn7uCi*Bp~$Sr7SnRAhhpATlC1lVh`)99RvG zJFxjxt5)hV63^g7-SRB$xbuRUo!-PUH+h+L=((wuxmEt2*GPMz9W01CJyaVmahKnA z7o24_6}*RvJ1k^wp;qzCc4PxLkcHa0SJX2RbbhsVZjsirnGG~O-7)d>7(3)=4QtH) zicQ`|rww)~yghM@YfXsoawAU3N`XAOs1746R(aV1=BGW|ADR8d>AO?Bp9d5BwEO(L zanRk_*%mw*8A>Otbnv`(PHSmCljf_|hpiX1ma`2GN=F5U_!Gc0(+{4hfTzBy(!Yc+ z)=|W1keKvnuL(T!c2-w-fH_(jAij`ZifM(kP%{&m5BhcgN9J$Aq5+VyO~*7@D>W-8A)S zEyndIUqlneBt*M=dOO;CqP<;Rx55L_f%cA`a1`SD*jREGcf>Rd)%Tv6oCMR@!_&vd zjl?j-jd*N)8tWmcb0&Ur`%(X$cci}r{!+oK6#knMxKH$f-i#WB|61T)#OQ2g-p>l3 z`YZ7u>LkRcAtfXfiOX{xbm8*+9=mXPPN1cxzvt>H-sMJhjOxG-9$^vazw{*~k zQYp}4$#~pIAeKm4hSq&E(wwsN*nQAA-58CIn0nk0>Hd2PVgzc9`zD1DBl#iv=Bym9 z)M>8AL1z%cp^9HzHF1lf;F7Z6qgf5bnPDjp|_#QHZM?IE6UH{8#^0^re_B zI8>4O8&wc>nP1Lr3Z_yA{<8jF;qRv37QhQNDC)9*625^-vHrgm{T~!W>OXxIrN8Vy z?Zcg$T()I?u~E9ijQxbEH~1kb4`6!~3qR)zk_^+8mM`3J-cN#8?NWZxzB2kygt AivR!s literal 0 HcmV?d00001 diff --git a/build/lib/plist/CMakeFiles/plist.dir/cmake_clean.cmake b/build/lib/plist/CMakeFiles/plist.dir/cmake_clean.cmake new file mode 100644 index 0000000..36fa26c --- /dev/null +++ b/build/lib/plist/CMakeFiles/plist.dir/cmake_clean.cmake @@ -0,0 +1,21 @@ +file(REMOVE_RECURSE + "CMakeFiles/plist.dir/base64.c.o" + "CMakeFiles/plist.dir/bplist.c.o" + "CMakeFiles/plist.dir/bytearray.c.o" + "CMakeFiles/plist.dir/cnary.c.o" + "CMakeFiles/plist.dir/hashtable.c.o" + "CMakeFiles/plist.dir/list.c.o" + "CMakeFiles/plist.dir/node.c.o" + "CMakeFiles/plist.dir/node_list.c.o" + "CMakeFiles/plist.dir/plist.c.o" + "CMakeFiles/plist.dir/ptrarray.c.o" + "CMakeFiles/plist.dir/time64.c.o" + "CMakeFiles/plist.dir/xplist.c.o" + "libplist.pdb" + "libplist.a" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/plist.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/lib/plist/CMakeFiles/plist.dir/cmake_clean_target.cmake b/build/lib/plist/CMakeFiles/plist.dir/cmake_clean_target.cmake new file mode 100644 index 0000000..3a9472b --- /dev/null +++ b/build/lib/plist/CMakeFiles/plist.dir/cmake_clean_target.cmake @@ -0,0 +1,3 @@ +file(REMOVE_RECURSE + "libplist.a" +) diff --git a/build/lib/plist/CMakeFiles/plist.dir/cnary.c.o b/build/lib/plist/CMakeFiles/plist.dir/cnary.c.o new file mode 100644 index 0000000000000000000000000000000000000000..b7b8b02916cea73524d53cbd6ca62559fa2f0c0f GIT binary patch literal 2320 zcmbVNzi-n(6n=^651=gtA%Ro|4}d75RzfKh5GZY$#zUZ`v|@~$#55I+jci9skSGIE zr3fK0u&}YPF~G(G3>|>2e*i-lqznwOF(8%q;ydT{Tb_y|SWMAnqGcvlF%ntV_w~#?VywO=7fZw}u zqgrew0BHD&GYysEOaoRtjG(~)i@L4`@e9_Vze^I{LF|vQb#~qzu@P*eg2TJhJ@D}! z_*4%((*uXHV|h)Z3^i-bfnvU}FgsHyF3iv0%`F#~XJ!kzB0Q`IK2V7j%T#rC=vSy% zq}!3R0LWdwF30Hb0B78oVp2g7s2pzPLawu57i8`wtv_R54G zSmg&upftN$yzf~xx!h>F{W>}((l2^-H+=g&7oif);fud;v#DbHDj?Pe^mm*^#E0Xajw2>ik!6kgyadp}#4J z=M`M$%YGKerO&By-#A9T%B6cqn7V$MKTS!@Bc}{eGlq>Tk9yd2- rw#7oLqNlq=-)=RZF!k&Zf<*z|qJWu@i;$z}#pPGU`mKl=I%@tua8@(= literal 0 HcmV?d00001 diff --git a/build/lib/plist/CMakeFiles/plist.dir/depend.internal b/build/lib/plist/CMakeFiles/plist.dir/depend.internal new file mode 100644 index 0000000..2ab4f60 --- /dev/null +++ b/build/lib/plist/CMakeFiles/plist.dir/depend.internal @@ -0,0 +1,65 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +lib/plist/CMakeFiles/plist.dir/base64.c.o + /home/julian/UxPlay/lib/plist/base64.c + /home/julian/UxPlay/lib/plist/base64.h +lib/plist/CMakeFiles/plist.dir/bplist.c.o + /home/julian/UxPlay/lib/plist/bplist.c + /home/julian/UxPlay/lib/plist/bytearray.h + /home/julian/UxPlay/lib/plist/hashtable.h + /home/julian/UxPlay/lib/plist/node.h + /home/julian/UxPlay/lib/plist/object.h + /home/julian/UxPlay/lib/plist/plist.h + /home/julian/UxPlay/lib/plist/plist/plist.h + /home/julian/UxPlay/lib/plist/ptrarray.h +lib/plist/CMakeFiles/plist.dir/bytearray.c.o + /home/julian/UxPlay/lib/plist/bytearray.c + /home/julian/UxPlay/lib/plist/bytearray.h +lib/plist/CMakeFiles/plist.dir/cnary.c.o + /home/julian/UxPlay/lib/plist/cnary.c + /home/julian/UxPlay/lib/plist/node.h + /home/julian/UxPlay/lib/plist/object.h +lib/plist/CMakeFiles/plist.dir/hashtable.c.o + /home/julian/UxPlay/lib/plist/hashtable.c + /home/julian/UxPlay/lib/plist/hashtable.h +lib/plist/CMakeFiles/plist.dir/list.c.o + /home/julian/UxPlay/lib/plist/list.c + /home/julian/UxPlay/lib/plist/list.h + /home/julian/UxPlay/lib/plist/object.h +lib/plist/CMakeFiles/plist.dir/node.c.o + /home/julian/UxPlay/lib/plist/node.c + /home/julian/UxPlay/lib/plist/node.h + /home/julian/UxPlay/lib/plist/node_list.h + /home/julian/UxPlay/lib/plist/object.h +lib/plist/CMakeFiles/plist.dir/node_list.c.o + /home/julian/UxPlay/lib/plist/list.h + /home/julian/UxPlay/lib/plist/node.h + /home/julian/UxPlay/lib/plist/node_list.c + /home/julian/UxPlay/lib/plist/node_list.h + /home/julian/UxPlay/lib/plist/object.h +lib/plist/CMakeFiles/plist.dir/plist.c.o + /home/julian/UxPlay/lib/plist/hashtable.h + /home/julian/UxPlay/lib/plist/node.h + /home/julian/UxPlay/lib/plist/object.h + /home/julian/UxPlay/lib/plist/plist.c + /home/julian/UxPlay/lib/plist/plist.h + /home/julian/UxPlay/lib/plist/plist/plist.h +lib/plist/CMakeFiles/plist.dir/ptrarray.c.o + /home/julian/UxPlay/lib/plist/ptrarray.c + /home/julian/UxPlay/lib/plist/ptrarray.h +lib/plist/CMakeFiles/plist.dir/time64.c.o + /home/julian/UxPlay/lib/plist/time64.c + /home/julian/UxPlay/lib/plist/time64.h + /home/julian/UxPlay/lib/plist/time64_limits.h +lib/plist/CMakeFiles/plist.dir/xplist.c.o + /home/julian/UxPlay/lib/plist/base64.h + /home/julian/UxPlay/lib/plist/bytearray.h + /home/julian/UxPlay/lib/plist/node.h + /home/julian/UxPlay/lib/plist/node_list.h + /home/julian/UxPlay/lib/plist/object.h + /home/julian/UxPlay/lib/plist/plist.h + /home/julian/UxPlay/lib/plist/plist/plist.h + /home/julian/UxPlay/lib/plist/strbuf.h + /home/julian/UxPlay/lib/plist/time64.h + /home/julian/UxPlay/lib/plist/xplist.c diff --git a/build/lib/plist/CMakeFiles/plist.dir/depend.make b/build/lib/plist/CMakeFiles/plist.dir/depend.make new file mode 100644 index 0000000..f9e4ec0 --- /dev/null +++ b/build/lib/plist/CMakeFiles/plist.dir/depend.make @@ -0,0 +1,65 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +lib/plist/CMakeFiles/plist.dir/base64.c.o: ../lib/plist/base64.c +lib/plist/CMakeFiles/plist.dir/base64.c.o: ../lib/plist/base64.h + +lib/plist/CMakeFiles/plist.dir/bplist.c.o: ../lib/plist/bplist.c +lib/plist/CMakeFiles/plist.dir/bplist.c.o: ../lib/plist/bytearray.h +lib/plist/CMakeFiles/plist.dir/bplist.c.o: ../lib/plist/hashtable.h +lib/plist/CMakeFiles/plist.dir/bplist.c.o: ../lib/plist/node.h +lib/plist/CMakeFiles/plist.dir/bplist.c.o: ../lib/plist/object.h +lib/plist/CMakeFiles/plist.dir/bplist.c.o: ../lib/plist/plist.h +lib/plist/CMakeFiles/plist.dir/bplist.c.o: ../lib/plist/plist/plist.h +lib/plist/CMakeFiles/plist.dir/bplist.c.o: ../lib/plist/ptrarray.h + +lib/plist/CMakeFiles/plist.dir/bytearray.c.o: ../lib/plist/bytearray.c +lib/plist/CMakeFiles/plist.dir/bytearray.c.o: ../lib/plist/bytearray.h + +lib/plist/CMakeFiles/plist.dir/cnary.c.o: ../lib/plist/cnary.c +lib/plist/CMakeFiles/plist.dir/cnary.c.o: ../lib/plist/node.h +lib/plist/CMakeFiles/plist.dir/cnary.c.o: ../lib/plist/object.h + +lib/plist/CMakeFiles/plist.dir/hashtable.c.o: ../lib/plist/hashtable.c +lib/plist/CMakeFiles/plist.dir/hashtable.c.o: ../lib/plist/hashtable.h + +lib/plist/CMakeFiles/plist.dir/list.c.o: ../lib/plist/list.c +lib/plist/CMakeFiles/plist.dir/list.c.o: ../lib/plist/list.h +lib/plist/CMakeFiles/plist.dir/list.c.o: ../lib/plist/object.h + +lib/plist/CMakeFiles/plist.dir/node.c.o: ../lib/plist/node.c +lib/plist/CMakeFiles/plist.dir/node.c.o: ../lib/plist/node.h +lib/plist/CMakeFiles/plist.dir/node.c.o: ../lib/plist/node_list.h +lib/plist/CMakeFiles/plist.dir/node.c.o: ../lib/plist/object.h + +lib/plist/CMakeFiles/plist.dir/node_list.c.o: ../lib/plist/list.h +lib/plist/CMakeFiles/plist.dir/node_list.c.o: ../lib/plist/node.h +lib/plist/CMakeFiles/plist.dir/node_list.c.o: ../lib/plist/node_list.c +lib/plist/CMakeFiles/plist.dir/node_list.c.o: ../lib/plist/node_list.h +lib/plist/CMakeFiles/plist.dir/node_list.c.o: ../lib/plist/object.h + +lib/plist/CMakeFiles/plist.dir/plist.c.o: ../lib/plist/hashtable.h +lib/plist/CMakeFiles/plist.dir/plist.c.o: ../lib/plist/node.h +lib/plist/CMakeFiles/plist.dir/plist.c.o: ../lib/plist/object.h +lib/plist/CMakeFiles/plist.dir/plist.c.o: ../lib/plist/plist.c +lib/plist/CMakeFiles/plist.dir/plist.c.o: ../lib/plist/plist.h +lib/plist/CMakeFiles/plist.dir/plist.c.o: ../lib/plist/plist/plist.h + +lib/plist/CMakeFiles/plist.dir/ptrarray.c.o: ../lib/plist/ptrarray.c +lib/plist/CMakeFiles/plist.dir/ptrarray.c.o: ../lib/plist/ptrarray.h + +lib/plist/CMakeFiles/plist.dir/time64.c.o: ../lib/plist/time64.c +lib/plist/CMakeFiles/plist.dir/time64.c.o: ../lib/plist/time64.h +lib/plist/CMakeFiles/plist.dir/time64.c.o: ../lib/plist/time64_limits.h + +lib/plist/CMakeFiles/plist.dir/xplist.c.o: ../lib/plist/base64.h +lib/plist/CMakeFiles/plist.dir/xplist.c.o: ../lib/plist/bytearray.h +lib/plist/CMakeFiles/plist.dir/xplist.c.o: ../lib/plist/node.h +lib/plist/CMakeFiles/plist.dir/xplist.c.o: ../lib/plist/node_list.h +lib/plist/CMakeFiles/plist.dir/xplist.c.o: ../lib/plist/object.h +lib/plist/CMakeFiles/plist.dir/xplist.c.o: ../lib/plist/plist.h +lib/plist/CMakeFiles/plist.dir/xplist.c.o: ../lib/plist/plist/plist.h +lib/plist/CMakeFiles/plist.dir/xplist.c.o: ../lib/plist/strbuf.h +lib/plist/CMakeFiles/plist.dir/xplist.c.o: ../lib/plist/time64.h +lib/plist/CMakeFiles/plist.dir/xplist.c.o: ../lib/plist/xplist.c + diff --git a/build/lib/plist/CMakeFiles/plist.dir/flags.make b/build/lib/plist/CMakeFiles/plist.dir/flags.make new file mode 100644 index 0000000..929cc6e --- /dev/null +++ b/build/lib/plist/CMakeFiles/plist.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# compile C with /usr/bin/cc +C_FLAGS = + +C_DEFINES = + +C_INCLUDES = + diff --git a/build/lib/plist/CMakeFiles/plist.dir/hashtable.c.o b/build/lib/plist/CMakeFiles/plist.dir/hashtable.c.o new file mode 100644 index 0000000000000000000000000000000000000000..b16106185d6bce9bb3d05206e9d17944d50331bc GIT binary patch literal 3008 zcmb_d&u<$=6dorbaZB1bRfQs2fmMm0qN{|0Xe$IxqD@wil2Gac5|ZnkxP2=S!ZnfJ|m zZ{~gPjs2;WOsTq?>=^FFsNvl2Hh_01Pd>Ye7}nT??$mt_s^t!|zpv_TDuxUkV!SxfM5_#DTQ2Db+V-h97vVn|7Y3X0h=Oqb4T*J{lSNEQw_>SHt3nfQN z=uP3}(?!l_@1*uAp-OQ2pp#!Dgrfy@#RW{t4@tnm9luyebutZtT9lv z%j~fq_*qnM4>1H==pfEk2e}Hi_Q*nXCUpdg**Yt{1Y1aw*n)Gw)?ruxPDEQ%Vin_U zP%ZB>`$v9uP}Aw4rhZ!<>ecgaToV4x-VJd9e#2c?-xW7}Ko)NDf$Uin8wlQp-g$VZ z7eHJVd*RahB=}vb20EvEHeDYshM=Dx0_t0&1LtMwpe6YJ;1>ZddM_gA{?;jZQ9l~* zB@YGi*u<8OXTa;o7U$>B$DdEG+G~~_e@%N;n?8NU=Gx5W%vo*vl^1-J9jBT?A~!Cw z$a*YtVtg!G1Dhv-(IEMPKC?$-H;3krj1Jv`g}?VY;gD_m1p9Y`{SOF-oI$)`e^`r< z0mc4=HX+~AC-A==_}?ZR^4uf-r?|hrbMQ;1BkYgv!5zki`~DIWKHSe7=*R$kbO1g! z0DtTNegw!dP|2H9A^3Sx=MjljS zwu=6om8+teOKX<7ZZYjj+DbERwNzqSrjXB@YrxhDmZ>eilRRCr(wS>aVWxBNQ^bY-MM<8;AUyn{ zZ-&k#TM|)rU%~e!42t<*{b%4yF{d$9k>|gtf>_J*<$PYjRMR{E^8U-hU+qbXBmMdR zs1jK6C!x2n=*Pd;hkt^kzvQ3t2%k-{v*IVPA`+!HM!sQxs%w~gK+F>jb&C{5BySR$ S#G;@7WpU8^(ooD{|9=3_XNoKU literal 0 HcmV?d00001 diff --git a/build/lib/plist/CMakeFiles/plist.dir/link.txt b/build/lib/plist/CMakeFiles/plist.dir/link.txt new file mode 100644 index 0000000..483246c --- /dev/null +++ b/build/lib/plist/CMakeFiles/plist.dir/link.txt @@ -0,0 +1,2 @@ +/usr/bin/ar qc libplist.a CMakeFiles/plist.dir/base64.c.o CMakeFiles/plist.dir/bplist.c.o CMakeFiles/plist.dir/bytearray.c.o CMakeFiles/plist.dir/cnary.c.o CMakeFiles/plist.dir/hashtable.c.o CMakeFiles/plist.dir/list.c.o CMakeFiles/plist.dir/node.c.o CMakeFiles/plist.dir/node_list.c.o CMakeFiles/plist.dir/plist.c.o CMakeFiles/plist.dir/ptrarray.c.o CMakeFiles/plist.dir/time64.c.o CMakeFiles/plist.dir/xplist.c.o +/usr/bin/ranlib libplist.a diff --git a/build/lib/plist/CMakeFiles/plist.dir/list.c.o b/build/lib/plist/CMakeFiles/plist.dir/list.c.o new file mode 100644 index 0000000000000000000000000000000000000000..6c2446af1522920ac66283327e008ffc3958c1ae GIT binary patch literal 1768 zcmb_c&ubGw6n>j%TWys1;~-Qpc#tY~NYJ7bm83C0kkAxukb-5qNwzfFB(gh^R;&sI zG4zt7e}jL4N5Mn!?!kXR=)r^DauDi!vop;&*?15i%)U3@`@T0jZy)Ra8y~K;i1%s|K#_ z^V-1GeSrB}P3~0Db1(4gD)QV7hjDk41FJjS0ao>WV6}F$>9!DSwYkd*3zZq4JGCdk z1l?V?*F2|*H~K%8z%n$W<^-h?BYPaU!>9QVnZgY9G=0bjg18*va}qy>p0qS)WD388 zG2!OKzb8_Nnde_c4%PfueG0WyGl@$#b^a9{#8{oLJk7O=b?O&=qs1n-EcN>A5&f&w zypvuz)jzerhe25Xr)5J{C6W41e*>jg{ipXa&nC%J`J#)`AD3EFPj$`Slm4SDO83*v Ty#FaohUwo*a9I~)Z0dgl_=uwj literal 0 HcmV?d00001 diff --git a/build/lib/plist/CMakeFiles/plist.dir/node.c.o b/build/lib/plist/CMakeFiles/plist.dir/node.c.o new file mode 100644 index 0000000000000000000000000000000000000000..444fa97ed60624f1e99484b7000b3dce55a67290 GIT binary patch literal 5520 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 literal 0 HcmV?d00001 diff --git a/build/lib/plist/CMakeFiles/plist.dir/plist.c.o b/build/lib/plist/CMakeFiles/plist.dir/plist.c.o new file mode 100644 index 0000000000000000000000000000000000000000..5ca347b5ad3830e6924befd806898ca4b3f1998e GIT binary patch literal 25408 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 LJ5549+wuEf(poFp literal 0 HcmV?d00001 diff --git a/build/lib/plist/CMakeFiles/plist.dir/progress.make b/build/lib/plist/CMakeFiles/plist.dir/progress.make new file mode 100644 index 0000000..c557ef3 --- /dev/null +++ b/build/lib/plist/CMakeFiles/plist.dir/progress.make @@ -0,0 +1,14 @@ +CMAKE_PROGRESS_1 = 41 +CMAKE_PROGRESS_2 = 42 +CMAKE_PROGRESS_3 = 43 +CMAKE_PROGRESS_4 = 44 +CMAKE_PROGRESS_5 = 45 +CMAKE_PROGRESS_6 = 46 +CMAKE_PROGRESS_7 = 47 +CMAKE_PROGRESS_8 = 48 +CMAKE_PROGRESS_9 = 49 +CMAKE_PROGRESS_10 = 50 +CMAKE_PROGRESS_11 = 51 +CMAKE_PROGRESS_12 = 52 +CMAKE_PROGRESS_13 = 53 + diff --git a/build/lib/plist/CMakeFiles/plist.dir/ptrarray.c.o b/build/lib/plist/CMakeFiles/plist.dir/ptrarray.c.o new file mode 100644 index 0000000000000000000000000000000000000000..731acc27cdc0ec003e3e5f81b9de0b70c06f53d5 GIT binary patch literal 2304 zcmbtVO-NKx6h3dpbSl%S3?y63DpK;HR9Mo_8)e2zh>AH-P>fG~V&#nSd_yWt8Cvid z1edmJQ_G;8yHW{jCj=2~k{}RtVY^ubcFukG&fH!z5Ov_*bMAM(bI!fzzB}_M)*TOM z8c5OLG89)5MO|664Q?7x4F@5?-0y5|C*o#z-b4`JA|G>O`CM#=EwPo&AamCRxXN;| zJafb38s6|0ec@#Y13b>|kgDxbUG{w$0PJpMLKHmKXWdFzOI`Bvhu5sJX8J*!3TqA3RiQ=vfKDJrgJgoHXifNOpz}~= z;0`i8-$lYvuFxd?Gu+K%ZxW93l_u#Ad?~~~ARHx5Q^6ng5)f8G=-aMbEes~WNJB|Y%${*5F25&>0^2m7JYs8{u z_|!|{zd}vIdyjemN2$7WN5o&C#-i}MAmg56o3?FE>%(Lwxt&Z~_aWKU-P;lEPWHy* z*J1<7foMl}ED0%de0)Nsj@p)`M4BTbU|W9D?evH>Mb+RipXqJ^4&eB?=gG-3_%j8k zUQ7OqGPo|zNBL_MenjvCsA)(sgduU+|3M!v`#kHzWj{fmoK89B5NgNv^q914YuwZw zYsvwA#B@y1hbAXMAD&31tTbZj3CGgAdJ@f(jyZf6bWXR%lB2envP8N6RuRlVt?_^H z24W;1Mc=%Y$CWne1{~B=1BWW_#nbX`7hpd+DHZ=OKwU4$biaiAU+7WwG6a{DZ#!@r zG0OR`@vR~!y+2iC{U#MeTh^DlUBOi9rN7*NuZZ{44FN2vNzs=5lkinEO7-6mKS_gv zNd2c@FBvcUPv`L0rjXA9oD~P9H%YPnc*^VVJwk9@-2XT&6p?+C5WV|S@z2HnZ%Crh G{`g-Hq*)LE literal 0 HcmV?d00001 diff --git a/build/lib/plist/CMakeFiles/plist.dir/time64.c.o b/build/lib/plist/CMakeFiles/plist.dir/time64.c.o new file mode 100644 index 0000000000000000000000000000000000000000..984158c2012e24328ed4df19f521bb59c59fed92 GIT binary patch literal 16968 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 literal 0 HcmV?d00001 diff --git a/build/lib/plist/CMakeFiles/plist.dir/xplist.c.o b/build/lib/plist/CMakeFiles/plist.dir/xplist.c.o new file mode 100644 index 0000000000000000000000000000000000000000..11be3dbfed7c4e9fe25e4b75b8e459b36731a300 GIT binary patch literal 29224 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 literal 0 HcmV?d00001 diff --git a/build/lib/plist/CMakeFiles/progress.marks b/build/lib/plist/CMakeFiles/progress.marks new file mode 100644 index 0000000..b1bd38b --- /dev/null +++ b/build/lib/plist/CMakeFiles/progress.marks @@ -0,0 +1 @@ +13 diff --git a/build/lib/plist/Makefile b/build/lib/plist/Makefile new file mode 100644 index 0000000..e2bc3f5 --- /dev/null +++ b/build/lib/plist/Makefile @@ -0,0 +1,560 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/julian/UxPlay + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/julian/UxPlay/build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." + /usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components + +.PHONY : list_install_components/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# The main all target +all: cmake_check_build_system + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles /home/julian/UxPlay/build/lib/plist/CMakeFiles/progress.marks + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/plist/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/julian/UxPlay/build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/plist/clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/plist/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/plist/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +lib/plist/CMakeFiles/plist.dir/rule: + cd /home/julian/UxPlay/build && $(MAKE) -f CMakeFiles/Makefile2 lib/plist/CMakeFiles/plist.dir/rule +.PHONY : lib/plist/CMakeFiles/plist.dir/rule + +# Convenience name for target. +plist: lib/plist/CMakeFiles/plist.dir/rule + +.PHONY : plist + +# fast build rule for target. +plist/fast: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/build +.PHONY : plist/fast + +base64.o: base64.c.o + +.PHONY : base64.o + +# target to build an object file +base64.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/base64.c.o +.PHONY : base64.c.o + +base64.i: base64.c.i + +.PHONY : base64.i + +# target to preprocess a source file +base64.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/base64.c.i +.PHONY : base64.c.i + +base64.s: base64.c.s + +.PHONY : base64.s + +# target to generate assembly for a file +base64.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/base64.c.s +.PHONY : base64.c.s + +bplist.o: bplist.c.o + +.PHONY : bplist.o + +# target to build an object file +bplist.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/bplist.c.o +.PHONY : bplist.c.o + +bplist.i: bplist.c.i + +.PHONY : bplist.i + +# target to preprocess a source file +bplist.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/bplist.c.i +.PHONY : bplist.c.i + +bplist.s: bplist.c.s + +.PHONY : bplist.s + +# target to generate assembly for a file +bplist.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/bplist.c.s +.PHONY : bplist.c.s + +bytearray.o: bytearray.c.o + +.PHONY : bytearray.o + +# target to build an object file +bytearray.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/bytearray.c.o +.PHONY : bytearray.c.o + +bytearray.i: bytearray.c.i + +.PHONY : bytearray.i + +# target to preprocess a source file +bytearray.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/bytearray.c.i +.PHONY : bytearray.c.i + +bytearray.s: bytearray.c.s + +.PHONY : bytearray.s + +# target to generate assembly for a file +bytearray.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/bytearray.c.s +.PHONY : bytearray.c.s + +cnary.o: cnary.c.o + +.PHONY : cnary.o + +# target to build an object file +cnary.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/cnary.c.o +.PHONY : cnary.c.o + +cnary.i: cnary.c.i + +.PHONY : cnary.i + +# target to preprocess a source file +cnary.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/cnary.c.i +.PHONY : cnary.c.i + +cnary.s: cnary.c.s + +.PHONY : cnary.s + +# target to generate assembly for a file +cnary.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/cnary.c.s +.PHONY : cnary.c.s + +hashtable.o: hashtable.c.o + +.PHONY : hashtable.o + +# target to build an object file +hashtable.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/hashtable.c.o +.PHONY : hashtable.c.o + +hashtable.i: hashtable.c.i + +.PHONY : hashtable.i + +# target to preprocess a source file +hashtable.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/hashtable.c.i +.PHONY : hashtable.c.i + +hashtable.s: hashtable.c.s + +.PHONY : hashtable.s + +# target to generate assembly for a file +hashtable.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/hashtable.c.s +.PHONY : hashtable.c.s + +list.o: list.c.o + +.PHONY : list.o + +# target to build an object file +list.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/list.c.o +.PHONY : list.c.o + +list.i: list.c.i + +.PHONY : list.i + +# target to preprocess a source file +list.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/list.c.i +.PHONY : list.c.i + +list.s: list.c.s + +.PHONY : list.s + +# target to generate assembly for a file +list.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/list.c.s +.PHONY : list.c.s + +node.o: node.c.o + +.PHONY : node.o + +# target to build an object file +node.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/node.c.o +.PHONY : node.c.o + +node.i: node.c.i + +.PHONY : node.i + +# target to preprocess a source file +node.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/node.c.i +.PHONY : node.c.i + +node.s: node.c.s + +.PHONY : node.s + +# target to generate assembly for a file +node.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/node.c.s +.PHONY : node.c.s + +node_list.o: node_list.c.o + +.PHONY : node_list.o + +# target to build an object file +node_list.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/node_list.c.o +.PHONY : node_list.c.o + +node_list.i: node_list.c.i + +.PHONY : node_list.i + +# target to preprocess a source file +node_list.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/node_list.c.i +.PHONY : node_list.c.i + +node_list.s: node_list.c.s + +.PHONY : node_list.s + +# target to generate assembly for a file +node_list.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/node_list.c.s +.PHONY : node_list.c.s + +plist.o: plist.c.o + +.PHONY : plist.o + +# target to build an object file +plist.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/plist.c.o +.PHONY : plist.c.o + +plist.i: plist.c.i + +.PHONY : plist.i + +# target to preprocess a source file +plist.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/plist.c.i +.PHONY : plist.c.i + +plist.s: plist.c.s + +.PHONY : plist.s + +# target to generate assembly for a file +plist.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/plist.c.s +.PHONY : plist.c.s + +ptrarray.o: ptrarray.c.o + +.PHONY : ptrarray.o + +# target to build an object file +ptrarray.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/ptrarray.c.o +.PHONY : ptrarray.c.o + +ptrarray.i: ptrarray.c.i + +.PHONY : ptrarray.i + +# target to preprocess a source file +ptrarray.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/ptrarray.c.i +.PHONY : ptrarray.c.i + +ptrarray.s: ptrarray.c.s + +.PHONY : ptrarray.s + +# target to generate assembly for a file +ptrarray.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/ptrarray.c.s +.PHONY : ptrarray.c.s + +time64.o: time64.c.o + +.PHONY : time64.o + +# target to build an object file +time64.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/time64.c.o +.PHONY : time64.c.o + +time64.i: time64.c.i + +.PHONY : time64.i + +# target to preprocess a source file +time64.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/time64.c.i +.PHONY : time64.c.i + +time64.s: time64.c.s + +.PHONY : time64.s + +# target to generate assembly for a file +time64.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/time64.c.s +.PHONY : time64.c.s + +xplist.o: xplist.c.o + +.PHONY : xplist.o + +# target to build an object file +xplist.c.o: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/xplist.c.o +.PHONY : xplist.c.o + +xplist.i: xplist.c.i + +.PHONY : xplist.i + +# target to preprocess a source file +xplist.c.i: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/xplist.c.i +.PHONY : xplist.c.i + +xplist.s: xplist.c.s + +.PHONY : xplist.s + +# target to generate assembly for a file +xplist.c.s: + cd /home/julian/UxPlay/build && $(MAKE) -f lib/plist/CMakeFiles/plist.dir/build.make lib/plist/CMakeFiles/plist.dir/xplist.c.s +.PHONY : xplist.c.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... install/strip" + @echo "... edit_cache" + @echo "... list_install_components" + @echo "... plist" + @echo "... install/local" + @echo "... rebuild_cache" + @echo "... install" + @echo "... base64.o" + @echo "... base64.i" + @echo "... base64.s" + @echo "... bplist.o" + @echo "... bplist.i" + @echo "... bplist.s" + @echo "... bytearray.o" + @echo "... bytearray.i" + @echo "... bytearray.s" + @echo "... cnary.o" + @echo "... cnary.i" + @echo "... cnary.s" + @echo "... hashtable.o" + @echo "... hashtable.i" + @echo "... hashtable.s" + @echo "... list.o" + @echo "... list.i" + @echo "... list.s" + @echo "... node.o" + @echo "... node.i" + @echo "... node.s" + @echo "... node_list.o" + @echo "... node_list.i" + @echo "... node_list.s" + @echo "... plist.o" + @echo "... plist.i" + @echo "... plist.s" + @echo "... ptrarray.o" + @echo "... ptrarray.i" + @echo "... ptrarray.s" + @echo "... time64.o" + @echo "... time64.i" + @echo "... time64.s" + @echo "... xplist.o" + @echo "... xplist.i" + @echo "... xplist.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/lib/plist/cmake_install.cmake b/build/lib/plist/cmake_install.cmake new file mode 100644 index 0000000..c7aec48 --- /dev/null +++ b/build/lib/plist/cmake_install.cmake @@ -0,0 +1,39 @@ +# Install script for directory: /home/julian/UxPlay/lib/plist + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + diff --git a/build/lib/plist/libplist.a b/build/lib/plist/libplist.a new file mode 100644 index 0000000000000000000000000000000000000000..d4a2f1f4645a886d56b079bc1ef77bd40759d663 GIT binary patch literal 124654 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]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/julian/UxPlay/lib/logger.h + +/home/julian/UxPlay/lib/raop_ntp.h +stdbool.h +- +stdint.h +- +logger.h +/home/julian/UxPlay/lib/logger.h + +/home/julian/UxPlay/renderers/audio_renderer.h +stdint.h +- +stdbool.h +- +../lib/logger.h +/home/julian/UxPlay/lib/logger.h +../lib/raop_ntp.h +/home/julian/UxPlay/lib/raop_ntp.h +video_renderer.h +/home/julian/UxPlay/renderers/video_renderer.h + +/home/julian/UxPlay/renderers/audio_renderer_gstreamer.c +audio_renderer.h +/home/julian/UxPlay/renderers/audio_renderer.h +stdlib.h +- +assert.h +- +stdio.h +- +string.h +- +stdbool.h +- +unistd.h +- +gst/app/gstappsrc.h +- + +/home/julian/UxPlay/renderers/video_renderer.h +stdint.h +- +stdbool.h +- +../lib/logger.h +/home/julian/UxPlay/lib/logger.h +../lib/raop_ntp.h +/home/julian/UxPlay/lib/raop_ntp.h + +/home/julian/UxPlay/renderers/video_renderer_gstreamer.c +video_renderer.h +/home/julian/UxPlay/renderers/video_renderer.h +stdlib.h +- +assert.h +- +stdio.h +- +string.h +- +stdbool.h +- +unistd.h +- +gst/gst.h +- +gst/app/gstappsrc.h +- +gst/video/videooverlay.h +- + +/usr/include/glib-2.0/glib-object.h +gobject/gbinding.h +- +gobject/gboxed.h +- +gobject/genums.h +- +gobject/gobject.h +- +gobject/gparam.h +- +gobject/gparamspecs.h +- +gobject/gsignal.h +- +gobject/gsourceclosure.h +- +gobject/gtype.h +- +gobject/gtypemodule.h +- +gobject/gtypeplugin.h +- +gobject/gvalue.h +- +gobject/gvaluearray.h +- +gobject/gvaluetypes.h +- +gobject/gobject-autocleanups.h +- + +/usr/include/glib-2.0/glib.h +glib/galloca.h +- +glib/garray.h +- +glib/gasyncqueue.h +- +glib/gatomic.h +- +glib/gbacktrace.h +- +glib/gbase64.h +- +glib/gbitlock.h +- +glib/gbookmarkfile.h +- +glib/gbytes.h +- +glib/gcharset.h +- +glib/gchecksum.h +- +glib/gconvert.h +- +glib/gdataset.h +- +glib/gdate.h +- +glib/gdatetime.h +- +glib/gdir.h +- +glib/genviron.h +- +glib/gerror.h +- +glib/gfileutils.h +- +glib/ggettext.h +- +glib/ghash.h +- +glib/ghmac.h +- +glib/ghook.h +- +glib/ghostutils.h +- +glib/giochannel.h +- +glib/gkeyfile.h +- +glib/glist.h +- +glib/gmacros.h +- +glib/gmain.h +- +glib/gmappedfile.h +- +glib/gmarkup.h +- +glib/gmem.h +- +glib/gmessages.h +- +glib/gnode.h +- +glib/goption.h +- +glib/gpattern.h +- +glib/gpoll.h +- +glib/gprimes.h +- +glib/gqsort.h +- +glib/gquark.h +- +glib/gqueue.h +- +glib/grand.h +- +glib/gregex.h +- +glib/gscanner.h +- +glib/gsequence.h +- +glib/gshell.h +- +glib/gslice.h +- +glib/gslist.h +- +glib/gspawn.h +- +glib/gstrfuncs.h +- +glib/gstring.h +- +glib/gstringchunk.h +- +glib/gtestutils.h +- +glib/gthread.h +- +glib/gthreadpool.h +- +glib/gtimer.h +- +glib/gtimezone.h +- +glib/gtrashstack.h +- +glib/gtree.h +- +glib/gtypes.h +- +glib/gunicode.h +- +glib/gurifuncs.h +- +glib/gutils.h +- +glib/guuid.h +- +glib/gvarianttype.h +- +glib/gvariant.h +- +glib/gversion.h +- +glib/gversionmacros.h +- +glib/gwin32.h +- +glib/deprecated/gallocator.h +- +glib/deprecated/gcache.h +- +glib/deprecated/gcompletion.h +- +glib/deprecated/gmain.h +- +glib/deprecated/grel.h +- +glib/deprecated/gthread.h +- +glib/glib-autocleanups.h +- + +/usr/include/glib-2.0/glib/deprecated/gallocator.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/deprecated/gcache.h +glib/glist.h +- + +/usr/include/glib-2.0/glib/deprecated/gcompletion.h +glib/glist.h +- + +/usr/include/glib-2.0/glib/deprecated/gmain.h +glib/gmain.h +- + +/usr/include/glib-2.0/glib/deprecated/grel.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/deprecated/gthread.h +glib/gthread.h +- +sys/types.h +- +pthread.h +- + +/usr/include/glib-2.0/glib/galloca.h +glib/gtypes.h +- +alloca.h +- +alloca.h +- +malloc.h +- + +/usr/include/glib-2.0/glib/garray.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gasyncqueue.h +glib/gthread.h +- + +/usr/include/glib-2.0/glib/gatomic.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gbacktrace.h +glib/gtypes.h +- +sys/select.h +- +signal.h +- + +/usr/include/glib-2.0/glib/gbase64.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gbitlock.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gbookmarkfile.h +glib/gerror.h +- +time.h +- + +/usr/include/glib-2.0/glib/gbytes.h +glib/gtypes.h +- +glib/garray.h +- + +/usr/include/glib-2.0/glib/gcharset.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gchecksum.h +glib/gtypes.h +- +glib/gbytes.h +- + +/usr/include/glib-2.0/glib/gconvert.h +glib/gerror.h +- + +/usr/include/glib-2.0/glib/gdataset.h +glib/gquark.h +- + +/usr/include/glib-2.0/glib/gdate.h +time.h +- +glib/gtypes.h +- +glib/gquark.h +- + +/usr/include/glib-2.0/glib/gdatetime.h +glib/gtimezone.h +- + +/usr/include/glib-2.0/glib/gdir.h +glib/gerror.h +- +dirent.h +- + +/usr/include/glib-2.0/glib/genviron.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gerror.h +stdarg.h +- +glib/gquark.h +- + +/usr/include/glib-2.0/glib/gfileutils.h +glibconfig.h +- +glib/gerror.h +- + +/usr/include/glib-2.0/glib/ggettext.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/ghash.h +glib/gtypes.h +- +glib/glist.h +- + +/usr/include/glib-2.0/glib/ghmac.h +glib/gtypes.h +- +gchecksum.h +/usr/include/glib-2.0/glib/gchecksum.h + +/usr/include/glib-2.0/glib/ghook.h +glib/gmem.h +- + +/usr/include/glib-2.0/glib/ghostutils.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/giochannel.h +glib/gconvert.h +- +glib/gmain.h +- +glib/gstring.h +- + +/usr/include/glib-2.0/glib/gkeyfile.h +glib/gbytes.h +- +glib/gerror.h +- + +/usr/include/glib-2.0/glib/glib-autocleanups.h + +/usr/include/glib-2.0/glib/glist.h +glib/gmem.h +- +glib/gnode.h +- + +/usr/include/glib-2.0/glib/gmacros.h +stddef.h +- + +/usr/include/glib-2.0/glib/gmain.h +glib/gpoll.h +- +glib/gslist.h +- +glib/gthread.h +- + +/usr/include/glib-2.0/glib/gmappedfile.h +glib/gbytes.h +- +glib/gerror.h +- + +/usr/include/glib-2.0/glib/gmarkup.h +stdarg.h +- +glib/gerror.h +- +glib/gslist.h +- + +/usr/include/glib-2.0/glib/gmem.h +glib/gutils.h +- + +/usr/include/glib-2.0/glib/gmessages.h +stdarg.h +- +glib/gtypes.h +- +glib/gmacros.h +- +glib/gvariant.h +- + +/usr/include/glib-2.0/glib/gnode.h +glib/gmem.h +- + +/usr/include/glib-2.0/glib/goption.h +glib/gerror.h +- +glib/gquark.h +- + +/usr/include/glib-2.0/glib/gpattern.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gpoll.h +glibconfig.h +- +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gprimes.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gqsort.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gquark.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gqueue.h +glib/glist.h +- + +/usr/include/glib-2.0/glib/grand.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gregex.h +glib/gerror.h +- +glib/gstring.h +- + +/usr/include/glib-2.0/glib/gscanner.h +glib/gdataset.h +- +glib/ghash.h +- + +/usr/include/glib-2.0/glib/gsequence.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gshell.h +glib/gerror.h +- + +/usr/include/glib-2.0/glib/gslice.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gslist.h +glib/gmem.h +- +glib/gnode.h +- + +/usr/include/glib-2.0/glib/gspawn.h +glib/gerror.h +- + +/usr/include/glib-2.0/glib/gstrfuncs.h +stdarg.h +- +glib/gmacros.h +- +glib/gtypes.h +- +glib/gerror.h +- + +/usr/include/glib-2.0/glib/gstring.h +glib/gtypes.h +- +glib/gunicode.h +- +glib/gbytes.h +- +glib/gutils.h +- + +/usr/include/glib-2.0/glib/gstringchunk.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gtestutils.h +glib/gmessages.h +- +glib/gstring.h +- +glib/gerror.h +- +glib/gslist.h +- +string.h +- + +/usr/include/glib-2.0/glib/gthread.h +glib/gatomic.h +- +glib/gerror.h +- +glib/gutils.h +- + +/usr/include/glib-2.0/glib/gthreadpool.h +glib/gthread.h +- + +/usr/include/glib-2.0/glib/gtimer.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gtimezone.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gtrashstack.h +glib/gutils.h +- + +/usr/include/glib-2.0/glib/gtree.h +glib/gnode.h +- + +/usr/include/glib-2.0/glib/gtypes.h +glibconfig.h +- +glib/gmacros.h +- +glib/gversionmacros.h +- +time.h +- + +/usr/include/glib-2.0/glib/gunicode.h +glib/gerror.h +- +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gurifuncs.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gutils.h +glib/gtypes.h +- +stdarg.h +- +stdlib.h +- + +/usr/include/glib-2.0/glib/guuid.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gvariant.h +glib/gvarianttype.h +- +glib/gstring.h +- +glib/gbytes.h +- + +/usr/include/glib-2.0/glib/gvarianttype.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gversion.h +glib/gtypes.h +- + +/usr/include/glib-2.0/glib/gversionmacros.h + +/usr/include/glib-2.0/glib/gwin32.h +glib/gtypes.h +- + +/usr/include/glib-2.0/gobject/gbinding.h +glib.h +- +gobject/gobject.h +- + +/usr/include/glib-2.0/gobject/gboxed.h +gobject/gtype.h +- +gobject/glib-types.h +- + +/usr/include/glib-2.0/gobject/gclosure.h +gobject/gtype.h +- + +/usr/include/glib-2.0/gobject/genums.h +gobject/gtype.h +- + +/usr/include/glib-2.0/gobject/glib-types.h +glib.h +- + +/usr/include/glib-2.0/gobject/gmarshal.h + +/usr/include/glib-2.0/gobject/gobject-autocleanups.h + +/usr/include/glib-2.0/gobject/gobject.h +gobject/gtype.h +- +gobject/gvalue.h +- +gobject/gparam.h +- +gobject/gclosure.h +- +gobject/gsignal.h +- +gobject/gboxed.h +- + +/usr/include/glib-2.0/gobject/gparam.h +gobject/gvalue.h +- + +/usr/include/glib-2.0/gobject/gparamspecs.h +gobject/gvalue.h +- +gobject/genums.h +- +gobject/gboxed.h +- +gobject/gobject.h +- + +/usr/include/glib-2.0/gobject/gsignal.h +gobject/gclosure.h +- +gobject/gvalue.h +- +gobject/gparam.h +- +gobject/gmarshal.h +- + +/usr/include/glib-2.0/gobject/gsourceclosure.h +gobject/gclosure.h +- +gobject/glib-types.h +- + +/usr/include/glib-2.0/gobject/gtype.h +glib.h +- + +/usr/include/glib-2.0/gobject/gtypemodule.h +gobject/gobject.h +- +gobject/genums.h +- + +/usr/include/glib-2.0/gobject/gtypeplugin.h +gobject/gtype.h +- + +/usr/include/glib-2.0/gobject/gvalue.h +gobject/gtype.h +- + +/usr/include/glib-2.0/gobject/gvaluearray.h +gobject/gvalue.h +- + +/usr/include/glib-2.0/gobject/gvaluetypes.h +gobject/gvalue.h +- + +/usr/include/gstreamer-1.0/gst/app/app-enumtypes.h +gst/gst.h +- +gst/app/app-prelude.h +- + +/usr/include/gstreamer-1.0/gst/app/app-prelude.h +gst/gst.h +- + +/usr/include/gstreamer-1.0/gst/app/gstappsrc.h +gst/gst.h +- +gst/base/gstpushsrc.h +- +gst/app/app-prelude.h +- +gst/app/app-enumtypes.h +- + +/usr/include/gstreamer-1.0/gst/base/base-prelude.h +gst/gst.h +- + +/usr/include/gstreamer-1.0/gst/base/gstbasesink.h +gst/gst.h +- +gst/base/base-prelude.h +- + +/usr/include/gstreamer-1.0/gst/base/gstbasesrc.h +gst/gst.h +- +gst/base/base-prelude.h +- + +/usr/include/gstreamer-1.0/gst/base/gstpushsrc.h +gst/gst.h +- +gst/base/gstbasesrc.h +- + +/usr/include/gstreamer-1.0/gst/glib-compat.h +glib.h +- + +/usr/include/gstreamer-1.0/gst/gst.h +glib.h +- +gst/glib-compat.h +- +gst/gstenumtypes.h +- +gst/gstversion.h +- +gst/gstatomicqueue.h +- +gst/gstbin.h +- +gst/gstbuffer.h +- +gst/gstbufferlist.h +- +gst/gstbufferpool.h +- +gst/gstcaps.h +- +gst/gstcapsfeatures.h +- +gst/gstchildproxy.h +- +gst/gstclock.h +- +gst/gstcontrolsource.h +- +gst/gstdatetime.h +- +gst/gstdebugutils.h +- +gst/gstdevice.h +- +gst/gstdevicemonitor.h +- +gst/gstdeviceprovider.h +- +gst/gstdynamictypefactory.h +- +gst/gstelement.h +- +gst/gstelementmetadata.h +- +gst/gsterror.h +- +gst/gstevent.h +- +gst/gstghostpad.h +- +gst/gstinfo.h +- +gst/gstiterator.h +- +gst/gstmessage.h +- +gst/gstmemory.h +- +gst/gstmeta.h +- +gst/gstminiobject.h +- +gst/gstobject.h +- +gst/gststreamcollection.h +- +gst/gstpad.h +- +gst/gstparamspecs.h +- +gst/gstpipeline.h +- +gst/gstplugin.h +- +gst/gstpoll.h +- +gst/gstpreset.h +- +gst/gstprotection.h +- +gst/gstquery.h +- +gst/gstregistry.h +- +gst/gstpromise.h +- +gst/gstsample.h +- +gst/gstsegment.h +- +gst/gststreams.h +- +gst/gststructure.h +- +gst/gstsystemclock.h +- +gst/gsttaglist.h +- +gst/gsttagsetter.h +- +gst/gsttask.h +- +gst/gsttaskpool.h +- +gst/gsttoc.h +- +gst/gsttocsetter.h +- +gst/gsttracer.h +- +gst/gsttracerfactory.h +- +gst/gsttracerrecord.h +- +gst/gsttypefind.h +- +gst/gsttypefindfactory.h +- +gst/gsturi.h +- +gst/gstutils.h +- +gst/gstvalue.h +- +gst/gstparse.h +- +gst/gstcompat.h +- + +/usr/include/gstreamer-1.0/gst/gstallocator.h +gst/gstmemory.h +- +gst/gstobject.h +- + +/usr/include/gstreamer-1.0/gst/gstatomicqueue.h +glib.h +- +glib-object.h +- +gst/gstconfig.h +- + +/usr/include/gstreamer-1.0/gst/gstbin.h +gst/gstelement.h +- +gst/gstiterator.h +- +gst/gstbus.h +- + +/usr/include/gstreamer-1.0/gst/gstbuffer.h +gst/gstminiobject.h +- +gst/gstclock.h +- +gst/gstallocator.h +- +gst/gstcaps.h +- +gst/gstmeta.h +- +gst/gstmeta.h +- + +/usr/include/gstreamer-1.0/gst/gstbufferlist.h +gst/gstbuffer.h +- + +/usr/include/gstreamer-1.0/gst/gstbufferpool.h +gst/gstminiobject.h +- +gst/gstpad.h +- +gst/gstbuffer.h +- + +/usr/include/gstreamer-1.0/gst/gstbus.h +gst/gstmessage.h +- +gst/gstclock.h +- + +/usr/include/gstreamer-1.0/gst/gstcaps.h +gst/gstconfig.h +- +gst/gstminiobject.h +- +gst/gststructure.h +- +gst/gstcapsfeatures.h +- +gst/glib-compat.h +- + +/usr/include/gstreamer-1.0/gst/gstcapsfeatures.h +gst/gstconfig.h +- +gst/glib-compat.h +- +glib-object.h +- +glib.h +- + +/usr/include/gstreamer-1.0/gst/gstchildproxy.h +glib-object.h +- +gst/gst.h +- + +/usr/include/gstreamer-1.0/gst/gstclock.h +gst/gstconfig.h +- +glib.h +- +gst/gstobject.h +- + +/usr/include/gstreamer-1.0/gst/gstcompat.h +glib.h +- +gst/gstpad.h +- + +/usr/include/gstreamer-1.0/gst/gstconfig.h + +/usr/include/gstreamer-1.0/gst/gstcontext.h +glib.h +- +gst/gstminiobject.h +- +gst/gststructure.h +- + +/usr/include/gstreamer-1.0/gst/gstcontrolbinding.h +gst/gstconfig.h +- +glib-object.h +- +gst/gstcontrolsource.h +- + +/usr/include/gstreamer-1.0/gst/gstcontrolsource.h +gst/gstconfig.h +- +glib-object.h +- +gst/gstclock.h +- + +/usr/include/gstreamer-1.0/gst/gstdatetime.h +gst/gstconfig.h +- +time.h +- +glib.h +- +glib-object.h +- + +/usr/include/gstreamer-1.0/gst/gstdebugutils.h +glib.h +- +glib-object.h +- +gst/gstconfig.h +- +gst/gstbin.h +- + +/usr/include/gstreamer-1.0/gst/gstdevice.h +gst/gstelement.h +- +gst/gstcaps.h +- + +/usr/include/gstreamer-1.0/gst/gstdevicemonitor.h +gst/gstobject.h +- +gst/gstdevice.h +- +gst/gstdeviceprovider.h +- +gst/gstdeviceproviderfactory.h +- + +/usr/include/gstreamer-1.0/gst/gstdeviceprovider.h +gst/gstelement.h +- +gst/gstdeviceproviderfactory.h +- + +/usr/include/gstreamer-1.0/gst/gstdeviceproviderfactory.h +gst/gstconfig.h +- +gst/gstplugin.h +- +gst/gstpluginfeature.h +- +gst/gstdeviceprovider.h +- + +/usr/include/gstreamer-1.0/gst/gstdynamictypefactory.h +gst/gstconfig.h +- +gst/gstplugin.h +- +gst/gstpluginfeature.h +- + +/usr/include/gstreamer-1.0/gst/gstelement.h +glib.h +- +gst/gstconfig.h +- +gst/gstobject.h +- +gst/gstpad.h +- +gst/gstbus.h +- +gst/gstclock.h +- +gst/gstelementfactory.h +- +gst/gstplugin.h +- +gst/gstpluginfeature.h +- +gst/gstiterator.h +- +gst/gstmessage.h +- +gst/gstquery.h +- +gst/gsttaglist.h +- +gst/gstcontext.h +- + +/usr/include/gstreamer-1.0/gst/gstelementfactory.h +gst/gstconfig.h +- +gst/gstelement.h +- +gst/gstpad.h +- +gst/gstplugin.h +- +gst/gstpluginfeature.h +- +gst/gsturi.h +- + +/usr/include/gstreamer-1.0/gst/gstelementmetadata.h +glib.h +- + +/usr/include/gstreamer-1.0/gst/gstenumtypes.h +glib-object.h +- +gst/gstconfig.h +- + +/usr/include/gstreamer-1.0/gst/gsterror.h +glib.h +- +glib-object.h +- +errno.h +- + +/usr/include/gstreamer-1.0/gst/gstevent.h +gst/gstminiobject.h +- +gst/gstformat.h +- +gst/gstobject.h +- +gst/gstclock.h +- +gst/gststructure.h +- +gst/gsttaglist.h +- +gst/gstsegment.h +- +gst/gstmessage.h +- +gst/gstcontext.h +- +gst/gststreams.h +- +gst/gsttoc.h +- +gst/gststreamcollection.h +- + +/usr/include/gstreamer-1.0/gst/gstformat.h +glib.h +- +gst/gstiterator.h +- + +/usr/include/gstreamer-1.0/gst/gstghostpad.h +gst/gstpad.h +- + +/usr/include/gstreamer-1.0/gst/gstinfo.h +glib.h +- +glib-object.h +- +gst/gstconfig.h +- + +/usr/include/gstreamer-1.0/gst/gstiterator.h +glib-object.h +- +gst/gstconfig.h +- + +/usr/include/gstreamer-1.0/gst/gstmacros.h +glib.h +- + +/usr/include/gstreamer-1.0/gst/gstmemory.h +gst/gstconfig.h +- +glib-object.h +- +gst/gstminiobject.h +- +gst/gstobject.h +- + +/usr/include/gstreamer-1.0/gst/gstmessage.h +glib.h +- +gst/gstminiobject.h +- +gst/gstobject.h +- +gst/gstelement.h +- +gst/gsttaglist.h +- +gst/gststructure.h +- +gst/gstquery.h +- +gst/gsttoc.h +- +gst/gstdevice.h +- +gst/gststreams.h +- +gst/gststreamcollection.h +- +gst/gstquery.h +- + +/usr/include/gstreamer-1.0/gst/gstmeta.h +glib.h +- +gst/gstbuffer.h +- + +/usr/include/gstreamer-1.0/gst/gstminiobject.h +gst/gstconfig.h +- +glib-object.h +- + +/usr/include/gstreamer-1.0/gst/gstobject.h +gst/gstconfig.h +- +glib-object.h +- +gst/gstcontrolbinding.h +- +gst/gstcontrolsource.h +- + +/usr/include/gstreamer-1.0/gst/gstpad.h +gst/gstconfig.h +- +glib.h +- +gst/gstobject.h +- +gst/gstbuffer.h +- +gst/gstbufferlist.h +- +gst/gstcaps.h +- +gst/gstpadtemplate.h +- +gst/gstevent.h +- +gst/gstquery.h +- +gst/gsttask.h +- + +/usr/include/gstreamer-1.0/gst/gstpadtemplate.h +gst/gstconfig.h +- +gst/gstobject.h +- +gst/gstbuffer.h +- +gst/gstcaps.h +- +gst/gstevent.h +- +gst/gstquery.h +- +gst/gsttask.h +- + +/usr/include/gstreamer-1.0/gst/gstparamspecs.h +gst/gstvalue.h +- + +/usr/include/gstreamer-1.0/gst/gstparse.h +gst/gstelement.h +- + +/usr/include/gstreamer-1.0/gst/gstpipeline.h +gst/gstbin.h +- + +/usr/include/gstreamer-1.0/gst/gstplugin.h +gst/gstconfig.h +- +gst/gstobject.h +- +gst/gstmacros.h +- +gst/gststructure.h +- + +/usr/include/gstreamer-1.0/gst/gstpluginfeature.h +glib-object.h +- +gst/gstobject.h +- +gst/gstplugin.h +- + +/usr/include/gstreamer-1.0/gst/gstpoll.h +glib.h +- +glib-object.h +- +gst/gstclock.h +- + +/usr/include/gstreamer-1.0/gst/gstpreset.h +glib-object.h +- +gst/gstconfig.h +- + +/usr/include/gstreamer-1.0/gst/gstpromise.h +gst/gst.h +- + +/usr/include/gstreamer-1.0/gst/gstprotection.h +gst/gst.h +- + +/usr/include/gstreamer-1.0/gst/gstquery.h +glib.h +- +glib-object.h +- +gst/gstconfig.h +- +gst/gstminiobject.h +- +gst/gstiterator.h +- +gst/gststructure.h +- +gst/gstformat.h +- +gst/gstpad.h +- +gst/gstallocator.h +- +gst/gsttoc.h +- +gst/gstcontext.h +- + +/usr/include/gstreamer-1.0/gst/gstregistry.h +gst/gstconfig.h +- +gst/gstplugin.h +- +gst/gstpluginfeature.h +- + +/usr/include/gstreamer-1.0/gst/gstsample.h +gst/gstbuffer.h +- +gst/gstbufferlist.h +- +gst/gstcaps.h +- +gst/gstsegment.h +- + +/usr/include/gstreamer-1.0/gst/gstsegment.h +gst/gstformat.h +- + +/usr/include/gstreamer-1.0/gst/gststreamcollection.h +gst/gstobject.h +- +gst/gststreamcollection.h +- +gst/gststreams.h +- + +/usr/include/gstreamer-1.0/gst/gststreams.h +gst/gstobject.h +- +gst/gstevent.h +- + +/usr/include/gstreamer-1.0/gst/gststructure.h +gst/gstconfig.h +- +glib-object.h +- +gst/gstclock.h +- +gst/gstdatetime.h +- +gst/glib-compat.h +- + +/usr/include/gstreamer-1.0/gst/gstsystemclock.h +gst/gstclock.h +- + +/usr/include/gstreamer-1.0/gst/gsttaglist.h +gst/gstdatetime.h +- +gst/gstsample.h +- +gst/gstbuffer.h +- +gst/glib-compat.h +- + +/usr/include/gstreamer-1.0/gst/gsttagsetter.h +gst/gst.h +- + +/usr/include/gstreamer-1.0/gst/gsttask.h +gst/gstobject.h +- +gst/gsttaskpool.h +- + +/usr/include/gstreamer-1.0/gst/gsttaskpool.h +gst/gstobject.h +- + +/usr/include/gstreamer-1.0/gst/gsttoc.h +gst/gstconfig.h +- +gst/gstminiobject.h +- +gst/gststructure.h +- +gst/gsttaglist.h +- +gst/gstformat.h +- + +/usr/include/gstreamer-1.0/gst/gsttocsetter.h +gst/gst.h +- + +/usr/include/gstreamer-1.0/gst/gsttracer.h +glib.h +- +glib-object.h +- +gst/gstobject.h +- +gst/gstconfig.h +- + +/usr/include/gstreamer-1.0/gst/gsttracerfactory.h +gst/gstcaps.h +- +gst/gstplugin.h +- +gst/gstpluginfeature.h +- + +/usr/include/gstreamer-1.0/gst/gsttracerrecord.h +gst/gstobject.h +- + +/usr/include/gstreamer-1.0/gst/gsttypefind.h +gst/gstcaps.h +- +gst/gstplugin.h +- +gst/gstpluginfeature.h +- + +/usr/include/gstreamer-1.0/gst/gsttypefindfactory.h +gst/gstcaps.h +- +gst/gstplugin.h +- +gst/gstpluginfeature.h +- +gst/gsttypefind.h +- + +/usr/include/gstreamer-1.0/gst/gsturi.h +glib.h +- +glib-object.h +- +gst/gstconfig.h +- +gst/gstelement.h +- +gstminiobject.h +/usr/include/gstreamer-1.0/gst/gstminiobject.h + +/usr/include/gstreamer-1.0/gst/gstutils.h +glib.h +- +gst/gstconfig.h +- +gst/gstbin.h +- +gst/gstparse.h +- + +/usr/include/gstreamer-1.0/gst/gstvalue.h +gst/gstconfig.h +- +gst/gstcaps.h +- +gst/gststructure.h +- +gst/gstcapsfeatures.h +- + +/usr/include/gstreamer-1.0/gst/gstversion.h +glib.h +- + +/usr/include/gstreamer-1.0/gst/video/gstvideosink.h +gst/gst.h +- +gst/base/gstbasesink.h +- +gst/video/video-prelude.h +- + +/usr/include/gstreamer-1.0/gst/video/video-prelude.h +gst/gst.h +- + +/usr/include/gstreamer-1.0/gst/video/videooverlay.h +gst/gst.h +- +gst/video/gstvideosink.h +- + +/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h +glib/gmacros.h +- +limits.h +- +float.h +- + diff --git a/build/renderers/CMakeFiles/renderers.dir/DependInfo.cmake b/build/renderers/CMakeFiles/renderers.dir/DependInfo.cmake new file mode 100644 index 0000000..cfbcad8 --- /dev/null +++ b/build/renderers/CMakeFiles/renderers.dir/DependInfo.cmake @@ -0,0 +1,45 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "C" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_C + "/home/julian/UxPlay/renderers/audio_renderer_gstreamer.c" "/home/julian/UxPlay/build/renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o" + "/home/julian/UxPlay/renderers/video_renderer_gstreamer.c" "/home/julian/UxPlay/build/renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o" + ) +set(CMAKE_C_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_C_TARGET_INCLUDE_PATH + "../renderers/renderers" + "/usr/include/gtk-3.0" + "/usr/include/at-spi2-atk/2.0" + "/usr/include/at-spi-2.0" + "/usr/include/dbus-1.0" + "/usr/lib/x86_64-linux-gnu/dbus-1.0/include" + "/usr/include/gio-unix-2.0" + "/usr/include/cairo" + "/usr/include/pango-1.0" + "/usr/include/harfbuzz" + "/usr/include/atk-1.0" + "/usr/include/pixman-1" + "/usr/include/freetype2" + "/usr/include/libpng16" + "/usr/include/gdk-pixbuf-2.0" + "/usr/include/glib-2.0" + "/usr/lib/x86_64-linux-gnu/glib-2.0/include" + "/usr/include/gstreamer-1.0" + "/usr/include/orc-0.4" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/julian/UxPlay/build/lib/CMakeFiles/airplay.dir/DependInfo.cmake" + "/home/julian/UxPlay/build/lib/curve25519/CMakeFiles/curve25519.dir/DependInfo.cmake" + "/home/julian/UxPlay/build/lib/ed25519/CMakeFiles/ed25519.dir/DependInfo.cmake" + "/home/julian/UxPlay/build/lib/playfair/CMakeFiles/playfair.dir/DependInfo.cmake" + "/home/julian/UxPlay/build/lib/plist/CMakeFiles/plist.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o b/build/renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o new file mode 100644 index 0000000000000000000000000000000000000000..a9d83df4a7dc824fa6b3038aaaef2eff0e35465c GIT binary patch literal 57424 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 ao>C1{%`xA#KV1H CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.i + +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.s" + cd /home/julian/UxPlay/build/renderers && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/renderers/audio_renderer_gstreamer.c -o CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.s + +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o.requires: + +.PHONY : renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o.requires + +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o.provides: renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o.requires + $(MAKE) -f renderers/CMakeFiles/renderers.dir/build.make renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o.provides.build +.PHONY : renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o.provides + +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o.provides.build: renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o + + +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: renderers/CMakeFiles/renderers.dir/flags.make +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: ../renderers/video_renderer_gstreamer.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o" + cd /home/julian/UxPlay/build/renderers && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o -c /home/julian/UxPlay/renderers/video_renderer_gstreamer.c + +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/renderers.dir/video_renderer_gstreamer.c.i" + cd /home/julian/UxPlay/build/renderers && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/julian/UxPlay/renderers/video_renderer_gstreamer.c > CMakeFiles/renderers.dir/video_renderer_gstreamer.c.i + +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/renderers.dir/video_renderer_gstreamer.c.s" + cd /home/julian/UxPlay/build/renderers && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/julian/UxPlay/renderers/video_renderer_gstreamer.c -o CMakeFiles/renderers.dir/video_renderer_gstreamer.c.s + +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o.requires: + +.PHONY : renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o.requires + +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o.provides: renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o.requires + $(MAKE) -f renderers/CMakeFiles/renderers.dir/build.make renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o.provides.build +.PHONY : renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o.provides + +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o.provides.build: renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o + + +# Object files for target renderers +renderers_OBJECTS = \ +"CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o" \ +"CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o" + +# External object files for target renderers +renderers_EXTERNAL_OBJECTS = + +renderers/librenderers.a: renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o +renderers/librenderers.a: renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o +renderers/librenderers.a: renderers/CMakeFiles/renderers.dir/build.make +renderers/librenderers.a: renderers/CMakeFiles/renderers.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/julian/UxPlay/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking C static library librenderers.a" + cd /home/julian/UxPlay/build/renderers && $(CMAKE_COMMAND) -P CMakeFiles/renderers.dir/cmake_clean_target.cmake + cd /home/julian/UxPlay/build/renderers && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/renderers.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +renderers/CMakeFiles/renderers.dir/build: renderers/librenderers.a + +.PHONY : renderers/CMakeFiles/renderers.dir/build + +renderers/CMakeFiles/renderers.dir/requires: renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o.requires +renderers/CMakeFiles/renderers.dir/requires: renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o.requires + +.PHONY : renderers/CMakeFiles/renderers.dir/requires + +renderers/CMakeFiles/renderers.dir/clean: + cd /home/julian/UxPlay/build/renderers && $(CMAKE_COMMAND) -P CMakeFiles/renderers.dir/cmake_clean.cmake +.PHONY : renderers/CMakeFiles/renderers.dir/clean + +renderers/CMakeFiles/renderers.dir/depend: + cd /home/julian/UxPlay/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/julian/UxPlay /home/julian/UxPlay/renderers /home/julian/UxPlay/build /home/julian/UxPlay/build/renderers /home/julian/UxPlay/build/renderers/CMakeFiles/renderers.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : renderers/CMakeFiles/renderers.dir/depend + diff --git a/build/renderers/CMakeFiles/renderers.dir/cmake_clean.cmake b/build/renderers/CMakeFiles/renderers.dir/cmake_clean.cmake new file mode 100644 index 0000000..f867ca5 --- /dev/null +++ b/build/renderers/CMakeFiles/renderers.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o" + "CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o" + "librenderers.pdb" + "librenderers.a" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/renderers.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/renderers/CMakeFiles/renderers.dir/cmake_clean_target.cmake b/build/renderers/CMakeFiles/renderers.dir/cmake_clean_target.cmake new file mode 100644 index 0000000..d8d5efb --- /dev/null +++ b/build/renderers/CMakeFiles/renderers.dir/cmake_clean_target.cmake @@ -0,0 +1,3 @@ +file(REMOVE_RECURSE + "librenderers.a" +) diff --git a/build/renderers/CMakeFiles/renderers.dir/depend.internal b/build/renderers/CMakeFiles/renderers.dir/depend.internal new file mode 100644 index 0000000..f929fee --- /dev/null +++ b/build/renderers/CMakeFiles/renderers.dir/depend.internal @@ -0,0 +1,374 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o + /home/julian/UxPlay/lib/logger.h + /home/julian/UxPlay/lib/raop_ntp.h + /home/julian/UxPlay/renderers/audio_renderer.h + /home/julian/UxPlay/renderers/audio_renderer_gstreamer.c + /home/julian/UxPlay/renderers/video_renderer.h + /usr/include/glib-2.0/glib-object.h + /usr/include/glib-2.0/glib.h + /usr/include/glib-2.0/glib/deprecated/gallocator.h + /usr/include/glib-2.0/glib/deprecated/gcache.h + /usr/include/glib-2.0/glib/deprecated/gcompletion.h + /usr/include/glib-2.0/glib/deprecated/gmain.h + /usr/include/glib-2.0/glib/deprecated/grel.h + /usr/include/glib-2.0/glib/deprecated/gthread.h + /usr/include/glib-2.0/glib/galloca.h + /usr/include/glib-2.0/glib/garray.h + /usr/include/glib-2.0/glib/gasyncqueue.h + /usr/include/glib-2.0/glib/gatomic.h + /usr/include/glib-2.0/glib/gbacktrace.h + /usr/include/glib-2.0/glib/gbase64.h + /usr/include/glib-2.0/glib/gbitlock.h + /usr/include/glib-2.0/glib/gbookmarkfile.h + /usr/include/glib-2.0/glib/gbytes.h + /usr/include/glib-2.0/glib/gcharset.h + /usr/include/glib-2.0/glib/gchecksum.h + /usr/include/glib-2.0/glib/gconvert.h + /usr/include/glib-2.0/glib/gdataset.h + /usr/include/glib-2.0/glib/gdate.h + /usr/include/glib-2.0/glib/gdatetime.h + /usr/include/glib-2.0/glib/gdir.h + /usr/include/glib-2.0/glib/genviron.h + /usr/include/glib-2.0/glib/gerror.h + /usr/include/glib-2.0/glib/gfileutils.h + /usr/include/glib-2.0/glib/ggettext.h + /usr/include/glib-2.0/glib/ghash.h + /usr/include/glib-2.0/glib/ghmac.h + /usr/include/glib-2.0/glib/ghook.h + /usr/include/glib-2.0/glib/ghostutils.h + /usr/include/glib-2.0/glib/giochannel.h + /usr/include/glib-2.0/glib/gkeyfile.h + /usr/include/glib-2.0/glib/glib-autocleanups.h + /usr/include/glib-2.0/glib/glist.h + /usr/include/glib-2.0/glib/gmacros.h + /usr/include/glib-2.0/glib/gmain.h + /usr/include/glib-2.0/glib/gmappedfile.h + /usr/include/glib-2.0/glib/gmarkup.h + /usr/include/glib-2.0/glib/gmem.h + /usr/include/glib-2.0/glib/gmessages.h + /usr/include/glib-2.0/glib/gnode.h + /usr/include/glib-2.0/glib/goption.h + /usr/include/glib-2.0/glib/gpattern.h + /usr/include/glib-2.0/glib/gpoll.h + /usr/include/glib-2.0/glib/gprimes.h + /usr/include/glib-2.0/glib/gqsort.h + /usr/include/glib-2.0/glib/gquark.h + /usr/include/glib-2.0/glib/gqueue.h + /usr/include/glib-2.0/glib/grand.h + /usr/include/glib-2.0/glib/gregex.h + /usr/include/glib-2.0/glib/gscanner.h + /usr/include/glib-2.0/glib/gsequence.h + /usr/include/glib-2.0/glib/gshell.h + /usr/include/glib-2.0/glib/gslice.h + /usr/include/glib-2.0/glib/gslist.h + /usr/include/glib-2.0/glib/gspawn.h + /usr/include/glib-2.0/glib/gstrfuncs.h + /usr/include/glib-2.0/glib/gstring.h + /usr/include/glib-2.0/glib/gstringchunk.h + /usr/include/glib-2.0/glib/gtestutils.h + /usr/include/glib-2.0/glib/gthread.h + /usr/include/glib-2.0/glib/gthreadpool.h + /usr/include/glib-2.0/glib/gtimer.h + /usr/include/glib-2.0/glib/gtimezone.h + /usr/include/glib-2.0/glib/gtrashstack.h + /usr/include/glib-2.0/glib/gtree.h + /usr/include/glib-2.0/glib/gtypes.h + /usr/include/glib-2.0/glib/gunicode.h + /usr/include/glib-2.0/glib/gurifuncs.h + /usr/include/glib-2.0/glib/gutils.h + /usr/include/glib-2.0/glib/guuid.h + /usr/include/glib-2.0/glib/gvariant.h + /usr/include/glib-2.0/glib/gvarianttype.h + /usr/include/glib-2.0/glib/gversion.h + /usr/include/glib-2.0/glib/gversionmacros.h + /usr/include/glib-2.0/glib/gwin32.h + /usr/include/glib-2.0/gobject/gbinding.h + /usr/include/glib-2.0/gobject/gboxed.h + /usr/include/glib-2.0/gobject/gclosure.h + /usr/include/glib-2.0/gobject/genums.h + /usr/include/glib-2.0/gobject/glib-types.h + /usr/include/glib-2.0/gobject/gmarshal.h + /usr/include/glib-2.0/gobject/gobject-autocleanups.h + /usr/include/glib-2.0/gobject/gobject.h + /usr/include/glib-2.0/gobject/gparam.h + /usr/include/glib-2.0/gobject/gparamspecs.h + /usr/include/glib-2.0/gobject/gsignal.h + /usr/include/glib-2.0/gobject/gsourceclosure.h + /usr/include/glib-2.0/gobject/gtype.h + /usr/include/glib-2.0/gobject/gtypemodule.h + /usr/include/glib-2.0/gobject/gtypeplugin.h + /usr/include/glib-2.0/gobject/gvalue.h + /usr/include/glib-2.0/gobject/gvaluearray.h + /usr/include/glib-2.0/gobject/gvaluetypes.h + /usr/include/gstreamer-1.0/gst/app/app-enumtypes.h + /usr/include/gstreamer-1.0/gst/app/app-prelude.h + /usr/include/gstreamer-1.0/gst/app/gstappsrc.h + /usr/include/gstreamer-1.0/gst/base/base-prelude.h + /usr/include/gstreamer-1.0/gst/base/gstbasesrc.h + /usr/include/gstreamer-1.0/gst/base/gstpushsrc.h + /usr/include/gstreamer-1.0/gst/glib-compat.h + /usr/include/gstreamer-1.0/gst/gst.h + /usr/include/gstreamer-1.0/gst/gstallocator.h + /usr/include/gstreamer-1.0/gst/gstatomicqueue.h + /usr/include/gstreamer-1.0/gst/gstbin.h + /usr/include/gstreamer-1.0/gst/gstbuffer.h + /usr/include/gstreamer-1.0/gst/gstbufferlist.h + /usr/include/gstreamer-1.0/gst/gstbufferpool.h + /usr/include/gstreamer-1.0/gst/gstbus.h + /usr/include/gstreamer-1.0/gst/gstcaps.h + /usr/include/gstreamer-1.0/gst/gstcapsfeatures.h + /usr/include/gstreamer-1.0/gst/gstchildproxy.h + /usr/include/gstreamer-1.0/gst/gstclock.h + /usr/include/gstreamer-1.0/gst/gstcompat.h + /usr/include/gstreamer-1.0/gst/gstconfig.h + /usr/include/gstreamer-1.0/gst/gstcontext.h + /usr/include/gstreamer-1.0/gst/gstcontrolbinding.h + /usr/include/gstreamer-1.0/gst/gstcontrolsource.h + /usr/include/gstreamer-1.0/gst/gstdatetime.h + /usr/include/gstreamer-1.0/gst/gstdebugutils.h + /usr/include/gstreamer-1.0/gst/gstdevice.h + /usr/include/gstreamer-1.0/gst/gstdevicemonitor.h + /usr/include/gstreamer-1.0/gst/gstdeviceprovider.h + /usr/include/gstreamer-1.0/gst/gstdeviceproviderfactory.h + /usr/include/gstreamer-1.0/gst/gstdynamictypefactory.h + /usr/include/gstreamer-1.0/gst/gstelement.h + /usr/include/gstreamer-1.0/gst/gstelementfactory.h + /usr/include/gstreamer-1.0/gst/gstelementmetadata.h + /usr/include/gstreamer-1.0/gst/gstenumtypes.h + /usr/include/gstreamer-1.0/gst/gsterror.h + /usr/include/gstreamer-1.0/gst/gstevent.h + /usr/include/gstreamer-1.0/gst/gstformat.h + /usr/include/gstreamer-1.0/gst/gstghostpad.h + /usr/include/gstreamer-1.0/gst/gstinfo.h + /usr/include/gstreamer-1.0/gst/gstiterator.h + /usr/include/gstreamer-1.0/gst/gstmacros.h + /usr/include/gstreamer-1.0/gst/gstmemory.h + /usr/include/gstreamer-1.0/gst/gstmessage.h + /usr/include/gstreamer-1.0/gst/gstmeta.h + /usr/include/gstreamer-1.0/gst/gstminiobject.h + /usr/include/gstreamer-1.0/gst/gstobject.h + /usr/include/gstreamer-1.0/gst/gstpad.h + /usr/include/gstreamer-1.0/gst/gstpadtemplate.h + /usr/include/gstreamer-1.0/gst/gstparamspecs.h + /usr/include/gstreamer-1.0/gst/gstparse.h + /usr/include/gstreamer-1.0/gst/gstpipeline.h + /usr/include/gstreamer-1.0/gst/gstplugin.h + /usr/include/gstreamer-1.0/gst/gstpluginfeature.h + /usr/include/gstreamer-1.0/gst/gstpoll.h + /usr/include/gstreamer-1.0/gst/gstpreset.h + /usr/include/gstreamer-1.0/gst/gstpromise.h + /usr/include/gstreamer-1.0/gst/gstprotection.h + /usr/include/gstreamer-1.0/gst/gstquery.h + /usr/include/gstreamer-1.0/gst/gstregistry.h + /usr/include/gstreamer-1.0/gst/gstsample.h + /usr/include/gstreamer-1.0/gst/gstsegment.h + /usr/include/gstreamer-1.0/gst/gststreamcollection.h + /usr/include/gstreamer-1.0/gst/gststreams.h + /usr/include/gstreamer-1.0/gst/gststructure.h + /usr/include/gstreamer-1.0/gst/gstsystemclock.h + /usr/include/gstreamer-1.0/gst/gsttaglist.h + /usr/include/gstreamer-1.0/gst/gsttagsetter.h + /usr/include/gstreamer-1.0/gst/gsttask.h + /usr/include/gstreamer-1.0/gst/gsttaskpool.h + /usr/include/gstreamer-1.0/gst/gsttoc.h + /usr/include/gstreamer-1.0/gst/gsttocsetter.h + /usr/include/gstreamer-1.0/gst/gsttracer.h + /usr/include/gstreamer-1.0/gst/gsttracerfactory.h + /usr/include/gstreamer-1.0/gst/gsttracerrecord.h + /usr/include/gstreamer-1.0/gst/gsttypefind.h + /usr/include/gstreamer-1.0/gst/gsttypefindfactory.h + /usr/include/gstreamer-1.0/gst/gsturi.h + /usr/include/gstreamer-1.0/gst/gstutils.h + /usr/include/gstreamer-1.0/gst/gstvalue.h + /usr/include/gstreamer-1.0/gst/gstversion.h + /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o + /home/julian/UxPlay/lib/logger.h + /home/julian/UxPlay/lib/raop_ntp.h + /home/julian/UxPlay/renderers/video_renderer.h + /home/julian/UxPlay/renderers/video_renderer_gstreamer.c + /usr/include/glib-2.0/glib-object.h + /usr/include/glib-2.0/glib.h + /usr/include/glib-2.0/glib/deprecated/gallocator.h + /usr/include/glib-2.0/glib/deprecated/gcache.h + /usr/include/glib-2.0/glib/deprecated/gcompletion.h + /usr/include/glib-2.0/glib/deprecated/gmain.h + /usr/include/glib-2.0/glib/deprecated/grel.h + /usr/include/glib-2.0/glib/deprecated/gthread.h + /usr/include/glib-2.0/glib/galloca.h + /usr/include/glib-2.0/glib/garray.h + /usr/include/glib-2.0/glib/gasyncqueue.h + /usr/include/glib-2.0/glib/gatomic.h + /usr/include/glib-2.0/glib/gbacktrace.h + /usr/include/glib-2.0/glib/gbase64.h + /usr/include/glib-2.0/glib/gbitlock.h + /usr/include/glib-2.0/glib/gbookmarkfile.h + /usr/include/glib-2.0/glib/gbytes.h + /usr/include/glib-2.0/glib/gcharset.h + /usr/include/glib-2.0/glib/gchecksum.h + /usr/include/glib-2.0/glib/gconvert.h + /usr/include/glib-2.0/glib/gdataset.h + /usr/include/glib-2.0/glib/gdate.h + /usr/include/glib-2.0/glib/gdatetime.h + /usr/include/glib-2.0/glib/gdir.h + /usr/include/glib-2.0/glib/genviron.h + /usr/include/glib-2.0/glib/gerror.h + /usr/include/glib-2.0/glib/gfileutils.h + /usr/include/glib-2.0/glib/ggettext.h + /usr/include/glib-2.0/glib/ghash.h + /usr/include/glib-2.0/glib/ghmac.h + /usr/include/glib-2.0/glib/ghook.h + /usr/include/glib-2.0/glib/ghostutils.h + /usr/include/glib-2.0/glib/giochannel.h + /usr/include/glib-2.0/glib/gkeyfile.h + /usr/include/glib-2.0/glib/glib-autocleanups.h + /usr/include/glib-2.0/glib/glist.h + /usr/include/glib-2.0/glib/gmacros.h + /usr/include/glib-2.0/glib/gmain.h + /usr/include/glib-2.0/glib/gmappedfile.h + /usr/include/glib-2.0/glib/gmarkup.h + /usr/include/glib-2.0/glib/gmem.h + /usr/include/glib-2.0/glib/gmessages.h + /usr/include/glib-2.0/glib/gnode.h + /usr/include/glib-2.0/glib/goption.h + /usr/include/glib-2.0/glib/gpattern.h + /usr/include/glib-2.0/glib/gpoll.h + /usr/include/glib-2.0/glib/gprimes.h + /usr/include/glib-2.0/glib/gqsort.h + /usr/include/glib-2.0/glib/gquark.h + /usr/include/glib-2.0/glib/gqueue.h + /usr/include/glib-2.0/glib/grand.h + /usr/include/glib-2.0/glib/gregex.h + /usr/include/glib-2.0/glib/gscanner.h + /usr/include/glib-2.0/glib/gsequence.h + /usr/include/glib-2.0/glib/gshell.h + /usr/include/glib-2.0/glib/gslice.h + /usr/include/glib-2.0/glib/gslist.h + /usr/include/glib-2.0/glib/gspawn.h + /usr/include/glib-2.0/glib/gstrfuncs.h + /usr/include/glib-2.0/glib/gstring.h + /usr/include/glib-2.0/glib/gstringchunk.h + /usr/include/glib-2.0/glib/gtestutils.h + /usr/include/glib-2.0/glib/gthread.h + /usr/include/glib-2.0/glib/gthreadpool.h + /usr/include/glib-2.0/glib/gtimer.h + /usr/include/glib-2.0/glib/gtimezone.h + /usr/include/glib-2.0/glib/gtrashstack.h + /usr/include/glib-2.0/glib/gtree.h + /usr/include/glib-2.0/glib/gtypes.h + /usr/include/glib-2.0/glib/gunicode.h + /usr/include/glib-2.0/glib/gurifuncs.h + /usr/include/glib-2.0/glib/gutils.h + /usr/include/glib-2.0/glib/guuid.h + /usr/include/glib-2.0/glib/gvariant.h + /usr/include/glib-2.0/glib/gvarianttype.h + /usr/include/glib-2.0/glib/gversion.h + /usr/include/glib-2.0/glib/gversionmacros.h + /usr/include/glib-2.0/glib/gwin32.h + /usr/include/glib-2.0/gobject/gbinding.h + /usr/include/glib-2.0/gobject/gboxed.h + /usr/include/glib-2.0/gobject/gclosure.h + /usr/include/glib-2.0/gobject/genums.h + /usr/include/glib-2.0/gobject/glib-types.h + /usr/include/glib-2.0/gobject/gmarshal.h + /usr/include/glib-2.0/gobject/gobject-autocleanups.h + /usr/include/glib-2.0/gobject/gobject.h + /usr/include/glib-2.0/gobject/gparam.h + /usr/include/glib-2.0/gobject/gparamspecs.h + /usr/include/glib-2.0/gobject/gsignal.h + /usr/include/glib-2.0/gobject/gsourceclosure.h + /usr/include/glib-2.0/gobject/gtype.h + /usr/include/glib-2.0/gobject/gtypemodule.h + /usr/include/glib-2.0/gobject/gtypeplugin.h + /usr/include/glib-2.0/gobject/gvalue.h + /usr/include/glib-2.0/gobject/gvaluearray.h + /usr/include/glib-2.0/gobject/gvaluetypes.h + /usr/include/gstreamer-1.0/gst/app/app-enumtypes.h + /usr/include/gstreamer-1.0/gst/app/app-prelude.h + /usr/include/gstreamer-1.0/gst/app/gstappsrc.h + /usr/include/gstreamer-1.0/gst/base/base-prelude.h + /usr/include/gstreamer-1.0/gst/base/gstbasesink.h + /usr/include/gstreamer-1.0/gst/base/gstbasesrc.h + /usr/include/gstreamer-1.0/gst/base/gstpushsrc.h + /usr/include/gstreamer-1.0/gst/glib-compat.h + /usr/include/gstreamer-1.0/gst/gst.h + /usr/include/gstreamer-1.0/gst/gstallocator.h + /usr/include/gstreamer-1.0/gst/gstatomicqueue.h + /usr/include/gstreamer-1.0/gst/gstbin.h + /usr/include/gstreamer-1.0/gst/gstbuffer.h + /usr/include/gstreamer-1.0/gst/gstbufferlist.h + /usr/include/gstreamer-1.0/gst/gstbufferpool.h + /usr/include/gstreamer-1.0/gst/gstbus.h + /usr/include/gstreamer-1.0/gst/gstcaps.h + /usr/include/gstreamer-1.0/gst/gstcapsfeatures.h + /usr/include/gstreamer-1.0/gst/gstchildproxy.h + /usr/include/gstreamer-1.0/gst/gstclock.h + /usr/include/gstreamer-1.0/gst/gstcompat.h + /usr/include/gstreamer-1.0/gst/gstconfig.h + /usr/include/gstreamer-1.0/gst/gstcontext.h + /usr/include/gstreamer-1.0/gst/gstcontrolbinding.h + /usr/include/gstreamer-1.0/gst/gstcontrolsource.h + /usr/include/gstreamer-1.0/gst/gstdatetime.h + /usr/include/gstreamer-1.0/gst/gstdebugutils.h + /usr/include/gstreamer-1.0/gst/gstdevice.h + /usr/include/gstreamer-1.0/gst/gstdevicemonitor.h + /usr/include/gstreamer-1.0/gst/gstdeviceprovider.h + /usr/include/gstreamer-1.0/gst/gstdeviceproviderfactory.h + /usr/include/gstreamer-1.0/gst/gstdynamictypefactory.h + /usr/include/gstreamer-1.0/gst/gstelement.h + /usr/include/gstreamer-1.0/gst/gstelementfactory.h + /usr/include/gstreamer-1.0/gst/gstelementmetadata.h + /usr/include/gstreamer-1.0/gst/gstenumtypes.h + /usr/include/gstreamer-1.0/gst/gsterror.h + /usr/include/gstreamer-1.0/gst/gstevent.h + /usr/include/gstreamer-1.0/gst/gstformat.h + /usr/include/gstreamer-1.0/gst/gstghostpad.h + /usr/include/gstreamer-1.0/gst/gstinfo.h + /usr/include/gstreamer-1.0/gst/gstiterator.h + /usr/include/gstreamer-1.0/gst/gstmacros.h + /usr/include/gstreamer-1.0/gst/gstmemory.h + /usr/include/gstreamer-1.0/gst/gstmessage.h + /usr/include/gstreamer-1.0/gst/gstmeta.h + /usr/include/gstreamer-1.0/gst/gstminiobject.h + /usr/include/gstreamer-1.0/gst/gstobject.h + /usr/include/gstreamer-1.0/gst/gstpad.h + /usr/include/gstreamer-1.0/gst/gstpadtemplate.h + /usr/include/gstreamer-1.0/gst/gstparamspecs.h + /usr/include/gstreamer-1.0/gst/gstparse.h + /usr/include/gstreamer-1.0/gst/gstpipeline.h + /usr/include/gstreamer-1.0/gst/gstplugin.h + /usr/include/gstreamer-1.0/gst/gstpluginfeature.h + /usr/include/gstreamer-1.0/gst/gstpoll.h + /usr/include/gstreamer-1.0/gst/gstpreset.h + /usr/include/gstreamer-1.0/gst/gstpromise.h + /usr/include/gstreamer-1.0/gst/gstprotection.h + /usr/include/gstreamer-1.0/gst/gstquery.h + /usr/include/gstreamer-1.0/gst/gstregistry.h + /usr/include/gstreamer-1.0/gst/gstsample.h + /usr/include/gstreamer-1.0/gst/gstsegment.h + /usr/include/gstreamer-1.0/gst/gststreamcollection.h + /usr/include/gstreamer-1.0/gst/gststreams.h + /usr/include/gstreamer-1.0/gst/gststructure.h + /usr/include/gstreamer-1.0/gst/gstsystemclock.h + /usr/include/gstreamer-1.0/gst/gsttaglist.h + /usr/include/gstreamer-1.0/gst/gsttagsetter.h + /usr/include/gstreamer-1.0/gst/gsttask.h + /usr/include/gstreamer-1.0/gst/gsttaskpool.h + /usr/include/gstreamer-1.0/gst/gsttoc.h + /usr/include/gstreamer-1.0/gst/gsttocsetter.h + /usr/include/gstreamer-1.0/gst/gsttracer.h + /usr/include/gstreamer-1.0/gst/gsttracerfactory.h + /usr/include/gstreamer-1.0/gst/gsttracerrecord.h + /usr/include/gstreamer-1.0/gst/gsttypefind.h + /usr/include/gstreamer-1.0/gst/gsttypefindfactory.h + /usr/include/gstreamer-1.0/gst/gsturi.h + /usr/include/gstreamer-1.0/gst/gstutils.h + /usr/include/gstreamer-1.0/gst/gstvalue.h + /usr/include/gstreamer-1.0/gst/gstversion.h + /usr/include/gstreamer-1.0/gst/video/gstvideosink.h + /usr/include/gstreamer-1.0/gst/video/video-prelude.h + /usr/include/gstreamer-1.0/gst/video/videooverlay.h + /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h diff --git a/build/renderers/CMakeFiles/renderers.dir/depend.make b/build/renderers/CMakeFiles/renderers.dir/depend.make new file mode 100644 index 0000000..0223224 --- /dev/null +++ b/build/renderers/CMakeFiles/renderers.dir/depend.make @@ -0,0 +1,374 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: ../lib/logger.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: ../lib/raop_ntp.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: ../renderers/audio_renderer.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: ../renderers/audio_renderer_gstreamer.c +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: ../renderers/video_renderer.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib-object.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/deprecated/gallocator.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/deprecated/gcache.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/deprecated/gcompletion.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/deprecated/gmain.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/deprecated/grel.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/deprecated/gthread.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/galloca.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/garray.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gasyncqueue.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gatomic.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gbacktrace.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gbase64.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gbitlock.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gbookmarkfile.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gbytes.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gcharset.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gchecksum.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gconvert.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gdataset.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gdate.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gdatetime.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gdir.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/genviron.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gerror.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gfileutils.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/ggettext.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/ghash.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/ghmac.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/ghook.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/ghostutils.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/giochannel.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gkeyfile.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/glib-autocleanups.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/glist.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gmacros.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gmain.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gmappedfile.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gmarkup.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gmem.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gmessages.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gnode.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/goption.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gpattern.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gpoll.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gprimes.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gqsort.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gquark.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gqueue.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/grand.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gregex.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gscanner.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gsequence.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gshell.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gslice.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gslist.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gspawn.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gstrfuncs.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gstring.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gstringchunk.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gtestutils.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gthread.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gthreadpool.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gtimer.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gtimezone.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gtrashstack.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gtree.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gtypes.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gunicode.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gurifuncs.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gutils.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/guuid.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gvariant.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gvarianttype.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gversion.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gversionmacros.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gwin32.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gbinding.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gboxed.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gclosure.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/genums.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/glib-types.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gmarshal.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gobject-autocleanups.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gobject.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gparam.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gparamspecs.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gsignal.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gsourceclosure.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gtype.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gtypemodule.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gtypeplugin.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gvalue.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gvaluearray.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gvaluetypes.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/app/app-enumtypes.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/app/app-prelude.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/app/gstappsrc.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/base/base-prelude.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/base/gstbasesrc.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/base/gstpushsrc.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/glib-compat.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gst.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstallocator.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstatomicqueue.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstbin.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstbuffer.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstbufferlist.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstbufferpool.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstbus.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstcaps.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstcapsfeatures.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstchildproxy.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstclock.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstcompat.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstconfig.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstcontext.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstcontrolbinding.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstcontrolsource.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdatetime.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdebugutils.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdevice.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdevicemonitor.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdeviceprovider.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdeviceproviderfactory.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdynamictypefactory.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstelement.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstelementfactory.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstelementmetadata.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstenumtypes.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsterror.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstevent.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstformat.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstghostpad.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstinfo.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstiterator.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstmacros.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstmemory.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstmessage.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstmeta.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstminiobject.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstobject.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpad.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpadtemplate.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstparamspecs.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstparse.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpipeline.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstplugin.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpluginfeature.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpoll.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpreset.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpromise.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstprotection.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstquery.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstregistry.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstsample.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstsegment.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gststreamcollection.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gststreams.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gststructure.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstsystemclock.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttaglist.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttagsetter.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttask.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttaskpool.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttoc.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttocsetter.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttracer.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttracerfactory.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttracerrecord.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttypefind.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttypefindfactory.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsturi.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstutils.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstvalue.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstversion.h +renderers/CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o: /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h + +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: ../lib/logger.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: ../lib/raop_ntp.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: ../renderers/video_renderer.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: ../renderers/video_renderer_gstreamer.c +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib-object.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/deprecated/gallocator.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/deprecated/gcache.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/deprecated/gcompletion.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/deprecated/gmain.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/deprecated/grel.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/deprecated/gthread.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/galloca.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/garray.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gasyncqueue.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gatomic.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gbacktrace.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gbase64.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gbitlock.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gbookmarkfile.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gbytes.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gcharset.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gchecksum.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gconvert.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gdataset.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gdate.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gdatetime.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gdir.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/genviron.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gerror.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gfileutils.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/ggettext.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/ghash.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/ghmac.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/ghook.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/ghostutils.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/giochannel.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gkeyfile.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/glib-autocleanups.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/glist.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gmacros.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gmain.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gmappedfile.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gmarkup.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gmem.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gmessages.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gnode.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/goption.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gpattern.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gpoll.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gprimes.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gqsort.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gquark.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gqueue.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/grand.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gregex.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gscanner.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gsequence.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gshell.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gslice.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gslist.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gspawn.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gstrfuncs.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gstring.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gstringchunk.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gtestutils.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gthread.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gthreadpool.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gtimer.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gtimezone.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gtrashstack.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gtree.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gtypes.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gunicode.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gurifuncs.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gutils.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/guuid.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gvariant.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gvarianttype.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gversion.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gversionmacros.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/glib/gwin32.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gbinding.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gboxed.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gclosure.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/genums.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/glib-types.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gmarshal.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gobject-autocleanups.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gobject.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gparam.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gparamspecs.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gsignal.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gsourceclosure.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gtype.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gtypemodule.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gtypeplugin.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gvalue.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gvaluearray.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/glib-2.0/gobject/gvaluetypes.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/app/app-enumtypes.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/app/app-prelude.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/app/gstappsrc.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/base/base-prelude.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/base/gstbasesink.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/base/gstbasesrc.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/base/gstpushsrc.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/glib-compat.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gst.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstallocator.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstatomicqueue.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstbin.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstbuffer.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstbufferlist.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstbufferpool.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstbus.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstcaps.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstcapsfeatures.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstchildproxy.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstclock.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstcompat.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstconfig.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstcontext.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstcontrolbinding.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstcontrolsource.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdatetime.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdebugutils.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdevice.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdevicemonitor.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdeviceprovider.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdeviceproviderfactory.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstdynamictypefactory.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstelement.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstelementfactory.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstelementmetadata.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstenumtypes.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsterror.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstevent.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstformat.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstghostpad.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstinfo.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstiterator.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstmacros.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstmemory.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstmessage.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstmeta.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstminiobject.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstobject.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpad.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpadtemplate.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstparamspecs.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstparse.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpipeline.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstplugin.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpluginfeature.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpoll.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpreset.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstpromise.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstprotection.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstquery.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstregistry.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstsample.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstsegment.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gststreamcollection.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gststreams.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gststructure.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstsystemclock.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttaglist.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttagsetter.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttask.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttaskpool.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttoc.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttocsetter.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttracer.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttracerfactory.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttracerrecord.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttypefind.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsttypefindfactory.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gsturi.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstutils.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstvalue.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/gstversion.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/video/gstvideosink.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/video/video-prelude.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/include/gstreamer-1.0/gst/video/videooverlay.h +renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o: /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h + diff --git a/build/renderers/CMakeFiles/renderers.dir/flags.make b/build/renderers/CMakeFiles/renderers.dir/flags.make new file mode 100644 index 0000000..0bae851 --- /dev/null +++ b/build/renderers/CMakeFiles/renderers.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.10 + +# compile C with /usr/bin/cc +C_FLAGS = -Ofast -march=native -DSTANDALONE -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -D_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE -Wall -g + +C_DEFINES = + +C_INCLUDES = -I/home/julian/UxPlay/renderers/renderers -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 + diff --git a/build/renderers/CMakeFiles/renderers.dir/link.txt b/build/renderers/CMakeFiles/renderers.dir/link.txt new file mode 100644 index 0000000..abcdf5c --- /dev/null +++ b/build/renderers/CMakeFiles/renderers.dir/link.txt @@ -0,0 +1,2 @@ +/usr/bin/ar qc librenderers.a CMakeFiles/renderers.dir/audio_renderer_gstreamer.c.o CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o +/usr/bin/ranlib librenderers.a diff --git a/build/renderers/CMakeFiles/renderers.dir/progress.make b/build/renderers/CMakeFiles/renderers.dir/progress.make new file mode 100644 index 0000000..e9fb7be --- /dev/null +++ b/build/renderers/CMakeFiles/renderers.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 54 +CMAKE_PROGRESS_2 = 55 +CMAKE_PROGRESS_3 = 56 + diff --git a/build/renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o b/build/renderers/CMakeFiles/renderers.dir/video_renderer_gstreamer.c.o new file mode 100644 index 0000000000000000000000000000000000000000..7c4bf9cf791e5168d1dda982f7ec22edf1198587 GIT binary patch literal 52376 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 Zd%isge%~NC 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 d+t{O2f`|_xc@m=8%);V|;sQl1 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Μ6uev zh={&u|GqE$_b~WYY1du`|3>(ZGx&Z||NRX9$PkaODF&}}u$N`|3KD2cJD@mYq@tC{D(6CK4|ch#SeMI;3Ffh zfB#|d%Ow7_!LJcMX)^v)ZcmE;GsfU&$#}^$c%$gaT!X(N>xg9rFP8CAYVdzbxwQt@ z=V@XFKULb(Y4D>%P7cQz{8?%54ufmITw-wTm!BE@ZxP4;7K2Ze`rKpiKS)15Z168d zuU<9yDWX?z82m7qm*2Ixtbac=_-4UBGkD`HSO2dKewWw*{>TDIR3F-ePnz_P;<)lOY*@C!t*t~2;z z!EZPC9GTa2KU?c_q1dq}4E@tYfa@iLtAGACgRd9+^G}1TJ@mv*Yq@Fl-)z6;?ZO0JKtd$gYV{em>H z_lkcm{Kpvl--2fve7LlCiNVJTUSx3nuEBc2wf>`}e~&Tr`dzZkhF;ryy217Ns&fn< z{jS=zhFa9#HUQ;_EZ2T`iqA+MlS_$qJKu{ z-!*uN$nzfoocO5z{40PHpBse!+W=1V$5A4#wAt>ida|eZEyDvi(XUH)bmIi4>QNrO zCI@gTvPSBkXYdVzw;8-!@J$9kLGV)zezD*e8vHiFuM6O5s86m`^!5NQCW%uX3E;tY zJr%&IU8;w>132+75dQxN;6eW097jOa3-UimaKcE=x66FAAV5#$W=gxt487`YO#r8^ z-75XK&hW_=KJ5W|DmO_#xHcJjhkD+5hF-r*b6EhVa&MP%uMFVC`h4+Qt`FcuzqjcB zF9SHyR|)-Z0yxnhF7)>XaH3Z^JRHD@Uf-MeV*n@mVZ-o)>ji_Wp1&@*_E#QLd)|A7 zek64cuFnj8CZnGB?*LAuM+!drKo{5(H>yuMDG{#y131-xf+*2c!KpsPXCD63wZh=V z4)%^T_*%ic130nH6MTCBC;oB4&olT&!LKm*cENuYz^O@l2!2lhC;n#%{(FO8BKUI# z|1ZJc4dBFI9vkyM4dBH86QLh*kPDF9M3f915WuMqG8x7900TJjpCb6;08acz5kp+7 z0=RS`9vK9G(%{dCfA!2D_=^UAN!t7BAoyDb-!6XIyMy2#8~jme z?`MPH-x_>vrgY?7ch~+>e3-${68kfJ5PY=3_4$eMgW!`5{(e1 z)9YRtv=+}40-_Dlmm6H?>thVA{^ykjSHI#`gYOnQ@PxrLweal3)(-q>2`?KT$aVKt z4fVv^W7+iADZFg{ZhLkEK4+iZ(?t;?pP#+7Zxmm?b*Z>hUiXL7+B%!Nz=8e#!?^`A~kO;N^m0_L)rl=exuKJ*KwB1E6N1g(5|FYW!^t)B`csi9MZZdzH zlqhBjE^ZM)e8o(;ic5EEl)q0)JpW(w&qrS3xxnY>0Yd!LiK2ZMsr9x{= ze$A)%O381V+b#KPO@1r?qa?o}^B$J`Q5o-=uH|Z+{GNgO@9CtY7**x&)PK}=ZNF^S zd9A=KPs%Zk1dFTLbd06l1R9G`zO!UO(j<0z0I>qJ>5Eu&wocg?`EwB*kXRQ{+(IJ-YisC=5DZTZ&&Bc57M z1o>K;=k7hT++BaQe7)a>gn{z^f;tx09C!17HJ{$^MT&-fA_V>{`GXjRE$vf+S^a-e z^1o;pq?`C-hz}&cSt7p+g`VU`TVR@B^_S{n%cd;1w$ZQW?Iz~9$d9HiLz|!62&3Xa eJnzCzzIjcCxo!X6AR8$E-BSOT92@`F=KnvT^u1RA literal 0 HcmV?d00001 diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/lib/byteutils.c b/lib/byteutils.c new file mode 100755 index 0000000..e3122ae --- /dev/null +++ b/lib/byteutils.c @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2019 dsafa22, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include +#include +#include "byteutils.h" + +#ifndef htonll +#include +#define htonll(x) htobe64(x) +#define ntohll(x) be64toh(x) +#endif + +// The functions in this file assume a little endian cpu architecture! + +/** + * Reads a little endian unsigned 16 bit integer from the buffer at position offset + */ +uint16_t byteutils_get_short(unsigned char* b, int offset) { + return *((uint16_t*)(b + offset)); +} + +/** + * Reads a little endian unsigned 32 bit integer from the buffer at position offset + */ +uint32_t byteutils_get_int(unsigned char* b, int offset) { + return *((uint32_t*)(b + offset)); +} + +/** + * Reads a little endian unsigned 64 bit integer from the buffer at position offset + */ +uint64_t byteutils_get_long(unsigned char* b, int offset) { + return *((uint64_t*)(b + offset)); +} + +/** + * Reads a big endian unsigned 16 bit integer from the buffer at position offset + */ +uint16_t byteutils_get_short_be(unsigned char* b, int offset) { + return ntohs(byteutils_get_short(b, offset)); +} + +/** + * Reads a big endian unsigned 32 bit integer from the buffer at position offset + */ +uint32_t byteutils_get_int_be(unsigned char* b, int offset) { + return ntohl(byteutils_get_int(b, offset)); +} + +/** + * Reads a big endian unsigned 64 bit integer from the buffer at position offset + */ +uint64_t byteutils_get_long_be(unsigned char* b, int offset) { + return ntohll(byteutils_get_long(b, offset)); +} + +/** + * Reads a float from the buffer at position offset + */ +float byteutils_get_float(unsigned char* b, int offset) { + return *((float*)(b + offset)); +} + +/** + * Writes a little endian unsigned 32 bit integer to the buffer at position offset + */ +void byteutils_put_int(unsigned char* b, int offset, uint32_t value) { + *((uint32_t*)(b + offset)) = value; +} + +/** + * Reads an ntp timestamp and returns it as micro seconds since the Unix epoch + */ +uint64_t byteutils_get_ntp_timestamp(unsigned char *b, int offset) { + uint64_t seconds = ntohl(((unsigned int) byteutils_get_int(b, offset))) - SECONDS_FROM_1900_TO_1970; + uint64_t fraction = ntohl((unsigned int) byteutils_get_int(b, offset + 4)); + return (seconds * 1000000L) + ((fraction * 1000000L) >> 32); +} + +/** + * Writes a time given as micro seconds since the Unix time epoch as an ntp timestamp + * into the buffer at position offset + */ +void byteutils_put_ntp_timestamp(unsigned char *b, int offset, uint64_t us_since_1970) { + uint64_t seconds = us_since_1970 / 1000000L; + uint64_t microseconds = us_since_1970 % 1000000L; + seconds += SECONDS_FROM_1900_TO_1970; + uint64_t fraction = (microseconds << 32) / 1000000L; + + // Write in big endian! + byteutils_put_int(b, offset, htonl(seconds)); + byteutils_put_int(b, offset + 4, htonl(fraction)); +} + diff --git a/lib/byteutils.h b/lib/byteutils.h new file mode 100755 index 0000000..9f8a4c5 --- /dev/null +++ b/lib/byteutils.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2019 dsafa22, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef AIRPLAYSERVER_BYTEUTILS_H +#define AIRPLAYSERVER_BYTEUTILS_H +#include + +uint16_t byteutils_get_short(unsigned char* b, int offset); +uint32_t byteutils_get_int(unsigned char* b, int offset); +uint64_t byteutils_get_long(unsigned char* b, int offset); +uint16_t byteutils_get_short_be(unsigned char* b, int offset); +uint32_t byteutils_get_int_be(unsigned char* b, int offset); +uint64_t byteutils_get_long_be(unsigned char* b, int offset); +float byteutils_get_float(unsigned char* b, int offset); + +#define SECONDS_FROM_1900_TO_1970 2208988800ULL + +uint64_t byteutils_get_ntp_timestamp(unsigned char *b, int offset); +void byteutils_put_ntp_timestamp(unsigned char *b, int offset, uint64_t us_since_1970); + +#endif //AIRPLAYSERVER_BYTEUTILS_H diff --git a/lib/compat.h b/lib/compat.h new file mode 100755 index 0000000..927fc96 --- /dev/null +++ b/lib/compat.h @@ -0,0 +1,41 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef COMPAT_H +#define COMPAT_H + +#if defined(WIN32) +#include +#include +#ifndef snprintf +#define snprintf _snprintf +#endif +#else +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#include "memalign.h" +#include "sockets.h" +#include "threads.h" + +#endif diff --git a/lib/crypto.c b/lib/crypto.c new file mode 100644 index 0000000..6714255 --- /dev/null +++ b/lib/crypto.c @@ -0,0 +1,209 @@ +/** + * RPiPlay - An open-source AirPlay mirroring server for Raspberry Pi + * Copyright (C) 2019 Florian Draschbacher + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "crypto.h" + +#include +#include + +#include +#include +#include + +struct aes_ctx_s { + EVP_CIPHER_CTX *cipher_ctx; + uint8_t key[AES_128_BLOCK_SIZE]; + uint8_t iv[AES_128_BLOCK_SIZE]; + aes_direction_t direction; + uint8_t block_offset; +}; + +uint8_t waste[AES_128_BLOCK_SIZE]; + +// Common AES utilities + +void handle_error(const char* location) { + long error = ERR_get_error(); + const char* error_str = ERR_error_string(error, NULL); + printf("Crypto error at %s: %s\n", location, error_str); + assert(false); +} + +aes_ctx_t *aes_init(const uint8_t *key, const uint8_t *iv, const EVP_CIPHER *type, aes_direction_t direction) { + aes_ctx_t *ctx = malloc(sizeof(aes_ctx_t)); + assert(ctx != NULL); + ctx->cipher_ctx = EVP_CIPHER_CTX_new(); + assert(ctx->cipher_ctx != NULL); + + ctx->block_offset = 0; + ctx->direction = direction; + + if (direction == AES_ENCRYPT) { + if (!EVP_EncryptInit_ex(ctx->cipher_ctx, type, NULL, key, iv)) { + handle_error(__func__); + } + } else { + if (!EVP_DecryptInit_ex(ctx->cipher_ctx, type, NULL, key, iv)) { + handle_error(__func__); + } + } + + memcpy(ctx->key, key, AES_128_BLOCK_SIZE); + memcpy(ctx->iv, iv, AES_128_BLOCK_SIZE); + return ctx; +} + +void aes_encrypt(aes_ctx_t *ctx, const uint8_t *in, uint8_t *out, int in_len) { + int out_len = 0; + if (!EVP_EncryptUpdate(ctx->cipher_ctx, out, &out_len, in, in_len)) { + handle_error(__func__); + } + + assert(out_len <= in_len); +} + +void aes_decrypt(aes_ctx_t *ctx, const uint8_t *in, uint8_t *out, int in_len) { + int out_len = 0; + if (!EVP_DecryptUpdate(ctx->cipher_ctx, out, &out_len, in, in_len)) { + handle_error(__func__); + } + + assert(out_len <= in_len); +} + +void aes_destroy(aes_ctx_t *ctx) { + if (ctx) { + EVP_CIPHER_CTX_free(ctx->cipher_ctx); + free(ctx); + } +} + +void aes_reset(aes_ctx_t *ctx, const EVP_CIPHER *type, aes_direction_t direction) { + if (!EVP_CIPHER_CTX_reset(ctx->cipher_ctx)) { + handle_error(__func__); + } + + if (direction == AES_ENCRYPT) { + if (!EVP_EncryptInit_ex(ctx->cipher_ctx, type, NULL, ctx->key, ctx->iv)) { + handle_error(__func__); + } + } else { + if (!EVP_DecryptInit_ex(ctx->cipher_ctx, type, NULL, ctx->key, ctx->iv)) { + handle_error(__func__); + } + } +} + +// AES CTR + +aes_ctx_t *aes_ctr_init(const uint8_t *key, const uint8_t *iv) { + return aes_init(key, iv, EVP_aes_128_ctr(), AES_ENCRYPT); +} + +void aes_ctr_encrypt(aes_ctx_t *ctx, const uint8_t *in, uint8_t *out, int len) { + aes_encrypt(ctx, in, out, len); + ctx->block_offset = (ctx->block_offset + len) % AES_128_BLOCK_SIZE; +} + +void aes_ctr_start_fresh_block(aes_ctx_t *ctx) { + // Is there a better way to do this? + if (ctx->block_offset == 0) return; + aes_ctr_encrypt(ctx, waste, waste, AES_128_BLOCK_SIZE - ctx->block_offset); +} + +void aes_ctr_decrypt(aes_ctx_t *ctx, const uint8_t *in, uint8_t *out, int len) { + aes_encrypt(ctx, in, out, len); +} + +void aes_ctr_reset(aes_ctx_t *ctx) { + aes_reset(ctx, EVP_aes_128_ctr(), AES_ENCRYPT); +} + +void aes_ctr_destroy(aes_ctx_t *ctx) { + aes_destroy(ctx); +} + +// AES CBC + +aes_ctx_t *aes_cbc_init(const uint8_t *key, const uint8_t *iv, aes_direction_t direction) { + return aes_init(key, iv, EVP_aes_128_cbc(), direction); +} + +void aes_cbc_encrypt(aes_ctx_t *ctx, const uint8_t *in, uint8_t *out, int len) { + assert(ctx->direction == AES_ENCRYPT); + aes_encrypt(ctx, in, out, len); +} + +void aes_cbc_decrypt(aes_ctx_t *ctx, const uint8_t *in, uint8_t *out, int len) { + assert(ctx->direction == AES_DECRYPT); + aes_decrypt(ctx, in, out, len); +} + +void aes_cbc_reset(aes_ctx_t *ctx) { + aes_reset(ctx, EVP_aes_128_ctr(), ctx->direction); +} + +void aes_cbc_destroy(aes_ctx_t *ctx) { + aes_destroy(ctx); +} + +// SHA 512 + +struct sha_ctx_s { + EVP_MD_CTX *digest_ctx; +}; + +sha_ctx_t *sha_init() { + sha_ctx_t *ctx = malloc(sizeof(sha_ctx_t)); + assert(ctx != NULL); + ctx->digest_ctx = EVP_MD_CTX_new(); + assert(ctx->digest_ctx != NULL); + + if (!EVP_DigestInit_ex(ctx->digest_ctx, EVP_sha512(), NULL)) { + handle_error(__func__); + } + return ctx; +} + +void sha_update(sha_ctx_t *ctx, const uint8_t *in, int len) { + if (!EVP_DigestUpdate(ctx->digest_ctx, in, len)) { + handle_error(__func__); + } +} + +void sha_final(sha_ctx_t *ctx, uint8_t *out, unsigned int *len) { + if (!EVP_DigestFinal_ex(ctx->digest_ctx, out, len)) { + handle_error(__func__); + } +} + +void sha_reset(sha_ctx_t *ctx) { + if (!EVP_MD_CTX_reset(ctx->digest_ctx) || + !EVP_DigestInit_ex(ctx->digest_ctx, EVP_sha512(), NULL)) { + + handle_error(__func__); + } +} + +void sha_destroy(sha_ctx_t *ctx) { + if (ctx) { + EVP_MD_CTX_free(ctx->digest_ctx); + free(ctx); + } +} diff --git a/lib/crypto.h b/lib/crypto.h new file mode 100644 index 0000000..a77f550 --- /dev/null +++ b/lib/crypto.h @@ -0,0 +1,67 @@ +/** + * RPiPlay - An open-source AirPlay mirroring server for Raspberry Pi + * Copyright (C) 2019 Florian Draschbacher + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * Helper methods for various crypto operations. + * Uses OpenSSL behind the scenes. +*/ + +#ifndef CRYPTO_H +#define CRYPTO_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +// 128bit AES in CTR mode + +#define AES_128_BLOCK_SIZE 16 + +typedef enum aes_direction_e { AES_DECRYPT, AES_ENCRYPT } aes_direction_t; + +typedef struct aes_ctx_s aes_ctx_t; + +aes_ctx_t *aes_ctr_init(const uint8_t *key, const uint8_t *iv); +void aes_ctr_reset(aes_ctx_t *ctx); +void aes_ctr_encrypt(aes_ctx_t *ctx, const uint8_t *in, uint8_t *out, int len); +void aes_ctr_decrypt(aes_ctx_t *ctx, const uint8_t *in, uint8_t *out, int len); +void aes_ctr_start_fresh_block(aes_ctx_t *ctx); +void aes_ctr_destroy(aes_ctx_t *ctx); + +aes_ctx_t *aes_cbc_init(const uint8_t *key, const uint8_t *iv, aes_direction_t direction); +void aes_cbc_reset(aes_ctx_t *ctx); +void aes_cbc_encrypt(aes_ctx_t *ctx, const uint8_t *in, uint8_t *out, int len); +void aes_cbc_decrypt(aes_ctx_t *ctx, const uint8_t *in, uint8_t *out, int len); +void aes_cbc_destroy(aes_ctx_t *ctx); + +// SHA512 + +typedef struct sha_ctx_s sha_ctx_t; +sha_ctx_t *sha_init(); +void sha_update(sha_ctx_t *ctx, const uint8_t *in, int len); +void sha_final(sha_ctx_t *ctx, uint8_t *out, unsigned int *len); +void sha_reset(sha_ctx_t *ctx); +void sha_destroy(sha_ctx_t *ctx); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/lib/curve25519/CMakeLists.txt b/lib/curve25519/CMakeLists.txt new file mode 100755 index 0000000..fbaeea3 --- /dev/null +++ b/lib/curve25519/CMakeLists.txt @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 3.4.1) +aux_source_directory(. curve25519_src) +set(DIR_SRCS ${curve25519_src}) +add_library( curve25519 + STATIC + ${DIR_SRCS}) \ No newline at end of file diff --git a/lib/curve25519/curve25519-donna.c b/lib/curve25519/curve25519-donna.c new file mode 100755 index 0000000..ed15d6c --- /dev/null +++ b/lib/curve25519/curve25519-donna.c @@ -0,0 +1,860 @@ +/* Copyright 2008, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * curve25519-donna: Curve25519 elliptic curve, public key function + * + * http://code.google.com/p/curve25519-donna/ + * + * Adam Langley + * + * Derived from public domain C code by Daniel J. Bernstein + * + * More information about curve25519 can be found here + * http://cr.yp.to/ecdh.html + * + * djb's sample implementation of curve25519 is written in a special assembly + * language called qhasm and uses the floating point registers. + * + * This is, almost, a clean room reimplementation from the curve25519 paper. It + * uses many of the tricks described therein. Only the crecip function is taken + * from the sample implementation. */ + +#include +#include + +#ifdef _MSC_VER +#define inline __inline +#endif + +typedef uint8_t u8; +typedef int32_t s32; +typedef int64_t limb; + +/* Field element representation: + * + * Field elements are written as an array of signed, 64-bit limbs, least + * significant first. The value of the field element is: + * x[0] + 2^26·x[1] + x^51·x[2] + 2^102·x[3] + ... + * + * i.e. the limbs are 26, 25, 26, 25, ... bits wide. */ + +/* Sum two numbers: output += in */ +static void fsum(limb *output, const limb *in) { + unsigned i; + for (i = 0; i < 10; i += 2) { + output[0+i] = output[0+i] + in[0+i]; + output[1+i] = output[1+i] + in[1+i]; + } +} + +/* Find the difference of two numbers: output = in - output + * (note the order of the arguments!). */ +static void fdifference(limb *output, const limb *in) { + unsigned i; + for (i = 0; i < 10; ++i) { + output[i] = in[i] - output[i]; + } +} + +/* Multiply a number by a scalar: output = in * scalar */ +static void fscalar_product(limb *output, const limb *in, const limb scalar) { + unsigned i; + for (i = 0; i < 10; ++i) { + output[i] = in[i] * scalar; + } +} + +/* Multiply two numbers: output = in2 * in + * + * output must be distinct to both inputs. The inputs are reduced coefficient + * form, the output is not. + * + * output[x] <= 14 * the largest product of the input limbs. */ +static void fproduct(limb *output, const limb *in2, const limb *in) { + output[0] = ((limb) ((s32) in2[0])) * ((s32) in[0]); + output[1] = ((limb) ((s32) in2[0])) * ((s32) in[1]) + + ((limb) ((s32) in2[1])) * ((s32) in[0]); + output[2] = 2 * ((limb) ((s32) in2[1])) * ((s32) in[1]) + + ((limb) ((s32) in2[0])) * ((s32) in[2]) + + ((limb) ((s32) in2[2])) * ((s32) in[0]); + output[3] = ((limb) ((s32) in2[1])) * ((s32) in[2]) + + ((limb) ((s32) in2[2])) * ((s32) in[1]) + + ((limb) ((s32) in2[0])) * ((s32) in[3]) + + ((limb) ((s32) in2[3])) * ((s32) in[0]); + output[4] = ((limb) ((s32) in2[2])) * ((s32) in[2]) + + 2 * (((limb) ((s32) in2[1])) * ((s32) in[3]) + + ((limb) ((s32) in2[3])) * ((s32) in[1])) + + ((limb) ((s32) in2[0])) * ((s32) in[4]) + + ((limb) ((s32) in2[4])) * ((s32) in[0]); + output[5] = ((limb) ((s32) in2[2])) * ((s32) in[3]) + + ((limb) ((s32) in2[3])) * ((s32) in[2]) + + ((limb) ((s32) in2[1])) * ((s32) in[4]) + + ((limb) ((s32) in2[4])) * ((s32) in[1]) + + ((limb) ((s32) in2[0])) * ((s32) in[5]) + + ((limb) ((s32) in2[5])) * ((s32) in[0]); + output[6] = 2 * (((limb) ((s32) in2[3])) * ((s32) in[3]) + + ((limb) ((s32) in2[1])) * ((s32) in[5]) + + ((limb) ((s32) in2[5])) * ((s32) in[1])) + + ((limb) ((s32) in2[2])) * ((s32) in[4]) + + ((limb) ((s32) in2[4])) * ((s32) in[2]) + + ((limb) ((s32) in2[0])) * ((s32) in[6]) + + ((limb) ((s32) in2[6])) * ((s32) in[0]); + output[7] = ((limb) ((s32) in2[3])) * ((s32) in[4]) + + ((limb) ((s32) in2[4])) * ((s32) in[3]) + + ((limb) ((s32) in2[2])) * ((s32) in[5]) + + ((limb) ((s32) in2[5])) * ((s32) in[2]) + + ((limb) ((s32) in2[1])) * ((s32) in[6]) + + ((limb) ((s32) in2[6])) * ((s32) in[1]) + + ((limb) ((s32) in2[0])) * ((s32) in[7]) + + ((limb) ((s32) in2[7])) * ((s32) in[0]); + output[8] = ((limb) ((s32) in2[4])) * ((s32) in[4]) + + 2 * (((limb) ((s32) in2[3])) * ((s32) in[5]) + + ((limb) ((s32) in2[5])) * ((s32) in[3]) + + ((limb) ((s32) in2[1])) * ((s32) in[7]) + + ((limb) ((s32) in2[7])) * ((s32) in[1])) + + ((limb) ((s32) in2[2])) * ((s32) in[6]) + + ((limb) ((s32) in2[6])) * ((s32) in[2]) + + ((limb) ((s32) in2[0])) * ((s32) in[8]) + + ((limb) ((s32) in2[8])) * ((s32) in[0]); + output[9] = ((limb) ((s32) in2[4])) * ((s32) in[5]) + + ((limb) ((s32) in2[5])) * ((s32) in[4]) + + ((limb) ((s32) in2[3])) * ((s32) in[6]) + + ((limb) ((s32) in2[6])) * ((s32) in[3]) + + ((limb) ((s32) in2[2])) * ((s32) in[7]) + + ((limb) ((s32) in2[7])) * ((s32) in[2]) + + ((limb) ((s32) in2[1])) * ((s32) in[8]) + + ((limb) ((s32) in2[8])) * ((s32) in[1]) + + ((limb) ((s32) in2[0])) * ((s32) in[9]) + + ((limb) ((s32) in2[9])) * ((s32) in[0]); + output[10] = 2 * (((limb) ((s32) in2[5])) * ((s32) in[5]) + + ((limb) ((s32) in2[3])) * ((s32) in[7]) + + ((limb) ((s32) in2[7])) * ((s32) in[3]) + + ((limb) ((s32) in2[1])) * ((s32) in[9]) + + ((limb) ((s32) in2[9])) * ((s32) in[1])) + + ((limb) ((s32) in2[4])) * ((s32) in[6]) + + ((limb) ((s32) in2[6])) * ((s32) in[4]) + + ((limb) ((s32) in2[2])) * ((s32) in[8]) + + ((limb) ((s32) in2[8])) * ((s32) in[2]); + output[11] = ((limb) ((s32) in2[5])) * ((s32) in[6]) + + ((limb) ((s32) in2[6])) * ((s32) in[5]) + + ((limb) ((s32) in2[4])) * ((s32) in[7]) + + ((limb) ((s32) in2[7])) * ((s32) in[4]) + + ((limb) ((s32) in2[3])) * ((s32) in[8]) + + ((limb) ((s32) in2[8])) * ((s32) in[3]) + + ((limb) ((s32) in2[2])) * ((s32) in[9]) + + ((limb) ((s32) in2[9])) * ((s32) in[2]); + output[12] = ((limb) ((s32) in2[6])) * ((s32) in[6]) + + 2 * (((limb) ((s32) in2[5])) * ((s32) in[7]) + + ((limb) ((s32) in2[7])) * ((s32) in[5]) + + ((limb) ((s32) in2[3])) * ((s32) in[9]) + + ((limb) ((s32) in2[9])) * ((s32) in[3])) + + ((limb) ((s32) in2[4])) * ((s32) in[8]) + + ((limb) ((s32) in2[8])) * ((s32) in[4]); + output[13] = ((limb) ((s32) in2[6])) * ((s32) in[7]) + + ((limb) ((s32) in2[7])) * ((s32) in[6]) + + ((limb) ((s32) in2[5])) * ((s32) in[8]) + + ((limb) ((s32) in2[8])) * ((s32) in[5]) + + ((limb) ((s32) in2[4])) * ((s32) in[9]) + + ((limb) ((s32) in2[9])) * ((s32) in[4]); + output[14] = 2 * (((limb) ((s32) in2[7])) * ((s32) in[7]) + + ((limb) ((s32) in2[5])) * ((s32) in[9]) + + ((limb) ((s32) in2[9])) * ((s32) in[5])) + + ((limb) ((s32) in2[6])) * ((s32) in[8]) + + ((limb) ((s32) in2[8])) * ((s32) in[6]); + output[15] = ((limb) ((s32) in2[7])) * ((s32) in[8]) + + ((limb) ((s32) in2[8])) * ((s32) in[7]) + + ((limb) ((s32) in2[6])) * ((s32) in[9]) + + ((limb) ((s32) in2[9])) * ((s32) in[6]); + output[16] = ((limb) ((s32) in2[8])) * ((s32) in[8]) + + 2 * (((limb) ((s32) in2[7])) * ((s32) in[9]) + + ((limb) ((s32) in2[9])) * ((s32) in[7])); + output[17] = ((limb) ((s32) in2[8])) * ((s32) in[9]) + + ((limb) ((s32) in2[9])) * ((s32) in[8]); + output[18] = 2 * ((limb) ((s32) in2[9])) * ((s32) in[9]); +} + +/* Reduce a long form to a short form by taking the input mod 2^255 - 19. + * + * On entry: |output[i]| < 14*2^54 + * On exit: |output[0..8]| < 280*2^54 */ +static void freduce_degree(limb *output) { + /* Each of these shifts and adds ends up multiplying the value by 19. + * + * For output[0..8], the absolute entry value is < 14*2^54 and we add, at + * most, 19*14*2^54 thus, on exit, |output[0..8]| < 280*2^54. */ + output[8] += output[18] << 4; + output[8] += output[18] << 1; + output[8] += output[18]; + output[7] += output[17] << 4; + output[7] += output[17] << 1; + output[7] += output[17]; + output[6] += output[16] << 4; + output[6] += output[16] << 1; + output[6] += output[16]; + output[5] += output[15] << 4; + output[5] += output[15] << 1; + output[5] += output[15]; + output[4] += output[14] << 4; + output[4] += output[14] << 1; + output[4] += output[14]; + output[3] += output[13] << 4; + output[3] += output[13] << 1; + output[3] += output[13]; + output[2] += output[12] << 4; + output[2] += output[12] << 1; + output[2] += output[12]; + output[1] += output[11] << 4; + output[1] += output[11] << 1; + output[1] += output[11]; + output[0] += output[10] << 4; + output[0] += output[10] << 1; + output[0] += output[10]; +} + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* return v / 2^26, using only shifts and adds. + * + * On entry: v can take any value. */ +static inline limb +div_by_2_26(const limb v) +{ + /* High word of v; no shift needed. */ + const uint32_t highword = (uint32_t) (((uint64_t) v) >> 32); + /* Set to all 1s if v was negative; else set to 0s. */ + const int32_t sign = ((int32_t) highword) >> 31; + /* Set to 0x3ffffff if v was negative; else set to 0. */ + const int32_t roundoff = ((uint32_t) sign) >> 6; + /* Should return v / (1<<26) */ + return (v + roundoff) >> 26; +} + +/* return v / (2^25), using only shifts and adds. + * + * On entry: v can take any value. */ +static inline limb +div_by_2_25(const limb v) +{ + /* High word of v; no shift needed*/ + const uint32_t highword = (uint32_t) (((uint64_t) v) >> 32); + /* Set to all 1s if v was negative; else set to 0s. */ + const int32_t sign = ((int32_t) highword) >> 31; + /* Set to 0x1ffffff if v was negative; else set to 0. */ + const int32_t roundoff = ((uint32_t) sign) >> 7; + /* Should return v / (1<<25) */ + return (v + roundoff) >> 25; +} + +/* Reduce all coefficients of the short form input so that |x| < 2^26. + * + * On entry: |output[i]| < 280*2^54 */ +static void freduce_coefficients(limb *output) { + unsigned i; + + output[10] = 0; + + for (i = 0; i < 10; i += 2) { + limb over = div_by_2_26(output[i]); + /* The entry condition (that |output[i]| < 280*2^54) means that over is, at + * most, 280*2^28 in the first iteration of this loop. This is added to the + * next limb and we can approximate the resulting bound of that limb by + * 281*2^54. */ + output[i] -= over << 26; + output[i+1] += over; + + /* For the first iteration, |output[i+1]| < 281*2^54, thus |over| < + * 281*2^29. When this is added to the next limb, the resulting bound can + * be approximated as 281*2^54. + * + * For subsequent iterations of the loop, 281*2^54 remains a conservative + * bound and no overflow occurs. */ + over = div_by_2_25(output[i+1]); + output[i+1] -= over << 25; + output[i+2] += over; + } + /* Now |output[10]| < 281*2^29 and all other coefficients are reduced. */ + output[0] += output[10] << 4; + output[0] += output[10] << 1; + output[0] += output[10]; + + output[10] = 0; + + /* Now output[1..9] are reduced, and |output[0]| < 2^26 + 19*281*2^29 + * So |over| will be no more than 2^16. */ + { + limb over = div_by_2_26(output[0]); + output[0] -= over << 26; + output[1] += over; + } + + /* Now output[0,2..9] are reduced, and |output[1]| < 2^25 + 2^16 < 2^26. The + * bound on |output[1]| is sufficient to meet our needs. */ +} + +/* A helpful wrapper around fproduct: output = in * in2. + * + * On entry: |in[i]| < 2^27 and |in2[i]| < 2^27. + * + * output must be distinct to both inputs. The output is reduced degree + * (indeed, one need only provide storage for 10 limbs) and |output[i]| < 2^26. */ +static void +fmul(limb *output, const limb *in, const limb *in2) { + limb t[19]; + fproduct(t, in, in2); + /* |t[i]| < 14*2^54 */ + freduce_degree(t); + freduce_coefficients(t); + /* |t[i]| < 2^26 */ + memcpy(output, t, sizeof(limb) * 10); +} + +/* Square a number: output = in**2 + * + * output must be distinct from the input. The inputs are reduced coefficient + * form, the output is not. + * + * output[x] <= 14 * the largest product of the input limbs. */ +static void fsquare_inner(limb *output, const limb *in) { + output[0] = ((limb) ((s32) in[0])) * ((s32) in[0]); + output[1] = 2 * ((limb) ((s32) in[0])) * ((s32) in[1]); + output[2] = 2 * (((limb) ((s32) in[1])) * ((s32) in[1]) + + ((limb) ((s32) in[0])) * ((s32) in[2])); + output[3] = 2 * (((limb) ((s32) in[1])) * ((s32) in[2]) + + ((limb) ((s32) in[0])) * ((s32) in[3])); + output[4] = ((limb) ((s32) in[2])) * ((s32) in[2]) + + 4 * ((limb) ((s32) in[1])) * ((s32) in[3]) + + 2 * ((limb) ((s32) in[0])) * ((s32) in[4]); + output[5] = 2 * (((limb) ((s32) in[2])) * ((s32) in[3]) + + ((limb) ((s32) in[1])) * ((s32) in[4]) + + ((limb) ((s32) in[0])) * ((s32) in[5])); + output[6] = 2 * (((limb) ((s32) in[3])) * ((s32) in[3]) + + ((limb) ((s32) in[2])) * ((s32) in[4]) + + ((limb) ((s32) in[0])) * ((s32) in[6]) + + 2 * ((limb) ((s32) in[1])) * ((s32) in[5])); + output[7] = 2 * (((limb) ((s32) in[3])) * ((s32) in[4]) + + ((limb) ((s32) in[2])) * ((s32) in[5]) + + ((limb) ((s32) in[1])) * ((s32) in[6]) + + ((limb) ((s32) in[0])) * ((s32) in[7])); + output[8] = ((limb) ((s32) in[4])) * ((s32) in[4]) + + 2 * (((limb) ((s32) in[2])) * ((s32) in[6]) + + ((limb) ((s32) in[0])) * ((s32) in[8]) + + 2 * (((limb) ((s32) in[1])) * ((s32) in[7]) + + ((limb) ((s32) in[3])) * ((s32) in[5]))); + output[9] = 2 * (((limb) ((s32) in[4])) * ((s32) in[5]) + + ((limb) ((s32) in[3])) * ((s32) in[6]) + + ((limb) ((s32) in[2])) * ((s32) in[7]) + + ((limb) ((s32) in[1])) * ((s32) in[8]) + + ((limb) ((s32) in[0])) * ((s32) in[9])); + output[10] = 2 * (((limb) ((s32) in[5])) * ((s32) in[5]) + + ((limb) ((s32) in[4])) * ((s32) in[6]) + + ((limb) ((s32) in[2])) * ((s32) in[8]) + + 2 * (((limb) ((s32) in[3])) * ((s32) in[7]) + + ((limb) ((s32) in[1])) * ((s32) in[9]))); + output[11] = 2 * (((limb) ((s32) in[5])) * ((s32) in[6]) + + ((limb) ((s32) in[4])) * ((s32) in[7]) + + ((limb) ((s32) in[3])) * ((s32) in[8]) + + ((limb) ((s32) in[2])) * ((s32) in[9])); + output[12] = ((limb) ((s32) in[6])) * ((s32) in[6]) + + 2 * (((limb) ((s32) in[4])) * ((s32) in[8]) + + 2 * (((limb) ((s32) in[5])) * ((s32) in[7]) + + ((limb) ((s32) in[3])) * ((s32) in[9]))); + output[13] = 2 * (((limb) ((s32) in[6])) * ((s32) in[7]) + + ((limb) ((s32) in[5])) * ((s32) in[8]) + + ((limb) ((s32) in[4])) * ((s32) in[9])); + output[14] = 2 * (((limb) ((s32) in[7])) * ((s32) in[7]) + + ((limb) ((s32) in[6])) * ((s32) in[8]) + + 2 * ((limb) ((s32) in[5])) * ((s32) in[9])); + output[15] = 2 * (((limb) ((s32) in[7])) * ((s32) in[8]) + + ((limb) ((s32) in[6])) * ((s32) in[9])); + output[16] = ((limb) ((s32) in[8])) * ((s32) in[8]) + + 4 * ((limb) ((s32) in[7])) * ((s32) in[9]); + output[17] = 2 * ((limb) ((s32) in[8])) * ((s32) in[9]); + output[18] = 2 * ((limb) ((s32) in[9])) * ((s32) in[9]); +} + +/* fsquare sets output = in^2. + * + * On entry: The |in| argument is in reduced coefficients form and |in[i]| < + * 2^27. + * + * On exit: The |output| argument is in reduced coefficients form (indeed, one + * need only provide storage for 10 limbs) and |out[i]| < 2^26. */ +static void +fsquare(limb *output, const limb *in) { + limb t[19]; + fsquare_inner(t, in); + /* |t[i]| < 14*2^54 because the largest product of two limbs will be < + * 2^(27+27) and fsquare_inner adds together, at most, 14 of those + * products. */ + freduce_degree(t); + freduce_coefficients(t); + /* |t[i]| < 2^26 */ + memcpy(output, t, sizeof(limb) * 10); +} + +/* Take a little-endian, 32-byte number and expand it into polynomial form */ +static void +fexpand(limb *output, const u8 *input) { +#define F(n,start,shift,mask) \ + output[n] = ((((limb) input[start + 0]) | \ + ((limb) input[start + 1]) << 8 | \ + ((limb) input[start + 2]) << 16 | \ + ((limb) input[start + 3]) << 24) >> shift) & mask; + F(0, 0, 0, 0x3ffffff); + F(1, 3, 2, 0x1ffffff); + F(2, 6, 3, 0x3ffffff); + F(3, 9, 5, 0x1ffffff); + F(4, 12, 6, 0x3ffffff); + F(5, 16, 0, 0x1ffffff); + F(6, 19, 1, 0x3ffffff); + F(7, 22, 3, 0x1ffffff); + F(8, 25, 4, 0x3ffffff); + F(9, 28, 6, 0x1ffffff); +#undef F +} + +#if (-32 >> 1) != -16 +#error "This code only works when >> does sign-extension on negative numbers" +#endif + +/* s32_eq returns 0xffffffff iff a == b and zero otherwise. */ +static s32 s32_eq(s32 a, s32 b) { + a = ~(a ^ b); + a &= a << 16; + a &= a << 8; + a &= a << 4; + a &= a << 2; + a &= a << 1; + return a >> 31; +} + +/* s32_gte returns 0xffffffff if a >= b and zero otherwise, where a and b are + * both non-negative. */ +static s32 s32_gte(s32 a, s32 b) { + a -= b; + /* a >= 0 iff a >= b. */ + return ~(a >> 31); +} + +/* Take a fully reduced polynomial form number and contract it into a + * little-endian, 32-byte array. + * + * On entry: |input_limbs[i]| < 2^26 */ +static void +fcontract(u8 *output, limb *input_limbs) { + int i; + int j; + s32 input[10]; + s32 mask; + + /* |input_limbs[i]| < 2^26, so it's valid to convert to an s32. */ + for (i = 0; i < 10; i++) { + input[i] = input_limbs[i]; + } + + for (j = 0; j < 2; ++j) { + for (i = 0; i < 9; ++i) { + if ((i & 1) == 1) { + /* This calculation is a time-invariant way to make input[i] + * non-negative by borrowing from the next-larger limb. */ + const s32 mask = input[i] >> 31; + const s32 carry = -((input[i] & mask) >> 25); + input[i] = input[i] + (carry << 25); + input[i+1] = input[i+1] - carry; + } else { + const s32 mask = input[i] >> 31; + const s32 carry = -((input[i] & mask) >> 26); + input[i] = input[i] + (carry << 26); + input[i+1] = input[i+1] - carry; + } + } + + /* There's no greater limb for input[9] to borrow from, but we can multiply + * by 19 and borrow from input[0], which is valid mod 2^255-19. */ + { + const s32 mask = input[9] >> 31; + const s32 carry = -((input[9] & mask) >> 25); + input[9] = input[9] + (carry << 25); + input[0] = input[0] - (carry * 19); + } + + /* After the first iteration, input[1..9] are non-negative and fit within + * 25 or 26 bits, depending on position. However, input[0] may be + * negative. */ + } + + /* The first borrow-propagation pass above ended with every limb + except (possibly) input[0] non-negative. + + If input[0] was negative after the first pass, then it was because of a + carry from input[9]. On entry, input[9] < 2^26 so the carry was, at most, + one, since (2**26-1) >> 25 = 1. Thus input[0] >= -19. + + In the second pass, each limb is decreased by at most one. Thus the second + borrow-propagation pass could only have wrapped around to decrease + input[0] again if the first pass left input[0] negative *and* input[1] + through input[9] were all zero. In that case, input[1] is now 2^25 - 1, + and this last borrow-propagation step will leave input[1] non-negative. */ + { + const s32 mask = input[0] >> 31; + const s32 carry = -((input[0] & mask) >> 26); + input[0] = input[0] + (carry << 26); + input[1] = input[1] - carry; + } + + /* All input[i] are now non-negative. However, there might be values between + * 2^25 and 2^26 in a limb which is, nominally, 25 bits wide. */ + for (j = 0; j < 2; j++) { + for (i = 0; i < 9; i++) { + if ((i & 1) == 1) { + const s32 carry = input[i] >> 25; + input[i] &= 0x1ffffff; + input[i+1] += carry; + } else { + const s32 carry = input[i] >> 26; + input[i] &= 0x3ffffff; + input[i+1] += carry; + } + } + + { + const s32 carry = input[9] >> 25; + input[9] &= 0x1ffffff; + input[0] += 19*carry; + } + } + + /* If the first carry-chain pass, just above, ended up with a carry from + * input[9], and that caused input[0] to be out-of-bounds, then input[0] was + * < 2^26 + 2*19, because the carry was, at most, two. + * + * If the second pass carried from input[9] again then input[0] is < 2*19 and + * the input[9] -> input[0] carry didn't push input[0] out of bounds. */ + + /* It still remains the case that input might be between 2^255-19 and 2^255. + * In this case, input[1..9] must take their maximum value and input[0] must + * be >= (2^255-19) & 0x3ffffff, which is 0x3ffffed. */ + mask = s32_gte(input[0], 0x3ffffed); + for (i = 1; i < 10; i++) { + if ((i & 1) == 1) { + mask &= s32_eq(input[i], 0x1ffffff); + } else { + mask &= s32_eq(input[i], 0x3ffffff); + } + } + + /* mask is either 0xffffffff (if input >= 2^255-19) and zero otherwise. Thus + * this conditionally subtracts 2^255-19. */ + input[0] -= mask & 0x3ffffed; + + for (i = 1; i < 10; i++) { + if ((i & 1) == 1) { + input[i] -= mask & 0x1ffffff; + } else { + input[i] -= mask & 0x3ffffff; + } + } + + input[1] <<= 2; + input[2] <<= 3; + input[3] <<= 5; + input[4] <<= 6; + input[6] <<= 1; + input[7] <<= 3; + input[8] <<= 4; + input[9] <<= 6; +#define F(i, s) \ + output[s+0] |= input[i] & 0xff; \ + output[s+1] = (input[i] >> 8) & 0xff; \ + output[s+2] = (input[i] >> 16) & 0xff; \ + output[s+3] = (input[i] >> 24) & 0xff; + output[0] = 0; + output[16] = 0; + F(0,0); + F(1,3); + F(2,6); + F(3,9); + F(4,12); + F(5,16); + F(6,19); + F(7,22); + F(8,25); + F(9,28); +#undef F +} + +/* Input: Q, Q', Q-Q' + * Output: 2Q, Q+Q' + * + * x2 z3: long form + * x3 z3: long form + * x z: short form, destroyed + * xprime zprime: short form, destroyed + * qmqp: short form, preserved + * + * On entry and exit, the absolute value of the limbs of all inputs and outputs + * are < 2^26. */ +static void fmonty(limb *x2, limb *z2, /* output 2Q */ + limb *x3, limb *z3, /* output Q + Q' */ + limb *x, limb *z, /* input Q */ + limb *xprime, limb *zprime, /* input Q' */ + const limb *qmqp /* input Q - Q' */) { + limb origx[10], origxprime[10], zzz[19], xx[19], zz[19], xxprime[19], + zzprime[19], zzzprime[19], xxxprime[19]; + + memcpy(origx, x, 10 * sizeof(limb)); + fsum(x, z); + /* |x[i]| < 2^27 */ + fdifference(z, origx); /* does x - z */ + /* |z[i]| < 2^27 */ + + memcpy(origxprime, xprime, sizeof(limb) * 10); + fsum(xprime, zprime); + /* |xprime[i]| < 2^27 */ + fdifference(zprime, origxprime); + /* |zprime[i]| < 2^27 */ + fproduct(xxprime, xprime, z); + /* |xxprime[i]| < 14*2^54: the largest product of two limbs will be < + * 2^(27+27) and fproduct adds together, at most, 14 of those products. + * (Approximating that to 2^58 doesn't work out.) */ + fproduct(zzprime, x, zprime); + /* |zzprime[i]| < 14*2^54 */ + freduce_degree(xxprime); + freduce_coefficients(xxprime); + /* |xxprime[i]| < 2^26 */ + freduce_degree(zzprime); + freduce_coefficients(zzprime); + /* |zzprime[i]| < 2^26 */ + memcpy(origxprime, xxprime, sizeof(limb) * 10); + fsum(xxprime, zzprime); + /* |xxprime[i]| < 2^27 */ + fdifference(zzprime, origxprime); + /* |zzprime[i]| < 2^27 */ + fsquare(xxxprime, xxprime); + /* |xxxprime[i]| < 2^26 */ + fsquare(zzzprime, zzprime); + /* |zzzprime[i]| < 2^26 */ + fproduct(zzprime, zzzprime, qmqp); + /* |zzprime[i]| < 14*2^52 */ + freduce_degree(zzprime); + freduce_coefficients(zzprime); + /* |zzprime[i]| < 2^26 */ + memcpy(x3, xxxprime, sizeof(limb) * 10); + memcpy(z3, zzprime, sizeof(limb) * 10); + + fsquare(xx, x); + /* |xx[i]| < 2^26 */ + fsquare(zz, z); + /* |zz[i]| < 2^26 */ + fproduct(x2, xx, zz); + /* |x2[i]| < 14*2^52 */ + freduce_degree(x2); + freduce_coefficients(x2); + /* |x2[i]| < 2^26 */ + fdifference(zz, xx); // does zz = xx - zz + /* |zz[i]| < 2^27 */ + memset(zzz + 10, 0, sizeof(limb) * 9); + fscalar_product(zzz, zz, 121665); + /* |zzz[i]| < 2^(27+17) */ + /* No need to call freduce_degree here: + fscalar_product doesn't increase the degree of its input. */ + freduce_coefficients(zzz); + /* |zzz[i]| < 2^26 */ + fsum(zzz, xx); + /* |zzz[i]| < 2^27 */ + fproduct(z2, zz, zzz); + /* |z2[i]| < 14*2^(26+27) */ + freduce_degree(z2); + freduce_coefficients(z2); + /* |z2|i| < 2^26 */ +} + +/* Conditionally swap two reduced-form limb arrays if 'iswap' is 1, but leave + * them unchanged if 'iswap' is 0. Runs in data-invariant time to avoid + * side-channel attacks. + * + * NOTE that this function requires that 'iswap' be 1 or 0; other values give + * wrong results. Also, the two limb arrays must be in reduced-coefficient, + * reduced-degree form: the values in a[10..19] or b[10..19] aren't swapped, + * and all all values in a[0..9],b[0..9] must have magnitude less than + * INT32_MAX. */ +static void +swap_conditional(limb a[19], limb b[19], limb iswap) { + unsigned i; + const s32 swap = (s32) -iswap; + + for (i = 0; i < 10; ++i) { + const s32 x = swap & ( ((s32)a[i]) ^ ((s32)b[i]) ); + a[i] = ((s32)a[i]) ^ x; + b[i] = ((s32)b[i]) ^ x; + } +} + +/* Calculates nQ where Q is the x-coordinate of a point on the curve + * + * resultx/resultz: the x coordinate of the resulting curve point (short form) + * n: a little endian, 32-byte number + * q: a point of the curve (short form) */ +static void +cmult(limb *resultx, limb *resultz, const u8 *n, const limb *q) { + limb a[19] = {0}, b[19] = {1}, c[19] = {1}, d[19] = {0}; + limb *nqpqx = a, *nqpqz = b, *nqx = c, *nqz = d, *t; + limb e[19] = {0}, f[19] = {1}, g[19] = {0}, h[19] = {1}; + limb *nqpqx2 = e, *nqpqz2 = f, *nqx2 = g, *nqz2 = h; + + unsigned i, j; + + memcpy(nqpqx, q, sizeof(limb) * 10); + + for (i = 0; i < 32; ++i) { + u8 byte = n[31 - i]; + for (j = 0; j < 8; ++j) { + const limb bit = byte >> 7; + + swap_conditional(nqx, nqpqx, bit); + swap_conditional(nqz, nqpqz, bit); + fmonty(nqx2, nqz2, + nqpqx2, nqpqz2, + nqx, nqz, + nqpqx, nqpqz, + q); + swap_conditional(nqx2, nqpqx2, bit); + swap_conditional(nqz2, nqpqz2, bit); + + t = nqx; + nqx = nqx2; + nqx2 = t; + t = nqz; + nqz = nqz2; + nqz2 = t; + t = nqpqx; + nqpqx = nqpqx2; + nqpqx2 = t; + t = nqpqz; + nqpqz = nqpqz2; + nqpqz2 = t; + + byte <<= 1; + } + } + + memcpy(resultx, nqx, sizeof(limb) * 10); + memcpy(resultz, nqz, sizeof(limb) * 10); +} + +// ----------------------------------------------------------------------------- +// Shamelessly copied from djb's code +// ----------------------------------------------------------------------------- +static void +crecip(limb *out, const limb *z) { + limb z2[10]; + limb z9[10]; + limb z11[10]; + limb z2_5_0[10]; + limb z2_10_0[10]; + limb z2_20_0[10]; + limb z2_50_0[10]; + limb z2_100_0[10]; + limb t0[10]; + limb t1[10]; + int i; + + /* 2 */ fsquare(z2,z); + /* 4 */ fsquare(t1,z2); + /* 8 */ fsquare(t0,t1); + /* 9 */ fmul(z9,t0,z); + /* 11 */ fmul(z11,z9,z2); + /* 22 */ fsquare(t0,z11); + /* 2^5 - 2^0 = 31 */ fmul(z2_5_0,t0,z9); + + /* 2^6 - 2^1 */ fsquare(t0,z2_5_0); + /* 2^7 - 2^2 */ fsquare(t1,t0); + /* 2^8 - 2^3 */ fsquare(t0,t1); + /* 2^9 - 2^4 */ fsquare(t1,t0); + /* 2^10 - 2^5 */ fsquare(t0,t1); + /* 2^10 - 2^0 */ fmul(z2_10_0,t0,z2_5_0); + + /* 2^11 - 2^1 */ fsquare(t0,z2_10_0); + /* 2^12 - 2^2 */ fsquare(t1,t0); + /* 2^20 - 2^10 */ for (i = 2;i < 10;i += 2) { fsquare(t0,t1); fsquare(t1,t0); } + /* 2^20 - 2^0 */ fmul(z2_20_0,t1,z2_10_0); + + /* 2^21 - 2^1 */ fsquare(t0,z2_20_0); + /* 2^22 - 2^2 */ fsquare(t1,t0); + /* 2^40 - 2^20 */ for (i = 2;i < 20;i += 2) { fsquare(t0,t1); fsquare(t1,t0); } + /* 2^40 - 2^0 */ fmul(t0,t1,z2_20_0); + + /* 2^41 - 2^1 */ fsquare(t1,t0); + /* 2^42 - 2^2 */ fsquare(t0,t1); + /* 2^50 - 2^10 */ for (i = 2;i < 10;i += 2) { fsquare(t1,t0); fsquare(t0,t1); } + /* 2^50 - 2^0 */ fmul(z2_50_0,t0,z2_10_0); + + /* 2^51 - 2^1 */ fsquare(t0,z2_50_0); + /* 2^52 - 2^2 */ fsquare(t1,t0); + /* 2^100 - 2^50 */ for (i = 2;i < 50;i += 2) { fsquare(t0,t1); fsquare(t1,t0); } + /* 2^100 - 2^0 */ fmul(z2_100_0,t1,z2_50_0); + + /* 2^101 - 2^1 */ fsquare(t1,z2_100_0); + /* 2^102 - 2^2 */ fsquare(t0,t1); + /* 2^200 - 2^100 */ for (i = 2;i < 100;i += 2) { fsquare(t1,t0); fsquare(t0,t1); } + /* 2^200 - 2^0 */ fmul(t1,t0,z2_100_0); + + /* 2^201 - 2^1 */ fsquare(t0,t1); + /* 2^202 - 2^2 */ fsquare(t1,t0); + /* 2^250 - 2^50 */ for (i = 2;i < 50;i += 2) { fsquare(t0,t1); fsquare(t1,t0); } + /* 2^250 - 2^0 */ fmul(t0,t1,z2_50_0); + + /* 2^251 - 2^1 */ fsquare(t1,t0); + /* 2^252 - 2^2 */ fsquare(t0,t1); + /* 2^253 - 2^3 */ fsquare(t1,t0); + /* 2^254 - 2^4 */ fsquare(t0,t1); + /* 2^255 - 2^5 */ fsquare(t1,t0); + /* 2^255 - 21 */ fmul(out,t1,z11); +} + +int +curve25519_donna(u8 *mypublic, const u8 *secret, const u8 *basepoint) { + limb bp[10], x[10], z[11], zmone[10]; + uint8_t e[32]; + int i; + + for (i = 0; i < 32; ++i) e[i] = secret[i]; + e[0] &= 248; + e[31] &= 127; + e[31] |= 64; + + fexpand(bp, basepoint); + cmult(x, z, e, bp); + crecip(zmone, z); + fmul(z, x, zmone); + fcontract(mypublic, z); + return 0; +} diff --git a/lib/curve25519/curve25519.h b/lib/curve25519/curve25519.h new file mode 100755 index 0000000..bf44cfa --- /dev/null +++ b/lib/curve25519/curve25519.h @@ -0,0 +1,8 @@ +#ifndef CURVE25519_DONNA_H +#define CURVE25519_DONNA_H + +static const unsigned char kCurve25519BasePoint[32] = { 9 }; + +int curve25519_donna(unsigned char *mypublic, const unsigned char *secret, const unsigned char *basepoint); + +#endif diff --git a/lib/dnssd.c b/lib/dnssd.c new file mode 100644 index 0000000..a3432a0 --- /dev/null +++ b/lib/dnssd.c @@ -0,0 +1,406 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +/* These defines allow us to compile on iOS */ +#ifndef __has_feature +# define __has_feature(x) 0 +#endif +#ifndef __has_extension +# define __has_extension __has_feature +#endif + +#include +#include +#include +#include + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "dnssdint.h" +#include "dnssd.h" +#include "global.h" +#include "compat.h" +#include "utils.h" + +#include + +#define MAX_DEVICEID 18 +#define MAX_SERVNAME 256 + +#if defined(HAVE_LIBDL) && !defined(__APPLE__) +# define USE_LIBDL 1 +#else +# define USE_LIBDL 0 +#endif + +#if defined(WIN32) || USE_LIBDL +# ifdef WIN32 +# include +# if !defined(EFI32) && !defined(EFI64) +# define DNSSD_STDCALL __stdcall +# else +# define DNSSD_STDCALL +# endif +# else +# include +# define DNSSD_STDCALL +# endif + +typedef struct _DNSServiceRef_t *DNSServiceRef; +typedef union _TXTRecordRef_t { char PrivateData[16]; char *ForceNaturalAlignment; } TXTRecordRef; + +typedef uint32_t DNSServiceFlags; +typedef int32_t DNSServiceErrorType; + +typedef void (DNSSD_STDCALL *DNSServiceRegisterReply) + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + DNSServiceErrorType errorCode, + const char *name, + const char *regtype, + const char *domain, + void *context + ); + +#else +//# include +# define DNSSD_STDCALL +#endif + +typedef DNSServiceErrorType (DNSSD_STDCALL *DNSServiceRegister_t) + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *name, + const char *regtype, + const char *domain, + const char *host, + uint16_t port, + uint16_t txtLen, + const void *txtRecord, + DNSServiceRegisterReply callBack, + void *context + ); +typedef void (DNSSD_STDCALL *DNSServiceRefDeallocate_t)(DNSServiceRef sdRef); +typedef void (DNSSD_STDCALL *TXTRecordCreate_t) + ( + TXTRecordRef *txtRecord, + uint16_t bufferLen, + void *buffer + ); +typedef void (DNSSD_STDCALL *TXTRecordDeallocate_t)(TXTRecordRef *txtRecord); +typedef DNSServiceErrorType (DNSSD_STDCALL *TXTRecordSetValue_t) + ( + TXTRecordRef *txtRecord, + const char *key, + uint8_t valueSize, + const void *value + ); +typedef uint16_t (DNSSD_STDCALL *TXTRecordGetLength_t)(const TXTRecordRef *txtRecord); +typedef const void * (DNSSD_STDCALL *TXTRecordGetBytesPtr_t)(const TXTRecordRef *txtRecord); + + +struct dnssd_s { +#ifdef WIN32 + HMODULE module; +#elif USE_LIBDL + void *module; +#endif + + DNSServiceRegister_t DNSServiceRegister; + DNSServiceRefDeallocate_t DNSServiceRefDeallocate; + TXTRecordCreate_t TXTRecordCreate; + TXTRecordSetValue_t TXTRecordSetValue; + TXTRecordGetLength_t TXTRecordGetLength; + TXTRecordGetBytesPtr_t TXTRecordGetBytesPtr; + TXTRecordDeallocate_t TXTRecordDeallocate; + + TXTRecordRef raop_record; + TXTRecordRef airplay_record; + + DNSServiceRef raop_service; + DNSServiceRef airplay_service; + + char *name; + int name_len; + + char *hw_addr; + int hw_addr_len; +}; + + + +dnssd_t * +dnssd_init(const char* name, int name_len, const char* hw_addr, int hw_addr_len, int *error) +{ + dnssd_t *dnssd; + + if (error) *error = DNSSD_ERROR_NOERROR; + + dnssd = calloc(1, sizeof(dnssd_t)); + if (!dnssd) { + if (error) *error = DNSSD_ERROR_OUTOFMEM; + return NULL; + } + +#ifdef WIN32 + dnssd->module = LoadLibraryA("dnssd.dll"); + if (!dnssd->module) { + if (error) *error = DNSSD_ERROR_LIBNOTFOUND; + free(dnssd); + return NULL; + } + dnssd->DNSServiceRegister = (DNSServiceRegister_t)GetProcAddress(dnssd->module, "DNSServiceRegister"); + dnssd->DNSServiceRefDeallocate = (DNSServiceRefDeallocate_t)GetProcAddress(dnssd->module, "DNSServiceRefDeallocate"); + dnssd->TXTRecordCreate = (TXTRecordCreate_t)GetProcAddress(dnssd->module, "TXTRecordCreate"); + dnssd->TXTRecordSetValue = (TXTRecordSetValue_t)GetProcAddress(dnssd->module, "TXTRecordSetValue"); + dnssd->TXTRecordGetLength = (TXTRecordGetLength_t)GetProcAddress(dnssd->module, "TXTRecordGetLength"); + dnssd->TXTRecordGetBytesPtr = (TXTRecordGetBytesPtr_t)GetProcAddress(dnssd->module, "TXTRecordGetBytesPtr"); + dnssd->TXTRecordDeallocate = (TXTRecordDeallocate_t)GetProcAddress(dnssd->module, "TXTRecordDeallocate"); + + if (!dnssd->DNSServiceRegister || !dnssd->DNSServiceRefDeallocate || !dnssd->TXTRecordCreate || + !dnssd->TXTRecordSetValue || !dnssd->TXTRecordGetLength || !dnssd->TXTRecordGetBytesPtr || + !dnssd->TXTRecordDeallocate) { + if (error) *error = DNSSD_ERROR_PROCNOTFOUND; + FreeLibrary(dnssd->module); + free(dnssd); + return NULL; + } +#elif USE_LIBDL + dnssd->module = dlopen("libdns_sd.so", RTLD_LAZY); + if (!dnssd->module) { + if (error) *error = DNSSD_ERROR_LIBNOTFOUND; + free(dnssd); + return NULL; + } + dnssd->DNSServiceRegister = (DNSServiceRegister_t)dlsym(dnssd->module, "DNSServiceRegister"); + dnssd->DNSServiceRefDeallocate = (DNSServiceRefDeallocate_t)dlsym(dnssd->module, "DNSServiceRefDeallocate"); + dnssd->TXTRecordCreate = (TXTRecordCreate_t)dlsym(dnssd->module, "TXTRecordCreate"); + dnssd->TXTRecordSetValue = (TXTRecordSetValue_t)dlsym(dnssd->module, "TXTRecordSetValue"); + dnssd->TXTRecordGetLength = (TXTRecordGetLength_t)dlsym(dnssd->module, "TXTRecordGetLength"); + dnssd->TXTRecordGetBytesPtr = (TXTRecordGetBytesPtr_t)dlsym(dnssd->module, "TXTRecordGetBytesPtr"); + dnssd->TXTRecordDeallocate = (TXTRecordDeallocate_t)dlsym(dnssd->module, "TXTRecordDeallocate"); + + if (!dnssd->DNSServiceRegister || !dnssd->DNSServiceRefDeallocate || !dnssd->TXTRecordCreate || + !dnssd->TXTRecordSetValue || !dnssd->TXTRecordGetLength || !dnssd->TXTRecordGetBytesPtr || + !dnssd->TXTRecordDeallocate) { + if (error) *error = DNSSD_ERROR_PROCNOTFOUND; + dlclose(dnssd->module); + free(dnssd); + return NULL; + } +#else + dnssd->DNSServiceRegister = &DNSServiceRegister; + dnssd->DNSServiceRefDeallocate = &DNSServiceRefDeallocate; + dnssd->TXTRecordCreate = &TXTRecordCreate; + dnssd->TXTRecordSetValue = &TXTRecordSetValue; + dnssd->TXTRecordGetLength = &TXTRecordGetLength; + dnssd->TXTRecordGetBytesPtr = &TXTRecordGetBytesPtr; + dnssd->TXTRecordDeallocate = &TXTRecordDeallocate; +#endif + + dnssd->name_len = name_len; + dnssd->name = calloc(1, name_len); + if (!dnssd->name) { + free(dnssd); + if (error) *error = DNSSD_ERROR_OUTOFMEM; + return NULL; + } + memcpy(dnssd->name, name, name_len); + + dnssd->hw_addr_len = hw_addr_len; + dnssd->hw_addr = calloc(1, dnssd->hw_addr_len); + if (!dnssd->hw_addr) { + free(dnssd->name); + free(dnssd); + if (error) *error = DNSSD_ERROR_OUTOFMEM; + return NULL; + } + + memcpy(dnssd->hw_addr, hw_addr, hw_addr_len); + + return dnssd; +} + +void +dnssd_destroy(dnssd_t *dnssd) +{ + if (dnssd) { +#ifdef WIN32 + FreeLibrary(dnssd->module); +#elif USE_LIBDL + dlclose(dnssd->module); +#endif + free(dnssd); + } +} + +int +dnssd_register_raop(dnssd_t *dnssd, unsigned short port) +{ + char servname[MAX_SERVNAME]; + + assert(dnssd); + + dnssd->TXTRecordCreate(&dnssd->raop_record, 0, NULL); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "ch", strlen(RAOP_CH), RAOP_CH); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "cn", strlen(RAOP_CN), RAOP_CN); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "da", strlen(RAOP_DA), RAOP_DA); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "et", strlen(RAOP_ET), RAOP_ET); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "vv", strlen(RAOP_VV), RAOP_VV); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "ft", strlen(RAOP_FT), RAOP_FT); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "am", strlen(GLOBAL_MODEL), GLOBAL_MODEL); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "md", strlen(RAOP_MD), RAOP_MD); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "rhd", strlen(RAOP_RHD), RAOP_RHD); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "pw", strlen("false"), "false"); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "sr", strlen(RAOP_SR), RAOP_SR); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "ss", strlen(RAOP_SS), RAOP_SS); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "sv", strlen(RAOP_SV), RAOP_SV); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "tp", strlen(RAOP_TP), RAOP_TP); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "txtvers", strlen(RAOP_TXTVERS), RAOP_TXTVERS); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "sf", strlen(RAOP_SF), RAOP_SF); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "vs", strlen(RAOP_VS), RAOP_VS); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "vn", strlen(RAOP_VN), RAOP_VN); + dnssd->TXTRecordSetValue(&dnssd->raop_record, "pk", strlen(RAOP_PK), RAOP_PK); + + /* Convert hardware address to string */ + if (utils_hwaddr_raop(servname, sizeof(servname), dnssd->hw_addr, dnssd->hw_addr_len) < 0) { + /* FIXME: handle better */ + return -1; + } + + /* Check that we have bytes for 'hw@name' format */ + if (sizeof(servname) < strlen(servname) + 1 + dnssd->name_len + 1) { + /* FIXME: handle better */ + return -2; + } + + strncat(servname, "@", sizeof(servname)-strlen(servname)-1); + strncat(servname, dnssd->name, sizeof(servname)-strlen(servname)-1); + + /* Register the service */ + dnssd->DNSServiceRegister(&dnssd->raop_service, 0, 0, + servname, "_raop._tcp", + NULL, NULL, + htons(port), + dnssd->TXTRecordGetLength(&dnssd->raop_record), + dnssd->TXTRecordGetBytesPtr(&dnssd->raop_record), + NULL, NULL); + + + return 1; +} + +int +dnssd_register_airplay(dnssd_t *dnssd, unsigned short port) +{ + char device_id[3 * MAX_HWADDR_LEN]; + + assert(dnssd); + + /* Convert hardware address to string */ + if (utils_hwaddr_airplay(device_id, sizeof(device_id), dnssd->hw_addr, dnssd->hw_addr_len) < 0) { + /* FIXME: handle better */ + return -1; + } + + + dnssd->TXTRecordCreate(&dnssd->airplay_record, 0, NULL); + dnssd->TXTRecordSetValue(&dnssd->airplay_record, "deviceid", strlen(device_id), device_id); + dnssd->TXTRecordSetValue(&dnssd->airplay_record, "features", strlen(AIRPLAY_FEATURES), AIRPLAY_FEATURES); + dnssd->TXTRecordSetValue(&dnssd->airplay_record, "flags", strlen(AIRPLAY_FLAGS), AIRPLAY_FLAGS); + dnssd->TXTRecordSetValue(&dnssd->airplay_record, "model", strlen(GLOBAL_MODEL), GLOBAL_MODEL); + dnssd->TXTRecordSetValue(&dnssd->airplay_record, "pk", strlen(AIRPLAY_PK), AIRPLAY_PK); + dnssd->TXTRecordSetValue(&dnssd->airplay_record, "pi", strlen(AIRPLAY_PI), AIRPLAY_PI); + dnssd->TXTRecordSetValue(&dnssd->airplay_record, "srcvers", strlen(AIRPLAY_SRCVERS), AIRPLAY_SRCVERS); + dnssd->TXTRecordSetValue(&dnssd->airplay_record, "vv", strlen(AIRPLAY_VV), AIRPLAY_VV); + + /* Register the service */ + dnssd->DNSServiceRegister(&dnssd->airplay_service, 0, 0, + dnssd->name, "_airplay._tcp", + NULL, NULL, + htons(port), + dnssd->TXTRecordGetLength(&dnssd->airplay_record), + dnssd->TXTRecordGetBytesPtr(&dnssd->airplay_record), + NULL, NULL); + + return 1; +} + +const char * +dnssd_get_airplay_txt(dnssd_t *dnssd, int *length) +{ + *length = dnssd->TXTRecordGetLength(&dnssd->airplay_record); + return dnssd->TXTRecordGetBytesPtr(&dnssd->airplay_record); +} + +const char * +dnssd_get_name(dnssd_t *dnssd, int *length) +{ + *length = dnssd->name_len; + return dnssd->name; +} + +const char * +dnssd_get_hw_addr(dnssd_t *dnssd, int *length) +{ + *length = dnssd->hw_addr_len; + return dnssd->hw_addr; +} + +void +dnssd_unregister_raop(dnssd_t *dnssd) +{ + assert(dnssd); + + if (!dnssd->raop_service) { + return; + } + + /* Deallocate TXT record */ + dnssd->TXTRecordDeallocate(&dnssd->raop_record); + + dnssd->DNSServiceRefDeallocate(dnssd->raop_service); + dnssd->raop_service = NULL; + + if (dnssd->airplay_service == NULL) { + free(dnssd->name); + free(dnssd->hw_addr); + } +} + +void +dnssd_unregister_airplay(dnssd_t *dnssd) +{ + assert(dnssd); + + if (!dnssd->airplay_service) { + return; + } + + /* Deallocate TXT record */ + dnssd->TXTRecordDeallocate(&dnssd->airplay_record); + + dnssd->DNSServiceRefDeallocate(dnssd->airplay_service); + dnssd->airplay_service = NULL; + + if (dnssd->raop_service == NULL) { + free(dnssd->name); + free(dnssd->hw_addr); + } +} \ No newline at end of file diff --git a/lib/dnssd.h b/lib/dnssd.h new file mode 100644 index 0000000..9a82ee4 --- /dev/null +++ b/lib/dnssd.h @@ -0,0 +1,39 @@ +#ifndef DNSSD_H +#define DNSSD_H + +#if defined(WIN32) && defined(DLL_EXPORT) +# define DNSSD_API __declspec(dllexport) +#else +# define DNSSD_API +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define DNSSD_ERROR_NOERROR 0 +#define DNSSD_ERROR_HWADDRLEN 1 +#define DNSSD_ERROR_OUTOFMEM 2 +#define DNSSD_ERROR_LIBNOTFOUND 3 +#define DNSSD_ERROR_PROCNOTFOUND 4 + +typedef struct dnssd_s dnssd_t; + +DNSSD_API dnssd_t *dnssd_init(const char *name, int name_len, const char *hw_addr, int hw_addr_len, int *error); + +DNSSD_API int dnssd_register_raop(dnssd_t *dnssd, unsigned short port); +DNSSD_API int dnssd_register_airplay(dnssd_t *dnssd, unsigned short port); + +DNSSD_API void dnssd_unregister_raop(dnssd_t *dnssd); +DNSSD_API void dnssd_unregister_airplay(dnssd_t *dnssd); + +DNSSD_API const char *dnssd_get_airplay_txt(dnssd_t *dnssd, int *length); +DNSSD_API const char *dnssd_get_name(dnssd_t *dnssd, int *length); +DNSSD_API const char *dnssd_get_hw_addr(dnssd_t *dnssd, int *length); + +DNSSD_API void dnssd_destroy(dnssd_t *dnssd); + +#ifdef __cplusplus +} +#endif +#endif \ No newline at end of file diff --git a/lib/dnssdint.h b/lib/dnssdint.h new file mode 100644 index 0000000..f543193 --- /dev/null +++ b/lib/dnssdint.h @@ -0,0 +1,29 @@ +#ifndef DNSSDINT_H +#define DNSSDINT_H + +#define RAOP_TXTVERS "1" +#define RAOP_CH "2" /* Audio channels: 2 */ +#define RAOP_CN "0,1,2,3" /* Audio codec: PCM, ALAC, AAC, AAC ELD */ +#define RAOP_ET "0,3,5" /* Encryption type: None, FairPlay, FairPlay SAPv2.5 */ +#define RAOP_VV "2" +#define RAOP_FT "0x5A7FFFF7,0x1E" +#define RAOP_RHD "5.6.0.0" +#define RAOP_SF "0x4" +#define RAOP_SV "false" +#define RAOP_DA "true" +#define RAOP_SR "44100" /* Sample rate: 44100 */ +#define RAOP_SS "16" /* Sample size: 16 */ +#define RAOP_VS "220.68" +#define RAOP_TP "UDP" /* Transport protocol. Possible values: UDP or TCP or TCP,UDP */ +#define RAOP_MD "0,1,2" /* Metadata: text, artwork, progress */ +#define RAOP_VN "65537" +#define RAOP_PK "b07727d6f6cd6e08b58ede525ec3cdeaa252ad9f683feb212ef8a205246554e7" + +#define AIRPLAY_FEATURES "0x5A7FFFF7,0x1E" +#define AIRPLAY_SRCVERS "220.68" +#define AIRPLAY_FLAGS "0x4" +#define AIRPLAY_VV "2" +#define AIRPLAY_PK "b07727d6f6cd6e08b58ede525ec3cdeaa252ad9f683feb212ef8a205246554e7" +#define AIRPLAY_PI "2e388006-13ba-4041-9a67-25dd4a43d536" + +#endif \ No newline at end of file diff --git a/lib/ed25519/CMakeLists.txt b/lib/ed25519/CMakeLists.txt new file mode 100755 index 0000000..e2a8d23 --- /dev/null +++ b/lib/ed25519/CMakeLists.txt @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 3.4.1) +aux_source_directory(. ed25519_src) +set(DIR_SRCS ${ed25519_src}) +add_library( ed25519 + STATIC + ${DIR_SRCS}) \ No newline at end of file diff --git a/lib/ed25519/add_scalar.c b/lib/ed25519/add_scalar.c new file mode 100755 index 0000000..7528a7a --- /dev/null +++ b/lib/ed25519/add_scalar.c @@ -0,0 +1,69 @@ +#include "ed25519.h" +#include "ge.h" +#include "sc.h" +#include "sha512.h" + + +/* see http://crypto.stackexchange.com/a/6215/4697 */ +void ed25519_add_scalar(unsigned char *public_key, unsigned char *private_key, const unsigned char *scalar) { + const unsigned char SC_1[32] = {1}; /* scalar with value 1 */ + + unsigned char n[32]; + ge_p3 nB; + ge_p1p1 A_p1p1; + ge_p3 A; + ge_p3 public_key_unpacked; + ge_cached T; + + sha512_context hash; + unsigned char hashbuf[64]; + + int i; + + /* copy the scalar and clear highest bit */ + for (i = 0; i < 31; ++i) { + n[i] = scalar[i]; + } + n[31] = scalar[31] & 127; + + /* private key: a = n + t */ + if (private_key) { + sc_muladd(private_key, SC_1, n, private_key); + + // https://github.com/orlp/ed25519/issues/3 + sha512_init(&hash); + sha512_update(&hash, private_key + 32, 32); + sha512_update(&hash, scalar, 32); + sha512_final(&hash, hashbuf); + for (i = 0; i < 32; ++i) { + private_key[32 + i] = hashbuf[i]; + } + } + + /* public key: A = nB + T */ + if (public_key) { + /* if we know the private key we don't need a point addition, which is faster */ + /* using a "timing attack" you could find out wether or not we know the private + key, but this information seems rather useless - if this is important pass + public_key and private_key seperately in 2 function calls */ + if (private_key) { + ge_scalarmult_base(&A, private_key); + } else { + /* unpack public key into T */ + ge_frombytes_negate_vartime(&public_key_unpacked, public_key); + fe_neg(public_key_unpacked.X, public_key_unpacked.X); /* undo negate */ + fe_neg(public_key_unpacked.T, public_key_unpacked.T); /* undo negate */ + ge_p3_to_cached(&T, &public_key_unpacked); + + /* calculate n*B */ + ge_scalarmult_base(&nB, n); + + /* A = n*B + T */ + ge_add(&A_p1p1, &nB, &T); + ge_p1p1_to_p3(&A, &A_p1p1); + } + + /* pack public key */ + ge_p3_tobytes(public_key, &A); + } +} diff --git a/lib/ed25519/ed25519.h b/lib/ed25519/ed25519.h new file mode 100755 index 0000000..8924659 --- /dev/null +++ b/lib/ed25519/ed25519.h @@ -0,0 +1,38 @@ +#ifndef ED25519_H +#define ED25519_H + +#include + +#if defined(_WIN32) + #if defined(ED25519_BUILD_DLL) + #define ED25519_DECLSPEC __declspec(dllexport) + #elif defined(ED25519_DLL) + #define ED25519_DECLSPEC __declspec(dllimport) + #else + #define ED25519_DECLSPEC + #endif +#else + #define ED25519_DECLSPEC +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef ED25519_NO_SEED +int ED25519_DECLSPEC ed25519_create_seed(unsigned char *seed); +#endif + +void ED25519_DECLSPEC ed25519_create_keypair(unsigned char *public_key, unsigned char *private_key, const unsigned char *seed); +void ED25519_DECLSPEC ed25519_sign(unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key, const unsigned char *private_key); +int ED25519_DECLSPEC ed25519_verify(const unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key); +void ED25519_DECLSPEC ed25519_add_scalar(unsigned char *public_key, unsigned char *private_key, const unsigned char *scalar); +void ED25519_DECLSPEC ed25519_key_exchange(unsigned char *shared_secret, const unsigned char *public_key, const unsigned char *private_key); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/lib/ed25519/fe.c b/lib/ed25519/fe.c new file mode 100755 index 0000000..2105eb7 --- /dev/null +++ b/lib/ed25519/fe.c @@ -0,0 +1,1491 @@ +#include "fixedint.h" +#include "fe.h" + + +/* + helper functions +*/ +static uint64_t load_3(const unsigned char *in) { + uint64_t result; + + result = (uint64_t) in[0]; + result |= ((uint64_t) in[1]) << 8; + result |= ((uint64_t) in[2]) << 16; + + return result; +} + +static uint64_t load_4(const unsigned char *in) { + uint64_t result; + + result = (uint64_t) in[0]; + result |= ((uint64_t) in[1]) << 8; + result |= ((uint64_t) in[2]) << 16; + result |= ((uint64_t) in[3]) << 24; + + return result; +} + + + +/* + h = 0 +*/ + +void fe_0(fe h) { + h[0] = 0; + h[1] = 0; + h[2] = 0; + h[3] = 0; + h[4] = 0; + h[5] = 0; + h[6] = 0; + h[7] = 0; + h[8] = 0; + h[9] = 0; +} + + + +/* + h = 1 +*/ + +void fe_1(fe h) { + h[0] = 1; + h[1] = 0; + h[2] = 0; + h[3] = 0; + h[4] = 0; + h[5] = 0; + h[6] = 0; + h[7] = 0; + h[8] = 0; + h[9] = 0; +} + + + +/* + h = f + g + Can overlap h with f or g. + + Preconditions: + |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. + |g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. + + Postconditions: + |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. +*/ + +void fe_add(fe h, const fe f, const fe g) { + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int32_t g0 = g[0]; + int32_t g1 = g[1]; + int32_t g2 = g[2]; + int32_t g3 = g[3]; + int32_t g4 = g[4]; + int32_t g5 = g[5]; + int32_t g6 = g[6]; + int32_t g7 = g[7]; + int32_t g8 = g[8]; + int32_t g9 = g[9]; + int32_t h0 = f0 + g0; + int32_t h1 = f1 + g1; + int32_t h2 = f2 + g2; + int32_t h3 = f3 + g3; + int32_t h4 = f4 + g4; + int32_t h5 = f5 + g5; + int32_t h6 = f6 + g6; + int32_t h7 = f7 + g7; + int32_t h8 = f8 + g8; + int32_t h9 = f9 + g9; + + h[0] = h0; + h[1] = h1; + h[2] = h2; + h[3] = h3; + h[4] = h4; + h[5] = h5; + h[6] = h6; + h[7] = h7; + h[8] = h8; + h[9] = h9; +} + + + +/* + Replace (f,g) with (g,g) if b == 1; + replace (f,g) with (f,g) if b == 0. + + Preconditions: b in {0,1}. +*/ + +void fe_cmov(fe f, const fe g, unsigned int b) { + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int32_t g0 = g[0]; + int32_t g1 = g[1]; + int32_t g2 = g[2]; + int32_t g3 = g[3]; + int32_t g4 = g[4]; + int32_t g5 = g[5]; + int32_t g6 = g[6]; + int32_t g7 = g[7]; + int32_t g8 = g[8]; + int32_t g9 = g[9]; + int32_t x0 = f0 ^ g0; + int32_t x1 = f1 ^ g1; + int32_t x2 = f2 ^ g2; + int32_t x3 = f3 ^ g3; + int32_t x4 = f4 ^ g4; + int32_t x5 = f5 ^ g5; + int32_t x6 = f6 ^ g6; + int32_t x7 = f7 ^ g7; + int32_t x8 = f8 ^ g8; + int32_t x9 = f9 ^ g9; + + b = (unsigned int) (- (int) b); /* silence warning */ + x0 &= b; + x1 &= b; + x2 &= b; + x3 &= b; + x4 &= b; + x5 &= b; + x6 &= b; + x7 &= b; + x8 &= b; + x9 &= b; + + f[0] = f0 ^ x0; + f[1] = f1 ^ x1; + f[2] = f2 ^ x2; + f[3] = f3 ^ x3; + f[4] = f4 ^ x4; + f[5] = f5 ^ x5; + f[6] = f6 ^ x6; + f[7] = f7 ^ x7; + f[8] = f8 ^ x8; + f[9] = f9 ^ x9; +} + +/* + Replace (f,g) with (g,f) if b == 1; + replace (f,g) with (f,g) if b == 0. + + Preconditions: b in {0,1}. +*/ + +void fe_cswap(fe f,fe g,unsigned int b) { + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int32_t g0 = g[0]; + int32_t g1 = g[1]; + int32_t g2 = g[2]; + int32_t g3 = g[3]; + int32_t g4 = g[4]; + int32_t g5 = g[5]; + int32_t g6 = g[6]; + int32_t g7 = g[7]; + int32_t g8 = g[8]; + int32_t g9 = g[9]; + int32_t x0 = f0 ^ g0; + int32_t x1 = f1 ^ g1; + int32_t x2 = f2 ^ g2; + int32_t x3 = f3 ^ g3; + int32_t x4 = f4 ^ g4; + int32_t x5 = f5 ^ g5; + int32_t x6 = f6 ^ g6; + int32_t x7 = f7 ^ g7; + int32_t x8 = f8 ^ g8; + int32_t x9 = f9 ^ g9; + b = (unsigned int) (- (int) b); /* silence warning */ + x0 &= b; + x1 &= b; + x2 &= b; + x3 &= b; + x4 &= b; + x5 &= b; + x6 &= b; + x7 &= b; + x8 &= b; + x9 &= b; + f[0] = f0 ^ x0; + f[1] = f1 ^ x1; + f[2] = f2 ^ x2; + f[3] = f3 ^ x3; + f[4] = f4 ^ x4; + f[5] = f5 ^ x5; + f[6] = f6 ^ x6; + f[7] = f7 ^ x7; + f[8] = f8 ^ x8; + f[9] = f9 ^ x9; + g[0] = g0 ^ x0; + g[1] = g1 ^ x1; + g[2] = g2 ^ x2; + g[3] = g3 ^ x3; + g[4] = g4 ^ x4; + g[5] = g5 ^ x5; + g[6] = g6 ^ x6; + g[7] = g7 ^ x7; + g[8] = g8 ^ x8; + g[9] = g9 ^ x9; +} + + + +/* + h = f +*/ + +void fe_copy(fe h, const fe f) { + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + + h[0] = f0; + h[1] = f1; + h[2] = f2; + h[3] = f3; + h[4] = f4; + h[5] = f5; + h[6] = f6; + h[7] = f7; + h[8] = f8; + h[9] = f9; +} + + + +/* + Ignores top bit of h. +*/ + +void fe_frombytes(fe h, const unsigned char *s) { + int64_t h0 = load_4(s); + int64_t h1 = load_3(s + 4) << 6; + int64_t h2 = load_3(s + 7) << 5; + int64_t h3 = load_3(s + 10) << 3; + int64_t h4 = load_3(s + 13) << 2; + int64_t h5 = load_4(s + 16); + int64_t h6 = load_3(s + 20) << 7; + int64_t h7 = load_3(s + 23) << 5; + int64_t h8 = load_3(s + 26) << 4; + int64_t h9 = (load_3(s + 29) & 8388607) << 2; + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + + carry9 = (h9 + (int64_t) (1 << 24)) >> 25; + h0 += carry9 * 19; + h9 -= carry9 << 25; + carry1 = (h1 + (int64_t) (1 << 24)) >> 25; + h2 += carry1; + h1 -= carry1 << 25; + carry3 = (h3 + (int64_t) (1 << 24)) >> 25; + h4 += carry3; + h3 -= carry3 << 25; + carry5 = (h5 + (int64_t) (1 << 24)) >> 25; + h6 += carry5; + h5 -= carry5 << 25; + carry7 = (h7 + (int64_t) (1 << 24)) >> 25; + h8 += carry7; + h7 -= carry7 << 25; + carry0 = (h0 + (int64_t) (1 << 25)) >> 26; + h1 += carry0; + h0 -= carry0 << 26; + carry2 = (h2 + (int64_t) (1 << 25)) >> 26; + h3 += carry2; + h2 -= carry2 << 26; + carry4 = (h4 + (int64_t) (1 << 25)) >> 26; + h5 += carry4; + h4 -= carry4 << 26; + carry6 = (h6 + (int64_t) (1 << 25)) >> 26; + h7 += carry6; + h6 -= carry6 << 26; + carry8 = (h8 + (int64_t) (1 << 25)) >> 26; + h9 += carry8; + h8 -= carry8 << 26; + + h[0] = (int32_t) h0; + h[1] = (int32_t) h1; + h[2] = (int32_t) h2; + h[3] = (int32_t) h3; + h[4] = (int32_t) h4; + h[5] = (int32_t) h5; + h[6] = (int32_t) h6; + h[7] = (int32_t) h7; + h[8] = (int32_t) h8; + h[9] = (int32_t) h9; +} + + + +void fe_invert(fe out, const fe z) { + fe t0; + fe t1; + fe t2; + fe t3; + int i; + + fe_sq(t0, z); + + for (i = 1; i < 1; ++i) { + fe_sq(t0, t0); + } + + fe_sq(t1, t0); + + for (i = 1; i < 2; ++i) { + fe_sq(t1, t1); + } + + fe_mul(t1, z, t1); + fe_mul(t0, t0, t1); + fe_sq(t2, t0); + + for (i = 1; i < 1; ++i) { + fe_sq(t2, t2); + } + + fe_mul(t1, t1, t2); + fe_sq(t2, t1); + + for (i = 1; i < 5; ++i) { + fe_sq(t2, t2); + } + + fe_mul(t1, t2, t1); + fe_sq(t2, t1); + + for (i = 1; i < 10; ++i) { + fe_sq(t2, t2); + } + + fe_mul(t2, t2, t1); + fe_sq(t3, t2); + + for (i = 1; i < 20; ++i) { + fe_sq(t3, t3); + } + + fe_mul(t2, t3, t2); + fe_sq(t2, t2); + + for (i = 1; i < 10; ++i) { + fe_sq(t2, t2); + } + + fe_mul(t1, t2, t1); + fe_sq(t2, t1); + + for (i = 1; i < 50; ++i) { + fe_sq(t2, t2); + } + + fe_mul(t2, t2, t1); + fe_sq(t3, t2); + + for (i = 1; i < 100; ++i) { + fe_sq(t3, t3); + } + + fe_mul(t2, t3, t2); + fe_sq(t2, t2); + + for (i = 1; i < 50; ++i) { + fe_sq(t2, t2); + } + + fe_mul(t1, t2, t1); + fe_sq(t1, t1); + + for (i = 1; i < 5; ++i) { + fe_sq(t1, t1); + } + + fe_mul(out, t1, t0); +} + + + +/* + return 1 if f is in {1,3,5,...,q-2} + return 0 if f is in {0,2,4,...,q-1} + + Preconditions: + |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. +*/ + +int fe_isnegative(const fe f) { + unsigned char s[32]; + + fe_tobytes(s, f); + + return s[0] & 1; +} + + + +/* + return 1 if f == 0 + return 0 if f != 0 + + Preconditions: + |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. +*/ + +int fe_isnonzero(const fe f) { + unsigned char s[32]; + unsigned char r; + + fe_tobytes(s, f); + + r = s[0]; + #define F(i) r |= s[i] + F(1); + F(2); + F(3); + F(4); + F(5); + F(6); + F(7); + F(8); + F(9); + F(10); + F(11); + F(12); + F(13); + F(14); + F(15); + F(16); + F(17); + F(18); + F(19); + F(20); + F(21); + F(22); + F(23); + F(24); + F(25); + F(26); + F(27); + F(28); + F(29); + F(30); + F(31); + #undef F + + return r != 0; +} + + + +/* + h = f * g + Can overlap h with f or g. + + Preconditions: + |f| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc. + |g| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc. + + Postconditions: + |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc. + */ + + /* + Notes on implementation strategy: + + Using schoolbook multiplication. + Karatsuba would save a little in some cost models. + + Most multiplications by 2 and 19 are 32-bit precomputations; + cheaper than 64-bit postcomputations. + + There is one remaining multiplication by 19 in the carry chain; + one *19 precomputation can be merged into this, + but the resulting data flow is considerably less clean. + + There are 12 carries below. + 10 of them are 2-way parallelizable and vectorizable. + Can get away with 11 carries, but then data flow is much deeper. + + With tighter constraints on inputs can squeeze carries into int32. +*/ + +void fe_mul(fe h, const fe f, const fe g) { + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int32_t g0 = g[0]; + int32_t g1 = g[1]; + int32_t g2 = g[2]; + int32_t g3 = g[3]; + int32_t g4 = g[4]; + int32_t g5 = g[5]; + int32_t g6 = g[6]; + int32_t g7 = g[7]; + int32_t g8 = g[8]; + int32_t g9 = g[9]; + int32_t g1_19 = 19 * g1; /* 1.959375*2^29 */ + int32_t g2_19 = 19 * g2; /* 1.959375*2^30; still ok */ + int32_t g3_19 = 19 * g3; + int32_t g4_19 = 19 * g4; + int32_t g5_19 = 19 * g5; + int32_t g6_19 = 19 * g6; + int32_t g7_19 = 19 * g7; + int32_t g8_19 = 19 * g8; + int32_t g9_19 = 19 * g9; + int32_t f1_2 = 2 * f1; + int32_t f3_2 = 2 * f3; + int32_t f5_2 = 2 * f5; + int32_t f7_2 = 2 * f7; + int32_t f9_2 = 2 * f9; + int64_t f0g0 = f0 * (int64_t) g0; + int64_t f0g1 = f0 * (int64_t) g1; + int64_t f0g2 = f0 * (int64_t) g2; + int64_t f0g3 = f0 * (int64_t) g3; + int64_t f0g4 = f0 * (int64_t) g4; + int64_t f0g5 = f0 * (int64_t) g5; + int64_t f0g6 = f0 * (int64_t) g6; + int64_t f0g7 = f0 * (int64_t) g7; + int64_t f0g8 = f0 * (int64_t) g8; + int64_t f0g9 = f0 * (int64_t) g9; + int64_t f1g0 = f1 * (int64_t) g0; + int64_t f1g1_2 = f1_2 * (int64_t) g1; + int64_t f1g2 = f1 * (int64_t) g2; + int64_t f1g3_2 = f1_2 * (int64_t) g3; + int64_t f1g4 = f1 * (int64_t) g4; + int64_t f1g5_2 = f1_2 * (int64_t) g5; + int64_t f1g6 = f1 * (int64_t) g6; + int64_t f1g7_2 = f1_2 * (int64_t) g7; + int64_t f1g8 = f1 * (int64_t) g8; + int64_t f1g9_38 = f1_2 * (int64_t) g9_19; + int64_t f2g0 = f2 * (int64_t) g0; + int64_t f2g1 = f2 * (int64_t) g1; + int64_t f2g2 = f2 * (int64_t) g2; + int64_t f2g3 = f2 * (int64_t) g3; + int64_t f2g4 = f2 * (int64_t) g4; + int64_t f2g5 = f2 * (int64_t) g5; + int64_t f2g6 = f2 * (int64_t) g6; + int64_t f2g7 = f2 * (int64_t) g7; + int64_t f2g8_19 = f2 * (int64_t) g8_19; + int64_t f2g9_19 = f2 * (int64_t) g9_19; + int64_t f3g0 = f3 * (int64_t) g0; + int64_t f3g1_2 = f3_2 * (int64_t) g1; + int64_t f3g2 = f3 * (int64_t) g2; + int64_t f3g3_2 = f3_2 * (int64_t) g3; + int64_t f3g4 = f3 * (int64_t) g4; + int64_t f3g5_2 = f3_2 * (int64_t) g5; + int64_t f3g6 = f3 * (int64_t) g6; + int64_t f3g7_38 = f3_2 * (int64_t) g7_19; + int64_t f3g8_19 = f3 * (int64_t) g8_19; + int64_t f3g9_38 = f3_2 * (int64_t) g9_19; + int64_t f4g0 = f4 * (int64_t) g0; + int64_t f4g1 = f4 * (int64_t) g1; + int64_t f4g2 = f4 * (int64_t) g2; + int64_t f4g3 = f4 * (int64_t) g3; + int64_t f4g4 = f4 * (int64_t) g4; + int64_t f4g5 = f4 * (int64_t) g5; + int64_t f4g6_19 = f4 * (int64_t) g6_19; + int64_t f4g7_19 = f4 * (int64_t) g7_19; + int64_t f4g8_19 = f4 * (int64_t) g8_19; + int64_t f4g9_19 = f4 * (int64_t) g9_19; + int64_t f5g0 = f5 * (int64_t) g0; + int64_t f5g1_2 = f5_2 * (int64_t) g1; + int64_t f5g2 = f5 * (int64_t) g2; + int64_t f5g3_2 = f5_2 * (int64_t) g3; + int64_t f5g4 = f5 * (int64_t) g4; + int64_t f5g5_38 = f5_2 * (int64_t) g5_19; + int64_t f5g6_19 = f5 * (int64_t) g6_19; + int64_t f5g7_38 = f5_2 * (int64_t) g7_19; + int64_t f5g8_19 = f5 * (int64_t) g8_19; + int64_t f5g9_38 = f5_2 * (int64_t) g9_19; + int64_t f6g0 = f6 * (int64_t) g0; + int64_t f6g1 = f6 * (int64_t) g1; + int64_t f6g2 = f6 * (int64_t) g2; + int64_t f6g3 = f6 * (int64_t) g3; + int64_t f6g4_19 = f6 * (int64_t) g4_19; + int64_t f6g5_19 = f6 * (int64_t) g5_19; + int64_t f6g6_19 = f6 * (int64_t) g6_19; + int64_t f6g7_19 = f6 * (int64_t) g7_19; + int64_t f6g8_19 = f6 * (int64_t) g8_19; + int64_t f6g9_19 = f6 * (int64_t) g9_19; + int64_t f7g0 = f7 * (int64_t) g0; + int64_t f7g1_2 = f7_2 * (int64_t) g1; + int64_t f7g2 = f7 * (int64_t) g2; + int64_t f7g3_38 = f7_2 * (int64_t) g3_19; + int64_t f7g4_19 = f7 * (int64_t) g4_19; + int64_t f7g5_38 = f7_2 * (int64_t) g5_19; + int64_t f7g6_19 = f7 * (int64_t) g6_19; + int64_t f7g7_38 = f7_2 * (int64_t) g7_19; + int64_t f7g8_19 = f7 * (int64_t) g8_19; + int64_t f7g9_38 = f7_2 * (int64_t) g9_19; + int64_t f8g0 = f8 * (int64_t) g0; + int64_t f8g1 = f8 * (int64_t) g1; + int64_t f8g2_19 = f8 * (int64_t) g2_19; + int64_t f8g3_19 = f8 * (int64_t) g3_19; + int64_t f8g4_19 = f8 * (int64_t) g4_19; + int64_t f8g5_19 = f8 * (int64_t) g5_19; + int64_t f8g6_19 = f8 * (int64_t) g6_19; + int64_t f8g7_19 = f8 * (int64_t) g7_19; + int64_t f8g8_19 = f8 * (int64_t) g8_19; + int64_t f8g9_19 = f8 * (int64_t) g9_19; + int64_t f9g0 = f9 * (int64_t) g0; + int64_t f9g1_38 = f9_2 * (int64_t) g1_19; + int64_t f9g2_19 = f9 * (int64_t) g2_19; + int64_t f9g3_38 = f9_2 * (int64_t) g3_19; + int64_t f9g4_19 = f9 * (int64_t) g4_19; + int64_t f9g5_38 = f9_2 * (int64_t) g5_19; + int64_t f9g6_19 = f9 * (int64_t) g6_19; + int64_t f9g7_38 = f9_2 * (int64_t) g7_19; + int64_t f9g8_19 = f9 * (int64_t) g8_19; + int64_t f9g9_38 = f9_2 * (int64_t) g9_19; + int64_t h0 = f0g0 + f1g9_38 + f2g8_19 + f3g7_38 + f4g6_19 + f5g5_38 + f6g4_19 + f7g3_38 + f8g2_19 + f9g1_38; + int64_t h1 = f0g1 + f1g0 + f2g9_19 + f3g8_19 + f4g7_19 + f5g6_19 + f6g5_19 + f7g4_19 + f8g3_19 + f9g2_19; + int64_t h2 = f0g2 + f1g1_2 + f2g0 + f3g9_38 + f4g8_19 + f5g7_38 + f6g6_19 + f7g5_38 + f8g4_19 + f9g3_38; + int64_t h3 = f0g3 + f1g2 + f2g1 + f3g0 + f4g9_19 + f5g8_19 + f6g7_19 + f7g6_19 + f8g5_19 + f9g4_19; + int64_t h4 = f0g4 + f1g3_2 + f2g2 + f3g1_2 + f4g0 + f5g9_38 + f6g8_19 + f7g7_38 + f8g6_19 + f9g5_38; + int64_t h5 = f0g5 + f1g4 + f2g3 + f3g2 + f4g1 + f5g0 + f6g9_19 + f7g8_19 + f8g7_19 + f9g6_19; + int64_t h6 = f0g6 + f1g5_2 + f2g4 + f3g3_2 + f4g2 + f5g1_2 + f6g0 + f7g9_38 + f8g8_19 + f9g7_38; + int64_t h7 = f0g7 + f1g6 + f2g5 + f3g4 + f4g3 + f5g2 + f6g1 + f7g0 + f8g9_19 + f9g8_19; + int64_t h8 = f0g8 + f1g7_2 + f2g6 + f3g5_2 + f4g4 + f5g3_2 + f6g2 + f7g1_2 + f8g0 + f9g9_38; + int64_t h9 = f0g9 + f1g8 + f2g7 + f3g6 + f4g5 + f5g4 + f6g3 + f7g2 + f8g1 + f9g0 ; + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + + carry0 = (h0 + (int64_t) (1 << 25)) >> 26; + h1 += carry0; + h0 -= carry0 << 26; + carry4 = (h4 + (int64_t) (1 << 25)) >> 26; + h5 += carry4; + h4 -= carry4 << 26; + + carry1 = (h1 + (int64_t) (1 << 24)) >> 25; + h2 += carry1; + h1 -= carry1 << 25; + carry5 = (h5 + (int64_t) (1 << 24)) >> 25; + h6 += carry5; + h5 -= carry5 << 25; + + carry2 = (h2 + (int64_t) (1 << 25)) >> 26; + h3 += carry2; + h2 -= carry2 << 26; + carry6 = (h6 + (int64_t) (1 << 25)) >> 26; + h7 += carry6; + h6 -= carry6 << 26; + + carry3 = (h3 + (int64_t) (1 << 24)) >> 25; + h4 += carry3; + h3 -= carry3 << 25; + carry7 = (h7 + (int64_t) (1 << 24)) >> 25; + h8 += carry7; + h7 -= carry7 << 25; + + carry4 = (h4 + (int64_t) (1 << 25)) >> 26; + h5 += carry4; + h4 -= carry4 << 26; + carry8 = (h8 + (int64_t) (1 << 25)) >> 26; + h9 += carry8; + h8 -= carry8 << 26; + + carry9 = (h9 + (int64_t) (1 << 24)) >> 25; + h0 += carry9 * 19; + h9 -= carry9 << 25; + + carry0 = (h0 + (int64_t) (1 << 25)) >> 26; + h1 += carry0; + h0 -= carry0 << 26; + + h[0] = (int32_t) h0; + h[1] = (int32_t) h1; + h[2] = (int32_t) h2; + h[3] = (int32_t) h3; + h[4] = (int32_t) h4; + h[5] = (int32_t) h5; + h[6] = (int32_t) h6; + h[7] = (int32_t) h7; + h[8] = (int32_t) h8; + h[9] = (int32_t) h9; +} + + +/* +h = f * 121666 +Can overlap h with f. + +Preconditions: + |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. + +Postconditions: + |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. +*/ + +void fe_mul121666(fe h, fe f) { + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int64_t h0 = f0 * (int64_t) 121666; + int64_t h1 = f1 * (int64_t) 121666; + int64_t h2 = f2 * (int64_t) 121666; + int64_t h3 = f3 * (int64_t) 121666; + int64_t h4 = f4 * (int64_t) 121666; + int64_t h5 = f5 * (int64_t) 121666; + int64_t h6 = f6 * (int64_t) 121666; + int64_t h7 = f7 * (int64_t) 121666; + int64_t h8 = f8 * (int64_t) 121666; + int64_t h9 = f9 * (int64_t) 121666; + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + + carry9 = (h9 + (int64_t) (1<<24)) >> 25; h0 += carry9 * 19; h9 -= carry9 << 25; + carry1 = (h1 + (int64_t) (1<<24)) >> 25; h2 += carry1; h1 -= carry1 << 25; + carry3 = (h3 + (int64_t) (1<<24)) >> 25; h4 += carry3; h3 -= carry3 << 25; + carry5 = (h5 + (int64_t) (1<<24)) >> 25; h6 += carry5; h5 -= carry5 << 25; + carry7 = (h7 + (int64_t) (1<<24)) >> 25; h8 += carry7; h7 -= carry7 << 25; + + carry0 = (h0 + (int64_t) (1<<25)) >> 26; h1 += carry0; h0 -= carry0 << 26; + carry2 = (h2 + (int64_t) (1<<25)) >> 26; h3 += carry2; h2 -= carry2 << 26; + carry4 = (h4 + (int64_t) (1<<25)) >> 26; h5 += carry4; h4 -= carry4 << 26; + carry6 = (h6 + (int64_t) (1<<25)) >> 26; h7 += carry6; h6 -= carry6 << 26; + carry8 = (h8 + (int64_t) (1<<25)) >> 26; h9 += carry8; h8 -= carry8 << 26; + + h[0] = (int32_t) h0; + h[1] = (int32_t) h1; + h[2] = (int32_t) h2; + h[3] = (int32_t) h3; + h[4] = (int32_t) h4; + h[5] = (int32_t) h5; + h[6] = (int32_t) h6; + h[7] = (int32_t) h7; + h[8] = (int32_t) h8; + h[9] = (int32_t) h9; +} + + +/* +h = -f + +Preconditions: + |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. + +Postconditions: + |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. +*/ + +void fe_neg(fe h, const fe f) { + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int32_t h0 = -f0; + int32_t h1 = -f1; + int32_t h2 = -f2; + int32_t h3 = -f3; + int32_t h4 = -f4; + int32_t h5 = -f5; + int32_t h6 = -f6; + int32_t h7 = -f7; + int32_t h8 = -f8; + int32_t h9 = -f9; + + h[0] = h0; + h[1] = h1; + h[2] = h2; + h[3] = h3; + h[4] = h4; + h[5] = h5; + h[6] = h6; + h[7] = h7; + h[8] = h8; + h[9] = h9; +} + + +void fe_pow22523(fe out, const fe z) { + fe t0; + fe t1; + fe t2; + int i; + fe_sq(t0, z); + + for (i = 1; i < 1; ++i) { + fe_sq(t0, t0); + } + + fe_sq(t1, t0); + + for (i = 1; i < 2; ++i) { + fe_sq(t1, t1); + } + + fe_mul(t1, z, t1); + fe_mul(t0, t0, t1); + fe_sq(t0, t0); + + for (i = 1; i < 1; ++i) { + fe_sq(t0, t0); + } + + fe_mul(t0, t1, t0); + fe_sq(t1, t0); + + for (i = 1; i < 5; ++i) { + fe_sq(t1, t1); + } + + fe_mul(t0, t1, t0); + fe_sq(t1, t0); + + for (i = 1; i < 10; ++i) { + fe_sq(t1, t1); + } + + fe_mul(t1, t1, t0); + fe_sq(t2, t1); + + for (i = 1; i < 20; ++i) { + fe_sq(t2, t2); + } + + fe_mul(t1, t2, t1); + fe_sq(t1, t1); + + for (i = 1; i < 10; ++i) { + fe_sq(t1, t1); + } + + fe_mul(t0, t1, t0); + fe_sq(t1, t0); + + for (i = 1; i < 50; ++i) { + fe_sq(t1, t1); + } + + fe_mul(t1, t1, t0); + fe_sq(t2, t1); + + for (i = 1; i < 100; ++i) { + fe_sq(t2, t2); + } + + fe_mul(t1, t2, t1); + fe_sq(t1, t1); + + for (i = 1; i < 50; ++i) { + fe_sq(t1, t1); + } + + fe_mul(t0, t1, t0); + fe_sq(t0, t0); + + for (i = 1; i < 2; ++i) { + fe_sq(t0, t0); + } + + fe_mul(out, t0, z); + return; +} + + +/* +h = f * f +Can overlap h with f. + +Preconditions: + |f| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc. + +Postconditions: + |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc. +*/ + +/* +See fe_mul.c for discussion of implementation strategy. +*/ + +void fe_sq(fe h, const fe f) { + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int32_t f0_2 = 2 * f0; + int32_t f1_2 = 2 * f1; + int32_t f2_2 = 2 * f2; + int32_t f3_2 = 2 * f3; + int32_t f4_2 = 2 * f4; + int32_t f5_2 = 2 * f5; + int32_t f6_2 = 2 * f6; + int32_t f7_2 = 2 * f7; + int32_t f5_38 = 38 * f5; /* 1.959375*2^30 */ + int32_t f6_19 = 19 * f6; /* 1.959375*2^30 */ + int32_t f7_38 = 38 * f7; /* 1.959375*2^30 */ + int32_t f8_19 = 19 * f8; /* 1.959375*2^30 */ + int32_t f9_38 = 38 * f9; /* 1.959375*2^30 */ + int64_t f0f0 = f0 * (int64_t) f0; + int64_t f0f1_2 = f0_2 * (int64_t) f1; + int64_t f0f2_2 = f0_2 * (int64_t) f2; + int64_t f0f3_2 = f0_2 * (int64_t) f3; + int64_t f0f4_2 = f0_2 * (int64_t) f4; + int64_t f0f5_2 = f0_2 * (int64_t) f5; + int64_t f0f6_2 = f0_2 * (int64_t) f6; + int64_t f0f7_2 = f0_2 * (int64_t) f7; + int64_t f0f8_2 = f0_2 * (int64_t) f8; + int64_t f0f9_2 = f0_2 * (int64_t) f9; + int64_t f1f1_2 = f1_2 * (int64_t) f1; + int64_t f1f2_2 = f1_2 * (int64_t) f2; + int64_t f1f3_4 = f1_2 * (int64_t) f3_2; + int64_t f1f4_2 = f1_2 * (int64_t) f4; + int64_t f1f5_4 = f1_2 * (int64_t) f5_2; + int64_t f1f6_2 = f1_2 * (int64_t) f6; + int64_t f1f7_4 = f1_2 * (int64_t) f7_2; + int64_t f1f8_2 = f1_2 * (int64_t) f8; + int64_t f1f9_76 = f1_2 * (int64_t) f9_38; + int64_t f2f2 = f2 * (int64_t) f2; + int64_t f2f3_2 = f2_2 * (int64_t) f3; + int64_t f2f4_2 = f2_2 * (int64_t) f4; + int64_t f2f5_2 = f2_2 * (int64_t) f5; + int64_t f2f6_2 = f2_2 * (int64_t) f6; + int64_t f2f7_2 = f2_2 * (int64_t) f7; + int64_t f2f8_38 = f2_2 * (int64_t) f8_19; + int64_t f2f9_38 = f2 * (int64_t) f9_38; + int64_t f3f3_2 = f3_2 * (int64_t) f3; + int64_t f3f4_2 = f3_2 * (int64_t) f4; + int64_t f3f5_4 = f3_2 * (int64_t) f5_2; + int64_t f3f6_2 = f3_2 * (int64_t) f6; + int64_t f3f7_76 = f3_2 * (int64_t) f7_38; + int64_t f3f8_38 = f3_2 * (int64_t) f8_19; + int64_t f3f9_76 = f3_2 * (int64_t) f9_38; + int64_t f4f4 = f4 * (int64_t) f4; + int64_t f4f5_2 = f4_2 * (int64_t) f5; + int64_t f4f6_38 = f4_2 * (int64_t) f6_19; + int64_t f4f7_38 = f4 * (int64_t) f7_38; + int64_t f4f8_38 = f4_2 * (int64_t) f8_19; + int64_t f4f9_38 = f4 * (int64_t) f9_38; + int64_t f5f5_38 = f5 * (int64_t) f5_38; + int64_t f5f6_38 = f5_2 * (int64_t) f6_19; + int64_t f5f7_76 = f5_2 * (int64_t) f7_38; + int64_t f5f8_38 = f5_2 * (int64_t) f8_19; + int64_t f5f9_76 = f5_2 * (int64_t) f9_38; + int64_t f6f6_19 = f6 * (int64_t) f6_19; + int64_t f6f7_38 = f6 * (int64_t) f7_38; + int64_t f6f8_38 = f6_2 * (int64_t) f8_19; + int64_t f6f9_38 = f6 * (int64_t) f9_38; + int64_t f7f7_38 = f7 * (int64_t) f7_38; + int64_t f7f8_38 = f7_2 * (int64_t) f8_19; + int64_t f7f9_76 = f7_2 * (int64_t) f9_38; + int64_t f8f8_19 = f8 * (int64_t) f8_19; + int64_t f8f9_38 = f8 * (int64_t) f9_38; + int64_t f9f9_38 = f9 * (int64_t) f9_38; + int64_t h0 = f0f0 + f1f9_76 + f2f8_38 + f3f7_76 + f4f6_38 + f5f5_38; + int64_t h1 = f0f1_2 + f2f9_38 + f3f8_38 + f4f7_38 + f5f6_38; + int64_t h2 = f0f2_2 + f1f1_2 + f3f9_76 + f4f8_38 + f5f7_76 + f6f6_19; + int64_t h3 = f0f3_2 + f1f2_2 + f4f9_38 + f5f8_38 + f6f7_38; + int64_t h4 = f0f4_2 + f1f3_4 + f2f2 + f5f9_76 + f6f8_38 + f7f7_38; + int64_t h5 = f0f5_2 + f1f4_2 + f2f3_2 + f6f9_38 + f7f8_38; + int64_t h6 = f0f6_2 + f1f5_4 + f2f4_2 + f3f3_2 + f7f9_76 + f8f8_19; + int64_t h7 = f0f7_2 + f1f6_2 + f2f5_2 + f3f4_2 + f8f9_38; + int64_t h8 = f0f8_2 + f1f7_4 + f2f6_2 + f3f5_4 + f4f4 + f9f9_38; + int64_t h9 = f0f9_2 + f1f8_2 + f2f7_2 + f3f6_2 + f4f5_2; + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + carry0 = (h0 + (int64_t) (1 << 25)) >> 26; + h1 += carry0; + h0 -= carry0 << 26; + carry4 = (h4 + (int64_t) (1 << 25)) >> 26; + h5 += carry4; + h4 -= carry4 << 26; + carry1 = (h1 + (int64_t) (1 << 24)) >> 25; + h2 += carry1; + h1 -= carry1 << 25; + carry5 = (h5 + (int64_t) (1 << 24)) >> 25; + h6 += carry5; + h5 -= carry5 << 25; + carry2 = (h2 + (int64_t) (1 << 25)) >> 26; + h3 += carry2; + h2 -= carry2 << 26; + carry6 = (h6 + (int64_t) (1 << 25)) >> 26; + h7 += carry6; + h6 -= carry6 << 26; + carry3 = (h3 + (int64_t) (1 << 24)) >> 25; + h4 += carry3; + h3 -= carry3 << 25; + carry7 = (h7 + (int64_t) (1 << 24)) >> 25; + h8 += carry7; + h7 -= carry7 << 25; + carry4 = (h4 + (int64_t) (1 << 25)) >> 26; + h5 += carry4; + h4 -= carry4 << 26; + carry8 = (h8 + (int64_t) (1 << 25)) >> 26; + h9 += carry8; + h8 -= carry8 << 26; + carry9 = (h9 + (int64_t) (1 << 24)) >> 25; + h0 += carry9 * 19; + h9 -= carry9 << 25; + carry0 = (h0 + (int64_t) (1 << 25)) >> 26; + h1 += carry0; + h0 -= carry0 << 26; + h[0] = (int32_t) h0; + h[1] = (int32_t) h1; + h[2] = (int32_t) h2; + h[3] = (int32_t) h3; + h[4] = (int32_t) h4; + h[5] = (int32_t) h5; + h[6] = (int32_t) h6; + h[7] = (int32_t) h7; + h[8] = (int32_t) h8; + h[9] = (int32_t) h9; +} + + +/* +h = 2 * f * f +Can overlap h with f. + +Preconditions: + |f| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc. + +Postconditions: + |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc. +*/ + +/* +See fe_mul.c for discussion of implementation strategy. +*/ + +void fe_sq2(fe h, const fe f) { + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int32_t f0_2 = 2 * f0; + int32_t f1_2 = 2 * f1; + int32_t f2_2 = 2 * f2; + int32_t f3_2 = 2 * f3; + int32_t f4_2 = 2 * f4; + int32_t f5_2 = 2 * f5; + int32_t f6_2 = 2 * f6; + int32_t f7_2 = 2 * f7; + int32_t f5_38 = 38 * f5; /* 1.959375*2^30 */ + int32_t f6_19 = 19 * f6; /* 1.959375*2^30 */ + int32_t f7_38 = 38 * f7; /* 1.959375*2^30 */ + int32_t f8_19 = 19 * f8; /* 1.959375*2^30 */ + int32_t f9_38 = 38 * f9; /* 1.959375*2^30 */ + int64_t f0f0 = f0 * (int64_t) f0; + int64_t f0f1_2 = f0_2 * (int64_t) f1; + int64_t f0f2_2 = f0_2 * (int64_t) f2; + int64_t f0f3_2 = f0_2 * (int64_t) f3; + int64_t f0f4_2 = f0_2 * (int64_t) f4; + int64_t f0f5_2 = f0_2 * (int64_t) f5; + int64_t f0f6_2 = f0_2 * (int64_t) f6; + int64_t f0f7_2 = f0_2 * (int64_t) f7; + int64_t f0f8_2 = f0_2 * (int64_t) f8; + int64_t f0f9_2 = f0_2 * (int64_t) f9; + int64_t f1f1_2 = f1_2 * (int64_t) f1; + int64_t f1f2_2 = f1_2 * (int64_t) f2; + int64_t f1f3_4 = f1_2 * (int64_t) f3_2; + int64_t f1f4_2 = f1_2 * (int64_t) f4; + int64_t f1f5_4 = f1_2 * (int64_t) f5_2; + int64_t f1f6_2 = f1_2 * (int64_t) f6; + int64_t f1f7_4 = f1_2 * (int64_t) f7_2; + int64_t f1f8_2 = f1_2 * (int64_t) f8; + int64_t f1f9_76 = f1_2 * (int64_t) f9_38; + int64_t f2f2 = f2 * (int64_t) f2; + int64_t f2f3_2 = f2_2 * (int64_t) f3; + int64_t f2f4_2 = f2_2 * (int64_t) f4; + int64_t f2f5_2 = f2_2 * (int64_t) f5; + int64_t f2f6_2 = f2_2 * (int64_t) f6; + int64_t f2f7_2 = f2_2 * (int64_t) f7; + int64_t f2f8_38 = f2_2 * (int64_t) f8_19; + int64_t f2f9_38 = f2 * (int64_t) f9_38; + int64_t f3f3_2 = f3_2 * (int64_t) f3; + int64_t f3f4_2 = f3_2 * (int64_t) f4; + int64_t f3f5_4 = f3_2 * (int64_t) f5_2; + int64_t f3f6_2 = f3_2 * (int64_t) f6; + int64_t f3f7_76 = f3_2 * (int64_t) f7_38; + int64_t f3f8_38 = f3_2 * (int64_t) f8_19; + int64_t f3f9_76 = f3_2 * (int64_t) f9_38; + int64_t f4f4 = f4 * (int64_t) f4; + int64_t f4f5_2 = f4_2 * (int64_t) f5; + int64_t f4f6_38 = f4_2 * (int64_t) f6_19; + int64_t f4f7_38 = f4 * (int64_t) f7_38; + int64_t f4f8_38 = f4_2 * (int64_t) f8_19; + int64_t f4f9_38 = f4 * (int64_t) f9_38; + int64_t f5f5_38 = f5 * (int64_t) f5_38; + int64_t f5f6_38 = f5_2 * (int64_t) f6_19; + int64_t f5f7_76 = f5_2 * (int64_t) f7_38; + int64_t f5f8_38 = f5_2 * (int64_t) f8_19; + int64_t f5f9_76 = f5_2 * (int64_t) f9_38; + int64_t f6f6_19 = f6 * (int64_t) f6_19; + int64_t f6f7_38 = f6 * (int64_t) f7_38; + int64_t f6f8_38 = f6_2 * (int64_t) f8_19; + int64_t f6f9_38 = f6 * (int64_t) f9_38; + int64_t f7f7_38 = f7 * (int64_t) f7_38; + int64_t f7f8_38 = f7_2 * (int64_t) f8_19; + int64_t f7f9_76 = f7_2 * (int64_t) f9_38; + int64_t f8f8_19 = f8 * (int64_t) f8_19; + int64_t f8f9_38 = f8 * (int64_t) f9_38; + int64_t f9f9_38 = f9 * (int64_t) f9_38; + int64_t h0 = f0f0 + f1f9_76 + f2f8_38 + f3f7_76 + f4f6_38 + f5f5_38; + int64_t h1 = f0f1_2 + f2f9_38 + f3f8_38 + f4f7_38 + f5f6_38; + int64_t h2 = f0f2_2 + f1f1_2 + f3f9_76 + f4f8_38 + f5f7_76 + f6f6_19; + int64_t h3 = f0f3_2 + f1f2_2 + f4f9_38 + f5f8_38 + f6f7_38; + int64_t h4 = f0f4_2 + f1f3_4 + f2f2 + f5f9_76 + f6f8_38 + f7f7_38; + int64_t h5 = f0f5_2 + f1f4_2 + f2f3_2 + f6f9_38 + f7f8_38; + int64_t h6 = f0f6_2 + f1f5_4 + f2f4_2 + f3f3_2 + f7f9_76 + f8f8_19; + int64_t h7 = f0f7_2 + f1f6_2 + f2f5_2 + f3f4_2 + f8f9_38; + int64_t h8 = f0f8_2 + f1f7_4 + f2f6_2 + f3f5_4 + f4f4 + f9f9_38; + int64_t h9 = f0f9_2 + f1f8_2 + f2f7_2 + f3f6_2 + f4f5_2; + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + h0 += h0; + h1 += h1; + h2 += h2; + h3 += h3; + h4 += h4; + h5 += h5; + h6 += h6; + h7 += h7; + h8 += h8; + h9 += h9; + carry0 = (h0 + (int64_t) (1 << 25)) >> 26; + h1 += carry0; + h0 -= carry0 << 26; + carry4 = (h4 + (int64_t) (1 << 25)) >> 26; + h5 += carry4; + h4 -= carry4 << 26; + carry1 = (h1 + (int64_t) (1 << 24)) >> 25; + h2 += carry1; + h1 -= carry1 << 25; + carry5 = (h5 + (int64_t) (1 << 24)) >> 25; + h6 += carry5; + h5 -= carry5 << 25; + carry2 = (h2 + (int64_t) (1 << 25)) >> 26; + h3 += carry2; + h2 -= carry2 << 26; + carry6 = (h6 + (int64_t) (1 << 25)) >> 26; + h7 += carry6; + h6 -= carry6 << 26; + carry3 = (h3 + (int64_t) (1 << 24)) >> 25; + h4 += carry3; + h3 -= carry3 << 25; + carry7 = (h7 + (int64_t) (1 << 24)) >> 25; + h8 += carry7; + h7 -= carry7 << 25; + carry4 = (h4 + (int64_t) (1 << 25)) >> 26; + h5 += carry4; + h4 -= carry4 << 26; + carry8 = (h8 + (int64_t) (1 << 25)) >> 26; + h9 += carry8; + h8 -= carry8 << 26; + carry9 = (h9 + (int64_t) (1 << 24)) >> 25; + h0 += carry9 * 19; + h9 -= carry9 << 25; + carry0 = (h0 + (int64_t) (1 << 25)) >> 26; + h1 += carry0; + h0 -= carry0 << 26; + h[0] = (int32_t) h0; + h[1] = (int32_t) h1; + h[2] = (int32_t) h2; + h[3] = (int32_t) h3; + h[4] = (int32_t) h4; + h[5] = (int32_t) h5; + h[6] = (int32_t) h6; + h[7] = (int32_t) h7; + h[8] = (int32_t) h8; + h[9] = (int32_t) h9; +} + + +/* +h = f - g +Can overlap h with f or g. + +Preconditions: + |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. + |g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. + +Postconditions: + |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. +*/ + +void fe_sub(fe h, const fe f, const fe g) { + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int32_t g0 = g[0]; + int32_t g1 = g[1]; + int32_t g2 = g[2]; + int32_t g3 = g[3]; + int32_t g4 = g[4]; + int32_t g5 = g[5]; + int32_t g6 = g[6]; + int32_t g7 = g[7]; + int32_t g8 = g[8]; + int32_t g9 = g[9]; + int32_t h0 = f0 - g0; + int32_t h1 = f1 - g1; + int32_t h2 = f2 - g2; + int32_t h3 = f3 - g3; + int32_t h4 = f4 - g4; + int32_t h5 = f5 - g5; + int32_t h6 = f6 - g6; + int32_t h7 = f7 - g7; + int32_t h8 = f8 - g8; + int32_t h9 = f9 - g9; + + h[0] = h0; + h[1] = h1; + h[2] = h2; + h[3] = h3; + h[4] = h4; + h[5] = h5; + h[6] = h6; + h[7] = h7; + h[8] = h8; + h[9] = h9; +} + + + +/* +Preconditions: + |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. + +Write p=2^255-19; q=floor(h/p). +Basic claim: q = floor(2^(-255)(h + 19 2^(-25)h9 + 2^(-1))). + +Proof: + Have |h|<=p so |q|<=1 so |19^2 2^(-255) q|<1/4. + Also have |h-2^230 h9|<2^231 so |19 2^(-255)(h-2^230 h9)|<1/4. + + Write y=2^(-1)-19^2 2^(-255)q-19 2^(-255)(h-2^230 h9). + Then 0> 25; + q = (h0 + q) >> 26; + q = (h1 + q) >> 25; + q = (h2 + q) >> 26; + q = (h3 + q) >> 25; + q = (h4 + q) >> 26; + q = (h5 + q) >> 25; + q = (h6 + q) >> 26; + q = (h7 + q) >> 25; + q = (h8 + q) >> 26; + q = (h9 + q) >> 25; + /* Goal: Output h-(2^255-19)q, which is between 0 and 2^255-20. */ + h0 += 19 * q; + /* Goal: Output h-2^255 q, which is between 0 and 2^255-20. */ + carry0 = h0 >> 26; + h1 += carry0; + h0 -= carry0 << 26; + carry1 = h1 >> 25; + h2 += carry1; + h1 -= carry1 << 25; + carry2 = h2 >> 26; + h3 += carry2; + h2 -= carry2 << 26; + carry3 = h3 >> 25; + h4 += carry3; + h3 -= carry3 << 25; + carry4 = h4 >> 26; + h5 += carry4; + h4 -= carry4 << 26; + carry5 = h5 >> 25; + h6 += carry5; + h5 -= carry5 << 25; + carry6 = h6 >> 26; + h7 += carry6; + h6 -= carry6 << 26; + carry7 = h7 >> 25; + h8 += carry7; + h7 -= carry7 << 25; + carry8 = h8 >> 26; + h9 += carry8; + h8 -= carry8 << 26; + carry9 = h9 >> 25; + h9 -= carry9 << 25; + + /* h10 = carry9 */ + /* + Goal: Output h0+...+2^255 h10-2^255 q, which is between 0 and 2^255-20. + Have h0+...+2^230 h9 between 0 and 2^255-1; + evidently 2^255 h10-2^255 q = 0. + Goal: Output h0+...+2^230 h9. + */ + s[0] = (unsigned char) (h0 >> 0); + s[1] = (unsigned char) (h0 >> 8); + s[2] = (unsigned char) (h0 >> 16); + s[3] = (unsigned char) ((h0 >> 24) | (h1 << 2)); + s[4] = (unsigned char) (h1 >> 6); + s[5] = (unsigned char) (h1 >> 14); + s[6] = (unsigned char) ((h1 >> 22) | (h2 << 3)); + s[7] = (unsigned char) (h2 >> 5); + s[8] = (unsigned char) (h2 >> 13); + s[9] = (unsigned char) ((h2 >> 21) | (h3 << 5)); + s[10] = (unsigned char) (h3 >> 3); + s[11] = (unsigned char) (h3 >> 11); + s[12] = (unsigned char) ((h3 >> 19) | (h4 << 6)); + s[13] = (unsigned char) (h4 >> 2); + s[14] = (unsigned char) (h4 >> 10); + s[15] = (unsigned char) (h4 >> 18); + s[16] = (unsigned char) (h5 >> 0); + s[17] = (unsigned char) (h5 >> 8); + s[18] = (unsigned char) (h5 >> 16); + s[19] = (unsigned char) ((h5 >> 24) | (h6 << 1)); + s[20] = (unsigned char) (h6 >> 7); + s[21] = (unsigned char) (h6 >> 15); + s[22] = (unsigned char) ((h6 >> 23) | (h7 << 3)); + s[23] = (unsigned char) (h7 >> 5); + s[24] = (unsigned char) (h7 >> 13); + s[25] = (unsigned char) ((h7 >> 21) | (h8 << 4)); + s[26] = (unsigned char) (h8 >> 4); + s[27] = (unsigned char) (h8 >> 12); + s[28] = (unsigned char) ((h8 >> 20) | (h9 << 6)); + s[29] = (unsigned char) (h9 >> 2); + s[30] = (unsigned char) (h9 >> 10); + s[31] = (unsigned char) (h9 >> 18); +} diff --git a/lib/ed25519/fe.h b/lib/ed25519/fe.h new file mode 100755 index 0000000..b4b62d2 --- /dev/null +++ b/lib/ed25519/fe.h @@ -0,0 +1,41 @@ +#ifndef FE_H +#define FE_H + +#include "fixedint.h" + + +/* + fe means field element. + Here the field is \Z/(2^255-19). + An element t, entries t[0]...t[9], represents the integer + t[0]+2^26 t[1]+2^51 t[2]+2^77 t[3]+2^102 t[4]+...+2^230 t[9]. + Bounds on each t[i] vary depending on context. +*/ + + +typedef int32_t fe[10]; + + +void fe_0(fe h); +void fe_1(fe h); + +void fe_frombytes(fe h, const unsigned char *s); +void fe_tobytes(unsigned char *s, const fe h); + +void fe_copy(fe h, const fe f); +int fe_isnegative(const fe f); +int fe_isnonzero(const fe f); +void fe_cmov(fe f, const fe g, unsigned int b); +void fe_cswap(fe f, fe g, unsigned int b); + +void fe_neg(fe h, const fe f); +void fe_add(fe h, const fe f, const fe g); +void fe_invert(fe out, const fe z); +void fe_sq(fe h, const fe f); +void fe_sq2(fe h, const fe f); +void fe_mul(fe h, const fe f, const fe g); +void fe_mul121666(fe h, fe f); +void fe_pow22523(fe out, const fe z); +void fe_sub(fe h, const fe f, const fe g); + +#endif diff --git a/lib/ed25519/fixedint.h b/lib/ed25519/fixedint.h new file mode 100755 index 0000000..1a8745b --- /dev/null +++ b/lib/ed25519/fixedint.h @@ -0,0 +1,72 @@ +/* + Portable header to provide the 32 and 64 bits type. + + Not a compatible replacement for , do not blindly use it as such. +*/ + +#if ((defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 199901L) || (defined(__WATCOMC__) && (defined(_STDINT_H_INCLUDED) || __WATCOMC__ >= 1250)) || (defined(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_) || defined(__UINT_FAST64_TYPE__)) )) && !defined(FIXEDINT_H_INCLUDED) + #include + #define FIXEDINT_H_INCLUDED + + #if defined(__WATCOMC__) && __WATCOMC__ >= 1250 && !defined(UINT64_C) + #include + #define UINT64_C(x) (x + (UINT64_MAX - UINT64_MAX)) + #endif +#endif + + +#ifndef FIXEDINT_H_INCLUDED + #define FIXEDINT_H_INCLUDED + + #include + + /* (u)int32_t */ + #ifndef uint32_t + #if (ULONG_MAX == 0xffffffffUL) + typedef unsigned long uint32_t; + #elif (UINT_MAX == 0xffffffffUL) + typedef unsigned int uint32_t; + #elif (USHRT_MAX == 0xffffffffUL) + typedef unsigned short uint32_t; + #endif + #endif + + + #ifndef int32_t + #if (LONG_MAX == 0x7fffffffL) + typedef signed long int32_t; + #elif (INT_MAX == 0x7fffffffL) + typedef signed int int32_t; + #elif (SHRT_MAX == 0x7fffffffL) + typedef signed short int32_t; + #endif + #endif + + + /* (u)int64_t */ + #if (defined(__STDC__) && defined(__STDC_VERSION__) && __STDC__ && __STDC_VERSION__ >= 199901L) + typedef long long int64_t; + typedef unsigned long long uint64_t; + + #define UINT64_C(v) v ##ULL + #define INT64_C(v) v ##LL + #elif defined(__GNUC__) + __extension__ typedef long long int64_t; + __extension__ typedef unsigned long long uint64_t; + + #define UINT64_C(v) v ##ULL + #define INT64_C(v) v ##LL + #elif defined(__MWERKS__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) || defined(__APPLE_CC__) || defined(_LONG_LONG) || defined(_CRAYC) + typedef long long int64_t; + typedef unsigned long long uint64_t; + + #define UINT64_C(v) v ##ULL + #define INT64_C(v) v ##LL + #elif (defined(__WATCOMC__) && defined(__WATCOM_INT64__)) || (defined(_MSC_VER) && _INTEGRAL_MAX_BITS >= 64) || (defined(__BORLANDC__) && __BORLANDC__ > 0x460) || defined(__alpha) || defined(__DECC) + typedef __int64 int64_t; + typedef unsigned __int64 uint64_t; + + #define UINT64_C(v) v ##UI64 + #define INT64_C(v) v ##I64 + #endif +#endif diff --git a/lib/ed25519/ge.c b/lib/ed25519/ge.c new file mode 100755 index 0000000..87c691b --- /dev/null +++ b/lib/ed25519/ge.c @@ -0,0 +1,467 @@ +#include "ge.h" +#include "precomp_data.h" + + +/* +r = p + q +*/ + +void ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q) { + fe t0; + fe_add(r->X, p->Y, p->X); + fe_sub(r->Y, p->Y, p->X); + fe_mul(r->Z, r->X, q->YplusX); + fe_mul(r->Y, r->Y, q->YminusX); + fe_mul(r->T, q->T2d, p->T); + fe_mul(r->X, p->Z, q->Z); + fe_add(t0, r->X, r->X); + fe_sub(r->X, r->Z, r->Y); + fe_add(r->Y, r->Z, r->Y); + fe_add(r->Z, t0, r->T); + fe_sub(r->T, t0, r->T); +} + + +static void slide(signed char *r, const unsigned char *a) { + int i; + int b; + int k; + + for (i = 0; i < 256; ++i) { + r[i] = 1 & (a[i >> 3] >> (i & 7)); + } + + for (i = 0; i < 256; ++i) + if (r[i]) { + for (b = 1; b <= 6 && i + b < 256; ++b) { + if (r[i + b]) { + if (r[i] + (r[i + b] << b) <= 15) { + r[i] += r[i + b] << b; + r[i + b] = 0; + } else if (r[i] - (r[i + b] << b) >= -15) { + r[i] -= r[i + b] << b; + + for (k = i + b; k < 256; ++k) { + if (!r[k]) { + r[k] = 1; + break; + } + + r[k] = 0; + } + } else { + break; + } + } + } + } +} + +/* +r = a * A + b * B +where a = a[0]+256*a[1]+...+256^31 a[31]. +and b = b[0]+256*b[1]+...+256^31 b[31]. +B is the Ed25519 base point (x,4/5) with x positive. +*/ + +void ge_double_scalarmult_vartime(ge_p2 *r, const unsigned char *a, const ge_p3 *A, const unsigned char *b) { + signed char aslide[256]; + signed char bslide[256]; + ge_cached Ai[8]; /* A,3A,5A,7A,9A,11A,13A,15A */ + ge_p1p1 t; + ge_p3 u; + ge_p3 A2; + int i; + slide(aslide, a); + slide(bslide, b); + ge_p3_to_cached(&Ai[0], A); + ge_p3_dbl(&t, A); + ge_p1p1_to_p3(&A2, &t); + ge_add(&t, &A2, &Ai[0]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[1], &u); + ge_add(&t, &A2, &Ai[1]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[2], &u); + ge_add(&t, &A2, &Ai[2]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[3], &u); + ge_add(&t, &A2, &Ai[3]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[4], &u); + ge_add(&t, &A2, &Ai[4]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[5], &u); + ge_add(&t, &A2, &Ai[5]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[6], &u); + ge_add(&t, &A2, &Ai[6]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[7], &u); + ge_p2_0(r); + + for (i = 255; i >= 0; --i) { + if (aslide[i] || bslide[i]) { + break; + } + } + + for (; i >= 0; --i) { + ge_p2_dbl(&t, r); + + if (aslide[i] > 0) { + ge_p1p1_to_p3(&u, &t); + ge_add(&t, &u, &Ai[aslide[i] / 2]); + } else if (aslide[i] < 0) { + ge_p1p1_to_p3(&u, &t); + ge_sub(&t, &u, &Ai[(-aslide[i]) / 2]); + } + + if (bslide[i] > 0) { + ge_p1p1_to_p3(&u, &t); + ge_madd(&t, &u, &Bi[bslide[i] / 2]); + } else if (bslide[i] < 0) { + ge_p1p1_to_p3(&u, &t); + ge_msub(&t, &u, &Bi[(-bslide[i]) / 2]); + } + + ge_p1p1_to_p2(r, &t); + } +} + + +static const fe d = { + -10913610, 13857413, -15372611, 6949391, 114729, -8787816, -6275908, -3247719, -18696448, -12055116 +}; + +static const fe sqrtm1 = { + -32595792, -7943725, 9377950, 3500415, 12389472, -272473, -25146209, -2005654, 326686, 11406482 +}; + +int ge_frombytes_negate_vartime(ge_p3 *h, const unsigned char *s) { + fe u; + fe v; + fe v3; + fe vxx; + fe check; + fe_frombytes(h->Y, s); + fe_1(h->Z); + fe_sq(u, h->Y); + fe_mul(v, u, d); + fe_sub(u, u, h->Z); /* u = y^2-1 */ + fe_add(v, v, h->Z); /* v = dy^2+1 */ + fe_sq(v3, v); + fe_mul(v3, v3, v); /* v3 = v^3 */ + fe_sq(h->X, v3); + fe_mul(h->X, h->X, v); + fe_mul(h->X, h->X, u); /* x = uv^7 */ + fe_pow22523(h->X, h->X); /* x = (uv^7)^((q-5)/8) */ + fe_mul(h->X, h->X, v3); + fe_mul(h->X, h->X, u); /* x = uv^3(uv^7)^((q-5)/8) */ + fe_sq(vxx, h->X); + fe_mul(vxx, vxx, v); + fe_sub(check, vxx, u); /* vx^2-u */ + + if (fe_isnonzero(check)) { + fe_add(check, vxx, u); /* vx^2+u */ + + if (fe_isnonzero(check)) { + return -1; + } + + fe_mul(h->X, h->X, sqrtm1); + } + + if (fe_isnegative(h->X) == (s[31] >> 7)) { + fe_neg(h->X, h->X); + } + + fe_mul(h->T, h->X, h->Y); + return 0; +} + + +/* +r = p + q +*/ + +void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q) { + fe t0; + fe_add(r->X, p->Y, p->X); + fe_sub(r->Y, p->Y, p->X); + fe_mul(r->Z, r->X, q->yplusx); + fe_mul(r->Y, r->Y, q->yminusx); + fe_mul(r->T, q->xy2d, p->T); + fe_add(t0, p->Z, p->Z); + fe_sub(r->X, r->Z, r->Y); + fe_add(r->Y, r->Z, r->Y); + fe_add(r->Z, t0, r->T); + fe_sub(r->T, t0, r->T); +} + + +/* +r = p - q +*/ + +void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q) { + fe t0; + + fe_add(r->X, p->Y, p->X); + fe_sub(r->Y, p->Y, p->X); + fe_mul(r->Z, r->X, q->yminusx); + fe_mul(r->Y, r->Y, q->yplusx); + fe_mul(r->T, q->xy2d, p->T); + fe_add(t0, p->Z, p->Z); + fe_sub(r->X, r->Z, r->Y); + fe_add(r->Y, r->Z, r->Y); + fe_sub(r->Z, t0, r->T); + fe_add(r->T, t0, r->T); +} + + +/* +r = p +*/ + +void ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p) { + fe_mul(r->X, p->X, p->T); + fe_mul(r->Y, p->Y, p->Z); + fe_mul(r->Z, p->Z, p->T); +} + + + +/* +r = p +*/ + +void ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p) { + fe_mul(r->X, p->X, p->T); + fe_mul(r->Y, p->Y, p->Z); + fe_mul(r->Z, p->Z, p->T); + fe_mul(r->T, p->X, p->Y); +} + + +void ge_p2_0(ge_p2 *h) { + fe_0(h->X); + fe_1(h->Y); + fe_1(h->Z); +} + + + +/* +r = 2 * p +*/ + +void ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p) { + fe t0; + + fe_sq(r->X, p->X); + fe_sq(r->Z, p->Y); + fe_sq2(r->T, p->Z); + fe_add(r->Y, p->X, p->Y); + fe_sq(t0, r->Y); + fe_add(r->Y, r->Z, r->X); + fe_sub(r->Z, r->Z, r->X); + fe_sub(r->X, t0, r->Y); + fe_sub(r->T, r->T, r->Z); +} + + +void ge_p3_0(ge_p3 *h) { + fe_0(h->X); + fe_1(h->Y); + fe_1(h->Z); + fe_0(h->T); +} + + +/* +r = 2 * p +*/ + +void ge_p3_dbl(ge_p1p1 *r, const ge_p3 *p) { + ge_p2 q; + ge_p3_to_p2(&q, p); + ge_p2_dbl(r, &q); +} + + + +/* +r = p +*/ + +static const fe d2 = { + -21827239, -5839606, -30745221, 13898782, 229458, 15978800, -12551817, -6495438, 29715968, 9444199 +}; + +void ge_p3_to_cached(ge_cached *r, const ge_p3 *p) { + fe_add(r->YplusX, p->Y, p->X); + fe_sub(r->YminusX, p->Y, p->X); + fe_copy(r->Z, p->Z); + fe_mul(r->T2d, p->T, d2); +} + + +/* +r = p +*/ + +void ge_p3_to_p2(ge_p2 *r, const ge_p3 *p) { + fe_copy(r->X, p->X); + fe_copy(r->Y, p->Y); + fe_copy(r->Z, p->Z); +} + + +void ge_p3_tobytes(unsigned char *s, const ge_p3 *h) { + fe recip; + fe x; + fe y; + fe_invert(recip, h->Z); + fe_mul(x, h->X, recip); + fe_mul(y, h->Y, recip); + fe_tobytes(s, y); + s[31] ^= fe_isnegative(x) << 7; +} + + +static unsigned char equal(signed char b, signed char c) { + unsigned char ub = b; + unsigned char uc = c; + unsigned char x = ub ^ uc; /* 0: yes; 1..255: no */ + uint64_t y = x; /* 0: yes; 1..255: no */ + y -= 1; /* large: yes; 0..254: no */ + y >>= 63; /* 1: yes; 0: no */ + return (unsigned char) y; +} + +static unsigned char negative(signed char b) { + uint64_t x = b; /* 18446744073709551361..18446744073709551615: yes; 0..255: no */ + x >>= 63; /* 1: yes; 0: no */ + return (unsigned char) x; +} + +static void cmov(ge_precomp *t, const ge_precomp *u, unsigned char b) { + fe_cmov(t->yplusx, u->yplusx, b); + fe_cmov(t->yminusx, u->yminusx, b); + fe_cmov(t->xy2d, u->xy2d, b); +} + + +static void select(ge_precomp *t, int pos, signed char b) { + ge_precomp minust; + unsigned char bnegative = negative(b); + unsigned char babs = b - (((-bnegative) & b) << 1); + fe_1(t->yplusx); + fe_1(t->yminusx); + fe_0(t->xy2d); + cmov(t, &base[pos][0], equal(babs, 1)); + cmov(t, &base[pos][1], equal(babs, 2)); + cmov(t, &base[pos][2], equal(babs, 3)); + cmov(t, &base[pos][3], equal(babs, 4)); + cmov(t, &base[pos][4], equal(babs, 5)); + cmov(t, &base[pos][5], equal(babs, 6)); + cmov(t, &base[pos][6], equal(babs, 7)); + cmov(t, &base[pos][7], equal(babs, 8)); + fe_copy(minust.yplusx, t->yminusx); + fe_copy(minust.yminusx, t->yplusx); + fe_neg(minust.xy2d, t->xy2d); + cmov(t, &minust, bnegative); +} + +/* +h = a * B +where a = a[0]+256*a[1]+...+256^31 a[31] +B is the Ed25519 base point (x,4/5) with x positive. + +Preconditions: + a[31] <= 127 +*/ + +void ge_scalarmult_base(ge_p3 *h, const unsigned char *a) { + signed char e[64]; + signed char carry; + ge_p1p1 r; + ge_p2 s; + ge_precomp t; + int i; + + for (i = 0; i < 32; ++i) { + e[2 * i + 0] = (a[i] >> 0) & 15; + e[2 * i + 1] = (a[i] >> 4) & 15; + } + + /* each e[i] is between 0 and 15 */ + /* e[63] is between 0 and 7 */ + carry = 0; + + for (i = 0; i < 63; ++i) { + e[i] += carry; + carry = e[i] + 8; + carry >>= 4; + e[i] -= carry << 4; + } + + e[63] += carry; + /* each e[i] is between -8 and 8 */ + ge_p3_0(h); + + for (i = 1; i < 64; i += 2) { + select(&t, i / 2, e[i]); + ge_madd(&r, h, &t); + ge_p1p1_to_p3(h, &r); + } + + ge_p3_dbl(&r, h); + ge_p1p1_to_p2(&s, &r); + ge_p2_dbl(&r, &s); + ge_p1p1_to_p2(&s, &r); + ge_p2_dbl(&r, &s); + ge_p1p1_to_p2(&s, &r); + ge_p2_dbl(&r, &s); + ge_p1p1_to_p3(h, &r); + + for (i = 0; i < 64; i += 2) { + select(&t, i / 2, e[i]); + ge_madd(&r, h, &t); + ge_p1p1_to_p3(h, &r); + } +} + + +/* +r = p - q +*/ + +void ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q) { + fe t0; + + fe_add(r->X, p->Y, p->X); + fe_sub(r->Y, p->Y, p->X); + fe_mul(r->Z, r->X, q->YminusX); + fe_mul(r->Y, r->Y, q->YplusX); + fe_mul(r->T, q->T2d, p->T); + fe_mul(r->X, p->Z, q->Z); + fe_add(t0, r->X, r->X); + fe_sub(r->X, r->Z, r->Y); + fe_add(r->Y, r->Z, r->Y); + fe_sub(r->Z, t0, r->T); + fe_add(r->T, t0, r->T); +} + + +void ge_tobytes(unsigned char *s, const ge_p2 *h) { + fe recip; + fe x; + fe y; + fe_invert(recip, h->Z); + fe_mul(x, h->X, recip); + fe_mul(y, h->Y, recip); + fe_tobytes(s, y); + s[31] ^= fe_isnegative(x) << 7; +} diff --git a/lib/ed25519/ge.h b/lib/ed25519/ge.h new file mode 100755 index 0000000..17fde2d --- /dev/null +++ b/lib/ed25519/ge.h @@ -0,0 +1,74 @@ +#ifndef GE_H +#define GE_H + +#include "fe.h" + + +/* +ge means group element. + +Here the group is the set of pairs (x,y) of field elements (see fe.h) +satisfying -x^2 + y^2 = 1 + d x^2y^2 +where d = -121665/121666. + +Representations: + ge_p2 (projective): (X:Y:Z) satisfying x=X/Z, y=Y/Z + ge_p3 (extended): (X:Y:Z:T) satisfying x=X/Z, y=Y/Z, XY=ZT + ge_p1p1 (completed): ((X:Z),(Y:T)) satisfying x=X/Z, y=Y/T + ge_precomp (Duif): (y+x,y-x,2dxy) +*/ + +typedef struct { + fe X; + fe Y; + fe Z; +} ge_p2; + +typedef struct { + fe X; + fe Y; + fe Z; + fe T; +} ge_p3; + +typedef struct { + fe X; + fe Y; + fe Z; + fe T; +} ge_p1p1; + +typedef struct { + fe yplusx; + fe yminusx; + fe xy2d; +} ge_precomp; + +typedef struct { + fe YplusX; + fe YminusX; + fe Z; + fe T2d; +} ge_cached; + +void ge_p3_tobytes(unsigned char *s, const ge_p3 *h); +void ge_tobytes(unsigned char *s, const ge_p2 *h); +int ge_frombytes_negate_vartime(ge_p3 *h, const unsigned char *s); + +void ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q); +void ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q); +void ge_double_scalarmult_vartime(ge_p2 *r, const unsigned char *a, const ge_p3 *A, const unsigned char *b); +void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q); +void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q); +void ge_scalarmult_base(ge_p3 *h, const unsigned char *a); + +void ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p); +void ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p); +void ge_p2_0(ge_p2 *h); +void ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p); +void ge_p3_0(ge_p3 *h); +void ge_p3_dbl(ge_p1p1 *r, const ge_p3 *p); +void ge_p3_to_cached(ge_cached *r, const ge_p3 *p); +void ge_p3_to_p2(ge_p2 *r, const ge_p3 *p); + +#endif diff --git a/lib/ed25519/key_exchange.c b/lib/ed25519/key_exchange.c new file mode 100755 index 0000000..abd75da --- /dev/null +++ b/lib/ed25519/key_exchange.c @@ -0,0 +1,79 @@ +#include "ed25519.h" +#include "fe.h" + +void ed25519_key_exchange(unsigned char *shared_secret, const unsigned char *public_key, const unsigned char *private_key) { + unsigned char e[32]; + unsigned int i; + + fe x1; + fe x2; + fe z2; + fe x3; + fe z3; + fe tmp0; + fe tmp1; + + int pos; + unsigned int swap; + unsigned int b; + + /* copy the private key and make sure it's valid */ + for (i = 0; i < 32; ++i) { + e[i] = private_key[i]; + } + + e[0] &= 248; + e[31] &= 63; + e[31] |= 64; + + /* unpack the public key and convert edwards to montgomery */ + /* due to CodesInChaos: montgomeryX = (edwardsY + 1)*inverse(1 - edwardsY) mod p */ + fe_frombytes(x1, public_key); + fe_1(tmp1); + fe_add(tmp0, x1, tmp1); + fe_sub(tmp1, tmp1, x1); + fe_invert(tmp1, tmp1); + fe_mul(x1, tmp0, tmp1); + + fe_1(x2); + fe_0(z2); + fe_copy(x3, x1); + fe_1(z3); + + swap = 0; + for (pos = 254; pos >= 0; --pos) { + b = e[pos / 8] >> (pos & 7); + b &= 1; + swap ^= b; + fe_cswap(x2, x3, swap); + fe_cswap(z2, z3, swap); + swap = b; + + /* from montgomery.h */ + fe_sub(tmp0, x3, z3); + fe_sub(tmp1, x2, z2); + fe_add(x2, x2, z2); + fe_add(z2, x3, z3); + fe_mul(z3, tmp0, x2); + fe_mul(z2, z2, tmp1); + fe_sq(tmp0, tmp1); + fe_sq(tmp1, x2); + fe_add(x3, z3, z2); + fe_sub(z2, z3, z2); + fe_mul(x2, tmp1, tmp0); + fe_sub(tmp1, tmp1, tmp0); + fe_sq(z2, z2); + fe_mul121666(z3, tmp1); + fe_sq(x3, x3); + fe_add(tmp0, tmp0, z3); + fe_mul(z3, x1, z2); + fe_mul(z2, tmp1, tmp0); + } + + fe_cswap(x2, x3, swap); + fe_cswap(z2, z3, swap); + + fe_invert(z2, z2); + fe_mul(x2, x2, z2); + fe_tobytes(shared_secret, x2); +} diff --git a/lib/ed25519/keypair.c b/lib/ed25519/keypair.c new file mode 100755 index 0000000..dc1b8ec --- /dev/null +++ b/lib/ed25519/keypair.c @@ -0,0 +1,16 @@ +#include "ed25519.h" +#include "sha512.h" +#include "ge.h" + + +void ed25519_create_keypair(unsigned char *public_key, unsigned char *private_key, const unsigned char *seed) { + ge_p3 A; + + sha512(seed, 32, private_key); + private_key[0] &= 248; + private_key[31] &= 63; + private_key[31] |= 64; + + ge_scalarmult_base(&A, private_key); + ge_p3_tobytes(public_key, &A); +} diff --git a/lib/ed25519/precomp_data.h b/lib/ed25519/precomp_data.h new file mode 100755 index 0000000..ff23986 --- /dev/null +++ b/lib/ed25519/precomp_data.h @@ -0,0 +1,1391 @@ +static const ge_precomp Bi[8] = { + { + { 25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605 }, + { -12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378 }, + { -8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546 }, + }, + { + { 15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024 }, + { 16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574 }, + { 30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357 }, + }, + { + { 10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380 }, + { 4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306 }, + { 19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942 }, + }, + { + { 5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766 }, + { -30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701 }, + { 28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300 }, + }, + { + { -22518993, -6692182, 14201702, -8745502, -23510406, 8844726, 18474211, -1361450, -13062696, 13821877 }, + { -6455177, -7839871, 3374702, -4740862, -27098617, -10571707, 31655028, -7212327, 18853322, -14220951 }, + { 4566830, -12963868, -28974889, -12240689, -7602672, -2830569, -8514358, -10431137, 2207753, -3209784 }, + }, + { + { -25154831, -4185821, 29681144, 7868801, -6854661, -9423865, -12437364, -663000, -31111463, -16132436 }, + { 25576264, -2703214, 7349804, -11814844, 16472782, 9300885, 3844789, 15725684, 171356, 6466918 }, + { 23103977, 13316479, 9739013, -16149481, 817875, -15038942, 8965339, -14088058, -30714912, 16193877 }, + }, + { + { -33521811, 3180713, -2394130, 14003687, -16903474, -16270840, 17238398, 4729455, -18074513, 9256800 }, + { -25182317, -4174131, 32336398, 5036987, -21236817, 11360617, 22616405, 9761698, -19827198, 630305 }, + { -13720693, 2639453, -24237460, -7406481, 9494427, -5774029, -6554551, -15960994, -2449256, -14291300 }, + }, + { + { -3151181, -5046075, 9282714, 6866145, -31907062, -863023, -18940575, 15033784, 25105118, -7894876 }, + { -24326370, 15950226, -31801215, -14592823, -11662737, -5090925, 1573892, -2625887, 2198790, -15804619 }, + { -3099351, 10324967, -2241613, 7453183, -5446979, -2735503, -13812022, -16236442, -32461234, -12290683 }, + }, +}; + + +/* base[i][j] = (j+1)*256^i*B */ +static const ge_precomp base[32][8] = { + { + { + { 25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605 }, + { -12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378 }, + { -8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546 }, + }, + { + { -12815894, -12976347, -21581243, 11784320, -25355658, -2750717, -11717903, -3814571, -358445, -10211303 }, + { -21703237, 6903825, 27185491, 6451973, -29577724, -9554005, -15616551, 11189268, -26829678, -5319081 }, + { 26966642, 11152617, 32442495, 15396054, 14353839, -12752335, -3128826, -9541118, -15472047, -4166697 }, + }, + { + { 15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024 }, + { 16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574 }, + { 30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357 }, + }, + { + { -17036878, 13921892, 10945806, -6033431, 27105052, -16084379, -28926210, 15006023, 3284568, -6276540 }, + { 23599295, -8306047, -11193664, -7687416, 13236774, 10506355, 7464579, 9656445, 13059162, 10374397 }, + { 7798556, 16710257, 3033922, 2874086, 28997861, 2835604, 32406664, -3839045, -641708, -101325 }, + }, + { + { 10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380 }, + { 4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306 }, + { 19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942 }, + }, + { + { -15371964, -12862754, 32573250, 4720197, -26436522, 5875511, -19188627, -15224819, -9818940, -12085777 }, + { -8549212, 109983, 15149363, 2178705, 22900618, 4543417, 3044240, -15689887, 1762328, 14866737 }, + { -18199695, -15951423, -10473290, 1707278, -17185920, 3916101, -28236412, 3959421, 27914454, 4383652 }, + }, + { + { 5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766 }, + { -30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701 }, + { 28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300 }, + }, + { + { 14499471, -2729599, -33191113, -4254652, 28494862, 14271267, 30290735, 10876454, -33154098, 2381726 }, + { -7195431, -2655363, -14730155, 462251, -27724326, 3941372, -6236617, 3696005, -32300832, 15351955 }, + { 27431194, 8222322, 16448760, -3907995, -18707002, 11938355, -32961401, -2970515, 29551813, 10109425 }, + }, + }, + { + { + { -13657040, -13155431, -31283750, 11777098, 21447386, 6519384, -2378284, -1627556, 10092783, -4764171 }, + { 27939166, 14210322, 4677035, 16277044, -22964462, -12398139, -32508754, 12005538, -17810127, 12803510 }, + { 17228999, -15661624, -1233527, 300140, -1224870, -11714777, 30364213, -9038194, 18016357, 4397660 }, + }, + { + { -10958843, -7690207, 4776341, -14954238, 27850028, -15602212, -26619106, 14544525, -17477504, 982639 }, + { 29253598, 15796703, -2863982, -9908884, 10057023, 3163536, 7332899, -4120128, -21047696, 9934963 }, + { 5793303, 16271923, -24131614, -10116404, 29188560, 1206517, -14747930, 4559895, -30123922, -10897950 }, + }, + { + { -27643952, -11493006, 16282657, -11036493, 28414021, -15012264, 24191034, 4541697, -13338309, 5500568 }, + { 12650548, -1497113, 9052871, 11355358, -17680037, -8400164, -17430592, 12264343, 10874051, 13524335 }, + { 25556948, -3045990, 714651, 2510400, 23394682, -10415330, 33119038, 5080568, -22528059, 5376628 }, + }, + { + { -26088264, -4011052, -17013699, -3537628, -6726793, 1920897, -22321305, -9447443, 4535768, 1569007 }, + { -2255422, 14606630, -21692440, -8039818, 28430649, 8775819, -30494562, 3044290, 31848280, 12543772 }, + { -22028579, 2943893, -31857513, 6777306, 13784462, -4292203, -27377195, -2062731, 7718482, 14474653 }, + }, + { + { 2385315, 2454213, -22631320, 46603, -4437935, -15680415, 656965, -7236665, 24316168, -5253567 }, + { 13741529, 10911568, -33233417, -8603737, -20177830, -1033297, 33040651, -13424532, -20729456, 8321686 }, + { 21060490, -2212744, 15712757, -4336099, 1639040, 10656336, 23845965, -11874838, -9984458, 608372 }, + }, + { + { -13672732, -15087586, -10889693, -7557059, -6036909, 11305547, 1123968, -6780577, 27229399, 23887 }, + { -23244140, -294205, -11744728, 14712571, -29465699, -2029617, 12797024, -6440308, -1633405, 16678954 }, + { -29500620, 4770662, -16054387, 14001338, 7830047, 9564805, -1508144, -4795045, -17169265, 4904953 }, + }, + { + { 24059557, 14617003, 19037157, -15039908, 19766093, -14906429, 5169211, 16191880, 2128236, -4326833 }, + { -16981152, 4124966, -8540610, -10653797, 30336522, -14105247, -29806336, 916033, -6882542, -2986532 }, + { -22630907, 12419372, -7134229, -7473371, -16478904, 16739175, 285431, 2763829, 15736322, 4143876 }, + }, + { + { 2379352, 11839345, -4110402, -5988665, 11274298, 794957, 212801, -14594663, 23527084, -16458268 }, + { 33431127, -11130478, -17838966, -15626900, 8909499, 8376530, -32625340, 4087881, -15188911, -14416214 }, + { 1767683, 7197987, -13205226, -2022635, -13091350, 448826, 5799055, 4357868, -4774191, -16323038 }, + }, + }, + { + { + { 6721966, 13833823, -23523388, -1551314, 26354293, -11863321, 23365147, -3949732, 7390890, 2759800 }, + { 4409041, 2052381, 23373853, 10530217, 7676779, -12885954, 21302353, -4264057, 1244380, -12919645 }, + { -4421239, 7169619, 4982368, -2957590, 30256825, -2777540, 14086413, 9208236, 15886429, 16489664 }, + }, + { + { 1996075, 10375649, 14346367, 13311202, -6874135, -16438411, -13693198, 398369, -30606455, -712933 }, + { -25307465, 9795880, -2777414, 14878809, -33531835, 14780363, 13348553, 12076947, -30836462, 5113182 }, + { -17770784, 11797796, 31950843, 13929123, -25888302, 12288344, -30341101, -7336386, 13847711, 5387222 }, + }, + { + { -18582163, -3416217, 17824843, -2340966, 22744343, -10442611, 8763061, 3617786, -19600662, 10370991 }, + { 20246567, -14369378, 22358229, -543712, 18507283, -10413996, 14554437, -8746092, 32232924, 16763880 }, + { 9648505, 10094563, 26416693, 14745928, -30374318, -6472621, 11094161, 15689506, 3140038, -16510092 }, + }, + { + { -16160072, 5472695, 31895588, 4744994, 8823515, 10365685, -27224800, 9448613, -28774454, 366295 }, + { 19153450, 11523972, -11096490, -6503142, -24647631, 5420647, 28344573, 8041113, 719605, 11671788 }, + { 8678025, 2694440, -6808014, 2517372, 4964326, 11152271, -15432916, -15266516, 27000813, -10195553 }, + }, + { + { -15157904, 7134312, 8639287, -2814877, -7235688, 10421742, 564065, 5336097, 6750977, -14521026 }, + { 11836410, -3979488, 26297894, 16080799, 23455045, 15735944, 1695823, -8819122, 8169720, 16220347 }, + { -18115838, 8653647, 17578566, -6092619, -8025777, -16012763, -11144307, -2627664, -5990708, -14166033 }, + }, + { + { -23308498, -10968312, 15213228, -10081214, -30853605, -11050004, 27884329, 2847284, 2655861, 1738395 }, + { -27537433, -14253021, -25336301, -8002780, -9370762, 8129821, 21651608, -3239336, -19087449, -11005278 }, + { 1533110, 3437855, 23735889, 459276, 29970501, 11335377, 26030092, 5821408, 10478196, 8544890 }, + }, + { + { 32173121, -16129311, 24896207, 3921497, 22579056, -3410854, 19270449, 12217473, 17789017, -3395995 }, + { -30552961, -2228401, -15578829, -10147201, 13243889, 517024, 15479401, -3853233, 30460520, 1052596 }, + { -11614875, 13323618, 32618793, 8175907, -15230173, 12596687, 27491595, -4612359, 3179268, -9478891 }, + }, + { + { 31947069, -14366651, -4640583, -15339921, -15125977, -6039709, -14756777, -16411740, 19072640, -9511060 }, + { 11685058, 11822410, 3158003, -13952594, 33402194, -4165066, 5977896, -5215017, 473099, 5040608 }, + { -20290863, 8198642, -27410132, 11602123, 1290375, -2799760, 28326862, 1721092, -19558642, -3131606 }, + }, + }, + { + { + { 7881532, 10687937, 7578723, 7738378, -18951012, -2553952, 21820786, 8076149, -27868496, 11538389 }, + { -19935666, 3899861, 18283497, -6801568, -15728660, -11249211, 8754525, 7446702, -5676054, 5797016 }, + { -11295600, -3793569, -15782110, -7964573, 12708869, -8456199, 2014099, -9050574, -2369172, -5877341 }, + }, + { + { -22472376, -11568741, -27682020, 1146375, 18956691, 16640559, 1192730, -3714199, 15123619, 10811505 }, + { 14352098, -3419715, -18942044, 10822655, 32750596, 4699007, -70363, 15776356, -28886779, -11974553 }, + { -28241164, -8072475, -4978962, -5315317, 29416931, 1847569, -20654173, -16484855, 4714547, -9600655 }, + }, + { + { 15200332, 8368572, 19679101, 15970074, -31872674, 1959451, 24611599, -4543832, -11745876, 12340220 }, + { 12876937, -10480056, 33134381, 6590940, -6307776, 14872440, 9613953, 8241152, 15370987, 9608631 }, + { -4143277, -12014408, 8446281, -391603, 4407738, 13629032, -7724868, 15866074, -28210621, -8814099 }, + }, + { + { 26660628, -15677655, 8393734, 358047, -7401291, 992988, -23904233, 858697, 20571223, 8420556 }, + { 14620715, 13067227, -15447274, 8264467, 14106269, 15080814, 33531827, 12516406, -21574435, -12476749 }, + { 236881, 10476226, 57258, -14677024, 6472998, 2466984, 17258519, 7256740, 8791136, 15069930 }, + }, + { + { 1276410, -9371918, 22949635, -16322807, -23493039, -5702186, 14711875, 4874229, -30663140, -2331391 }, + { 5855666, 4990204, -13711848, 7294284, -7804282, 1924647, -1423175, -7912378, -33069337, 9234253 }, + { 20590503, -9018988, 31529744, -7352666, -2706834, 10650548, 31559055, -11609587, 18979186, 13396066 }, + }, + { + { 24474287, 4968103, 22267082, 4407354, 24063882, -8325180, -18816887, 13594782, 33514650, 7021958 }, + { -11566906, -6565505, -21365085, 15928892, -26158305, 4315421, -25948728, -3916677, -21480480, 12868082 }, + { -28635013, 13504661, 19988037, -2132761, 21078225, 6443208, -21446107, 2244500, -12455797, -8089383 }, + }, + { + { -30595528, 13793479, -5852820, 319136, -25723172, -6263899, 33086546, 8957937, -15233648, 5540521 }, + { -11630176, -11503902, -8119500, -7643073, 2620056, 1022908, -23710744, -1568984, -16128528, -14962807 }, + { 23152971, 775386, 27395463, 14006635, -9701118, 4649512, 1689819, 892185, -11513277, -15205948 }, + }, + { + { 9770129, 9586738, 26496094, 4324120, 1556511, -3550024, 27453819, 4763127, -19179614, 5867134 }, + { -32765025, 1927590, 31726409, -4753295, 23962434, -16019500, 27846559, 5931263, -29749703, -16108455 }, + { 27461885, -2977536, 22380810, 1815854, -23033753, -3031938, 7283490, -15148073, -19526700, 7734629 }, + }, + }, + { + { + { -8010264, -9590817, -11120403, 6196038, 29344158, -13430885, 7585295, -3176626, 18549497, 15302069 }, + { -32658337, -6171222, -7672793, -11051681, 6258878, 13504381, 10458790, -6418461, -8872242, 8424746 }, + { 24687205, 8613276, -30667046, -3233545, 1863892, -1830544, 19206234, 7134917, -11284482, -828919 }, + }, + { + { 11334899, -9218022, 8025293, 12707519, 17523892, -10476071, 10243738, -14685461, -5066034, 16498837 }, + { 8911542, 6887158, -9584260, -6958590, 11145641, -9543680, 17303925, -14124238, 6536641, 10543906 }, + { -28946384, 15479763, -17466835, 568876, -1497683, 11223454, -2669190, -16625574, -27235709, 8876771 }, + }, + { + { -25742899, -12566864, -15649966, -846607, -33026686, -796288, -33481822, 15824474, -604426, -9039817 }, + { 10330056, 70051, 7957388, -9002667, 9764902, 15609756, 27698697, -4890037, 1657394, 3084098 }, + { 10477963, -7470260, 12119566, -13250805, 29016247, -5365589, 31280319, 14396151, -30233575, 15272409 }, + }, + { + { -12288309, 3169463, 28813183, 16658753, 25116432, -5630466, -25173957, -12636138, -25014757, 1950504 }, + { -26180358, 9489187, 11053416, -14746161, -31053720, 5825630, -8384306, -8767532, 15341279, 8373727 }, + { 28685821, 7759505, -14378516, -12002860, -31971820, 4079242, 298136, -10232602, -2878207, 15190420 }, + }, + { + { -32932876, 13806336, -14337485, -15794431, -24004620, 10940928, 8669718, 2742393, -26033313, -6875003 }, + { -1580388, -11729417, -25979658, -11445023, -17411874, -10912854, 9291594, -16247779, -12154742, 6048605 }, + { -30305315, 14843444, 1539301, 11864366, 20201677, 1900163, 13934231, 5128323, 11213262, 9168384 }, + }, + { + { -26280513, 11007847, 19408960, -940758, -18592965, -4328580, -5088060, -11105150, 20470157, -16398701 }, + { -23136053, 9282192, 14855179, -15390078, -7362815, -14408560, -22783952, 14461608, 14042978, 5230683 }, + { 29969567, -2741594, -16711867, -8552442, 9175486, -2468974, 21556951, 3506042, -5933891, -12449708 }, + }, + { + { -3144746, 8744661, 19704003, 4581278, -20430686, 6830683, -21284170, 8971513, -28539189, 15326563 }, + { -19464629, 10110288, -17262528, -3503892, -23500387, 1355669, -15523050, 15300988, -20514118, 9168260 }, + { -5353335, 4488613, -23803248, 16314347, 7780487, -15638939, -28948358, 9601605, 33087103, -9011387 }, + }, + { + { -19443170, -15512900, -20797467, -12445323, -29824447, 10229461, -27444329, -15000531, -5996870, 15664672 }, + { 23294591, -16632613, -22650781, -8470978, 27844204, 11461195, 13099750, -2460356, 18151676, 13417686 }, + { -24722913, -4176517, -31150679, 5988919, -26858785, 6685065, 1661597, -12551441, 15271676, -15452665 }, + }, + }, + { + { + { 11433042, -13228665, 8239631, -5279517, -1985436, -725718, -18698764, 2167544, -6921301, -13440182 }, + { -31436171, 15575146, 30436815, 12192228, -22463353, 9395379, -9917708, -8638997, 12215110, 12028277 }, + { 14098400, 6555944, 23007258, 5757252, -15427832, -12950502, 30123440, 4617780, -16900089, -655628 }, + }, + { + { -4026201, -15240835, 11893168, 13718664, -14809462, 1847385, -15819999, 10154009, 23973261, -12684474 }, + { -26531820, -3695990, -1908898, 2534301, -31870557, -16550355, 18341390, -11419951, 32013174, -10103539 }, + { -25479301, 10876443, -11771086, -14625140, -12369567, 1838104, 21911214, 6354752, 4425632, -837822 }, + }, + { + { -10433389, -14612966, 22229858, -3091047, -13191166, 776729, -17415375, -12020462, 4725005, 14044970 }, + { 19268650, -7304421, 1555349, 8692754, -21474059, -9910664, 6347390, -1411784, -19522291, -16109756 }, + { -24864089, 12986008, -10898878, -5558584, -11312371, -148526, 19541418, 8180106, 9282262, 10282508 }, + }, + { + { -26205082, 4428547, -8661196, -13194263, 4098402, -14165257, 15522535, 8372215, 5542595, -10702683 }, + { -10562541, 14895633, 26814552, -16673850, -17480754, -2489360, -2781891, 6993761, -18093885, 10114655 }, + { -20107055, -929418, 31422704, 10427861, -7110749, 6150669, -29091755, -11529146, 25953725, -106158 }, + }, + { + { -4234397, -8039292, -9119125, 3046000, 2101609, -12607294, 19390020, 6094296, -3315279, 12831125 }, + { -15998678, 7578152, 5310217, 14408357, -33548620, -224739, 31575954, 6326196, 7381791, -2421839 }, + { -20902779, 3296811, 24736065, -16328389, 18374254, 7318640, 6295303, 8082724, -15362489, 12339664 }, + }, + { + { 27724736, 2291157, 6088201, -14184798, 1792727, 5857634, 13848414, 15768922, 25091167, 14856294 }, + { -18866652, 8331043, 24373479, 8541013, -701998, -9269457, 12927300, -12695493, -22182473, -9012899 }, + { -11423429, -5421590, 11632845, 3405020, 30536730, -11674039, -27260765, 13866390, 30146206, 9142070 }, + }, + { + { 3924129, -15307516, -13817122, -10054960, 12291820, -668366, -27702774, 9326384, -8237858, 4171294 }, + { -15921940, 16037937, 6713787, 16606682, -21612135, 2790944, 26396185, 3731949, 345228, -5462949 }, + { -21327538, 13448259, 25284571, 1143661, 20614966, -8849387, 2031539, -12391231, -16253183, -13582083 }, + }, + { + { 31016211, -16722429, 26371392, -14451233, -5027349, 14854137, 17477601, 3842657, 28012650, -16405420 }, + { -5075835, 9368966, -8562079, -4600902, -15249953, 6970560, -9189873, 16292057, -8867157, 3507940 }, + { 29439664, 3537914, 23333589, 6997794, -17555561, -11018068, -15209202, -15051267, -9164929, 6580396 }, + }, + }, + { + { + { -12185861, -7679788, 16438269, 10826160, -8696817, -6235611, 17860444, -9273846, -2095802, 9304567 }, + { 20714564, -4336911, 29088195, 7406487, 11426967, -5095705, 14792667, -14608617, 5289421, -477127 }, + { -16665533, -10650790, -6160345, -13305760, 9192020, -1802462, 17271490, 12349094, 26939669, -3752294 }, + }, + { + { -12889898, 9373458, 31595848, 16374215, 21471720, 13221525, -27283495, -12348559, -3698806, 117887 }, + { 22263325, -6560050, 3984570, -11174646, -15114008, -566785, 28311253, 5358056, -23319780, 541964 }, + { 16259219, 3261970, 2309254, -15534474, -16885711, -4581916, 24134070, -16705829, -13337066, -13552195 }, + }, + { + { 9378160, -13140186, -22845982, -12745264, 28198281, -7244098, -2399684, -717351, 690426, 14876244 }, + { 24977353, -314384, -8223969, -13465086, 28432343, -1176353, -13068804, -12297348, -22380984, 6618999 }, + { -1538174, 11685646, 12944378, 13682314, -24389511, -14413193, 8044829, -13817328, 32239829, -5652762 }, + }, + { + { -18603066, 4762990, -926250, 8885304, -28412480, -3187315, 9781647, -10350059, 32779359, 5095274 }, + { -33008130, -5214506, -32264887, -3685216, 9460461, -9327423, -24601656, 14506724, 21639561, -2630236 }, + { -16400943, -13112215, 25239338, 15531969, 3987758, -4499318, -1289502, -6863535, 17874574, 558605 }, + }, + { + { -13600129, 10240081, 9171883, 16131053, -20869254, 9599700, 33499487, 5080151, 2085892, 5119761 }, + { -22205145, -2519528, -16381601, 414691, -25019550, 2170430, 30634760, -8363614, -31999993, -5759884 }, + { -6845704, 15791202, 8550074, -1312654, 29928809, -12092256, 27534430, -7192145, -22351378, 12961482 }, + }, + { + { -24492060, -9570771, 10368194, 11582341, -23397293, -2245287, 16533930, 8206996, -30194652, -5159638 }, + { -11121496, -3382234, 2307366, 6362031, -135455, 8868177, -16835630, 7031275, 7589640, 8945490 }, + { -32152748, 8917967, 6661220, -11677616, -1192060, -15793393, 7251489, -11182180, 24099109, -14456170 }, + }, + { + { 5019558, -7907470, 4244127, -14714356, -26933272, 6453165, -19118182, -13289025, -6231896, -10280736 }, + { 10853594, 10721687, 26480089, 5861829, -22995819, 1972175, -1866647, -10557898, -3363451, -6441124 }, + { -17002408, 5906790, 221599, -6563147, 7828208, -13248918, 24362661, -2008168, -13866408, 7421392 }, + }, + { + { 8139927, -6546497, 32257646, -5890546, 30375719, 1886181, -21175108, 15441252, 28826358, -4123029 }, + { 6267086, 9695052, 7709135, -16603597, -32869068, -1886135, 14795160, -7840124, 13746021, -1742048 }, + { 28584902, 7787108, -6732942, -15050729, 22846041, -7571236, -3181936, -363524, 4771362, -8419958 }, + }, + }, + { + { + { 24949256, 6376279, -27466481, -8174608, -18646154, -9930606, 33543569, -12141695, 3569627, 11342593 }, + { 26514989, 4740088, 27912651, 3697550, 19331575, -11472339, 6809886, 4608608, 7325975, -14801071 }, + { -11618399, -14554430, -24321212, 7655128, -1369274, 5214312, -27400540, 10258390, -17646694, -8186692 }, + }, + { + { 11431204, 15823007, 26570245, 14329124, 18029990, 4796082, -31446179, 15580664, 9280358, -3973687 }, + { -160783, -10326257, -22855316, -4304997, -20861367, -13621002, -32810901, -11181622, -15545091, 4387441 }, + { -20799378, 12194512, 3937617, -5805892, -27154820, 9340370, -24513992, 8548137, 20617071, -7482001 }, + }, + { + { -938825, -3930586, -8714311, 16124718, 24603125, -6225393, -13775352, -11875822, 24345683, 10325460 }, + { -19855277, -1568885, -22202708, 8714034, 14007766, 6928528, 16318175, -1010689, 4766743, 3552007 }, + { -21751364, -16730916, 1351763, -803421, -4009670, 3950935, 3217514, 14481909, 10988822, -3994762 }, + }, + { + { 15564307, -14311570, 3101243, 5684148, 30446780, -8051356, 12677127, -6505343, -8295852, 13296005 }, + { -9442290, 6624296, -30298964, -11913677, -4670981, -2057379, 31521204, 9614054, -30000824, 12074674 }, + { 4771191, -135239, 14290749, -13089852, 27992298, 14998318, -1413936, -1556716, 29832613, -16391035 }, + }, + { + { 7064884, -7541174, -19161962, -5067537, -18891269, -2912736, 25825242, 5293297, -27122660, 13101590 }, + { -2298563, 2439670, -7466610, 1719965, -27267541, -16328445, 32512469, -5317593, -30356070, -4190957 }, + { -30006540, 10162316, -33180176, 3981723, -16482138, -13070044, 14413974, 9515896, 19568978, 9628812 }, + }, + { + { 33053803, 199357, 15894591, 1583059, 27380243, -4580435, -17838894, -6106839, -6291786, 3437740 }, + { -18978877, 3884493, 19469877, 12726490, 15913552, 13614290, -22961733, 70104, 7463304, 4176122 }, + { -27124001, 10659917, 11482427, -16070381, 12771467, -6635117, -32719404, -5322751, 24216882, 5944158 }, + }, + { + { 8894125, 7450974, -2664149, -9765752, -28080517, -12389115, 19345746, 14680796, 11632993, 5847885 }, + { 26942781, -2315317, 9129564, -4906607, 26024105, 11769399, -11518837, 6367194, -9727230, 4782140 }, + { 19916461, -4828410, -22910704, -11414391, 25606324, -5972441, 33253853, 8220911, 6358847, -1873857 }, + }, + { + { 801428, -2081702, 16569428, 11065167, 29875704, 96627, 7908388, -4480480, -13538503, 1387155 }, + { 19646058, 5720633, -11416706, 12814209, 11607948, 12749789, 14147075, 15156355, -21866831, 11835260 }, + { 19299512, 1155910, 28703737, 14890794, 2925026, 7269399, 26121523, 15467869, -26560550, 5052483 }, + }, + }, + { + { + { -3017432, 10058206, 1980837, 3964243, 22160966, 12322533, -6431123, -12618185, 12228557, -7003677 }, + { 32944382, 14922211, -22844894, 5188528, 21913450, -8719943, 4001465, 13238564, -6114803, 8653815 }, + { 22865569, -4652735, 27603668, -12545395, 14348958, 8234005, 24808405, 5719875, 28483275, 2841751 }, + }, + { + { -16420968, -1113305, -327719, -12107856, 21886282, -15552774, -1887966, -315658, 19932058, -12739203 }, + { -11656086, 10087521, -8864888, -5536143, -19278573, -3055912, 3999228, 13239134, -4777469, -13910208 }, + { 1382174, -11694719, 17266790, 9194690, -13324356, 9720081, 20403944, 11284705, -14013818, 3093230 }, + }, + { + { 16650921, -11037932, -1064178, 1570629, -8329746, 7352753, -302424, 16271225, -24049421, -6691850 }, + { -21911077, -5927941, -4611316, -5560156, -31744103, -10785293, 24123614, 15193618, -21652117, -16739389 }, + { -9935934, -4289447, -25279823, 4372842, 2087473, 10399484, 31870908, 14690798, 17361620, 11864968 }, + }, + { + { -11307610, 6210372, 13206574, 5806320, -29017692, -13967200, -12331205, -7486601, -25578460, -16240689 }, + { 14668462, -12270235, 26039039, 15305210, 25515617, 4542480, 10453892, 6577524, 9145645, -6443880 }, + { 5974874, 3053895, -9433049, -10385191, -31865124, 3225009, -7972642, 3936128, -5652273, -3050304 }, + }, + { + { 30625386, -4729400, -25555961, -12792866, -20484575, 7695099, 17097188, -16303496, -27999779, 1803632 }, + { -3553091, 9865099, -5228566, 4272701, -5673832, -16689700, 14911344, 12196514, -21405489, 7047412 }, + { 20093277, 9920966, -11138194, -5343857, 13161587, 12044805, -32856851, 4124601, -32343828, -10257566 }, + }, + { + { -20788824, 14084654, -13531713, 7842147, 19119038, -13822605, 4752377, -8714640, -21679658, 2288038 }, + { -26819236, -3283715, 29965059, 3039786, -14473765, 2540457, 29457502, 14625692, -24819617, 12570232 }, + { -1063558, -11551823, 16920318, 12494842, 1278292, -5869109, -21159943, -3498680, -11974704, 4724943 }, + }, + { + { 17960970, -11775534, -4140968, -9702530, -8876562, -1410617, -12907383, -8659932, -29576300, 1903856 }, + { 23134274, -14279132, -10681997, -1611936, 20684485, 15770816, -12989750, 3190296, 26955097, 14109738 }, + { 15308788, 5320727, -30113809, -14318877, 22902008, 7767164, 29425325, -11277562, 31960942, 11934971 }, + }, + { + { -27395711, 8435796, 4109644, 12222639, -24627868, 14818669, 20638173, 4875028, 10491392, 1379718 }, + { -13159415, 9197841, 3875503, -8936108, -1383712, -5879801, 33518459, 16176658, 21432314, 12180697 }, + { -11787308, 11500838, 13787581, -13832590, -22430679, 10140205, 1465425, 12689540, -10301319, -13872883 }, + }, + }, + { + { + { 5414091, -15386041, -21007664, 9643570, 12834970, 1186149, -2622916, -1342231, 26128231, 6032912 }, + { -26337395, -13766162, 32496025, -13653919, 17847801, -12669156, 3604025, 8316894, -25875034, -10437358 }, + { 3296484, 6223048, 24680646, -12246460, -23052020, 5903205, -8862297, -4639164, 12376617, 3188849 }, + }, + { + { 29190488, -14659046, 27549113, -1183516, 3520066, -10697301, 32049515, -7309113, -16109234, -9852307 }, + { -14744486, -9309156, 735818, -598978, -20407687, -5057904, 25246078, -15795669, 18640741, -960977 }, + { -6928835, -16430795, 10361374, 5642961, 4910474, 12345252, -31638386, -494430, 10530747, 1053335 }, + }, + { + { -29265967, -14186805, -13538216, -12117373, -19457059, -10655384, -31462369, -2948985, 24018831, 15026644 }, + { -22592535, -3145277, -2289276, 5953843, -13440189, 9425631, 25310643, 13003497, -2314791, -15145616 }, + { -27419985, -603321, -8043984, -1669117, -26092265, 13987819, -27297622, 187899, -23166419, -2531735 }, + }, + { + { -21744398, -13810475, 1844840, 5021428, -10434399, -15911473, 9716667, 16266922, -5070217, 726099 }, + { 29370922, -6053998, 7334071, -15342259, 9385287, 2247707, -13661962, -4839461, 30007388, -15823341 }, + { -936379, 16086691, 23751945, -543318, -1167538, -5189036, 9137109, 730663, 9835848, 4555336 }, + }, + { + { -23376435, 1410446, -22253753, -12899614, 30867635, 15826977, 17693930, 544696, -11985298, 12422646 }, + { 31117226, -12215734, -13502838, 6561947, -9876867, -12757670, -5118685, -4096706, 29120153, 13924425 }, + { -17400879, -14233209, 19675799, -2734756, -11006962, -5858820, -9383939, -11317700, 7240931, -237388 }, + }, + { + { -31361739, -11346780, -15007447, -5856218, -22453340, -12152771, 1222336, 4389483, 3293637, -15551743 }, + { -16684801, -14444245, 11038544, 11054958, -13801175, -3338533, -24319580, 7733547, 12796905, -6335822 }, + { -8759414, -10817836, -25418864, 10783769, -30615557, -9746811, -28253339, 3647836, 3222231, -11160462 }, + }, + { + { 18606113, 1693100, -25448386, -15170272, 4112353, 10045021, 23603893, -2048234, -7550776, 2484985 }, + { 9255317, -3131197, -12156162, -1004256, 13098013, -9214866, 16377220, -2102812, -19802075, -3034702 }, + { -22729289, 7496160, -5742199, 11329249, 19991973, -3347502, -31718148, 9936966, -30097688, -10618797 }, + }, + { + { 21878590, -5001297, 4338336, 13643897, -3036865, 13160960, 19708896, 5415497, -7360503, -4109293 }, + { 27736861, 10103576, 12500508, 8502413, -3413016, -9633558, 10436918, -1550276, -23659143, -8132100 }, + { 19492550, -12104365, -29681976, -852630, -3208171, 12403437, 30066266, 8367329, 13243957, 8709688 }, + }, + }, + { + { + { 12015105, 2801261, 28198131, 10151021, 24818120, -4743133, -11194191, -5645734, 5150968, 7274186 }, + { 2831366, -12492146, 1478975, 6122054, 23825128, -12733586, 31097299, 6083058, 31021603, -9793610 }, + { -2529932, -2229646, 445613, 10720828, -13849527, -11505937, -23507731, 16354465, 15067285, -14147707 }, + }, + { + { 7840942, 14037873, -33364863, 15934016, -728213, -3642706, 21403988, 1057586, -19379462, -12403220 }, + { 915865, -16469274, 15608285, -8789130, -24357026, 6060030, -17371319, 8410997, -7220461, 16527025 }, + { 32922597, -556987, 20336074, -16184568, 10903705, -5384487, 16957574, 52992, 23834301, 6588044 }, + }, + { + { 32752030, 11232950, 3381995, -8714866, 22652988, -10744103, 17159699, 16689107, -20314580, -1305992 }, + { -4689649, 9166776, -25710296, -10847306, 11576752, 12733943, 7924251, -2752281, 1976123, -7249027 }, + { 21251222, 16309901, -2983015, -6783122, 30810597, 12967303, 156041, -3371252, 12331345, -8237197 }, + }, + { + { 8651614, -4477032, -16085636, -4996994, 13002507, 2950805, 29054427, -5106970, 10008136, -4667901 }, + { 31486080, 15114593, -14261250, 12951354, 14369431, -7387845, 16347321, -13662089, 8684155, -10532952 }, + { 19443825, 11385320, 24468943, -9659068, -23919258, 2187569, -26263207, -6086921, 31316348, 14219878 }, + }, + { + { -28594490, 1193785, 32245219, 11392485, 31092169, 15722801, 27146014, 6992409, 29126555, 9207390 }, + { 32382935, 1110093, 18477781, 11028262, -27411763, -7548111, -4980517, 10843782, -7957600, -14435730 }, + { 2814918, 7836403, 27519878, -7868156, -20894015, -11553689, -21494559, 8550130, 28346258, 1994730 }, + }, + { + { -19578299, 8085545, -14000519, -3948622, 2785838, -16231307, -19516951, 7174894, 22628102, 8115180 }, + { -30405132, 955511, -11133838, -15078069, -32447087, -13278079, -25651578, 3317160, -9943017, 930272 }, + { -15303681, -6833769, 28856490, 1357446, 23421993, 1057177, 24091212, -1388970, -22765376, -10650715 }, + }, + { + { -22751231, -5303997, -12907607, -12768866, -15811511, -7797053, -14839018, -16554220, -1867018, 8398970 }, + { -31969310, 2106403, -4736360, 1362501, 12813763, 16200670, 22981545, -6291273, 18009408, -15772772 }, + { -17220923, -9545221, -27784654, 14166835, 29815394, 7444469, 29551787, -3727419, 19288549, 1325865 }, + }, + { + { 15100157, -15835752, -23923978, -1005098, -26450192, 15509408, 12376730, -3479146, 33166107, -8042750 }, + { 20909231, 13023121, -9209752, 16251778, -5778415, -8094914, 12412151, 10018715, 2213263, -13878373 }, + { 32529814, -11074689, 30361439, -16689753, -9135940, 1513226, 22922121, 6382134, -5766928, 8371348 }, + }, + }, + { + { + { 9923462, 11271500, 12616794, 3544722, -29998368, -1721626, 12891687, -8193132, -26442943, 10486144 }, + { -22597207, -7012665, 8587003, -8257861, 4084309, -12970062, 361726, 2610596, -23921530, -11455195 }, + { 5408411, -1136691, -4969122, 10561668, 24145918, 14240566, 31319731, -4235541, 19985175, -3436086 }, + }, + { + { -13994457, 16616821, 14549246, 3341099, 32155958, 13648976, -17577068, 8849297, 65030, 8370684 }, + { -8320926, -12049626, 31204563, 5839400, -20627288, -1057277, -19442942, 6922164, 12743482, -9800518 }, + { -2361371, 12678785, 28815050, 4759974, -23893047, 4884717, 23783145, 11038569, 18800704, 255233 }, + }, + { + { -5269658, -1773886, 13957886, 7990715, 23132995, 728773, 13393847, 9066957, 19258688, -14753793 }, + { -2936654, -10827535, -10432089, 14516793, -3640786, 4372541, -31934921, 2209390, -1524053, 2055794 }, + { 580882, 16705327, 5468415, -2683018, -30926419, -14696000, -7203346, -8994389, -30021019, 7394435 }, + }, + { + { 23838809, 1822728, -15738443, 15242727, 8318092, -3733104, -21672180, -3492205, -4821741, 14799921 }, + { 13345610, 9759151, 3371034, -16137791, 16353039, 8577942, 31129804, 13496856, -9056018, 7402518 }, + { 2286874, -4435931, -20042458, -2008336, -13696227, 5038122, 11006906, -15760352, 8205061, 1607563 }, + }, + { + { 14414086, -8002132, 3331830, -3208217, 22249151, -5594188, 18364661, -2906958, 30019587, -9029278 }, + { -27688051, 1585953, -10775053, 931069, -29120221, -11002319, -14410829, 12029093, 9944378, 8024 }, + { 4368715, -3709630, 29874200, -15022983, -20230386, -11410704, -16114594, -999085, -8142388, 5640030 }, + }, + { + { 10299610, 13746483, 11661824, 16234854, 7630238, 5998374, 9809887, -16694564, 15219798, -14327783 }, + { 27425505, -5719081, 3055006, 10660664, 23458024, 595578, -15398605, -1173195, -18342183, 9742717 }, + { 6744077, 2427284, 26042789, 2720740, -847906, 1118974, 32324614, 7406442, 12420155, 1994844 }, + }, + { + { 14012521, -5024720, -18384453, -9578469, -26485342, -3936439, -13033478, -10909803, 24319929, -6446333 }, + { 16412690, -4507367, 10772641, 15929391, -17068788, -4658621, 10555945, -10484049, -30102368, -4739048 }, + { 22397382, -7767684, -9293161, -12792868, 17166287, -9755136, -27333065, 6199366, 21880021, -12250760 }, + }, + { + { -4283307, 5368523, -31117018, 8163389, -30323063, 3209128, 16557151, 8890729, 8840445, 4957760 }, + { -15447727, 709327, -6919446, -10870178, -29777922, 6522332, -21720181, 12130072, -14796503, 5005757 }, + { -2114751, -14308128, 23019042, 15765735, -25269683, 6002752, 10183197, -13239326, -16395286, -2176112 }, + }, + }, + { + { + { -19025756, 1632005, 13466291, -7995100, -23640451, 16573537, -32013908, -3057104, 22208662, 2000468 }, + { 3065073, -1412761, -25598674, -361432, -17683065, -5703415, -8164212, 11248527, -3691214, -7414184 }, + { 10379208, -6045554, 8877319, 1473647, -29291284, -12507580, 16690915, 2553332, -3132688, 16400289 }, + }, + { + { 15716668, 1254266, -18472690, 7446274, -8448918, 6344164, -22097271, -7285580, 26894937, 9132066 }, + { 24158887, 12938817, 11085297, -8177598, -28063478, -4457083, -30576463, 64452, -6817084, -2692882 }, + { 13488534, 7794716, 22236231, 5989356, 25426474, -12578208, 2350710, -3418511, -4688006, 2364226 }, + }, + { + { 16335052, 9132434, 25640582, 6678888, 1725628, 8517937, -11807024, -11697457, 15445875, -7798101 }, + { 29004207, -7867081, 28661402, -640412, -12794003, -7943086, 31863255, -4135540, -278050, -15759279 }, + { -6122061, -14866665, -28614905, 14569919, -10857999, -3591829, 10343412, -6976290, -29828287, -10815811 }, + }, + { + { 27081650, 3463984, 14099042, -4517604, 1616303, -6205604, 29542636, 15372179, 17293797, 960709 }, + { 20263915, 11434237, -5765435, 11236810, 13505955, -10857102, -16111345, 6493122, -19384511, 7639714 }, + { -2830798, -14839232, 25403038, -8215196, -8317012, -16173699, 18006287, -16043750, 29994677, -15808121 }, + }, + { + { 9769828, 5202651, -24157398, -13631392, -28051003, -11561624, -24613141, -13860782, -31184575, 709464 }, + { 12286395, 13076066, -21775189, -1176622, -25003198, 4057652, -32018128, -8890874, 16102007, 13205847 }, + { 13733362, 5599946, 10557076, 3195751, -5557991, 8536970, -25540170, 8525972, 10151379, 10394400 }, + }, + { + { 4024660, -16137551, 22436262, 12276534, -9099015, -2686099, 19698229, 11743039, -33302334, 8934414 }, + { -15879800, -4525240, -8580747, -2934061, 14634845, -698278, -9449077, 3137094, -11536886, 11721158 }, + { 17555939, -5013938, 8268606, 2331751, -22738815, 9761013, 9319229, 8835153, -9205489, -1280045 }, + }, + { + { -461409, -7830014, 20614118, 16688288, -7514766, -4807119, 22300304, 505429, 6108462, -6183415 }, + { -5070281, 12367917, -30663534, 3234473, 32617080, -8422642, 29880583, -13483331, -26898490, -7867459 }, + { -31975283, 5726539, 26934134, 10237677, -3173717, -605053, 24199304, 3795095, 7592688, -14992079 }, + }, + { + { 21594432, -14964228, 17466408, -4077222, 32537084, 2739898, 6407723, 12018833, -28256052, 4298412 }, + { -20650503, -11961496, -27236275, 570498, 3767144, -1717540, 13891942, -1569194, 13717174, 10805743 }, + { -14676630, -15644296, 15287174, 11927123, 24177847, -8175568, -796431, 14860609, -26938930, -5863836 }, + }, + }, + { + { + { 12962541, 5311799, -10060768, 11658280, 18855286, -7954201, 13286263, -12808704, -4381056, 9882022 }, + { 18512079, 11319350, -20123124, 15090309, 18818594, 5271736, -22727904, 3666879, -23967430, -3299429 }, + { -6789020, -3146043, 16192429, 13241070, 15898607, -14206114, -10084880, -6661110, -2403099, 5276065 }, + }, + { + { 30169808, -5317648, 26306206, -11750859, 27814964, 7069267, 7152851, 3684982, 1449224, 13082861 }, + { 10342826, 3098505, 2119311, 193222, 25702612, 12233820, 23697382, 15056736, -21016438, -8202000 }, + { -33150110, 3261608, 22745853, 7948688, 19370557, -15177665, -26171976, 6482814, -10300080, -11060101 }, + }, + { + { 32869458, -5408545, 25609743, 15678670, -10687769, -15471071, 26112421, 2521008, -22664288, 6904815 }, + { 29506923, 4457497, 3377935, -9796444, -30510046, 12935080, 1561737, 3841096, -29003639, -6657642 }, + { 10340844, -6630377, -18656632, -2278430, 12621151, -13339055, 30878497, -11824370, -25584551, 5181966 }, + }, + { + { 25940115, -12658025, 17324188, -10307374, -8671468, 15029094, 24396252, -16450922, -2322852, -12388574 }, + { -21765684, 9916823, -1300409, 4079498, -1028346, 11909559, 1782390, 12641087, 20603771, -6561742 }, + { -18882287, -11673380, 24849422, 11501709, 13161720, -4768874, 1925523, 11914390, 4662781, 7820689 }, + }, + { + { 12241050, -425982, 8132691, 9393934, 32846760, -1599620, 29749456, 12172924, 16136752, 15264020 }, + { -10349955, -14680563, -8211979, 2330220, -17662549, -14545780, 10658213, 6671822, 19012087, 3772772 }, + { 3753511, -3421066, 10617074, 2028709, 14841030, -6721664, 28718732, -15762884, 20527771, 12988982 }, + }, + { + { -14822485, -5797269, -3707987, 12689773, -898983, -10914866, -24183046, -10564943, 3299665, -12424953 }, + { -16777703, -15253301, -9642417, 4978983, 3308785, 8755439, 6943197, 6461331, -25583147, 8991218 }, + { -17226263, 1816362, -1673288, -6086439, 31783888, -8175991, -32948145, 7417950, -30242287, 1507265 }, + }, + { + { 29692663, 6829891, -10498800, 4334896, 20945975, -11906496, -28887608, 8209391, 14606362, -10647073 }, + { -3481570, 8707081, 32188102, 5672294, 22096700, 1711240, -33020695, 9761487, 4170404, -2085325 }, + { -11587470, 14855945, -4127778, -1531857, -26649089, 15084046, 22186522, 16002000, -14276837, -8400798 }, + }, + { + { -4811456, 13761029, -31703877, -2483919, -3312471, 7869047, -7113572, -9620092, 13240845, 10965870 }, + { -7742563, -8256762, -14768334, -13656260, -23232383, 12387166, 4498947, 14147411, 29514390, 4302863 }, + { -13413405, -12407859, 20757302, -13801832, 14785143, 8976368, -5061276, -2144373, 17846988, -13971927 }, + }, + }, + { + { + { -2244452, -754728, -4597030, -1066309, -6247172, 1455299, -21647728, -9214789, -5222701, 12650267 }, + { -9906797, -16070310, 21134160, 12198166, -27064575, 708126, 387813, 13770293, -19134326, 10958663 }, + { 22470984, 12369526, 23446014, -5441109, -21520802, -9698723, -11772496, -11574455, -25083830, 4271862 }, + }, + { + { -25169565, -10053642, -19909332, 15361595, -5984358, 2159192, 75375, -4278529, -32526221, 8469673 }, + { 15854970, 4148314, -8893890, 7259002, 11666551, 13824734, -30531198, 2697372, 24154791, -9460943 }, + { 15446137, -15806644, 29759747, 14019369, 30811221, -9610191, -31582008, 12840104, 24913809, 9815020 }, + }, + { + { -4709286, -5614269, -31841498, -12288893, -14443537, 10799414, -9103676, 13438769, 18735128, 9466238 }, + { 11933045, 9281483, 5081055, -5183824, -2628162, -4905629, -7727821, -10896103, -22728655, 16199064 }, + { 14576810, 379472, -26786533, -8317236, -29426508, -10812974, -102766, 1876699, 30801119, 2164795 }, + }, + { + { 15995086, 3199873, 13672555, 13712240, -19378835, -4647646, -13081610, -15496269, -13492807, 1268052 }, + { -10290614, -3659039, -3286592, 10948818, 23037027, 3794475, -3470338, -12600221, -17055369, 3565904 }, + { 29210088, -9419337, -5919792, -4952785, 10834811, -13327726, -16512102, -10820713, -27162222, -14030531 }, + }, + { + { -13161890, 15508588, 16663704, -8156150, -28349942, 9019123, -29183421, -3769423, 2244111, -14001979 }, + { -5152875, -3800936, -9306475, -6071583, 16243069, 14684434, -25673088, -16180800, 13491506, 4641841 }, + { 10813417, 643330, -19188515, -728916, 30292062, -16600078, 27548447, -7721242, 14476989, -12767431 }, + }, + { + { 10292079, 9984945, 6481436, 8279905, -7251514, 7032743, 27282937, -1644259, -27912810, 12651324 }, + { -31185513, -813383, 22271204, 11835308, 10201545, 15351028, 17099662, 3988035, 21721536, -3148940 }, + { 10202177, -6545839, -31373232, -9574638, -32150642, -8119683, -12906320, 3852694, 13216206, 14842320 }, + }, + { + { -15815640, -10601066, -6538952, -7258995, -6984659, -6581778, -31500847, 13765824, -27434397, 9900184 }, + { 14465505, -13833331, -32133984, -14738873, -27443187, 12990492, 33046193, 15796406, -7051866, -8040114 }, + { 30924417, -8279620, 6359016, -12816335, 16508377, 9071735, -25488601, 15413635, 9524356, -7018878 }, + }, + { + { 12274201, -13175547, 32627641, -1785326, 6736625, 13267305, 5237659, -5109483, 15663516, 4035784 }, + { -2951309, 8903985, 17349946, 601635, -16432815, -4612556, -13732739, -15889334, -22258478, 4659091 }, + { -16916263, -4952973, -30393711, -15158821, 20774812, 15897498, 5736189, 15026997, -2178256, -13455585 }, + }, + }, + { + { + { -8858980, -2219056, 28571666, -10155518, -474467, -10105698, -3801496, 278095, 23440562, -290208 }, + { 10226241, -5928702, 15139956, 120818, -14867693, 5218603, 32937275, 11551483, -16571960, -7442864 }, + { 17932739, -12437276, -24039557, 10749060, 11316803, 7535897, 22503767, 5561594, -3646624, 3898661 }, + }, + { + { 7749907, -969567, -16339731, -16464, -25018111, 15122143, -1573531, 7152530, 21831162, 1245233 }, + { 26958459, -14658026, 4314586, 8346991, -5677764, 11960072, -32589295, -620035, -30402091, -16716212 }, + { -12165896, 9166947, 33491384, 13673479, 29787085, 13096535, 6280834, 14587357, -22338025, 13987525 }, + }, + { + { -24349909, 7778775, 21116000, 15572597, -4833266, -5357778, -4300898, -5124639, -7469781, -2858068 }, + { 9681908, -6737123, -31951644, 13591838, -6883821, 386950, 31622781, 6439245, -14581012, 4091397 }, + { -8426427, 1470727, -28109679, -1596990, 3978627, -5123623, -19622683, 12092163, 29077877, -14741988 }, + }, + { + { 5269168, -6859726, -13230211, -8020715, 25932563, 1763552, -5606110, -5505881, -20017847, 2357889 }, + { 32264008, -15407652, -5387735, -1160093, -2091322, -3946900, 23104804, -12869908, 5727338, 189038 }, + { 14609123, -8954470, -6000566, -16622781, -14577387, -7743898, -26745169, 10942115, -25888931, -14884697 }, + }, + { + { 20513500, 5557931, -15604613, 7829531, 26413943, -2019404, -21378968, 7471781, 13913677, -5137875 }, + { -25574376, 11967826, 29233242, 12948236, -6754465, 4713227, -8940970, 14059180, 12878652, 8511905 }, + { -25656801, 3393631, -2955415, -7075526, -2250709, 9366908, -30223418, 6812974, 5568676, -3127656 }, + }, + { + { 11630004, 12144454, 2116339, 13606037, 27378885, 15676917, -17408753, -13504373, -14395196, 8070818 }, + { 27117696, -10007378, -31282771, -5570088, 1127282, 12772488, -29845906, 10483306, -11552749, -1028714 }, + { 10637467, -5688064, 5674781, 1072708, -26343588, -6982302, -1683975, 9177853, -27493162, 15431203 }, + }, + { + { 20525145, 10892566, -12742472, 12779443, -29493034, 16150075, -28240519, 14943142, -15056790, -7935931 }, + { -30024462, 5626926, -551567, -9981087, 753598, 11981191, 25244767, -3239766, -3356550, 9594024 }, + { -23752644, 2636870, -5163910, -10103818, 585134, 7877383, 11345683, -6492290, 13352335, -10977084 }, + }, + { + { -1931799, -5407458, 3304649, -12884869, 17015806, -4877091, -29783850, -7752482, -13215537, -319204 }, + { 20239939, 6607058, 6203985, 3483793, -18386976, -779229, -20723742, 15077870, -22750759, 14523817 }, + { 27406042, -6041657, 27423596, -4497394, 4996214, 10002360, -28842031, -4545494, -30172742, -4805667 }, + }, + }, + { + { + { 11374242, 12660715, 17861383, -12540833, 10935568, 1099227, -13886076, -9091740, -27727044, 11358504 }, + { -12730809, 10311867, 1510375, 10778093, -2119455, -9145702, 32676003, 11149336, -26123651, 4985768 }, + { -19096303, 341147, -6197485, -239033, 15756973, -8796662, -983043, 13794114, -19414307, -15621255 }, + }, + { + { 6490081, 11940286, 25495923, -7726360, 8668373, -8751316, 3367603, 6970005, -1691065, -9004790 }, + { 1656497, 13457317, 15370807, 6364910, 13605745, 8362338, -19174622, -5475723, -16796596, -5031438 }, + { -22273315, -13524424, -64685, -4334223, -18605636, -10921968, -20571065, -7007978, -99853, -10237333 }, + }, + { + { 17747465, 10039260, 19368299, -4050591, -20630635, -16041286, 31992683, -15857976, -29260363, -5511971 }, + { 31932027, -4986141, -19612382, 16366580, 22023614, 88450, 11371999, -3744247, 4882242, -10626905 }, + { 29796507, 37186, 19818052, 10115756, -11829032, 3352736, 18551198, 3272828, -5190932, -4162409 }, + }, + { + { 12501286, 4044383, -8612957, -13392385, -32430052, 5136599, -19230378, -3529697, 330070, -3659409 }, + { 6384877, 2899513, 17807477, 7663917, -2358888, 12363165, 25366522, -8573892, -271295, 12071499 }, + { -8365515, -4042521, 25133448, -4517355, -6211027, 2265927, -32769618, 1936675, -5159697, 3829363 }, + }, + { + { 28425966, -5835433, -577090, -4697198, -14217555, 6870930, 7921550, -6567787, 26333140, 14267664 }, + { -11067219, 11871231, 27385719, -10559544, -4585914, -11189312, 10004786, -8709488, -21761224, 8930324 }, + { -21197785, -16396035, 25654216, -1725397, 12282012, 11008919, 1541940, 4757911, -26491501, -16408940 }, + }, + { + { 13537262, -7759490, -20604840, 10961927, -5922820, -13218065, -13156584, 6217254, -15943699, 13814990 }, + { -17422573, 15157790, 18705543, 29619, 24409717, -260476, 27361681, 9257833, -1956526, -1776914 }, + { -25045300, -10191966, 15366585, 15166509, -13105086, 8423556, -29171540, 12361135, -18685978, 4578290 }, + }, + { + { 24579768, 3711570, 1342322, -11180126, -27005135, 14124956, -22544529, 14074919, 21964432, 8235257 }, + { -6528613, -2411497, 9442966, -5925588, 12025640, -1487420, -2981514, -1669206, 13006806, 2355433 }, + { -16304899, -13605259, -6632427, -5142349, 16974359, -10911083, 27202044, 1719366, 1141648, -12796236 }, + }, + { + { -12863944, -13219986, -8318266, -11018091, -6810145, -4843894, 13475066, -3133972, 32674895, 13715045 }, + { 11423335, -5468059, 32344216, 8962751, 24989809, 9241752, -13265253, 16086212, -28740881, -15642093 }, + { -1409668, 12530728, -6368726, 10847387, 19531186, -14132160, -11709148, 7791794, -27245943, 4383347 }, + }, + }, + { + { + { -28970898, 5271447, -1266009, -9736989, -12455236, 16732599, -4862407, -4906449, 27193557, 6245191 }, + { -15193956, 5362278, -1783893, 2695834, 4960227, 12840725, 23061898, 3260492, 22510453, 8577507 }, + { -12632451, 11257346, -32692994, 13548177, -721004, 10879011, 31168030, 13952092, -29571492, -3635906 }, + }, + { + { 3877321, -9572739, 32416692, 5405324, -11004407, -13656635, 3759769, 11935320, 5611860, 8164018 }, + { -16275802, 14667797, 15906460, 12155291, -22111149, -9039718, 32003002, -8832289, 5773085, -8422109 }, + { -23788118, -8254300, 1950875, 8937633, 18686727, 16459170, -905725, 12376320, 31632953, 190926 }, + }, + { + { -24593607, -16138885, -8423991, 13378746, 14162407, 6901328, -8288749, 4508564, -25341555, -3627528 }, + { 8884438, -5884009, 6023974, 10104341, -6881569, -4941533, 18722941, -14786005, -1672488, 827625 }, + { -32720583, -16289296, -32503547, 7101210, 13354605, 2659080, -1800575, -14108036, -24878478, 1541286 }, + }, + { + { 2901347, -1117687, 3880376, -10059388, -17620940, -3612781, -21802117, -3567481, 20456845, -1885033 }, + { 27019610, 12299467, -13658288, -1603234, -12861660, -4861471, -19540150, -5016058, 29439641, 15138866 }, + { 21536104, -6626420, -32447818, -10690208, -22408077, 5175814, -5420040, -16361163, 7779328, 109896 }, + }, + { + { 30279744, 14648750, -8044871, 6425558, 13639621, -743509, 28698390, 12180118, 23177719, -554075 }, + { 26572847, 3405927, -31701700, 12890905, -19265668, 5335866, -6493768, 2378492, 4439158, -13279347 }, + { -22716706, 3489070, -9225266, -332753, 18875722, -1140095, 14819434, -12731527, -17717757, -5461437 }, + }, + { + { -5056483, 16566551, 15953661, 3767752, -10436499, 15627060, -820954, 2177225, 8550082, -15114165 }, + { -18473302, 16596775, -381660, 15663611, 22860960, 15585581, -27844109, -3582739, -23260460, -8428588 }, + { -32480551, 15707275, -8205912, -5652081, 29464558, 2713815, -22725137, 15860482, -21902570, 1494193 }, + }, + { + { -19562091, -14087393, -25583872, -9299552, 13127842, 759709, 21923482, 16529112, 8742704, 12967017 }, + { -28464899, 1553205, 32536856, -10473729, -24691605, -406174, -8914625, -2933896, -29903758, 15553883 }, + { 21877909, 3230008, 9881174, 10539357, -4797115, 2841332, 11543572, 14513274, 19375923, -12647961 }, + }, + { + { 8832269, -14495485, 13253511, 5137575, 5037871, 4078777, 24880818, -6222716, 2862653, 9455043 }, + { 29306751, 5123106, 20245049, -14149889, 9592566, 8447059, -2077124, -2990080, 15511449, 4789663 }, + { -20679756, 7004547, 8824831, -9434977, -4045704, -3750736, -5754762, 108893, 23513200, 16652362 }, + }, + }, + { + { + { -33256173, 4144782, -4476029, -6579123, 10770039, -7155542, -6650416, -12936300, -18319198, 10212860 }, + { 2756081, 8598110, 7383731, -6859892, 22312759, -1105012, 21179801, 2600940, -9988298, -12506466 }, + { -24645692, 13317462, -30449259, -15653928, 21365574, -10869657, 11344424, 864440, -2499677, -16710063 }, + }, + { + { -26432803, 6148329, -17184412, -14474154, 18782929, -275997, -22561534, 211300, 2719757, 4940997 }, + { -1323882, 3911313, -6948744, 14759765, -30027150, 7851207, 21690126, 8518463, 26699843, 5276295 }, + { -13149873, -6429067, 9396249, 365013, 24703301, -10488939, 1321586, 149635, -15452774, 7159369 }, + }, + { + { 9987780, -3404759, 17507962, 9505530, 9731535, -2165514, 22356009, 8312176, 22477218, -8403385 }, + { 18155857, -16504990, 19744716, 9006923, 15154154, -10538976, 24256460, -4864995, -22548173, 9334109 }, + { 2986088, -4911893, 10776628, -3473844, 10620590, -7083203, -21413845, 14253545, -22587149, 536906 }, + }, + { + { 4377756, 8115836, 24567078, 15495314, 11625074, 13064599, 7390551, 10589625, 10838060, -15420424 }, + { -19342404, 867880, 9277171, -3218459, -14431572, -1986443, 19295826, -15796950, 6378260, 699185 }, + { 7895026, 4057113, -7081772, -13077756, -17886831, -323126, -716039, 15693155, -5045064, -13373962 }, + }, + { + { -7737563, -5869402, -14566319, -7406919, 11385654, 13201616, 31730678, -10962840, -3918636, -9669325 }, + { 10188286, -15770834, -7336361, 13427543, 22223443, 14896287, 30743455, 7116568, -21786507, 5427593 }, + { 696102, 13206899, 27047647, -10632082, 15285305, -9853179, 10798490, -4578720, 19236243, 12477404 }, + }, + { + { -11229439, 11243796, -17054270, -8040865, -788228, -8167967, -3897669, 11180504, -23169516, 7733644 }, + { 17800790, -14036179, -27000429, -11766671, 23887827, 3149671, 23466177, -10538171, 10322027, 15313801 }, + { 26246234, 11968874, 32263343, -5468728, 6830755, -13323031, -15794704, -101982, -24449242, 10890804 }, + }, + { + { -31365647, 10271363, -12660625, -6267268, 16690207, -13062544, -14982212, 16484931, 25180797, -5334884 }, + { -586574, 10376444, -32586414, -11286356, 19801893, 10997610, 2276632, 9482883, 316878, 13820577 }, + { -9882808, -4510367, -2115506, 16457136, -11100081, 11674996, 30756178, -7515054, 30696930, -3712849 }, + }, + { + { 32988917, -9603412, 12499366, 7910787, -10617257, -11931514, -7342816, -9985397, -32349517, 7392473 }, + { -8855661, 15927861, 9866406, -3649411, -2396914, -16655781, -30409476, -9134995, 25112947, -2926644 }, + { -2504044, -436966, 25621774, -5678772, 15085042, -5479877, -24884878, -13526194, 5537438, -13914319 }, + }, + }, + { + { + { -11225584, 2320285, -9584280, 10149187, -33444663, 5808648, -14876251, -1729667, 31234590, 6090599 }, + { -9633316, 116426, 26083934, 2897444, -6364437, -2688086, 609721, 15878753, -6970405, -9034768 }, + { -27757857, 247744, -15194774, -9002551, 23288161, -10011936, -23869595, 6503646, 20650474, 1804084 }, + }, + { + { -27589786, 15456424, 8972517, 8469608, 15640622, 4439847, 3121995, -10329713, 27842616, -202328 }, + { -15306973, 2839644, 22530074, 10026331, 4602058, 5048462, 28248656, 5031932, -11375082, 12714369 }, + { 20807691, -7270825, 29286141, 11421711, -27876523, -13868230, -21227475, 1035546, -19733229, 12796920 }, + }, + { + { 12076899, -14301286, -8785001, -11848922, -25012791, 16400684, -17591495, -12899438, 3480665, -15182815 }, + { -32361549, 5457597, 28548107, 7833186, 7303070, -11953545, -24363064, -15921875, -33374054, 2771025 }, + { -21389266, 421932, 26597266, 6860826, 22486084, -6737172, -17137485, -4210226, -24552282, 15673397 }, + }, + { + { -20184622, 2338216, 19788685, -9620956, -4001265, -8740893, -20271184, 4733254, 3727144, -12934448 }, + { 6120119, 814863, -11794402, -622716, 6812205, -15747771, 2019594, 7975683, 31123697, -10958981 }, + { 30069250, -11435332, 30434654, 2958439, 18399564, -976289, 12296869, 9204260, -16432438, 9648165 }, + }, + { + { 32705432, -1550977, 30705658, 7451065, -11805606, 9631813, 3305266, 5248604, -26008332, -11377501 }, + { 17219865, 2375039, -31570947, -5575615, -19459679, 9219903, 294711, 15298639, 2662509, -16297073 }, + { -1172927, -7558695, -4366770, -4287744, -21346413, -8434326, 32087529, -1222777, 32247248, -14389861 }, + }, + { + { 14312628, 1221556, 17395390, -8700143, -4945741, -8684635, -28197744, -9637817, -16027623, -13378845 }, + { -1428825, -9678990, -9235681, 6549687, -7383069, -468664, 23046502, 9803137, 17597934, 2346211 }, + { 18510800, 15337574, 26171504, 981392, -22241552, 7827556, -23491134, -11323352, 3059833, -11782870 }, + }, + { + { 10141598, 6082907, 17829293, -1947643, 9830092, 13613136, -25556636, -5544586, -33502212, 3592096 }, + { 33114168, -15889352, -26525686, -13343397, 33076705, 8716171, 1151462, 1521897, -982665, -6837803 }, + { -32939165, -4255815, 23947181, -324178, -33072974, -12305637, -16637686, 3891704, 26353178, 693168 }, + }, + { + { 30374239, 1595580, -16884039, 13186931, 4600344, 406904, 9585294, -400668, 31375464, 14369965 }, + { -14370654, -7772529, 1510301, 6434173, -18784789, -6262728, 32732230, -13108839, 17901441, 16011505 }, + { 18171223, -11934626, -12500402, 15197122, -11038147, -15230035, -19172240, -16046376, 8764035, 12309598 }, + }, + }, + { + { + { 5975908, -5243188, -19459362, -9681747, -11541277, 14015782, -23665757, 1228319, 17544096, -10593782 }, + { 5811932, -1715293, 3442887, -2269310, -18367348, -8359541, -18044043, -15410127, -5565381, 12348900 }, + { -31399660, 11407555, 25755363, 6891399, -3256938, 14872274, -24849353, 8141295, -10632534, -585479 }, + }, + { + { -12675304, 694026, -5076145, 13300344, 14015258, -14451394, -9698672, -11329050, 30944593, 1130208 }, + { 8247766, -6710942, -26562381, -7709309, -14401939, -14648910, 4652152, 2488540, 23550156, -271232 }, + { 17294316, -3788438, 7026748, 15626851, 22990044, 113481, 2267737, -5908146, -408818, -137719 }, + }, + { + { 16091085, -16253926, 18599252, 7340678, 2137637, -1221657, -3364161, 14550936, 3260525, -7166271 }, + { -4910104, -13332887, 18550887, 10864893, -16459325, -7291596, -23028869, -13204905, -12748722, 2701326 }, + { -8574695, 16099415, 4629974, -16340524, -20786213, -6005432, -10018363, 9276971, 11329923, 1862132 }, + }, + { + { 14763076, -15903608, -30918270, 3689867, 3511892, 10313526, -21951088, 12219231, -9037963, -940300 }, + { 8894987, -3446094, 6150753, 3013931, 301220, 15693451, -31981216, -2909717, -15438168, 11595570 }, + { 15214962, 3537601, -26238722, -14058872, 4418657, -15230761, 13947276, 10730794, -13489462, -4363670 }, + }, + { + { -2538306, 7682793, 32759013, 263109, -29984731, -7955452, -22332124, -10188635, 977108, 699994 }, + { -12466472, 4195084, -9211532, 550904, -15565337, 12917920, 19118110, -439841, -30534533, -14337913 }, + { 31788461, -14507657, 4799989, 7372237, 8808585, -14747943, 9408237, -10051775, 12493932, -5409317 }, + }, + { + { -25680606, 5260744, -19235809, -6284470, -3695942, 16566087, 27218280, 2607121, 29375955, 6024730 }, + { 842132, -2794693, -4763381, -8722815, 26332018, -12405641, 11831880, 6985184, -9940361, 2854096 }, + { -4847262, -7969331, 2516242, -5847713, 9695691, -7221186, 16512645, 960770, 12121869, 16648078 }, + }, + { + { -15218652, 14667096, -13336229, 2013717, 30598287, -464137, -31504922, -7882064, 20237806, 2838411 }, + { -19288047, 4453152, 15298546, -16178388, 22115043, -15972604, 12544294, -13470457, 1068881, -12499905 }, + { -9558883, -16518835, 33238498, 13506958, 30505848, -1114596, -8486907, -2630053, 12521378, 4845654 }, + }, + { + { -28198521, 10744108, -2958380, 10199664, 7759311, -13088600, 3409348, -873400, -6482306, -12885870 }, + { -23561822, 6230156, -20382013, 10655314, -24040585, -11621172, 10477734, -1240216, -3113227, 13974498 }, + { 12966261, 15550616, -32038948, -1615346, 21025980, -629444, 5642325, 7188737, 18895762, 12629579 }, + }, + }, + { + { + { 14741879, -14946887, 22177208, -11721237, 1279741, 8058600, 11758140, 789443, 32195181, 3895677 }, + { 10758205, 15755439, -4509950, 9243698, -4879422, 6879879, -2204575, -3566119, -8982069, 4429647 }, + { -2453894, 15725973, -20436342, -10410672, -5803908, -11040220, -7135870, -11642895, 18047436, -15281743 }, + }, + { + { -25173001, -11307165, 29759956, 11776784, -22262383, -15820455, 10993114, -12850837, -17620701, -9408468 }, + { 21987233, 700364, -24505048, 14972008, -7774265, -5718395, 32155026, 2581431, -29958985, 8773375 }, + { -25568350, 454463, -13211935, 16126715, 25240068, 8594567, 20656846, 12017935, -7874389, -13920155 }, + }, + { + { 6028182, 6263078, -31011806, -11301710, -818919, 2461772, -31841174, -5468042, -1721788, -2776725 }, + { -12278994, 16624277, 987579, -5922598, 32908203, 1248608, 7719845, -4166698, 28408820, 6816612 }, + { -10358094, -8237829, 19549651, -12169222, 22082623, 16147817, 20613181, 13982702, -10339570, 5067943 }, + }, + { + { -30505967, -3821767, 12074681, 13582412, -19877972, 2443951, -19719286, 12746132, 5331210, -10105944 }, + { 30528811, 3601899, -1957090, 4619785, -27361822, -15436388, 24180793, -12570394, 27679908, -1648928 }, + { 9402404, -13957065, 32834043, 10838634, -26580150, -13237195, 26653274, -8685565, 22611444, -12715406 }, + }, + { + { 22190590, 1118029, 22736441, 15130463, -30460692, -5991321, 19189625, -4648942, 4854859, 6622139 }, + { -8310738, -2953450, -8262579, -3388049, -10401731, -271929, 13424426, -3567227, 26404409, 13001963 }, + { -31241838, -15415700, -2994250, 8939346, 11562230, -12840670, -26064365, -11621720, -15405155, 11020693 }, + }, + { + { 1866042, -7949489, -7898649, -10301010, 12483315, 13477547, 3175636, -12424163, 28761762, 1406734 }, + { -448555, -1777666, 13018551, 3194501, -9580420, -11161737, 24760585, -4347088, 25577411, -13378680 }, + { -24290378, 4759345, -690653, -1852816, 2066747, 10693769, -29595790, 9884936, -9368926, 4745410 }, + }, + { + { -9141284, 6049714, -19531061, -4341411, -31260798, 9944276, -15462008, -11311852, 10931924, -11931931 }, + { -16561513, 14112680, -8012645, 4817318, -8040464, -11414606, -22853429, 10856641, -20470770, 13434654 }, + { 22759489, -10073434, -16766264, -1871422, 13637442, -10168091, 1765144, -12654326, 28445307, -5364710 }, + }, + { + { 29875063, 12493613, 2795536, -3786330, 1710620, 15181182, -10195717, -8788675, 9074234, 1167180 }, + { -26205683, 11014233, -9842651, -2635485, -26908120, 7532294, -18716888, -9535498, 3843903, 9367684 }, + { -10969595, -6403711, 9591134, 9582310, 11349256, 108879, 16235123, 8601684, -139197, 4242895 }, + }, + }, + { + { + { 22092954, -13191123, -2042793, -11968512, 32186753, -11517388, -6574341, 2470660, -27417366, 16625501 }, + { -11057722, 3042016, 13770083, -9257922, 584236, -544855, -7770857, 2602725, -27351616, 14247413 }, + { 6314175, -10264892, -32772502, 15957557, -10157730, 168750, -8618807, 14290061, 27108877, -1180880 }, + }, + { + { -8586597, -7170966, 13241782, 10960156, -32991015, -13794596, 33547976, -11058889, -27148451, 981874 }, + { 22833440, 9293594, -32649448, -13618667, -9136966, 14756819, -22928859, -13970780, -10479804, -16197962 }, + { -7768587, 3326786, -28111797, 10783824, 19178761, 14905060, 22680049, 13906969, -15933690, 3797899 }, + }, + { + { 21721356, -4212746, -12206123, 9310182, -3882239, -13653110, 23740224, -2709232, 20491983, -8042152 }, + { 9209270, -15135055, -13256557, -6167798, -731016, 15289673, 25947805, 15286587, 30997318, -6703063 }, + { 7392032, 16618386, 23946583, -8039892, -13265164, -1533858, -14197445, -2321576, 17649998, -250080 }, + }, + { + { -9301088, -14193827, 30609526, -3049543, -25175069, -1283752, -15241566, -9525724, -2233253, 7662146 }, + { -17558673, 1763594, -33114336, 15908610, -30040870, -12174295, 7335080, -8472199, -3174674, 3440183 }, + { -19889700, -5977008, -24111293, -9688870, 10799743, -16571957, 40450, -4431835, 4862400, 1133 }, + }, + { + { -32856209, -7873957, -5422389, 14860950, -16319031, 7956142, 7258061, 311861, -30594991, -7379421 }, + { -3773428, -1565936, 28985340, 7499440, 24445838, 9325937, 29727763, 16527196, 18278453, 15405622 }, + { -4381906, 8508652, -19898366, -3674424, -5984453, 15149970, -13313598, 843523, -21875062, 13626197 }, + }, + { + { 2281448, -13487055, -10915418, -2609910, 1879358, 16164207, -10783882, 3953792, 13340839, 15928663 }, + { 31727126, -7179855, -18437503, -8283652, 2875793, -16390330, -25269894, -7014826, -23452306, 5964753 }, + { 4100420, -5959452, -17179337, 6017714, -18705837, 12227141, -26684835, 11344144, 2538215, -7570755 }, + }, + { + { -9433605, 6123113, 11159803, -2156608, 30016280, 14966241, -20474983, 1485421, -629256, -15958862 }, + { -26804558, 4260919, 11851389, 9658551, -32017107, 16367492, -20205425, -13191288, 11659922, -11115118 }, + { 26180396, 10015009, -30844224, -8581293, 5418197, 9480663, 2231568, -10170080, 33100372, -1306171 }, + }, + { + { 15121113, -5201871, -10389905, 15427821, -27509937, -15992507, 21670947, 4486675, -5931810, -14466380 }, + { 16166486, -9483733, -11104130, 6023908, -31926798, -1364923, 2340060, -16254968, -10735770, -10039824 }, + { 28042865, -3557089, -12126526, 12259706, -3717498, -6945899, 6766453, -8689599, 18036436, 5803270 }, + }, + }, + { + { + { -817581, 6763912, 11803561, 1585585, 10958447, -2671165, 23855391, 4598332, -6159431, -14117438 }, + { -31031306, -14256194, 17332029, -2383520, 31312682, -5967183, 696309, 50292, -20095739, 11763584 }, + { -594563, -2514283, -32234153, 12643980, 12650761, 14811489, 665117, -12613632, -19773211, -10713562 }, + }, + { + { 30464590, -11262872, -4127476, -12734478, 19835327, -7105613, -24396175, 2075773, -17020157, 992471 }, + { 18357185, -6994433, 7766382, 16342475, -29324918, 411174, 14578841, 8080033, -11574335, -10601610 }, + { 19598397, 10334610, 12555054, 2555664, 18821899, -10339780, 21873263, 16014234, 26224780, 16452269 }, + }, + { + { -30223925, 5145196, 5944548, 16385966, 3976735, 2009897, -11377804, -7618186, -20533829, 3698650 }, + { 14187449, 3448569, -10636236, -10810935, -22663880, -3433596, 7268410, -10890444, 27394301, 12015369 }, + { 19695761, 16087646, 28032085, 12999827, 6817792, 11427614, 20244189, -1312777, -13259127, -3402461 }, + }, + { + { 30860103, 12735208, -1888245, -4699734, -16974906, 2256940, -8166013, 12298312, -8550524, -10393462 }, + { -5719826, -11245325, -1910649, 15569035, 26642876, -7587760, -5789354, -15118654, -4976164, 12651793 }, + { -2848395, 9953421, 11531313, -5282879, 26895123, -12697089, -13118820, -16517902, 9768698, -2533218 }, + }, + { + { -24719459, 1894651, -287698, -4704085, 15348719, -8156530, 32767513, 12765450, 4940095, 10678226 }, + { 18860224, 15980149, -18987240, -1562570, -26233012, -11071856, -7843882, 13944024, -24372348, 16582019 }, + { -15504260, 4970268, -29893044, 4175593, -20993212, -2199756, -11704054, 15444560, -11003761, 7989037 }, + }, + { + { 31490452, 5568061, -2412803, 2182383, -32336847, 4531686, -32078269, 6200206, -19686113, -14800171 }, + { -17308668, -15879940, -31522777, -2831, -32887382, 16375549, 8680158, -16371713, 28550068, -6857132 }, + { -28126887, -5688091, 16837845, -1820458, -6850681, 12700016, -30039981, 4364038, 1155602, 5988841 }, + }, + { + { 21890435, -13272907, -12624011, 12154349, -7831873, 15300496, 23148983, -4470481, 24618407, 8283181 }, + { -33136107, -10512751, 9975416, 6841041, -31559793, 16356536, 3070187, -7025928, 1466169, 10740210 }, + { -1509399, -15488185, -13503385, -10655916, 32799044, 909394, -13938903, -5779719, -32164649, -15327040 }, + }, + { + { 3960823, -14267803, -28026090, -15918051, -19404858, 13146868, 15567327, 951507, -3260321, -573935 }, + { 24740841, 5052253, -30094131, 8961361, 25877428, 6165135, -24368180, 14397372, -7380369, -6144105 }, + { -28888365, 3510803, -28103278, -1158478, -11238128, -10631454, -15441463, -14453128, -1625486, -6494814 }, + }, + }, + { + { + { 793299, -9230478, 8836302, -6235707, -27360908, -2369593, 33152843, -4885251, -9906200, -621852 }, + { 5666233, 525582, 20782575, -8038419, -24538499, 14657740, 16099374, 1468826, -6171428, -15186581 }, + { -4859255, -3779343, -2917758, -6748019, 7778750, 11688288, -30404353, -9871238, -1558923, -9863646 }, + }, + { + { 10896332, -7719704, 824275, 472601, -19460308, 3009587, 25248958, 14783338, -30581476, -15757844 }, + { 10566929, 12612572, -31944212, 11118703, -12633376, 12362879, 21752402, 8822496, 24003793, 14264025 }, + { 27713862, -7355973, -11008240, 9227530, 27050101, 2504721, 23886875, -13117525, 13958495, -5732453 }, + }, + { + { -23481610, 4867226, -27247128, 3900521, 29838369, -8212291, -31889399, -10041781, 7340521, -15410068 }, + { 4646514, -8011124, -22766023, -11532654, 23184553, 8566613, 31366726, -1381061, -15066784, -10375192 }, + { -17270517, 12723032, -16993061, 14878794, 21619651, -6197576, 27584817, 3093888, -8843694, 3849921 }, + }, + { + { -9064912, 2103172, 25561640, -15125738, -5239824, 9582958, 32477045, -9017955, 5002294, -15550259 }, + { -12057553, -11177906, 21115585, -13365155, 8808712, -12030708, 16489530, 13378448, -25845716, 12741426 }, + { -5946367, 10645103, -30911586, 15390284, -3286982, -7118677, 24306472, 15852464, 28834118, -7646072 }, + }, + { + { -17335748, -9107057, -24531279, 9434953, -8472084, -583362, -13090771, 455841, 20461858, 5491305 }, + { 13669248, -16095482, -12481974, -10203039, -14569770, -11893198, -24995986, 11293807, -28588204, -9421832 }, + { 28497928, 6272777, -33022994, 14470570, 8906179, -1225630, 18504674, -14165166, 29867745, -8795943 }, + }, + { + { -16207023, 13517196, -27799630, -13697798, 24009064, -6373891, -6367600, -13175392, 22853429, -4012011 }, + { 24191378, 16712145, -13931797, 15217831, 14542237, 1646131, 18603514, -11037887, 12876623, -2112447 }, + { 17902668, 4518229, -411702, -2829247, 26878217, 5258055, -12860753, 608397, 16031844, 3723494 }, + }, + { + { -28632773, 12763728, -20446446, 7577504, 33001348, -13017745, 17558842, -7872890, 23896954, -4314245 }, + { -20005381, -12011952, 31520464, 605201, 2543521, 5991821, -2945064, 7229064, -9919646, -8826859 }, + { 28816045, 298879, -28165016, -15920938, 19000928, -1665890, -12680833, -2949325, -18051778, -2082915 }, + }, + { + { 16000882, -344896, 3493092, -11447198, -29504595, -13159789, 12577740, 16041268, -19715240, 7847707 }, + { 10151868, 10572098, 27312476, 7922682, 14825339, 4723128, -32855931, -6519018, -10020567, 3852848 }, + { -11430470, 15697596, -21121557, -4420647, 5386314, 15063598, 16514493, -15932110, 29330899, -15076224 }, + }, + }, + { + { + { -25499735, -4378794, -15222908, -6901211, 16615731, 2051784, 3303702, 15490, -27548796, 12314391 }, + { 15683520, -6003043, 18109120, -9980648, 15337968, -5997823, -16717435, 15921866, 16103996, -3731215 }, + { -23169824, -10781249, 13588192, -1628807, -3798557, -1074929, -19273607, 5402699, -29815713, -9841101 }, + }, + { + { 23190676, 2384583, -32714340, 3462154, -29903655, -1529132, -11266856, 8911517, -25205859, 2739713 }, + { 21374101, -3554250, -33524649, 9874411, 15377179, 11831242, -33529904, 6134907, 4931255, 11987849 }, + { -7732, -2978858, -16223486, 7277597, 105524, -322051, -31480539, 13861388, -30076310, 10117930 }, + }, + { + { -29501170, -10744872, -26163768, 13051539, -25625564, 5089643, -6325503, 6704079, 12890019, 15728940 }, + { -21972360, -11771379, -951059, -4418840, 14704840, 2695116, 903376, -10428139, 12885167, 8311031 }, + { -17516482, 5352194, 10384213, -13811658, 7506451, 13453191, 26423267, 4384730, 1888765, -5435404 }, + }, + { + { -25817338, -3107312, -13494599, -3182506, 30896459, -13921729, -32251644, -12707869, -19464434, -3340243 }, + { -23607977, -2665774, -526091, 4651136, 5765089, 4618330, 6092245, 14845197, 17151279, -9854116 }, + { -24830458, -12733720, -15165978, 10367250, -29530908, -265356, 22825805, -7087279, -16866484, 16176525 }, + }, + { + { -23583256, 6564961, 20063689, 3798228, -4740178, 7359225, 2006182, -10363426, -28746253, -10197509 }, + { -10626600, -4486402, -13320562, -5125317, 3432136, -6393229, 23632037, -1940610, 32808310, 1099883 }, + { 15030977, 5768825, -27451236, -2887299, -6427378, -15361371, -15277896, -6809350, 2051441, -15225865 }, + }, + { + { -3362323, -7239372, 7517890, 9824992, 23555850, 295369, 5148398, -14154188, -22686354, 16633660 }, + { 4577086, -16752288, 13249841, -15304328, 19958763, -14537274, 18559670, -10759549, 8402478, -9864273 }, + { -28406330, -1051581, -26790155, -907698, -17212414, -11030789, 9453451, -14980072, 17983010, 9967138 }, + }, + { + { -25762494, 6524722, 26585488, 9969270, 24709298, 1220360, -1677990, 7806337, 17507396, 3651560 }, + { -10420457, -4118111, 14584639, 15971087, -15768321, 8861010, 26556809, -5574557, -18553322, -11357135 }, + { 2839101, 14284142, 4029895, 3472686, 14402957, 12689363, -26642121, 8459447, -5605463, -7621941 }, + }, + { + { -4839289, -3535444, 9744961, 2871048, 25113978, 3187018, -25110813, -849066, 17258084, -7977739 }, + { 18164541, -10595176, -17154882, -1542417, 19237078, -9745295, 23357533, -15217008, 26908270, 12150756 }, + { -30264870, -7647865, 5112249, -7036672, -1499807, -6974257, 43168, -5537701, -32302074, 16215819 }, + }, + }, + { + { + { -6898905, 9824394, -12304779, -4401089, -31397141, -6276835, 32574489, 12532905, -7503072, -8675347 }, + { -27343522, -16515468, -27151524, -10722951, 946346, 16291093, 254968, 7168080, 21676107, -1943028 }, + { 21260961, -8424752, -16831886, -11920822, -23677961, 3968121, -3651949, -6215466, -3556191, -7913075 }, + }, + { + { 16544754, 13250366, -16804428, 15546242, -4583003, 12757258, -2462308, -8680336, -18907032, -9662799 }, + { -2415239, -15577728, 18312303, 4964443, -15272530, -12653564, 26820651, 16690659, 25459437, -4564609 }, + { -25144690, 11425020, 28423002, -11020557, -6144921, -15826224, 9142795, -2391602, -6432418, -1644817 }, + }, + { + { -23104652, 6253476, 16964147, -3768872, -25113972, -12296437, -27457225, -16344658, 6335692, 7249989 }, + { -30333227, 13979675, 7503222, -12368314, -11956721, -4621693, -30272269, 2682242, 25993170, -12478523 }, + { 4364628, 5930691, 32304656, -10044554, -8054781, 15091131, 22857016, -10598955, 31820368, 15075278 }, + }, + { + { 31879134, -8918693, 17258761, 90626, -8041836, -4917709, 24162788, -9650886, -17970238, 12833045 }, + { 19073683, 14851414, -24403169, -11860168, 7625278, 11091125, -19619190, 2074449, -9413939, 14905377 }, + { 24483667, -11935567, -2518866, -11547418, -1553130, 15355506, -25282080, 9253129, 27628530, -7555480 }, + }, + { + { 17597607, 8340603, 19355617, 552187, 26198470, -3176583, 4593324, -9157582, -14110875, 15297016 }, + { 510886, 14337390, -31785257, 16638632, 6328095, 2713355, -20217417, -11864220, 8683221, 2921426 }, + { 18606791, 11874196, 27155355, -5281482, -24031742, 6265446, -25178240, -1278924, 4674690, 13890525 }, + }, + { + { 13609624, 13069022, -27372361, -13055908, 24360586, 9592974, 14977157, 9835105, 4389687, 288396 }, + { 9922506, -519394, 13613107, 5883594, -18758345, -434263, -12304062, 8317628, 23388070, 16052080 }, + { 12720016, 11937594, -31970060, -5028689, 26900120, 8561328, -20155687, -11632979, -14754271, -10812892 }, + }, + { + { 15961858, 14150409, 26716931, -665832, -22794328, 13603569, 11829573, 7467844, -28822128, 929275 }, + { 11038231, -11582396, -27310482, -7316562, -10498527, -16307831, -23479533, -9371869, -21393143, 2465074 }, + { 20017163, -4323226, 27915242, 1529148, 12396362, 15675764, 13817261, -9658066, 2463391, -4622140 }, + }, + { + { -16358878, -12663911, -12065183, 4996454, -1256422, 1073572, 9583558, 12851107, 4003896, 12673717 }, + { -1731589, -15155870, -3262930, 16143082, 19294135, 13385325, 14741514, -9103726, 7903886, 2348101 }, + { 24536016, -16515207, 12715592, -3862155, 1511293, 10047386, -3842346, -7129159, -28377538, 10048127 }, + }, + }, + { + { + { -12622226, -6204820, 30718825, 2591312, -10617028, 12192840, 18873298, -7297090, -32297756, 15221632 }, + { -26478122, -11103864, 11546244, -1852483, 9180880, 7656409, -21343950, 2095755, 29769758, 6593415 }, + { -31994208, -2907461, 4176912, 3264766, 12538965, -868111, 26312345, -6118678, 30958054, 8292160 }, + }, + { + { 31429822, -13959116, 29173532, 15632448, 12174511, -2760094, 32808831, 3977186, 26143136, -3148876 }, + { 22648901, 1402143, -22799984, 13746059, 7936347, 365344, -8668633, -1674433, -3758243, -2304625 }, + { -15491917, 8012313, -2514730, -12702462, -23965846, -10254029, -1612713, -1535569, -16664475, 8194478 }, + }, + { + { 27338066, -7507420, -7414224, 10140405, -19026427, -6589889, 27277191, 8855376, 28572286, 3005164 }, + { 26287124, 4821776, 25476601, -4145903, -3764513, -15788984, -18008582, 1182479, -26094821, -13079595 }, + { -7171154, 3178080, 23970071, 6201893, -17195577, -4489192, -21876275, -13982627, 32208683, -1198248 }, + }, + { + { -16657702, 2817643, -10286362, 14811298, 6024667, 13349505, -27315504, -10497842, -27672585, -11539858 }, + { 15941029, -9405932, -21367050, 8062055, 31876073, -238629, -15278393, -1444429, 15397331, -4130193 }, + { 8934485, -13485467, -23286397, -13423241, -32446090, 14047986, 31170398, -1441021, -27505566, 15087184 }, + }, + { + { -18357243, -2156491, 24524913, -16677868, 15520427, -6360776, -15502406, 11461896, 16788528, -5868942 }, + { -1947386, 16013773, 21750665, 3714552, -17401782, -16055433, -3770287, -10323320, 31322514, -11615635 }, + { 21426655, -5650218, -13648287, -5347537, -28812189, -4920970, -18275391, -14621414, 13040862, -12112948 }, + }, + { + { 11293895, 12478086, -27136401, 15083750, -29307421, 14748872, 14555558, -13417103, 1613711, 4896935 }, + { -25894883, 15323294, -8489791, -8057900, 25967126, -13425460, 2825960, -4897045, -23971776, -11267415 }, + { -15924766, -5229880, -17443532, 6410664, 3622847, 10243618, 20615400, 12405433, -23753030, -8436416 }, + }, + { + { -7091295, 12556208, -20191352, 9025187, -17072479, 4333801, 4378436, 2432030, 23097949, -566018 }, + { 4565804, -16025654, 20084412, -7842817, 1724999, 189254, 24767264, 10103221, -18512313, 2424778 }, + { 366633, -11976806, 8173090, -6890119, 30788634, 5745705, -7168678, 1344109, -3642553, 12412659 }, + }, + { + { -24001791, 7690286, 14929416, -168257, -32210835, -13412986, 24162697, -15326504, -3141501, 11179385 }, + { 18289522, -14724954, 8056945, 16430056, -21729724, 7842514, -6001441, -1486897, -18684645, -11443503 }, + { 476239, 6601091, -6152790, -9723375, 17503545, -4863900, 27672959, 13403813, 11052904, 5219329 }, + }, + }, + { + { + { 20678546, -8375738, -32671898, 8849123, -5009758, 14574752, 31186971, -3973730, 9014762, -8579056 }, + { -13644050, -10350239, -15962508, 5075808, -1514661, -11534600, -33102500, 9160280, 8473550, -3256838 }, + { 24900749, 14435722, 17209120, -15292541, -22592275, 9878983, -7689309, -16335821, -24568481, 11788948 }, + }, + { + { -3118155, -11395194, -13802089, 14797441, 9652448, -6845904, -20037437, 10410733, -24568470, -1458691 }, + { -15659161, 16736706, -22467150, 10215878, -9097177, 7563911, 11871841, -12505194, -18513325, 8464118 }, + { -23400612, 8348507, -14585951, -861714, -3950205, -6373419, 14325289, 8628612, 33313881, -8370517 }, + }, + { + { -20186973, -4967935, 22367356, 5271547, -1097117, -4788838, -24805667, -10236854, -8940735, -5818269 }, + { -6948785, -1795212, -32625683, -16021179, 32635414, -7374245, 15989197, -12838188, 28358192, -4253904 }, + { -23561781, -2799059, -32351682, -1661963, -9147719, 10429267, -16637684, 4072016, -5351664, 5596589 }, + }, + { + { -28236598, -3390048, 12312896, 6213178, 3117142, 16078565, 29266239, 2557221, 1768301, 15373193 }, + { -7243358, -3246960, -4593467, -7553353, -127927, -912245, -1090902, -4504991, -24660491, 3442910 }, + { -30210571, 5124043, 14181784, 8197961, 18964734, -11939093, 22597931, 7176455, -18585478, 13365930 }, + }, + { + { -7877390, -1499958, 8324673, 4690079, 6261860, 890446, 24538107, -8570186, -9689599, -3031667 }, + { 25008904, -10771599, -4305031, -9638010, 16265036, 15721635, 683793, -11823784, 15723479, -15163481 }, + { -9660625, 12374379, -27006999, -7026148, -7724114, -12314514, 11879682, 5400171, 519526, -1235876 }, + }, + { + { 22258397, -16332233, -7869817, 14613016, -22520255, -2950923, -20353881, 7315967, 16648397, 7605640 }, + { -8081308, -8464597, -8223311, 9719710, 19259459, -15348212, 23994942, -5281555, -9468848, 4763278 }, + { -21699244, 9220969, -15730624, 1084137, -25476107, -2852390, 31088447, -7764523, -11356529, 728112 }, + }, + { + { 26047220, -11751471, -6900323, -16521798, 24092068, 9158119, -4273545, -12555558, -29365436, -5498272 }, + { 17510331, -322857, 5854289, 8403524, 17133918, -3112612, -28111007, 12327945, 10750447, 10014012 }, + { -10312768, 3936952, 9156313, -8897683, 16498692, -994647, -27481051, -666732, 3424691, 7540221 }, + }, + { + { 30322361, -6964110, 11361005, -4143317, 7433304, 4989748, -7071422, -16317219, -9244265, 15258046 }, + { 13054562, -2779497, 19155474, 469045, -12482797, 4566042, 5631406, 2711395, 1062915, -5136345 }, + { -19240248, -11254599, -29509029, -7499965, -5835763, 13005411, -6066489, 12194497, 32960380, 1459310 }, + }, + }, + { + { + { 19852034, 7027924, 23669353, 10020366, 8586503, -6657907, 394197, -6101885, 18638003, -11174937 }, + { 31395534, 15098109, 26581030, 8030562, -16527914, -5007134, 9012486, -7584354, -6643087, -5442636 }, + { -9192165, -2347377, -1997099, 4529534, 25766844, 607986, -13222, 9677543, -32294889, -6456008 }, + }, + { + { -2444496, -149937, 29348902, 8186665, 1873760, 12489863, -30934579, -7839692, -7852844, -8138429 }, + { -15236356, -15433509, 7766470, 746860, 26346930, -10221762, -27333451, 10754588, -9431476, 5203576 }, + { 31834314, 14135496, -770007, 5159118, 20917671, -16768096, -7467973, -7337524, 31809243, 7347066 }, + }, + { + { -9606723, -11874240, 20414459, 13033986, 13716524, -11691881, 19797970, -12211255, 15192876, -2087490 }, + { -12663563, -2181719, 1168162, -3804809, 26747877, -14138091, 10609330, 12694420, 33473243, -13382104 }, + { 33184999, 11180355, 15832085, -11385430, -1633671, 225884, 15089336, -11023903, -6135662, 14480053 }, + }, + { + { 31308717, -5619998, 31030840, -1897099, 15674547, -6582883, 5496208, 13685227, 27595050, 8737275 }, + { -20318852, -15150239, 10933843, -16178022, 8335352, -7546022, -31008351, -12610604, 26498114, 66511 }, + { 22644454, -8761729, -16671776, 4884562, -3105614, -13559366, 30540766, -4286747, -13327787, -7515095 }, + }, + { + { -28017847, 9834845, 18617207, -2681312, -3401956, -13307506, 8205540, 13585437, -17127465, 15115439 }, + { 23711543, -672915, 31206561, -8362711, 6164647, -9709987, -33535882, -1426096, 8236921, 16492939 }, + { -23910559, -13515526, -26299483, -4503841, 25005590, -7687270, 19574902, 10071562, 6708380, -6222424 }, + }, + { + { 2101391, -4930054, 19702731, 2367575, -15427167, 1047675, 5301017, 9328700, 29955601, -11678310 }, + { 3096359, 9271816, -21620864, -15521844, -14847996, -7592937, -25892142, -12635595, -9917575, 6216608 }, + { -32615849, 338663, -25195611, 2510422, -29213566, -13820213, 24822830, -6146567, -26767480, 7525079 }, + }, + { + { -23066649, -13985623, 16133487, -7896178, -3389565, 778788, -910336, -2782495, -19386633, 11994101 }, + { 21691500, -13624626, -641331, -14367021, 3285881, -3483596, -25064666, 9718258, -7477437, 13381418 }, + { 18445390, -4202236, 14979846, 11622458, -1727110, -3582980, 23111648, -6375247, 28535282, 15779576 }, + }, + { + { 30098053, 3089662, -9234387, 16662135, -21306940, 11308411, -14068454, 12021730, 9955285, -16303356 }, + { 9734894, -14576830, -7473633, -9138735, 2060392, 11313496, -18426029, 9924399, 20194861, 13380996 }, + { -26378102, -7965207, -22167821, 15789297, -18055342, -6168792, -1984914, 15707771, 26342023, 10146099 }, + }, + }, + { + { + { -26016874, -219943, 21339191, -41388, 19745256, -2878700, -29637280, 2227040, 21612326, -545728 }, + { -13077387, 1184228, 23562814, -5970442, -20351244, -6348714, 25764461, 12243797, -20856566, 11649658 }, + { -10031494, 11262626, 27384172, 2271902, 26947504, -15997771, 39944, 6114064, 33514190, 2333242 }, + }, + { + { -21433588, -12421821, 8119782, 7219913, -21830522, -9016134, -6679750, -12670638, 24350578, -13450001 }, + { -4116307, -11271533, -23886186, 4843615, -30088339, 690623, -31536088, -10406836, 8317860, 12352766 }, + { 18200138, -14475911, -33087759, -2696619, -23702521, -9102511, -23552096, -2287550, 20712163, 6719373 }, + }, + { + { 26656208, 6075253, -7858556, 1886072, -28344043, 4262326, 11117530, -3763210, 26224235, -3297458 }, + { -17168938, -14854097, -3395676, -16369877, -19954045, 14050420, 21728352, 9493610, 18620611, -16428628 }, + { -13323321, 13325349, 11432106, 5964811, 18609221, 6062965, -5269471, -9725556, -30701573, -16479657 }, + }, + { + { -23860538, -11233159, 26961357, 1640861, -32413112, -16737940, 12248509, -5240639, 13735342, 1934062 }, + { 25089769, 6742589, 17081145, -13406266, 21909293, -16067981, -15136294, -3765346, -21277997, 5473616 }, + { 31883677, -7961101, 1083432, -11572403, 22828471, 13290673, -7125085, 12469656, 29111212, -5451014 }, + }, + { + { 24244947, -15050407, -26262976, 2791540, -14997599, 16666678, 24367466, 6388839, -10295587, 452383 }, + { -25640782, -3417841, 5217916, 16224624, 19987036, -4082269, -24236251, -5915248, 15766062, 8407814 }, + { -20406999, 13990231, 15495425, 16395525, 5377168, 15166495, -8917023, -4388953, -8067909, 2276718 }, + }, + { + { 30157918, 12924066, -17712050, 9245753, 19895028, 3368142, -23827587, 5096219, 22740376, -7303417 }, + { 2041139, -14256350, 7783687, 13876377, -25946985, -13352459, 24051124, 13742383, -15637599, 13295222 }, + { 33338237, -8505733, 12532113, 7977527, 9106186, -1715251, -17720195, -4612972, -4451357, -14669444 }, + }, + { + { -20045281, 5454097, -14346548, 6447146, 28862071, 1883651, -2469266, -4141880, 7770569, 9620597 }, + { 23208068, 7979712, 33071466, 8149229, 1758231, -10834995, 30945528, -1694323, -33502340, -14767970 }, + { 1439958, -16270480, -1079989, -793782, 4625402, 10647766, -5043801, 1220118, 30494170, -11440799 }, + }, + { + { -5037580, -13028295, -2970559, -3061767, 15640974, -6701666, -26739026, 926050, -1684339, -13333647 }, + { 13908495, -3549272, 30919928, -6273825, -21521863, 7989039, 9021034, 9078865, 3353509, 4033511 }, + { -29663431, -15113610, 32259991, -344482, 24295849, -12912123, 23161163, 8839127, 27485041, 7356032 }, + }, + }, + { + { + { 9661027, 705443, 11980065, -5370154, -1628543, 14661173, -6346142, 2625015, 28431036, -16771834 }, + { -23839233, -8311415, -25945511, 7480958, -17681669, -8354183, -22545972, 14150565, 15970762, 4099461 }, + { 29262576, 16756590, 26350592, -8793563, 8529671, -11208050, 13617293, -9937143, 11465739, 8317062 }, + }, + { + { -25493081, -6962928, 32500200, -9419051, -23038724, -2302222, 14898637, 3848455, 20969334, -5157516 }, + { -20384450, -14347713, -18336405, 13884722, -33039454, 2842114, -21610826, -3649888, 11177095, 14989547 }, + { -24496721, -11716016, 16959896, 2278463, 12066309, 10137771, 13515641, 2581286, -28487508, 9930240 }, + }, + { + { -17751622, -2097826, 16544300, -13009300, -15914807, -14949081, 18345767, -13403753, 16291481, -5314038 }, + { -33229194, 2553288, 32678213, 9875984, 8534129, 6889387, -9676774, 6957617, 4368891, 9788741 }, + { 16660756, 7281060, -10830758, 12911820, 20108584, -8101676, -21722536, -8613148, 16250552, -11111103 }, + }, + { + { -19765507, 2390526, -16551031, 14161980, 1905286, 6414907, 4689584, 10604807, -30190403, 4782747 }, + { -1354539, 14736941, -7367442, -13292886, 7710542, -14155590, -9981571, 4383045, 22546403, 437323 }, + { 31665577, -12180464, -16186830, 1491339, -18368625, 3294682, 27343084, 2786261, -30633590, -14097016 }, + }, + { + { -14467279, -683715, -33374107, 7448552, 19294360, 14334329, -19690631, 2355319, -19284671, -6114373 }, + { 15121312, -15796162, 6377020, -6031361, -10798111, -12957845, 18952177, 15496498, -29380133, 11754228 }, + { -2637277, -13483075, 8488727, -14303896, 12728761, -1622493, 7141596, 11724556, 22761615, -10134141 }, + }, + { + { 16918416, 11729663, -18083579, 3022987, -31015732, -13339659, -28741185, -12227393, 32851222, 11717399 }, + { 11166634, 7338049, -6722523, 4531520, -29468672, -7302055, 31474879, 3483633, -1193175, -4030831 }, + { -185635, 9921305, 31456609, -13536438, -12013818, 13348923, 33142652, 6546660, -19985279, -3948376 }, + }, + { + { -32460596, 11266712, -11197107, -7899103, 31703694, 3855903, -8537131, -12833048, -30772034, -15486313 }, + { -18006477, 12709068, 3991746, -6479188, -21491523, -10550425, -31135347, -16049879, 10928917, 3011958 }, + { -6957757, -15594337, 31696059, 334240, 29576716, 14796075, -30831056, -12805180, 18008031, 10258577 }, + }, + { + { -22448644, 15655569, 7018479, -4410003, -30314266, -1201591, -1853465, 1367120, 25127874, 6671743 }, + { 29701166, -14373934, -10878120, 9279288, -17568, 13127210, 21382910, 11042292, 25838796, 4642684 }, + { -20430234, 14955537, -24126347, 8124619, -5369288, -5990470, 30468147, -13900640, 18423289, 4177476 }, + }, + }, +}; diff --git a/lib/ed25519/sc.c b/lib/ed25519/sc.c new file mode 100755 index 0000000..ca5bad2 --- /dev/null +++ b/lib/ed25519/sc.c @@ -0,0 +1,809 @@ +#include "fixedint.h" +#include "sc.h" + +static uint64_t load_3(const unsigned char *in) { + uint64_t result; + + result = (uint64_t) in[0]; + result |= ((uint64_t) in[1]) << 8; + result |= ((uint64_t) in[2]) << 16; + + return result; +} + +static uint64_t load_4(const unsigned char *in) { + uint64_t result; + + result = (uint64_t) in[0]; + result |= ((uint64_t) in[1]) << 8; + result |= ((uint64_t) in[2]) << 16; + result |= ((uint64_t) in[3]) << 24; + + return result; +} + +/* +Input: + s[0]+256*s[1]+...+256^63*s[63] = s + +Output: + s[0]+256*s[1]+...+256^31*s[31] = s mod l + where l = 2^252 + 27742317777372353535851937790883648493. + Overwrites s in place. +*/ + +void sc_reduce(unsigned char *s) { + int64_t s0 = 2097151 & load_3(s); + int64_t s1 = 2097151 & (load_4(s + 2) >> 5); + int64_t s2 = 2097151 & (load_3(s + 5) >> 2); + int64_t s3 = 2097151 & (load_4(s + 7) >> 7); + int64_t s4 = 2097151 & (load_4(s + 10) >> 4); + int64_t s5 = 2097151 & (load_3(s + 13) >> 1); + int64_t s6 = 2097151 & (load_4(s + 15) >> 6); + int64_t s7 = 2097151 & (load_3(s + 18) >> 3); + int64_t s8 = 2097151 & load_3(s + 21); + int64_t s9 = 2097151 & (load_4(s + 23) >> 5); + int64_t s10 = 2097151 & (load_3(s + 26) >> 2); + int64_t s11 = 2097151 & (load_4(s + 28) >> 7); + int64_t s12 = 2097151 & (load_4(s + 31) >> 4); + int64_t s13 = 2097151 & (load_3(s + 34) >> 1); + int64_t s14 = 2097151 & (load_4(s + 36) >> 6); + int64_t s15 = 2097151 & (load_3(s + 39) >> 3); + int64_t s16 = 2097151 & load_3(s + 42); + int64_t s17 = 2097151 & (load_4(s + 44) >> 5); + int64_t s18 = 2097151 & (load_3(s + 47) >> 2); + int64_t s19 = 2097151 & (load_4(s + 49) >> 7); + int64_t s20 = 2097151 & (load_4(s + 52) >> 4); + int64_t s21 = 2097151 & (load_3(s + 55) >> 1); + int64_t s22 = 2097151 & (load_4(s + 57) >> 6); + int64_t s23 = (load_4(s + 60) >> 3); + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + int64_t carry10; + int64_t carry11; + int64_t carry12; + int64_t carry13; + int64_t carry14; + int64_t carry15; + int64_t carry16; + + s11 += s23 * 666643; + s12 += s23 * 470296; + s13 += s23 * 654183; + s14 -= s23 * 997805; + s15 += s23 * 136657; + s16 -= s23 * 683901; + s23 = 0; + s10 += s22 * 666643; + s11 += s22 * 470296; + s12 += s22 * 654183; + s13 -= s22 * 997805; + s14 += s22 * 136657; + s15 -= s22 * 683901; + s22 = 0; + s9 += s21 * 666643; + s10 += s21 * 470296; + s11 += s21 * 654183; + s12 -= s21 * 997805; + s13 += s21 * 136657; + s14 -= s21 * 683901; + s21 = 0; + s8 += s20 * 666643; + s9 += s20 * 470296; + s10 += s20 * 654183; + s11 -= s20 * 997805; + s12 += s20 * 136657; + s13 -= s20 * 683901; + s20 = 0; + s7 += s19 * 666643; + s8 += s19 * 470296; + s9 += s19 * 654183; + s10 -= s19 * 997805; + s11 += s19 * 136657; + s12 -= s19 * 683901; + s19 = 0; + s6 += s18 * 666643; + s7 += s18 * 470296; + s8 += s18 * 654183; + s9 -= s18 * 997805; + s10 += s18 * 136657; + s11 -= s18 * 683901; + s18 = 0; + carry6 = (s6 + (1 << 20)) >> 21; + s7 += carry6; + s6 -= carry6 << 21; + carry8 = (s8 + (1 << 20)) >> 21; + s9 += carry8; + s8 -= carry8 << 21; + carry10 = (s10 + (1 << 20)) >> 21; + s11 += carry10; + s10 -= carry10 << 21; + carry12 = (s12 + (1 << 20)) >> 21; + s13 += carry12; + s12 -= carry12 << 21; + carry14 = (s14 + (1 << 20)) >> 21; + s15 += carry14; + s14 -= carry14 << 21; + carry16 = (s16 + (1 << 20)) >> 21; + s17 += carry16; + s16 -= carry16 << 21; + carry7 = (s7 + (1 << 20)) >> 21; + s8 += carry7; + s7 -= carry7 << 21; + carry9 = (s9 + (1 << 20)) >> 21; + s10 += carry9; + s9 -= carry9 << 21; + carry11 = (s11 + (1 << 20)) >> 21; + s12 += carry11; + s11 -= carry11 << 21; + carry13 = (s13 + (1 << 20)) >> 21; + s14 += carry13; + s13 -= carry13 << 21; + carry15 = (s15 + (1 << 20)) >> 21; + s16 += carry15; + s15 -= carry15 << 21; + s5 += s17 * 666643; + s6 += s17 * 470296; + s7 += s17 * 654183; + s8 -= s17 * 997805; + s9 += s17 * 136657; + s10 -= s17 * 683901; + s17 = 0; + s4 += s16 * 666643; + s5 += s16 * 470296; + s6 += s16 * 654183; + s7 -= s16 * 997805; + s8 += s16 * 136657; + s9 -= s16 * 683901; + s16 = 0; + s3 += s15 * 666643; + s4 += s15 * 470296; + s5 += s15 * 654183; + s6 -= s15 * 997805; + s7 += s15 * 136657; + s8 -= s15 * 683901; + s15 = 0; + s2 += s14 * 666643; + s3 += s14 * 470296; + s4 += s14 * 654183; + s5 -= s14 * 997805; + s6 += s14 * 136657; + s7 -= s14 * 683901; + s14 = 0; + s1 += s13 * 666643; + s2 += s13 * 470296; + s3 += s13 * 654183; + s4 -= s13 * 997805; + s5 += s13 * 136657; + s6 -= s13 * 683901; + s13 = 0; + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + carry0 = (s0 + (1 << 20)) >> 21; + s1 += carry0; + s0 -= carry0 << 21; + carry2 = (s2 + (1 << 20)) >> 21; + s3 += carry2; + s2 -= carry2 << 21; + carry4 = (s4 + (1 << 20)) >> 21; + s5 += carry4; + s4 -= carry4 << 21; + carry6 = (s6 + (1 << 20)) >> 21; + s7 += carry6; + s6 -= carry6 << 21; + carry8 = (s8 + (1 << 20)) >> 21; + s9 += carry8; + s8 -= carry8 << 21; + carry10 = (s10 + (1 << 20)) >> 21; + s11 += carry10; + s10 -= carry10 << 21; + carry1 = (s1 + (1 << 20)) >> 21; + s2 += carry1; + s1 -= carry1 << 21; + carry3 = (s3 + (1 << 20)) >> 21; + s4 += carry3; + s3 -= carry3 << 21; + carry5 = (s5 + (1 << 20)) >> 21; + s6 += carry5; + s5 -= carry5 << 21; + carry7 = (s7 + (1 << 20)) >> 21; + s8 += carry7; + s7 -= carry7 << 21; + carry9 = (s9 + (1 << 20)) >> 21; + s10 += carry9; + s9 -= carry9 << 21; + carry11 = (s11 + (1 << 20)) >> 21; + s12 += carry11; + s11 -= carry11 << 21; + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + carry0 = s0 >> 21; + s1 += carry0; + s0 -= carry0 << 21; + carry1 = s1 >> 21; + s2 += carry1; + s1 -= carry1 << 21; + carry2 = s2 >> 21; + s3 += carry2; + s2 -= carry2 << 21; + carry3 = s3 >> 21; + s4 += carry3; + s3 -= carry3 << 21; + carry4 = s4 >> 21; + s5 += carry4; + s4 -= carry4 << 21; + carry5 = s5 >> 21; + s6 += carry5; + s5 -= carry5 << 21; + carry6 = s6 >> 21; + s7 += carry6; + s6 -= carry6 << 21; + carry7 = s7 >> 21; + s8 += carry7; + s7 -= carry7 << 21; + carry8 = s8 >> 21; + s9 += carry8; + s8 -= carry8 << 21; + carry9 = s9 >> 21; + s10 += carry9; + s9 -= carry9 << 21; + carry10 = s10 >> 21; + s11 += carry10; + s10 -= carry10 << 21; + carry11 = s11 >> 21; + s12 += carry11; + s11 -= carry11 << 21; + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + carry0 = s0 >> 21; + s1 += carry0; + s0 -= carry0 << 21; + carry1 = s1 >> 21; + s2 += carry1; + s1 -= carry1 << 21; + carry2 = s2 >> 21; + s3 += carry2; + s2 -= carry2 << 21; + carry3 = s3 >> 21; + s4 += carry3; + s3 -= carry3 << 21; + carry4 = s4 >> 21; + s5 += carry4; + s4 -= carry4 << 21; + carry5 = s5 >> 21; + s6 += carry5; + s5 -= carry5 << 21; + carry6 = s6 >> 21; + s7 += carry6; + s6 -= carry6 << 21; + carry7 = s7 >> 21; + s8 += carry7; + s7 -= carry7 << 21; + carry8 = s8 >> 21; + s9 += carry8; + s8 -= carry8 << 21; + carry9 = s9 >> 21; + s10 += carry9; + s9 -= carry9 << 21; + carry10 = s10 >> 21; + s11 += carry10; + s10 -= carry10 << 21; + + s[0] = (unsigned char) (s0 >> 0); + s[1] = (unsigned char) (s0 >> 8); + s[2] = (unsigned char) ((s0 >> 16) | (s1 << 5)); + s[3] = (unsigned char) (s1 >> 3); + s[4] = (unsigned char) (s1 >> 11); + s[5] = (unsigned char) ((s1 >> 19) | (s2 << 2)); + s[6] = (unsigned char) (s2 >> 6); + s[7] = (unsigned char) ((s2 >> 14) | (s3 << 7)); + s[8] = (unsigned char) (s3 >> 1); + s[9] = (unsigned char) (s3 >> 9); + s[10] = (unsigned char) ((s3 >> 17) | (s4 << 4)); + s[11] = (unsigned char) (s4 >> 4); + s[12] = (unsigned char) (s4 >> 12); + s[13] = (unsigned char) ((s4 >> 20) | (s5 << 1)); + s[14] = (unsigned char) (s5 >> 7); + s[15] = (unsigned char) ((s5 >> 15) | (s6 << 6)); + s[16] = (unsigned char) (s6 >> 2); + s[17] = (unsigned char) (s6 >> 10); + s[18] = (unsigned char) ((s6 >> 18) | (s7 << 3)); + s[19] = (unsigned char) (s7 >> 5); + s[20] = (unsigned char) (s7 >> 13); + s[21] = (unsigned char) (s8 >> 0); + s[22] = (unsigned char) (s8 >> 8); + s[23] = (unsigned char) ((s8 >> 16) | (s9 << 5)); + s[24] = (unsigned char) (s9 >> 3); + s[25] = (unsigned char) (s9 >> 11); + s[26] = (unsigned char) ((s9 >> 19) | (s10 << 2)); + s[27] = (unsigned char) (s10 >> 6); + s[28] = (unsigned char) ((s10 >> 14) | (s11 << 7)); + s[29] = (unsigned char) (s11 >> 1); + s[30] = (unsigned char) (s11 >> 9); + s[31] = (unsigned char) (s11 >> 17); +} + + + +/* +Input: + a[0]+256*a[1]+...+256^31*a[31] = a + b[0]+256*b[1]+...+256^31*b[31] = b + c[0]+256*c[1]+...+256^31*c[31] = c + +Output: + s[0]+256*s[1]+...+256^31*s[31] = (ab+c) mod l + where l = 2^252 + 27742317777372353535851937790883648493. +*/ + +void sc_muladd(unsigned char *s, const unsigned char *a, const unsigned char *b, const unsigned char *c) { + int64_t a0 = 2097151 & load_3(a); + int64_t a1 = 2097151 & (load_4(a + 2) >> 5); + int64_t a2 = 2097151 & (load_3(a + 5) >> 2); + int64_t a3 = 2097151 & (load_4(a + 7) >> 7); + int64_t a4 = 2097151 & (load_4(a + 10) >> 4); + int64_t a5 = 2097151 & (load_3(a + 13) >> 1); + int64_t a6 = 2097151 & (load_4(a + 15) >> 6); + int64_t a7 = 2097151 & (load_3(a + 18) >> 3); + int64_t a8 = 2097151 & load_3(a + 21); + int64_t a9 = 2097151 & (load_4(a + 23) >> 5); + int64_t a10 = 2097151 & (load_3(a + 26) >> 2); + int64_t a11 = (load_4(a + 28) >> 7); + int64_t b0 = 2097151 & load_3(b); + int64_t b1 = 2097151 & (load_4(b + 2) >> 5); + int64_t b2 = 2097151 & (load_3(b + 5) >> 2); + int64_t b3 = 2097151 & (load_4(b + 7) >> 7); + int64_t b4 = 2097151 & (load_4(b + 10) >> 4); + int64_t b5 = 2097151 & (load_3(b + 13) >> 1); + int64_t b6 = 2097151 & (load_4(b + 15) >> 6); + int64_t b7 = 2097151 & (load_3(b + 18) >> 3); + int64_t b8 = 2097151 & load_3(b + 21); + int64_t b9 = 2097151 & (load_4(b + 23) >> 5); + int64_t b10 = 2097151 & (load_3(b + 26) >> 2); + int64_t b11 = (load_4(b + 28) >> 7); + int64_t c0 = 2097151 & load_3(c); + int64_t c1 = 2097151 & (load_4(c + 2) >> 5); + int64_t c2 = 2097151 & (load_3(c + 5) >> 2); + int64_t c3 = 2097151 & (load_4(c + 7) >> 7); + int64_t c4 = 2097151 & (load_4(c + 10) >> 4); + int64_t c5 = 2097151 & (load_3(c + 13) >> 1); + int64_t c6 = 2097151 & (load_4(c + 15) >> 6); + int64_t c7 = 2097151 & (load_3(c + 18) >> 3); + int64_t c8 = 2097151 & load_3(c + 21); + int64_t c9 = 2097151 & (load_4(c + 23) >> 5); + int64_t c10 = 2097151 & (load_3(c + 26) >> 2); + int64_t c11 = (load_4(c + 28) >> 7); + int64_t s0; + int64_t s1; + int64_t s2; + int64_t s3; + int64_t s4; + int64_t s5; + int64_t s6; + int64_t s7; + int64_t s8; + int64_t s9; + int64_t s10; + int64_t s11; + int64_t s12; + int64_t s13; + int64_t s14; + int64_t s15; + int64_t s16; + int64_t s17; + int64_t s18; + int64_t s19; + int64_t s20; + int64_t s21; + int64_t s22; + int64_t s23; + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + int64_t carry10; + int64_t carry11; + int64_t carry12; + int64_t carry13; + int64_t carry14; + int64_t carry15; + int64_t carry16; + int64_t carry17; + int64_t carry18; + int64_t carry19; + int64_t carry20; + int64_t carry21; + int64_t carry22; + + s0 = c0 + a0 * b0; + s1 = c1 + a0 * b1 + a1 * b0; + s2 = c2 + a0 * b2 + a1 * b1 + a2 * b0; + s3 = c3 + a0 * b3 + a1 * b2 + a2 * b1 + a3 * b0; + s4 = c4 + a0 * b4 + a1 * b3 + a2 * b2 + a3 * b1 + a4 * b0; + s5 = c5 + a0 * b5 + a1 * b4 + a2 * b3 + a3 * b2 + a4 * b1 + a5 * b0; + s6 = c6 + a0 * b6 + a1 * b5 + a2 * b4 + a3 * b3 + a4 * b2 + a5 * b1 + a6 * b0; + s7 = c7 + a0 * b7 + a1 * b6 + a2 * b5 + a3 * b4 + a4 * b3 + a5 * b2 + a6 * b1 + a7 * b0; + s8 = c8 + a0 * b8 + a1 * b7 + a2 * b6 + a3 * b5 + a4 * b4 + a5 * b3 + a6 * b2 + a7 * b1 + a8 * b0; + s9 = c9 + a0 * b9 + a1 * b8 + a2 * b7 + a3 * b6 + a4 * b5 + a5 * b4 + a6 * b3 + a7 * b2 + a8 * b1 + a9 * b0; + s10 = c10 + a0 * b10 + a1 * b9 + a2 * b8 + a3 * b7 + a4 * b6 + a5 * b5 + a6 * b4 + a7 * b3 + a8 * b2 + a9 * b1 + a10 * b0; + s11 = c11 + a0 * b11 + a1 * b10 + a2 * b9 + a3 * b8 + a4 * b7 + a5 * b6 + a6 * b5 + a7 * b4 + a8 * b3 + a9 * b2 + a10 * b1 + a11 * b0; + s12 = a1 * b11 + a2 * b10 + a3 * b9 + a4 * b8 + a5 * b7 + a6 * b6 + a7 * b5 + a8 * b4 + a9 * b3 + a10 * b2 + a11 * b1; + s13 = a2 * b11 + a3 * b10 + a4 * b9 + a5 * b8 + a6 * b7 + a7 * b6 + a8 * b5 + a9 * b4 + a10 * b3 + a11 * b2; + s14 = a3 * b11 + a4 * b10 + a5 * b9 + a6 * b8 + a7 * b7 + a8 * b6 + a9 * b5 + a10 * b4 + a11 * b3; + s15 = a4 * b11 + a5 * b10 + a6 * b9 + a7 * b8 + a8 * b7 + a9 * b6 + a10 * b5 + a11 * b4; + s16 = a5 * b11 + a6 * b10 + a7 * b9 + a8 * b8 + a9 * b7 + a10 * b6 + a11 * b5; + s17 = a6 * b11 + a7 * b10 + a8 * b9 + a9 * b8 + a10 * b7 + a11 * b6; + s18 = a7 * b11 + a8 * b10 + a9 * b9 + a10 * b8 + a11 * b7; + s19 = a8 * b11 + a9 * b10 + a10 * b9 + a11 * b8; + s20 = a9 * b11 + a10 * b10 + a11 * b9; + s21 = a10 * b11 + a11 * b10; + s22 = a11 * b11; + s23 = 0; + carry0 = (s0 + (1 << 20)) >> 21; + s1 += carry0; + s0 -= carry0 << 21; + carry2 = (s2 + (1 << 20)) >> 21; + s3 += carry2; + s2 -= carry2 << 21; + carry4 = (s4 + (1 << 20)) >> 21; + s5 += carry4; + s4 -= carry4 << 21; + carry6 = (s6 + (1 << 20)) >> 21; + s7 += carry6; + s6 -= carry6 << 21; + carry8 = (s8 + (1 << 20)) >> 21; + s9 += carry8; + s8 -= carry8 << 21; + carry10 = (s10 + (1 << 20)) >> 21; + s11 += carry10; + s10 -= carry10 << 21; + carry12 = (s12 + (1 << 20)) >> 21; + s13 += carry12; + s12 -= carry12 << 21; + carry14 = (s14 + (1 << 20)) >> 21; + s15 += carry14; + s14 -= carry14 << 21; + carry16 = (s16 + (1 << 20)) >> 21; + s17 += carry16; + s16 -= carry16 << 21; + carry18 = (s18 + (1 << 20)) >> 21; + s19 += carry18; + s18 -= carry18 << 21; + carry20 = (s20 + (1 << 20)) >> 21; + s21 += carry20; + s20 -= carry20 << 21; + carry22 = (s22 + (1 << 20)) >> 21; + s23 += carry22; + s22 -= carry22 << 21; + carry1 = (s1 + (1 << 20)) >> 21; + s2 += carry1; + s1 -= carry1 << 21; + carry3 = (s3 + (1 << 20)) >> 21; + s4 += carry3; + s3 -= carry3 << 21; + carry5 = (s5 + (1 << 20)) >> 21; + s6 += carry5; + s5 -= carry5 << 21; + carry7 = (s7 + (1 << 20)) >> 21; + s8 += carry7; + s7 -= carry7 << 21; + carry9 = (s9 + (1 << 20)) >> 21; + s10 += carry9; + s9 -= carry9 << 21; + carry11 = (s11 + (1 << 20)) >> 21; + s12 += carry11; + s11 -= carry11 << 21; + carry13 = (s13 + (1 << 20)) >> 21; + s14 += carry13; + s13 -= carry13 << 21; + carry15 = (s15 + (1 << 20)) >> 21; + s16 += carry15; + s15 -= carry15 << 21; + carry17 = (s17 + (1 << 20)) >> 21; + s18 += carry17; + s17 -= carry17 << 21; + carry19 = (s19 + (1 << 20)) >> 21; + s20 += carry19; + s19 -= carry19 << 21; + carry21 = (s21 + (1 << 20)) >> 21; + s22 += carry21; + s21 -= carry21 << 21; + s11 += s23 * 666643; + s12 += s23 * 470296; + s13 += s23 * 654183; + s14 -= s23 * 997805; + s15 += s23 * 136657; + s16 -= s23 * 683901; + s23 = 0; + s10 += s22 * 666643; + s11 += s22 * 470296; + s12 += s22 * 654183; + s13 -= s22 * 997805; + s14 += s22 * 136657; + s15 -= s22 * 683901; + s22 = 0; + s9 += s21 * 666643; + s10 += s21 * 470296; + s11 += s21 * 654183; + s12 -= s21 * 997805; + s13 += s21 * 136657; + s14 -= s21 * 683901; + s21 = 0; + s8 += s20 * 666643; + s9 += s20 * 470296; + s10 += s20 * 654183; + s11 -= s20 * 997805; + s12 += s20 * 136657; + s13 -= s20 * 683901; + s20 = 0; + s7 += s19 * 666643; + s8 += s19 * 470296; + s9 += s19 * 654183; + s10 -= s19 * 997805; + s11 += s19 * 136657; + s12 -= s19 * 683901; + s19 = 0; + s6 += s18 * 666643; + s7 += s18 * 470296; + s8 += s18 * 654183; + s9 -= s18 * 997805; + s10 += s18 * 136657; + s11 -= s18 * 683901; + s18 = 0; + carry6 = (s6 + (1 << 20)) >> 21; + s7 += carry6; + s6 -= carry6 << 21; + carry8 = (s8 + (1 << 20)) >> 21; + s9 += carry8; + s8 -= carry8 << 21; + carry10 = (s10 + (1 << 20)) >> 21; + s11 += carry10; + s10 -= carry10 << 21; + carry12 = (s12 + (1 << 20)) >> 21; + s13 += carry12; + s12 -= carry12 << 21; + carry14 = (s14 + (1 << 20)) >> 21; + s15 += carry14; + s14 -= carry14 << 21; + carry16 = (s16 + (1 << 20)) >> 21; + s17 += carry16; + s16 -= carry16 << 21; + carry7 = (s7 + (1 << 20)) >> 21; + s8 += carry7; + s7 -= carry7 << 21; + carry9 = (s9 + (1 << 20)) >> 21; + s10 += carry9; + s9 -= carry9 << 21; + carry11 = (s11 + (1 << 20)) >> 21; + s12 += carry11; + s11 -= carry11 << 21; + carry13 = (s13 + (1 << 20)) >> 21; + s14 += carry13; + s13 -= carry13 << 21; + carry15 = (s15 + (1 << 20)) >> 21; + s16 += carry15; + s15 -= carry15 << 21; + s5 += s17 * 666643; + s6 += s17 * 470296; + s7 += s17 * 654183; + s8 -= s17 * 997805; + s9 += s17 * 136657; + s10 -= s17 * 683901; + s17 = 0; + s4 += s16 * 666643; + s5 += s16 * 470296; + s6 += s16 * 654183; + s7 -= s16 * 997805; + s8 += s16 * 136657; + s9 -= s16 * 683901; + s16 = 0; + s3 += s15 * 666643; + s4 += s15 * 470296; + s5 += s15 * 654183; + s6 -= s15 * 997805; + s7 += s15 * 136657; + s8 -= s15 * 683901; + s15 = 0; + s2 += s14 * 666643; + s3 += s14 * 470296; + s4 += s14 * 654183; + s5 -= s14 * 997805; + s6 += s14 * 136657; + s7 -= s14 * 683901; + s14 = 0; + s1 += s13 * 666643; + s2 += s13 * 470296; + s3 += s13 * 654183; + s4 -= s13 * 997805; + s5 += s13 * 136657; + s6 -= s13 * 683901; + s13 = 0; + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + carry0 = (s0 + (1 << 20)) >> 21; + s1 += carry0; + s0 -= carry0 << 21; + carry2 = (s2 + (1 << 20)) >> 21; + s3 += carry2; + s2 -= carry2 << 21; + carry4 = (s4 + (1 << 20)) >> 21; + s5 += carry4; + s4 -= carry4 << 21; + carry6 = (s6 + (1 << 20)) >> 21; + s7 += carry6; + s6 -= carry6 << 21; + carry8 = (s8 + (1 << 20)) >> 21; + s9 += carry8; + s8 -= carry8 << 21; + carry10 = (s10 + (1 << 20)) >> 21; + s11 += carry10; + s10 -= carry10 << 21; + carry1 = (s1 + (1 << 20)) >> 21; + s2 += carry1; + s1 -= carry1 << 21; + carry3 = (s3 + (1 << 20)) >> 21; + s4 += carry3; + s3 -= carry3 << 21; + carry5 = (s5 + (1 << 20)) >> 21; + s6 += carry5; + s5 -= carry5 << 21; + carry7 = (s7 + (1 << 20)) >> 21; + s8 += carry7; + s7 -= carry7 << 21; + carry9 = (s9 + (1 << 20)) >> 21; + s10 += carry9; + s9 -= carry9 << 21; + carry11 = (s11 + (1 << 20)) >> 21; + s12 += carry11; + s11 -= carry11 << 21; + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + carry0 = s0 >> 21; + s1 += carry0; + s0 -= carry0 << 21; + carry1 = s1 >> 21; + s2 += carry1; + s1 -= carry1 << 21; + carry2 = s2 >> 21; + s3 += carry2; + s2 -= carry2 << 21; + carry3 = s3 >> 21; + s4 += carry3; + s3 -= carry3 << 21; + carry4 = s4 >> 21; + s5 += carry4; + s4 -= carry4 << 21; + carry5 = s5 >> 21; + s6 += carry5; + s5 -= carry5 << 21; + carry6 = s6 >> 21; + s7 += carry6; + s6 -= carry6 << 21; + carry7 = s7 >> 21; + s8 += carry7; + s7 -= carry7 << 21; + carry8 = s8 >> 21; + s9 += carry8; + s8 -= carry8 << 21; + carry9 = s9 >> 21; + s10 += carry9; + s9 -= carry9 << 21; + carry10 = s10 >> 21; + s11 += carry10; + s10 -= carry10 << 21; + carry11 = s11 >> 21; + s12 += carry11; + s11 -= carry11 << 21; + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + carry0 = s0 >> 21; + s1 += carry0; + s0 -= carry0 << 21; + carry1 = s1 >> 21; + s2 += carry1; + s1 -= carry1 << 21; + carry2 = s2 >> 21; + s3 += carry2; + s2 -= carry2 << 21; + carry3 = s3 >> 21; + s4 += carry3; + s3 -= carry3 << 21; + carry4 = s4 >> 21; + s5 += carry4; + s4 -= carry4 << 21; + carry5 = s5 >> 21; + s6 += carry5; + s5 -= carry5 << 21; + carry6 = s6 >> 21; + s7 += carry6; + s6 -= carry6 << 21; + carry7 = s7 >> 21; + s8 += carry7; + s7 -= carry7 << 21; + carry8 = s8 >> 21; + s9 += carry8; + s8 -= carry8 << 21; + carry9 = s9 >> 21; + s10 += carry9; + s9 -= carry9 << 21; + carry10 = s10 >> 21; + s11 += carry10; + s10 -= carry10 << 21; + + s[0] = (unsigned char) (s0 >> 0); + s[1] = (unsigned char) (s0 >> 8); + s[2] = (unsigned char) ((s0 >> 16) | (s1 << 5)); + s[3] = (unsigned char) (s1 >> 3); + s[4] = (unsigned char) (s1 >> 11); + s[5] = (unsigned char) ((s1 >> 19) | (s2 << 2)); + s[6] = (unsigned char) (s2 >> 6); + s[7] = (unsigned char) ((s2 >> 14) | (s3 << 7)); + s[8] = (unsigned char) (s3 >> 1); + s[9] = (unsigned char) (s3 >> 9); + s[10] = (unsigned char) ((s3 >> 17) | (s4 << 4)); + s[11] = (unsigned char) (s4 >> 4); + s[12] = (unsigned char) (s4 >> 12); + s[13] = (unsigned char) ((s4 >> 20) | (s5 << 1)); + s[14] = (unsigned char) (s5 >> 7); + s[15] = (unsigned char) ((s5 >> 15) | (s6 << 6)); + s[16] = (unsigned char) (s6 >> 2); + s[17] = (unsigned char) (s6 >> 10); + s[18] = (unsigned char) ((s6 >> 18) | (s7 << 3)); + s[19] = (unsigned char) (s7 >> 5); + s[20] = (unsigned char) (s7 >> 13); + s[21] = (unsigned char) (s8 >> 0); + s[22] = (unsigned char) (s8 >> 8); + s[23] = (unsigned char) ((s8 >> 16) | (s9 << 5)); + s[24] = (unsigned char) (s9 >> 3); + s[25] = (unsigned char) (s9 >> 11); + s[26] = (unsigned char) ((s9 >> 19) | (s10 << 2)); + s[27] = (unsigned char) (s10 >> 6); + s[28] = (unsigned char) ((s10 >> 14) | (s11 << 7)); + s[29] = (unsigned char) (s11 >> 1); + s[30] = (unsigned char) (s11 >> 9); + s[31] = (unsigned char) (s11 >> 17); +} diff --git a/lib/ed25519/sc.h b/lib/ed25519/sc.h new file mode 100755 index 0000000..e29e7fa --- /dev/null +++ b/lib/ed25519/sc.h @@ -0,0 +1,12 @@ +#ifndef SC_H +#define SC_H + +/* +The set of scalars is \Z/l +where l = 2^252 + 27742317777372353535851937790883648493. +*/ + +void sc_reduce(unsigned char *s); +void sc_muladd(unsigned char *s, const unsigned char *a, const unsigned char *b, const unsigned char *c); + +#endif diff --git a/lib/ed25519/seed.c b/lib/ed25519/seed.c new file mode 100755 index 0000000..11a2e3e --- /dev/null +++ b/lib/ed25519/seed.c @@ -0,0 +1,40 @@ +#include "ed25519.h" + +#ifndef ED25519_NO_SEED + +#ifdef _WIN32 +#include +#include +#else +#include +#endif + +int ed25519_create_seed(unsigned char *seed) { +#ifdef _WIN32 + HCRYPTPROV prov; + + if (!CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) { + return 1; + } + + if (!CryptGenRandom(prov, 32, seed)) { + CryptReleaseContext(prov, 0); + return 1; + } + + CryptReleaseContext(prov, 0); +#else + FILE *f = fopen("/dev/urandom", "rb"); + + if (f == NULL) { + return 1; + } + + fread(seed, 1, 32, f); + fclose(f); +#endif + + return 0; +} + +#endif diff --git a/lib/ed25519/sha512.c b/lib/ed25519/sha512.c new file mode 100755 index 0000000..cb8ae71 --- /dev/null +++ b/lib/ed25519/sha512.c @@ -0,0 +1,275 @@ +/* LibTomCrypt, modular cryptographic library -- Tom St Denis + * + * LibTomCrypt is a library that provides various cryptographic + * algorithms in a highly modular and flexible manner. + * + * The library is free for all purposes without any express + * guarantee it works. + * + * Tom St Denis, tomstdenis@gmail.com, http://libtom.org + */ + +#include "fixedint.h" +#include "sha512.h" + +/* the K array */ +static const uint64_t K[80] = { + UINT64_C(0x428a2f98d728ae22), UINT64_C(0x7137449123ef65cd), + UINT64_C(0xb5c0fbcfec4d3b2f), UINT64_C(0xe9b5dba58189dbbc), + UINT64_C(0x3956c25bf348b538), UINT64_C(0x59f111f1b605d019), + UINT64_C(0x923f82a4af194f9b), UINT64_C(0xab1c5ed5da6d8118), + UINT64_C(0xd807aa98a3030242), UINT64_C(0x12835b0145706fbe), + UINT64_C(0x243185be4ee4b28c), UINT64_C(0x550c7dc3d5ffb4e2), + UINT64_C(0x72be5d74f27b896f), UINT64_C(0x80deb1fe3b1696b1), + UINT64_C(0x9bdc06a725c71235), UINT64_C(0xc19bf174cf692694), + UINT64_C(0xe49b69c19ef14ad2), UINT64_C(0xefbe4786384f25e3), + UINT64_C(0x0fc19dc68b8cd5b5), UINT64_C(0x240ca1cc77ac9c65), + UINT64_C(0x2de92c6f592b0275), UINT64_C(0x4a7484aa6ea6e483), + UINT64_C(0x5cb0a9dcbd41fbd4), UINT64_C(0x76f988da831153b5), + UINT64_C(0x983e5152ee66dfab), UINT64_C(0xa831c66d2db43210), + UINT64_C(0xb00327c898fb213f), UINT64_C(0xbf597fc7beef0ee4), + UINT64_C(0xc6e00bf33da88fc2), UINT64_C(0xd5a79147930aa725), + UINT64_C(0x06ca6351e003826f), UINT64_C(0x142929670a0e6e70), + UINT64_C(0x27b70a8546d22ffc), UINT64_C(0x2e1b21385c26c926), + UINT64_C(0x4d2c6dfc5ac42aed), UINT64_C(0x53380d139d95b3df), + UINT64_C(0x650a73548baf63de), UINT64_C(0x766a0abb3c77b2a8), + UINT64_C(0x81c2c92e47edaee6), UINT64_C(0x92722c851482353b), + UINT64_C(0xa2bfe8a14cf10364), UINT64_C(0xa81a664bbc423001), + UINT64_C(0xc24b8b70d0f89791), UINT64_C(0xc76c51a30654be30), + UINT64_C(0xd192e819d6ef5218), UINT64_C(0xd69906245565a910), + UINT64_C(0xf40e35855771202a), UINT64_C(0x106aa07032bbd1b8), + UINT64_C(0x19a4c116b8d2d0c8), UINT64_C(0x1e376c085141ab53), + UINT64_C(0x2748774cdf8eeb99), UINT64_C(0x34b0bcb5e19b48a8), + UINT64_C(0x391c0cb3c5c95a63), UINT64_C(0x4ed8aa4ae3418acb), + UINT64_C(0x5b9cca4f7763e373), UINT64_C(0x682e6ff3d6b2b8a3), + UINT64_C(0x748f82ee5defb2fc), UINT64_C(0x78a5636f43172f60), + UINT64_C(0x84c87814a1f0ab72), UINT64_C(0x8cc702081a6439ec), + UINT64_C(0x90befffa23631e28), UINT64_C(0xa4506cebde82bde9), + UINT64_C(0xbef9a3f7b2c67915), UINT64_C(0xc67178f2e372532b), + UINT64_C(0xca273eceea26619c), UINT64_C(0xd186b8c721c0c207), + UINT64_C(0xeada7dd6cde0eb1e), UINT64_C(0xf57d4f7fee6ed178), + UINT64_C(0x06f067aa72176fba), UINT64_C(0x0a637dc5a2c898a6), + UINT64_C(0x113f9804bef90dae), UINT64_C(0x1b710b35131c471b), + UINT64_C(0x28db77f523047d84), UINT64_C(0x32caab7b40c72493), + UINT64_C(0x3c9ebe0a15c9bebc), UINT64_C(0x431d67c49c100d4c), + UINT64_C(0x4cc5d4becb3e42b6), UINT64_C(0x597f299cfc657e2a), + UINT64_C(0x5fcb6fab3ad6faec), UINT64_C(0x6c44198c4a475817) +}; + +/* Various logical functions */ + +#define ROR64c(x, y) \ + ( ((((x)&UINT64_C(0xFFFFFFFFFFFFFFFF))>>((uint64_t)(y)&UINT64_C(63))) | \ + ((x)<<((uint64_t)(64-((y)&UINT64_C(63)))))) & UINT64_C(0xFFFFFFFFFFFFFFFF)) + +#define STORE64H(x, y) \ + { (y)[0] = (unsigned char)(((x)>>56)&255); (y)[1] = (unsigned char)(((x)>>48)&255); \ + (y)[2] = (unsigned char)(((x)>>40)&255); (y)[3] = (unsigned char)(((x)>>32)&255); \ + (y)[4] = (unsigned char)(((x)>>24)&255); (y)[5] = (unsigned char)(((x)>>16)&255); \ + (y)[6] = (unsigned char)(((x)>>8)&255); (y)[7] = (unsigned char)((x)&255); } + +#define LOAD64H(x, y) \ + { x = (((uint64_t)((y)[0] & 255))<<56)|(((uint64_t)((y)[1] & 255))<<48) | \ + (((uint64_t)((y)[2] & 255))<<40)|(((uint64_t)((y)[3] & 255))<<32) | \ + (((uint64_t)((y)[4] & 255))<<24)|(((uint64_t)((y)[5] & 255))<<16) | \ + (((uint64_t)((y)[6] & 255))<<8)|(((uint64_t)((y)[7] & 255))); } + + +#define Ch(x,y,z) (z ^ (x & (y ^ z))) +#define Maj(x,y,z) (((x | y) & z) | (x & y)) +#define S(x, n) ROR64c(x, n) +#define R(x, n) (((x) &UINT64_C(0xFFFFFFFFFFFFFFFF))>>((uint64_t)n)) +#define Sigma0(x) (S(x, 28) ^ S(x, 34) ^ S(x, 39)) +#define Sigma1(x) (S(x, 14) ^ S(x, 18) ^ S(x, 41)) +#define Gamma0(x) (S(x, 1) ^ S(x, 8) ^ R(x, 7)) +#define Gamma1(x) (S(x, 19) ^ S(x, 61) ^ R(x, 6)) +#ifndef MIN + #define MIN(x, y) ( ((x)<(y))?(x):(y) ) +#endif + +/* compress 1024-bits */ +static int sha512_compress(sha512_context *md, unsigned char *buf) +{ + uint64_t S[8], W[80], t0, t1; + int i; + + /* copy state into S */ + for (i = 0; i < 8; i++) { + S[i] = md->state[i]; + } + + /* copy the state into 1024-bits into W[0..15] */ + for (i = 0; i < 16; i++) { + LOAD64H(W[i], buf + (8*i)); + } + + /* fill W[16..79] */ + for (i = 16; i < 80; i++) { + W[i] = Gamma1(W[i - 2]) + W[i - 7] + Gamma0(W[i - 15]) + W[i - 16]; + } + +/* Compress */ + #define RND(a,b,c,d,e,f,g,h,i) \ + t0 = h + Sigma1(e) + Ch(e, f, g) + K[i] + W[i]; \ + t1 = Sigma0(a) + Maj(a, b, c);\ + d += t0; \ + h = t0 + t1; + + for (i = 0; i < 80; i += 8) { + RND(S[0],S[1],S[2],S[3],S[4],S[5],S[6],S[7],i+0); + RND(S[7],S[0],S[1],S[2],S[3],S[4],S[5],S[6],i+1); + RND(S[6],S[7],S[0],S[1],S[2],S[3],S[4],S[5],i+2); + RND(S[5],S[6],S[7],S[0],S[1],S[2],S[3],S[4],i+3); + RND(S[4],S[5],S[6],S[7],S[0],S[1],S[2],S[3],i+4); + RND(S[3],S[4],S[5],S[6],S[7],S[0],S[1],S[2],i+5); + RND(S[2],S[3],S[4],S[5],S[6],S[7],S[0],S[1],i+6); + RND(S[1],S[2],S[3],S[4],S[5],S[6],S[7],S[0],i+7); + } + + #undef RND + + + + /* feedback */ + for (i = 0; i < 8; i++) { + md->state[i] = md->state[i] + S[i]; + } + + return 0; +} + + +/** + Initialize the hash state + @param md The hash state you wish to initialize + @return 0 if successful +*/ +int sha512_init(sha512_context * md) { + if (md == NULL) return 1; + + md->curlen = 0; + md->length = 0; + md->state[0] = UINT64_C(0x6a09e667f3bcc908); + md->state[1] = UINT64_C(0xbb67ae8584caa73b); + md->state[2] = UINT64_C(0x3c6ef372fe94f82b); + md->state[3] = UINT64_C(0xa54ff53a5f1d36f1); + md->state[4] = UINT64_C(0x510e527fade682d1); + md->state[5] = UINT64_C(0x9b05688c2b3e6c1f); + md->state[6] = UINT64_C(0x1f83d9abfb41bd6b); + md->state[7] = UINT64_C(0x5be0cd19137e2179); + + return 0; +} + +/** + Process a block of memory though the hash + @param md The hash state + @param in The data to hash + @param inlen The length of the data (octets) + @return 0 if successful +*/ +int sha512_update (sha512_context * md, const unsigned char *in, size_t inlen) +{ + size_t n; + size_t i; + int err; + if (md == NULL) return 1; + if (in == NULL) return 1; + if (md->curlen > sizeof(md->buf)) { + return 1; + } + while (inlen > 0) { + if (md->curlen == 0 && inlen >= 128) { + if ((err = sha512_compress (md, (unsigned char *)in)) != 0) { + return err; + } + md->length += 128 * 8; + in += 128; + inlen -= 128; + } else { + n = MIN(inlen, (128 - md->curlen)); + + for (i = 0; i < n; i++) { + md->buf[i + md->curlen] = in[i]; + } + + + md->curlen += n; + in += n; + inlen -= n; + if (md->curlen == 128) { + if ((err = sha512_compress (md, md->buf)) != 0) { + return err; + } + md->length += 8*128; + md->curlen = 0; + } + } + } + return 0; +} + +/** + Terminate the hash to get the digest + @param md The hash state + @param out [out] The destination of the hash (64 bytes) + @return 0 if successful +*/ + int sha512_final(sha512_context * md, unsigned char *out) + { + int i; + + if (md == NULL) return 1; + if (out == NULL) return 1; + + if (md->curlen >= sizeof(md->buf)) { + return 1; + } + + /* increase the length of the message */ + md->length += md->curlen * UINT64_C(8); + + /* append the '1' bit */ + md->buf[md->curlen++] = (unsigned char)0x80; + + /* if the length is currently above 112 bytes we append zeros + * then compress. Then we can fall back to padding zeros and length + * encoding like normal. + */ + if (md->curlen > 112) { + while (md->curlen < 128) { + md->buf[md->curlen++] = (unsigned char)0; + } + sha512_compress(md, md->buf); + md->curlen = 0; + } + + /* pad upto 120 bytes of zeroes + * note: that from 112 to 120 is the 64 MSB of the length. We assume that you won't hash + * > 2^64 bits of data... :-) + */ +while (md->curlen < 120) { + md->buf[md->curlen++] = (unsigned char)0; +} + + /* store length */ +STORE64H(md->length, md->buf+120); +sha512_compress(md, md->buf); + + /* copy output */ +for (i = 0; i < 8; i++) { + STORE64H(md->state[i], out+(8*i)); +} + +return 0; +} + +int sha512(const unsigned char *message, size_t message_len, unsigned char *out) +{ + sha512_context ctx; + int ret; + if ((ret = sha512_init(&ctx))) return ret; + if ((ret = sha512_update(&ctx, message, message_len))) return ret; + if ((ret = sha512_final(&ctx, out))) return ret; + return 0; +} diff --git a/lib/ed25519/sha512.h b/lib/ed25519/sha512.h new file mode 100755 index 0000000..3649cba --- /dev/null +++ b/lib/ed25519/sha512.h @@ -0,0 +1,28 @@ +#ifndef SHA512_H +#define SHA512_H + +#include + +#include "fixedint.h" + +/* state */ +typedef struct sha512_context_ { + uint64_t length, state[8]; + size_t curlen; + unsigned char buf[128]; +} sha512_context; + +#ifdef __cplusplus +extern "C" { +#endif + +int sha512_init(sha512_context * md); +int sha512_final(sha512_context * md, unsigned char *out); +int sha512_update(sha512_context * md, const unsigned char *in, size_t inlen); +int sha512(const unsigned char *message, size_t message_len, unsigned char *out); +#ifdef __cplusplus +} +#endif + + +#endif diff --git a/lib/ed25519/sign.c b/lib/ed25519/sign.c new file mode 100755 index 0000000..199a839 --- /dev/null +++ b/lib/ed25519/sign.c @@ -0,0 +1,31 @@ +#include "ed25519.h" +#include "sha512.h" +#include "ge.h" +#include "sc.h" + + +void ed25519_sign(unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key, const unsigned char *private_key) { + sha512_context hash; + unsigned char hram[64]; + unsigned char r[64]; + ge_p3 R; + + + sha512_init(&hash); + sha512_update(&hash, private_key + 32, 32); + sha512_update(&hash, message, message_len); + sha512_final(&hash, r); + + sc_reduce(r); + ge_scalarmult_base(&R, r); + ge_p3_tobytes(signature, &R); + + sha512_init(&hash); + sha512_update(&hash, signature, 32); + sha512_update(&hash, public_key, 32); + sha512_update(&hash, message, message_len); + sha512_final(&hash, hram); + + sc_reduce(hram); + sc_muladd(signature + 32, hram, private_key, r); +} diff --git a/lib/ed25519/verify.c b/lib/ed25519/verify.c new file mode 100755 index 0000000..32f988e --- /dev/null +++ b/lib/ed25519/verify.c @@ -0,0 +1,77 @@ +#include "ed25519.h" +#include "sha512.h" +#include "ge.h" +#include "sc.h" + +static int consttime_equal(const unsigned char *x, const unsigned char *y) { + unsigned char r = 0; + + r = x[0] ^ y[0]; + #define F(i) r |= x[i] ^ y[i] + F(1); + F(2); + F(3); + F(4); + F(5); + F(6); + F(7); + F(8); + F(9); + F(10); + F(11); + F(12); + F(13); + F(14); + F(15); + F(16); + F(17); + F(18); + F(19); + F(20); + F(21); + F(22); + F(23); + F(24); + F(25); + F(26); + F(27); + F(28); + F(29); + F(30); + F(31); + #undef F + + return !r; +} + +int ed25519_verify(const unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key) { + unsigned char h[64]; + unsigned char checker[32]; + sha512_context hash; + ge_p3 A; + ge_p2 R; + + if (signature[63] & 224) { + return 0; + } + + if (ge_frombytes_negate_vartime(&A, public_key) != 0) { + return 0; + } + + sha512_init(&hash); + sha512_update(&hash, signature, 32); + sha512_update(&hash, public_key, 32); + sha512_update(&hash, message, message_len); + sha512_final(&hash, h); + + sc_reduce(h); + ge_double_scalarmult_vartime(&R, h, &A, signature + 32); + ge_tobytes(checker, &R); + + if (!consttime_equal(checker, signature)) { + return 0; + } + + return 1; +} diff --git a/lib/fairplay.h b/lib/fairplay.h old mode 100644 new mode 100755 diff --git a/lib/fairplay_playfair.c b/lib/fairplay_playfair.c new file mode 100755 index 0000000..ade48d9 --- /dev/null +++ b/lib/fairplay_playfair.c @@ -0,0 +1,87 @@ +#include +#include +#include + +#include "fairplay.h" +#include "playfair/playfair.h" + +char reply_message[4][142] = {{0x46,0x50,0x4c,0x59,0x03,0x01,0x02,0x00,0x00,0x00,0x00,0x82,0x02,0x00,0x0f,0x9f,0x3f,0x9e,0x0a,0x25,0x21,0xdb,0xdf,0x31,0x2a,0xb2,0xbf,0xb2,0x9e,0x8d,0x23,0x2b,0x63,0x76,0xa8,0xc8,0x18,0x70,0x1d,0x22,0xae,0x93,0xd8,0x27,0x37,0xfe,0xaf,0x9d,0xb4,0xfd,0xf4,0x1c,0x2d,0xba,0x9d,0x1f,0x49,0xca,0xaa,0xbf,0x65,0x91,0xac,0x1f,0x7b,0xc6,0xf7,0xe0,0x66,0x3d,0x21,0xaf,0xe0,0x15,0x65,0x95,0x3e,0xab,0x81,0xf4,0x18,0xce,0xed,0x09,0x5a,0xdb,0x7c,0x3d,0x0e,0x25,0x49,0x09,0xa7,0x98,0x31,0xd4,0x9c,0x39,0x82,0x97,0x34,0x34,0xfa,0xcb,0x42,0xc6,0x3a,0x1c,0xd9,0x11,0xa6,0xfe,0x94,0x1a,0x8a,0x6d,0x4a,0x74,0x3b,0x46,0xc3,0xa7,0x64,0x9e,0x44,0xc7,0x89,0x55,0xe4,0x9d,0x81,0x55,0x00,0x95,0x49,0xc4,0xe2,0xf7,0xa3,0xf6,0xd5,0xba}, + {0x46,0x50,0x4c,0x59,0x03,0x01,0x02,0x00,0x00,0x00,0x00,0x82,0x02,0x01,0xcf,0x32,0xa2,0x57,0x14,0xb2,0x52,0x4f,0x8a,0xa0,0xad,0x7a,0xf1,0x64,0xe3,0x7b,0xcf,0x44,0x24,0xe2,0x00,0x04,0x7e,0xfc,0x0a,0xd6,0x7a,0xfc,0xd9,0x5d,0xed,0x1c,0x27,0x30,0xbb,0x59,0x1b,0x96,0x2e,0xd6,0x3a,0x9c,0x4d,0xed,0x88,0xba,0x8f,0xc7,0x8d,0xe6,0x4d,0x91,0xcc,0xfd,0x5c,0x7b,0x56,0xda,0x88,0xe3,0x1f,0x5c,0xce,0xaf,0xc7,0x43,0x19,0x95,0xa0,0x16,0x65,0xa5,0x4e,0x19,0x39,0xd2,0x5b,0x94,0xdb,0x64,0xb9,0xe4,0x5d,0x8d,0x06,0x3e,0x1e,0x6a,0xf0,0x7e,0x96,0x56,0x16,0x2b,0x0e,0xfa,0x40,0x42,0x75,0xea,0x5a,0x44,0xd9,0x59,0x1c,0x72,0x56,0xb9,0xfb,0xe6,0x51,0x38,0x98,0xb8,0x02,0x27,0x72,0x19,0x88,0x57,0x16,0x50,0x94,0x2a,0xd9,0x46,0x68,0x8a}, + {0x46,0x50,0x4c,0x59,0x03,0x01,0x02,0x00,0x00,0x00,0x00,0x82,0x02,0x02,0xc1,0x69,0xa3,0x52,0xee,0xed,0x35,0xb1,0x8c,0xdd,0x9c,0x58,0xd6,0x4f,0x16,0xc1,0x51,0x9a,0x89,0xeb,0x53,0x17,0xbd,0x0d,0x43,0x36,0xcd,0x68,0xf6,0x38,0xff,0x9d,0x01,0x6a,0x5b,0x52,0xb7,0xfa,0x92,0x16,0xb2,0xb6,0x54,0x82,0xc7,0x84,0x44,0x11,0x81,0x21,0xa2,0xc7,0xfe,0xd8,0x3d,0xb7,0x11,0x9e,0x91,0x82,0xaa,0xd7,0xd1,0x8c,0x70,0x63,0xe2,0xa4,0x57,0x55,0x59,0x10,0xaf,0x9e,0x0e,0xfc,0x76,0x34,0x7d,0x16,0x40,0x43,0x80,0x7f,0x58,0x1e,0xe4,0xfb,0xe4,0x2c,0xa9,0xde,0xdc,0x1b,0x5e,0xb2,0xa3,0xaa,0x3d,0x2e,0xcd,0x59,0xe7,0xee,0xe7,0x0b,0x36,0x29,0xf2,0x2a,0xfd,0x16,0x1d,0x87,0x73,0x53,0xdd,0xb9,0x9a,0xdc,0x8e,0x07,0x00,0x6e,0x56,0xf8,0x50,0xce}, + {0x46,0x50,0x4c,0x59,0x03,0x01,0x02,0x00,0x00,0x00,0x00,0x82,0x02,0x03,0x90,0x01,0xe1,0x72,0x7e,0x0f,0x57,0xf9,0xf5,0x88,0x0d,0xb1,0x04,0xa6,0x25,0x7a,0x23,0xf5,0xcf,0xff,0x1a,0xbb,0xe1,0xe9,0x30,0x45,0x25,0x1a,0xfb,0x97,0xeb,0x9f,0xc0,0x01,0x1e,0xbe,0x0f,0x3a,0x81,0xdf,0x5b,0x69,0x1d,0x76,0xac,0xb2,0xf7,0xa5,0xc7,0x08,0xe3,0xd3,0x28,0xf5,0x6b,0xb3,0x9d,0xbd,0xe5,0xf2,0x9c,0x8a,0x17,0xf4,0x81,0x48,0x7e,0x3a,0xe8,0x63,0xc6,0x78,0x32,0x54,0x22,0xe6,0xf7,0x8e,0x16,0x6d,0x18,0xaa,0x7f,0xd6,0x36,0x25,0x8b,0xce,0x28,0x72,0x6f,0x66,0x1f,0x73,0x88,0x93,0xce,0x44,0x31,0x1e,0x4b,0xe6,0xc0,0x53,0x51,0x93,0xe5,0xef,0x72,0xe8,0x68,0x62,0x33,0x72,0x9c,0x22,0x7d,0x82,0x0c,0x99,0x94,0x45,0xd8,0x92,0x46,0xc8,0xc3,0x59}}; + +char fp_header[] = {0x46, 0x50, 0x4c, 0x59, 0x03, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x14}; + +struct fairplay_s { + logger_t *logger; + + unsigned char keymsg[164]; + unsigned int keymsglen; +}; + +fairplay_t * +fairplay_init(logger_t *logger) +{ + fairplay_t *fp; + + fp = calloc(1, sizeof(fairplay_t)); + if (!fp) { + return NULL; + } + fp->logger = logger; + + return fp; +} + +int +fairplay_setup(fairplay_t *fp, const unsigned char req[16], unsigned char res[142]) +{ + int mode; + + assert(fp); + + if (req[4] != 0x03) { + /* Unsupported fairplay version */ + return -1; + } + + mode = req[14]; + memcpy(res, reply_message[mode], 142); + fp->keymsglen = 0; + return 0; +} + +int +fairplay_handshake(fairplay_t *fp, const unsigned char req[164], unsigned char res[32]) +{ + assert(fp); + + if (req[4] != 0x03) { + /* Unsupported fairplay version */ + return -1; + } + + memcpy(fp->keymsg, req, 164); + fp->keymsglen = 164; + + memcpy(res, fp_header, 12); + memcpy(res + 12, req + 144, 20); + return 0; +} + +int +fairplay_decrypt(fairplay_t *fp, const unsigned char input[72], unsigned char output[16]) +{ + if (fp->keymsglen != 164) { + return -1; + } + + playfair_decrypt(fp->keymsg, (unsigned char *) input, output); + return 0; +} + +void +fairplay_destroy(fairplay_t *fp) +{ + free(fp); +} diff --git a/lib/global.h b/lib/global.h old mode 100644 new mode 100755 diff --git a/lib/http_parser.c b/lib/http_parser.c new file mode 100755 index 0000000..54eb98a --- /dev/null +++ b/lib/http_parser.c @@ -0,0 +1,2577 @@ +/* Copyright Joyent, Inc. and other Node contributors. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ +#include "http_parser.h" +#include +#include +#include +#include +#include + +static uint32_t max_header_size = HTTP_MAX_HEADER_SIZE; + +#ifndef ULLONG_MAX +# define ULLONG_MAX ((uint64_t) -1) /* 2^64-1 */ +#endif + +#ifndef MIN +# define MIN(a,b) ((a) < (b) ? (a) : (b)) +#endif + +#ifndef ARRAY_SIZE +# define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) +#endif + +#ifndef BIT_AT +# define BIT_AT(a, i) \ + (!!((unsigned int) (a)[(unsigned int) (i) >> 3] & \ + (1 << ((unsigned int) (i) & 7)))) +#endif + +#ifndef ELEM_AT +# define ELEM_AT(a, i, v) ((unsigned int) (i) < ARRAY_SIZE(a) ? (a)[(i)] : (v)) +#endif + +#define SET_ERRNO(e) \ +do { \ + parser->nread = nread; \ + parser->http_errno = (e); \ +} while(0) + +#define CURRENT_STATE() p_state +#define UPDATE_STATE(V) p_state = (enum state) (V); +#define RETURN(V) \ +do { \ + parser->nread = nread; \ + parser->state = CURRENT_STATE(); \ + return (V); \ +} while (0); +#define REEXECUTE() \ + goto reexecute; \ + + +#ifdef __GNUC__ +# define LIKELY(X) __builtin_expect(!!(X), 1) +# define UNLIKELY(X) __builtin_expect(!!(X), 0) +#else +# define LIKELY(X) (X) +# define UNLIKELY(X) (X) +#endif + + +/* Run the notify callback FOR, returning ER if it fails */ +#define CALLBACK_NOTIFY_(FOR, ER) \ +do { \ + assert(HTTP_PARSER_ERRNO(parser) == HPE_OK); \ + \ + if (LIKELY(settings->on_##FOR)) { \ + parser->state = CURRENT_STATE(); \ + if (UNLIKELY(0 != settings->on_##FOR(parser))) { \ + SET_ERRNO(HPE_CB_##FOR); \ + } \ + UPDATE_STATE(parser->state); \ + \ + /* We either errored above or got paused; get out */ \ + if (UNLIKELY(HTTP_PARSER_ERRNO(parser) != HPE_OK)) { \ + return (ER); \ + } \ + } \ +} while (0) + +/* Run the notify callback FOR and consume the current byte */ +#define CALLBACK_NOTIFY(FOR) CALLBACK_NOTIFY_(FOR, p - data + 1) + +/* Run the notify callback FOR and don't consume the current byte */ +#define CALLBACK_NOTIFY_NOADVANCE(FOR) CALLBACK_NOTIFY_(FOR, p - data) + +/* Run data callback FOR with LEN bytes, returning ER if it fails */ +#define CALLBACK_DATA_(FOR, LEN, ER) \ +do { \ + assert(HTTP_PARSER_ERRNO(parser) == HPE_OK); \ + \ + if (FOR##_mark) { \ + if (LIKELY(settings->on_##FOR)) { \ + parser->state = CURRENT_STATE(); \ + if (UNLIKELY(0 != \ + settings->on_##FOR(parser, FOR##_mark, (LEN)))) { \ + SET_ERRNO(HPE_CB_##FOR); \ + } \ + UPDATE_STATE(parser->state); \ + \ + /* We either errored above or got paused; get out */ \ + if (UNLIKELY(HTTP_PARSER_ERRNO(parser) != HPE_OK)) { \ + return (ER); \ + } \ + } \ + FOR##_mark = NULL; \ + } \ +} while (0) + +/* Run the data callback FOR and consume the current byte */ +#define CALLBACK_DATA(FOR) \ + CALLBACK_DATA_(FOR, p - FOR##_mark, p - data + 1) + +/* Run the data callback FOR and don't consume the current byte */ +#define CALLBACK_DATA_NOADVANCE(FOR) \ + CALLBACK_DATA_(FOR, p - FOR##_mark, p - data) + +/* Set the mark FOR; non-destructive if mark is already set */ +#define MARK(FOR) \ +do { \ + if (!FOR##_mark) { \ + FOR##_mark = p; \ + } \ +} while (0) + +/* Don't allow the total size of the HTTP headers (including the status + * line) to exceed max_header_size. This check is here to protect + * embedders against denial-of-service attacks where the attacker feeds + * us a never-ending header that the embedder keeps buffering. + * + * This check is arguably the responsibility of embedders but we're doing + * it on the embedder's behalf because most won't bother and this way we + * make the web a little safer. max_header_size is still far bigger + * than any reasonable request or response so this should never affect + * day-to-day operation. + */ +#define COUNT_HEADER_SIZE(V) \ +do { \ + nread += (uint32_t)(V); \ + if (UNLIKELY(nread > max_header_size)) { \ + SET_ERRNO(HPE_HEADER_OVERFLOW); \ + goto error; \ + } \ +} while (0) + + +#define PROXY_CONNECTION "proxy-connection" +#define CONNECTION "connection" +#define CONTENT_LENGTH "content-length" +#define TRANSFER_ENCODING "transfer-encoding" +#define UPGRADE "upgrade" +#define CHUNKED "chunked" +#define KEEP_ALIVE "keep-alive" +#define CLOSE "close" + + +static const char *method_strings[] = + { +#define XX(num, name, string) #string, + HTTP_METHOD_MAP(XX) +#undef XX + }; + + +/* Tokens as defined by rfc 2616. Also lowercases them. + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + */ +static const char tokens[256] = { +/* 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel */ + 0, 0, 0, 0, 0, 0, 0, 0, +/* 8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si */ + 0, 0, 0, 0, 0, 0, 0, 0, +/* 16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb */ + 0, 0, 0, 0, 0, 0, 0, 0, +/* 24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us */ + 0, 0, 0, 0, 0, 0, 0, 0, +/* 32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' */ + ' ', '!', 0, '#', '$', '%', '&', '\'', +/* 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / */ + 0, 0, '*', '+', 0, '-', '.', 0, +/* 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 */ + '0', '1', '2', '3', '4', '5', '6', '7', +/* 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? */ + '8', '9', 0, 0, 0, 0, 0, 0, +/* 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G */ + 0, 'a', 'b', 'c', 'd', 'e', 'f', 'g', +/* 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O */ + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', +/* 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W */ + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', +/* 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ */ + 'x', 'y', 'z', 0, 0, 0, '^', '_', +/* 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g */ + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', +/* 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o */ + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', +/* 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w */ + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', +/* 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 del */ + 'x', 'y', 'z', 0, '|', 0, '~', 0 }; + + +static const int8_t unhex[256] = + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 + ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 + ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 + , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1,-1,-1,-1,-1 + ,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1 + ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 + ,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1 + ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 + }; + + +#if HTTP_PARSER_STRICT +# define T(v) 0 +#else +# define T(v) v +#endif + + +static const uint8_t normal_url_char[32] = { +/* 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel */ + 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0, +/* 8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si */ + 0 | T(2) | 0 | 0 | T(16) | 0 | 0 | 0, +/* 16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb */ + 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0, +/* 24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us */ + 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0, +/* 32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' */ + 0 | 2 | 4 | 0 | 16 | 32 | 64 | 128, +/* 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 0, +/* 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 del */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 0, }; + +#undef T + +enum state + { s_dead = 1 /* important that this is > 0 */ + + , s_start_req_or_res + , s_res_or_resp_H + , s_start_res + , s_res_H + , s_res_HT + , s_res_HTT + , s_res_HTTP + , s_res_http_major + , s_res_http_dot + , s_res_http_minor + , s_res_http_end + , s_res_first_status_code + , s_res_status_code + , s_res_status_start + , s_res_status + , s_res_line_almost_done + + , s_start_req + + , s_req_method + , s_req_spaces_before_url + , s_req_schema + , s_req_schema_slash + , s_req_schema_slash_slash + , s_req_server_start + , s_req_server + , s_req_server_with_at + , s_req_path + , s_req_query_string_start + , s_req_query_string + , s_req_fragment_start + , s_req_fragment + , s_req_http_start + , s_req_http_H + , s_req_http_HT + , s_req_http_HTT + , s_req_http_HTTP + , s_req_http_I + , s_req_http_IC + , s_req_http_major + , s_req_http_dot + , s_req_http_minor + , s_req_http_end + , s_req_line_almost_done + + , s_header_field_start + , s_header_field + , s_header_value_discard_ws + , s_header_value_discard_ws_almost_done + , s_header_value_discard_lws + , s_header_value_start + , s_header_value + , s_header_value_lws + + , s_header_almost_done + + , s_chunk_size_start + , s_chunk_size + , s_chunk_parameters + , s_chunk_size_almost_done + + , s_headers_almost_done + , s_headers_done + + /* Important: 's_headers_done' must be the last 'header' state. All + * states beyond this must be 'body' states. It is used for overflow + * checking. See the PARSING_HEADER() macro. + */ + + , s_chunk_data + , s_chunk_data_almost_done + , s_chunk_data_done + + , s_body_identity + , s_body_identity_eof + + , s_message_done + }; + + +#define PARSING_HEADER(state) (state <= s_headers_done) + + +enum header_states + { h_general = 0 + , h_C + , h_CO + , h_CON + + , h_matching_connection + , h_matching_proxy_connection + , h_matching_content_length + , h_matching_transfer_encoding + , h_matching_upgrade + + , h_connection + , h_content_length + , h_content_length_num + , h_content_length_ws + , h_transfer_encoding + , h_upgrade + + , h_matching_transfer_encoding_token_start + , h_matching_transfer_encoding_chunked + , h_matching_transfer_encoding_token + + , h_matching_connection_token_start + , h_matching_connection_keep_alive + , h_matching_connection_close + , h_matching_connection_upgrade + , h_matching_connection_token + + , h_transfer_encoding_chunked + , h_connection_keep_alive + , h_connection_close + , h_connection_upgrade + }; + +enum http_host_state + { + s_http_host_dead = 1 + , s_http_userinfo_start + , s_http_userinfo + , s_http_host_start + , s_http_host_v6_start + , s_http_host + , s_http_host_v6 + , s_http_host_v6_end + , s_http_host_v6_zone_start + , s_http_host_v6_zone + , s_http_host_port_start + , s_http_host_port +}; + +/* Macros for character classes; depends on strict-mode */ +#define CR '\r' +#define LF '\n' +#define LOWER(c) (unsigned char)(c | 0x20) +#define IS_ALPHA(c) (LOWER(c) >= 'a' && LOWER(c) <= 'z') +#define IS_NUM(c) ((c) >= '0' && (c) <= '9') +#define IS_ALPHANUM(c) (IS_ALPHA(c) || IS_NUM(c)) +#define IS_HEX(c) (IS_NUM(c) || (LOWER(c) >= 'a' && LOWER(c) <= 'f')) +#define IS_MARK(c) ((c) == '-' || (c) == '_' || (c) == '.' || \ + (c) == '!' || (c) == '~' || (c) == '*' || (c) == '\'' || (c) == '(' || \ + (c) == ')') +#define IS_USERINFO_CHAR(c) (IS_ALPHANUM(c) || IS_MARK(c) || (c) == '%' || \ + (c) == ';' || (c) == ':' || (c) == '&' || (c) == '=' || (c) == '+' || \ + (c) == '$' || (c) == ',') + +#define STRICT_TOKEN(c) ((c == ' ') ? 0 : tokens[(unsigned char)c]) + +#if HTTP_PARSER_STRICT +#define TOKEN(c) STRICT_TOKEN(c) +#define IS_URL_CHAR(c) (BIT_AT(normal_url_char, (unsigned char)c)) +#define IS_HOST_CHAR(c) (IS_ALPHANUM(c) || (c) == '.' || (c) == '-') +#else +#define TOKEN(c) tokens[(unsigned char)c] +#define IS_URL_CHAR(c) \ + (BIT_AT(normal_url_char, (unsigned char)c) || ((c) & 0x80)) +#define IS_HOST_CHAR(c) \ + (IS_ALPHANUM(c) || (c) == '.' || (c) == '-' || (c) == '_') +#endif + +/** + * Verify that a char is a valid visible (printable) US-ASCII + * character or %x80-FF + **/ +#define IS_HEADER_CHAR(ch) \ + (ch == CR || ch == LF || ch == 9 || ((unsigned char)ch > 31 && ch != 127)) + +#define start_state (parser->type == HTTP_REQUEST ? s_start_req : s_start_res) + + +#if HTTP_PARSER_STRICT +# define STRICT_CHECK(cond) \ +do { \ + if (cond) { \ + SET_ERRNO(HPE_STRICT); \ + goto error; \ + } \ +} while (0) +# define NEW_MESSAGE() (http_should_keep_alive(parser) ? start_state : s_dead) +#else +# define STRICT_CHECK(cond) +# define NEW_MESSAGE() start_state +#endif + + +/* Map errno values to strings for human-readable output */ +#define HTTP_STRERROR_GEN(n, s) { "HPE_" #n, s }, +static struct { + const char *name; + const char *description; +} http_strerror_tab[] = { + HTTP_ERRNO_MAP(HTTP_STRERROR_GEN) +}; +#undef HTTP_STRERROR_GEN + +int http_message_needs_eof(const http_parser *parser); + +/* Our URL parser. + * + * This is designed to be shared by http_parser_execute() for URL validation, + * hence it has a state transition + byte-for-byte interface. In addition, it + * is meant to be embedded in http_parser_parse_url(), which does the dirty + * work of turning state transitions URL components for its API. + * + * This function should only be invoked with non-space characters. It is + * assumed that the caller cares about (and can detect) the transition between + * URL and non-URL states by looking for these. + */ +static enum state +parse_url_char(enum state s, const char ch) +{ + if (ch == ' ' || ch == '\r' || ch == '\n') { + return s_dead; + } + +#if HTTP_PARSER_STRICT + if (ch == '\t' || ch == '\f') { + return s_dead; + } +#endif + + switch (s) { + case s_req_spaces_before_url: + /* Proxied requests are followed by scheme of an absolute URI (alpha). + * All methods except CONNECT are followed by '/' or '*'. + */ + + if (ch == '/' || ch == '*') { + return s_req_path; + } + + if (IS_ALPHA(ch)) { + return s_req_schema; + } + + break; + + case s_req_schema: + if (IS_ALPHA(ch)) { + return s; + } + + if (ch == ':') { + return s_req_schema_slash; + } + + break; + + case s_req_schema_slash: + if (ch == '/') { + return s_req_schema_slash_slash; + } + + break; + + case s_req_schema_slash_slash: + if (ch == '/') { + return s_req_server_start; + } + + break; + + case s_req_server_with_at: + if (ch == '@') { + return s_dead; + } + + /* fall through */ + case s_req_server_start: + case s_req_server: + if (ch == '/') { + return s_req_path; + } + + if (ch == '?') { + return s_req_query_string_start; + } + + if (ch == '@') { + return s_req_server_with_at; + } + + if (IS_USERINFO_CHAR(ch) || ch == '[' || ch == ']') { + return s_req_server; + } + + break; + + case s_req_path: + if (IS_URL_CHAR(ch)) { + return s; + } + + switch (ch) { + case '?': + return s_req_query_string_start; + + case '#': + return s_req_fragment_start; + } + + break; + + case s_req_query_string_start: + case s_req_query_string: + if (IS_URL_CHAR(ch)) { + return s_req_query_string; + } + + switch (ch) { + case '?': + /* allow extra '?' in query string */ + return s_req_query_string; + + case '#': + return s_req_fragment_start; + } + + break; + + case s_req_fragment_start: + if (IS_URL_CHAR(ch)) { + return s_req_fragment; + } + + switch (ch) { + case '?': + return s_req_fragment; + + case '#': + return s; + } + + break; + + case s_req_fragment: + if (IS_URL_CHAR(ch)) { + return s; + } + + switch (ch) { + case '?': + case '#': + return s; + } + + break; + + default: + break; + } + + /* We should never fall out of the switch above unless there's an error */ + return s_dead; +} + +size_t http_parser_execute (http_parser *parser, + const http_parser_settings *settings, + const char *data, + size_t len) +{ + char c, ch; + int8_t unhex_val; + const char *p = data; + const char *header_field_mark = 0; + const char *header_value_mark = 0; + const char *url_mark = 0; + const char *body_mark = 0; + const char *status_mark = 0; + enum state p_state = (enum state) parser->state; + const unsigned int lenient = parser->lenient_http_headers; + uint32_t nread = parser->nread; + + /* We're in an error state. Don't bother doing anything. */ + if (HTTP_PARSER_ERRNO(parser) != HPE_OK) { + return 0; + } + + if (len == 0) { + switch (CURRENT_STATE()) { + case s_body_identity_eof: + /* Use of CALLBACK_NOTIFY() here would erroneously return 1 byte read if + * we got paused. + */ + CALLBACK_NOTIFY_NOADVANCE(message_complete); + return 0; + + case s_dead: + case s_start_req_or_res: + case s_start_res: + case s_start_req: + return 0; + + default: + SET_ERRNO(HPE_INVALID_EOF_STATE); + return 1; + } + } + + + if (CURRENT_STATE() == s_header_field) + header_field_mark = data; + if (CURRENT_STATE() == s_header_value) + header_value_mark = data; + switch (CURRENT_STATE()) { + case s_req_path: + case s_req_schema: + case s_req_schema_slash: + case s_req_schema_slash_slash: + case s_req_server_start: + case s_req_server: + case s_req_server_with_at: + case s_req_query_string_start: + case s_req_query_string: + case s_req_fragment_start: + case s_req_fragment: + url_mark = data; + break; + case s_res_status: + status_mark = data; + break; + default: + break; + } + + for (p=data; p != data + len; p++) { + ch = *p; + + if (PARSING_HEADER(CURRENT_STATE())) + COUNT_HEADER_SIZE(1); + +reexecute: + switch (CURRENT_STATE()) { + + case s_dead: + /* this state is used after a 'Connection: close' message + * the parser will error out if it reads another message + */ + if (LIKELY(ch == CR || ch == LF)) + break; + + SET_ERRNO(HPE_CLOSED_CONNECTION); + goto error; + + case s_start_req_or_res: + { + if (ch == CR || ch == LF) + break; + parser->flags = 0; + parser->content_length = ULLONG_MAX; + + if (ch == 'H') { + UPDATE_STATE(s_res_or_resp_H); + + CALLBACK_NOTIFY(message_begin); + } else { + parser->type = HTTP_REQUEST; + UPDATE_STATE(s_start_req); + REEXECUTE(); + } + + break; + } + + case s_res_or_resp_H: + if (ch == 'T') { + parser->type = HTTP_RESPONSE; + UPDATE_STATE(s_res_HT); + } else { + if (UNLIKELY(ch != 'E')) { + SET_ERRNO(HPE_INVALID_CONSTANT); + goto error; + } + + parser->type = HTTP_REQUEST; + parser->method = HTTP_HEAD; + parser->index = 2; + UPDATE_STATE(s_req_method); + } + break; + + case s_start_res: + { + if (ch == CR || ch == LF) + break; + parser->flags = 0; + parser->content_length = ULLONG_MAX; + + if (ch == 'H') { + UPDATE_STATE(s_res_H); + } else { + SET_ERRNO(HPE_INVALID_CONSTANT); + goto error; + } + + CALLBACK_NOTIFY(message_begin); + break; + } + + case s_res_H: + STRICT_CHECK(ch != 'T'); + UPDATE_STATE(s_res_HT); + break; + + case s_res_HT: + STRICT_CHECK(ch != 'T'); + UPDATE_STATE(s_res_HTT); + break; + + case s_res_HTT: + STRICT_CHECK(ch != 'P'); + UPDATE_STATE(s_res_HTTP); + break; + + case s_res_HTTP: + STRICT_CHECK(ch != '/'); + UPDATE_STATE(s_res_http_major); + break; + + case s_res_http_major: + if (UNLIKELY(!IS_NUM(ch))) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + parser->http_major = ch - '0'; + UPDATE_STATE(s_res_http_dot); + break; + + case s_res_http_dot: + { + if (UNLIKELY(ch != '.')) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + UPDATE_STATE(s_res_http_minor); + break; + } + + case s_res_http_minor: + if (UNLIKELY(!IS_NUM(ch))) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + parser->http_minor = ch - '0'; + UPDATE_STATE(s_res_http_end); + break; + + case s_res_http_end: + { + if (UNLIKELY(ch != ' ')) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + UPDATE_STATE(s_res_first_status_code); + break; + } + + case s_res_first_status_code: + { + if (!IS_NUM(ch)) { + if (ch == ' ') { + break; + } + + SET_ERRNO(HPE_INVALID_STATUS); + goto error; + } + parser->status_code = ch - '0'; + UPDATE_STATE(s_res_status_code); + break; + } + + case s_res_status_code: + { + if (!IS_NUM(ch)) { + switch (ch) { + case ' ': + UPDATE_STATE(s_res_status_start); + break; + case CR: + case LF: + UPDATE_STATE(s_res_status_start); + REEXECUTE(); + break; + default: + SET_ERRNO(HPE_INVALID_STATUS); + goto error; + } + break; + } + + parser->status_code *= 10; + parser->status_code += ch - '0'; + + if (UNLIKELY(parser->status_code > 999)) { + SET_ERRNO(HPE_INVALID_STATUS); + goto error; + } + + break; + } + + case s_res_status_start: + { + MARK(status); + UPDATE_STATE(s_res_status); + parser->index = 0; + + if (ch == CR || ch == LF) + REEXECUTE(); + + break; + } + + case s_res_status: + if (ch == CR) { + UPDATE_STATE(s_res_line_almost_done); + CALLBACK_DATA(status); + break; + } + + if (ch == LF) { + UPDATE_STATE(s_header_field_start); + CALLBACK_DATA(status); + break; + } + + break; + + case s_res_line_almost_done: + STRICT_CHECK(ch != LF); + UPDATE_STATE(s_header_field_start); + break; + + case s_start_req: + { + if (ch == CR || ch == LF) + break; + parser->flags = 0; + parser->content_length = ULLONG_MAX; + + if (UNLIKELY(!IS_ALPHA(ch))) { + SET_ERRNO(HPE_INVALID_METHOD); + goto error; + } + + parser->method = (enum http_method) 0; + parser->index = 1; + switch (ch) { + case 'A': parser->method = HTTP_ACL; /* or ANNOUNCE */ break; + case 'B': parser->method = HTTP_BIND; break; + case 'C': parser->method = HTTP_CONNECT; /* or COPY, CHECKOUT */ break; + case 'D': parser->method = HTTP_DELETE; /* or DESCRIBE */ break; + case 'F': parser->method = HTTP_FLUSH; break; + case 'G': parser->method = HTTP_GET; /* or GET_PARAMETER */ break; + case 'H': parser->method = HTTP_HEAD; break; + case 'L': parser->method = HTTP_LOCK; /* or LINK */ break; + case 'M': parser->method = HTTP_MKCOL; /* or MOVE, MKACTIVITY, MERGE, M-SEARCH, MKCALENDAR */ break; + case 'N': parser->method = HTTP_NOTIFY; break; + case 'O': parser->method = HTTP_OPTIONS; break; + case 'P': parser->method = HTTP_POST; + /* or PROPFIND|PROPPATCH|PUT|PATCH|PURGE|PLAY|PAUSE */ + break; + case 'R': parser->method = HTTP_REPORT; /* or REBIND, REDIRECT, RECORD */ break; + case 'S': parser->method = HTTP_SUBSCRIBE; /* or SEARCH, SETUP, SET_PARAMETER, SOURCE */ break; + case 'T': parser->method = HTTP_TRACE; /* or TEARDOWN */ break; + case 'U': parser->method = HTTP_UNLOCK; /* or UNSUBSCRIBE, UNBIND, UNLINK */ break; + default: + SET_ERRNO(HPE_INVALID_METHOD); + goto error; + } + UPDATE_STATE(s_req_method); + + CALLBACK_NOTIFY(message_begin); + + break; + } + + case s_req_method: + { + const char *matcher; + if (UNLIKELY(ch == '\0')) { + SET_ERRNO(HPE_INVALID_METHOD); + goto error; + } + + matcher = method_strings[parser->method]; + if (ch == ' ' && matcher[parser->index] == '\0') { + UPDATE_STATE(s_req_spaces_before_url); + } else if (ch == matcher[parser->index]) { + ; /* nada */ + } else if ((ch >= 'A' && ch <= 'Z') || ch == '-' || ch == '_') { + + switch (parser->method << 16 | parser->index << 8 | ch) { +#define XX(meth, pos, ch, new_meth) \ + case (HTTP_##meth << 16 | pos << 8 | ch): \ + parser->method = HTTP_##new_meth; break; + + XX(ACL, 1, 'N', ANNOUNCE) + XX(DELETE, 2, 'S', DESCRIBE) + XX(GET, 3, '_', GET_PARAMETER) + XX(POST, 1, 'U', PUT) + XX(POST, 1, 'A', PATCH) + XX(POST, 1, 'R', PROPFIND) + XX(POST, 1, 'L', PLAY) + XX(PUT, 2, 'R', PURGE) + XX(PATCH, 2, 'U', PAUSE) + XX(CONNECT, 1, 'H', CHECKOUT) + XX(CONNECT, 2, 'P', COPY) + XX(MKCOL, 1, 'O', MOVE) + XX(MKCOL, 1, 'E', MERGE) + XX(MKCOL, 1, '-', MSEARCH) + XX(MKCOL, 2, 'A', MKACTIVITY) + XX(MKCOL, 3, 'A', MKCALENDAR) + XX(SUBSCRIBE, 1, 'E', SEARCH) + XX(SUBSCRIBE, 1, 'O', SOURCE) + XX(SEARCH, 2, 'T', SETUP) + XX(SETUP, 3, '_', SET_PARAMETER) + XX(TRACE, 1, 'E', TEARDOWN) + XX(REPORT, 2, 'B', REBIND) + XX(REPORT, 2, 'C', RECORD) + XX(REPORT, 2, 'D', REDIRECT) + XX(PROPFIND, 4, 'P', PROPPATCH) + XX(LOCK, 1, 'I', LINK) + XX(UNLOCK, 2, 'S', UNSUBSCRIBE) + XX(UNLOCK, 2, 'B', UNBIND) + XX(UNLOCK, 3, 'I', UNLINK) +#undef XX + default: + SET_ERRNO(HPE_INVALID_METHOD); + goto error; + } + } else { + SET_ERRNO(HPE_INVALID_METHOD); + goto error; + } + + ++parser->index; + break; + } + + case s_req_spaces_before_url: + { + if (ch == ' ') break; + + MARK(url); + if (parser->method == HTTP_CONNECT) { + UPDATE_STATE(s_req_server_start); + } + + UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); + if (UNLIKELY(CURRENT_STATE() == s_dead)) { + SET_ERRNO(HPE_INVALID_URL); + goto error; + } + + break; + } + + case s_req_schema: + case s_req_schema_slash: + case s_req_schema_slash_slash: + case s_req_server_start: + { + switch (ch) { + /* No whitespace allowed here */ + case ' ': + case CR: + case LF: + SET_ERRNO(HPE_INVALID_URL); + goto error; + default: + UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); + if (UNLIKELY(CURRENT_STATE() == s_dead)) { + SET_ERRNO(HPE_INVALID_URL); + goto error; + } + } + + break; + } + + case s_req_server: + case s_req_server_with_at: + case s_req_path: + case s_req_query_string_start: + case s_req_query_string: + case s_req_fragment_start: + case s_req_fragment: + { + switch (ch) { + case ' ': + UPDATE_STATE(s_req_http_start); + CALLBACK_DATA(url); + break; + case CR: + case LF: + parser->http_major = 0; + parser->http_minor = 9; + UPDATE_STATE((ch == CR) ? + s_req_line_almost_done : + s_header_field_start); + CALLBACK_DATA(url); + break; + default: + UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); + if (UNLIKELY(CURRENT_STATE() == s_dead)) { + SET_ERRNO(HPE_INVALID_URL); + goto error; + } + } + break; + } + + case s_req_http_start: + switch (ch) { + case ' ': + break; + case 'H': + case 'R': + UPDATE_STATE(s_req_http_H); + break; + case 'I': + if (parser->method == HTTP_SOURCE) { + UPDATE_STATE(s_req_http_I); + break; + } + /* fall through */ + default: + SET_ERRNO(HPE_INVALID_CONSTANT); + goto error; + } + break; + + case s_req_http_H: + STRICT_CHECK(ch != 'T'); + UPDATE_STATE(s_req_http_HT); + break; + + case s_req_http_HT: + STRICT_CHECK(ch != 'T'); + UPDATE_STATE(s_req_http_HTT); + break; + + case s_req_http_HTT: + STRICT_CHECK(ch != 'P'); + UPDATE_STATE(s_req_http_HTTP); + break; + + case s_req_http_I: + STRICT_CHECK(ch != 'C'); + UPDATE_STATE(s_req_http_IC); + break; + + case s_req_http_IC: + STRICT_CHECK(ch != 'E'); + UPDATE_STATE(s_req_http_HTTP); /* Treat "ICE" as "HTTP". */ + break; + + case s_req_http_HTTP: + STRICT_CHECK(ch != '/'); + UPDATE_STATE(s_req_http_major); + break; + + case s_req_http_major: + if (UNLIKELY(!IS_NUM(ch))) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + parser->http_major = ch - '0'; + UPDATE_STATE(s_req_http_dot); + break; + + case s_req_http_dot: + { + if (UNLIKELY(ch != '.')) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + UPDATE_STATE(s_req_http_minor); + break; + } + + case s_req_http_minor: + if (UNLIKELY(!IS_NUM(ch))) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + parser->http_minor = ch - '0'; + UPDATE_STATE(s_req_http_end); + break; + + case s_req_http_end: + { + if (ch == CR) { + UPDATE_STATE(s_req_line_almost_done); + break; + } + + if (ch == LF) { + UPDATE_STATE(s_header_field_start); + break; + } + + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + break; + } + + /* end of request line */ + case s_req_line_almost_done: + { + if (UNLIKELY(ch != LF)) { + SET_ERRNO(HPE_LF_EXPECTED); + goto error; + } + + UPDATE_STATE(s_header_field_start); + break; + } + + case s_header_field_start: + { + if (ch == CR) { + UPDATE_STATE(s_headers_almost_done); + break; + } + + if (ch == LF) { + /* they might be just sending \n instead of \r\n so this would be + * the second \n to denote the end of headers*/ + UPDATE_STATE(s_headers_almost_done); + REEXECUTE(); + } + + c = TOKEN(ch); + + if (UNLIKELY(!c)) { + SET_ERRNO(HPE_INVALID_HEADER_TOKEN); + goto error; + } + + MARK(header_field); + + parser->index = 0; + UPDATE_STATE(s_header_field); + + switch (c) { + case 'c': + parser->header_state = h_C; + break; + + case 'p': + parser->header_state = h_matching_proxy_connection; + break; + + case 't': + parser->header_state = h_matching_transfer_encoding; + break; + + case 'u': + parser->header_state = h_matching_upgrade; + break; + + default: + parser->header_state = h_general; + break; + } + break; + } + + case s_header_field: + { + const char* start = p; + for (; p != data + len; p++) { + ch = *p; + c = TOKEN(ch); + + if (!c) + break; + + switch (parser->header_state) { + case h_general: { + size_t left = data + len - p; + const char* pe = p + MIN(left, max_header_size); + while (p+1 < pe && TOKEN(p[1])) { + p++; + } + break; + } + + case h_C: + parser->index++; + parser->header_state = (c == 'o' ? h_CO : h_general); + break; + + case h_CO: + parser->index++; + parser->header_state = (c == 'n' ? h_CON : h_general); + break; + + case h_CON: + parser->index++; + switch (c) { + case 'n': + parser->header_state = h_matching_connection; + break; + case 't': + parser->header_state = h_matching_content_length; + break; + default: + parser->header_state = h_general; + break; + } + break; + + /* connection */ + + case h_matching_connection: + parser->index++; + if (parser->index > sizeof(CONNECTION)-1 + || c != CONNECTION[parser->index]) { + parser->header_state = h_general; + } else if (parser->index == sizeof(CONNECTION)-2) { + parser->header_state = h_connection; + } + break; + + /* proxy-connection */ + + case h_matching_proxy_connection: + parser->index++; + if (parser->index > sizeof(PROXY_CONNECTION)-1 + || c != PROXY_CONNECTION[parser->index]) { + parser->header_state = h_general; + } else if (parser->index == sizeof(PROXY_CONNECTION)-2) { + parser->header_state = h_connection; + } + break; + + /* content-length */ + + case h_matching_content_length: + parser->index++; + if (parser->index > sizeof(CONTENT_LENGTH)-1 + || c != CONTENT_LENGTH[parser->index]) { + parser->header_state = h_general; + } else if (parser->index == sizeof(CONTENT_LENGTH)-2) { + parser->header_state = h_content_length; + } + break; + + /* transfer-encoding */ + + case h_matching_transfer_encoding: + parser->index++; + if (parser->index > sizeof(TRANSFER_ENCODING)-1 + || c != TRANSFER_ENCODING[parser->index]) { + parser->header_state = h_general; + } else if (parser->index == sizeof(TRANSFER_ENCODING)-2) { + parser->header_state = h_transfer_encoding; + parser->flags |= F_TRANSFER_ENCODING; + } + break; + + /* upgrade */ + + case h_matching_upgrade: + parser->index++; + if (parser->index > sizeof(UPGRADE)-1 + || c != UPGRADE[parser->index]) { + parser->header_state = h_general; + } else if (parser->index == sizeof(UPGRADE)-2) { + parser->header_state = h_upgrade; + } + break; + + case h_connection: + case h_content_length: + case h_transfer_encoding: + case h_upgrade: + if (ch != ' ') parser->header_state = h_general; + break; + + default: + assert(0 && "Unknown header_state"); + break; + } + } + + if (p == data + len) { + --p; + COUNT_HEADER_SIZE(p - start); + break; + } + + COUNT_HEADER_SIZE(p - start); + + if (ch == ':') { + UPDATE_STATE(s_header_value_discard_ws); + CALLBACK_DATA(header_field); + break; + } + + SET_ERRNO(HPE_INVALID_HEADER_TOKEN); + goto error; + } + + case s_header_value_discard_ws: + if (ch == ' ' || ch == '\t') break; + + if (ch == CR) { + UPDATE_STATE(s_header_value_discard_ws_almost_done); + break; + } + + if (ch == LF) { + UPDATE_STATE(s_header_value_discard_lws); + break; + } + + /* fall through */ + + case s_header_value_start: + { + MARK(header_value); + + UPDATE_STATE(s_header_value); + parser->index = 0; + + c = LOWER(ch); + + switch (parser->header_state) { + case h_upgrade: + parser->flags |= F_UPGRADE; + parser->header_state = h_general; + break; + + case h_transfer_encoding: + /* looking for 'Transfer-Encoding: chunked' */ + if ('c' == c) { + parser->header_state = h_matching_transfer_encoding_chunked; + } else { + parser->header_state = h_matching_transfer_encoding_token; + } + break; + + /* Multi-value `Transfer-Encoding` header */ + case h_matching_transfer_encoding_token_start: + break; + + case h_content_length: + if (UNLIKELY(!IS_NUM(ch))) { + SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); + goto error; + } + + if (parser->flags & F_CONTENTLENGTH) { + SET_ERRNO(HPE_UNEXPECTED_CONTENT_LENGTH); + goto error; + } + + parser->flags |= F_CONTENTLENGTH; + parser->content_length = ch - '0'; + parser->header_state = h_content_length_num; + break; + + /* when obsolete line folding is encountered for content length + * continue to the s_header_value state */ + case h_content_length_ws: + break; + + case h_connection: + /* looking for 'Connection: keep-alive' */ + if (c == 'k') { + parser->header_state = h_matching_connection_keep_alive; + /* looking for 'Connection: close' */ + } else if (c == 'c') { + parser->header_state = h_matching_connection_close; + } else if (c == 'u') { + parser->header_state = h_matching_connection_upgrade; + } else { + parser->header_state = h_matching_connection_token; + } + break; + + /* Multi-value `Connection` header */ + case h_matching_connection_token_start: + break; + + default: + parser->header_state = h_general; + break; + } + break; + } + + case s_header_value: + { + const char* start = p; + enum header_states h_state = (enum header_states) parser->header_state; + for (; p != data + len; p++) { + ch = *p; + if (ch == CR) { + UPDATE_STATE(s_header_almost_done); + parser->header_state = h_state; + CALLBACK_DATA(header_value); + break; + } + + if (ch == LF) { + UPDATE_STATE(s_header_almost_done); + COUNT_HEADER_SIZE(p - start); + parser->header_state = h_state; + CALLBACK_DATA_NOADVANCE(header_value); + REEXECUTE(); + } + + if (!lenient && !IS_HEADER_CHAR(ch)) { + SET_ERRNO(HPE_INVALID_HEADER_TOKEN); + goto error; + } + + c = LOWER(ch); + + switch (h_state) { + case h_general: + { + size_t left = data + len - p; + const char* pe = p + MIN(left, max_header_size); + + for (; p != pe; p++) { + ch = *p; + if (ch == CR || ch == LF) { + --p; + break; + } + if (!lenient && !IS_HEADER_CHAR(ch)) { + SET_ERRNO(HPE_INVALID_HEADER_TOKEN); + goto error; + } + } + if (p == data + len) + --p; + break; + } + + case h_connection: + case h_transfer_encoding: + assert(0 && "Shouldn't get here."); + break; + + case h_content_length: + if (ch == ' ') break; + h_state = h_content_length_num; + /* fall through */ + + case h_content_length_num: + { + uint64_t t; + + if (ch == ' ') { + h_state = h_content_length_ws; + break; + } + + if (UNLIKELY(!IS_NUM(ch))) { + SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); + parser->header_state = h_state; + goto error; + } + + t = parser->content_length; + t *= 10; + t += ch - '0'; + + /* Overflow? Test against a conservative limit for simplicity. */ + if (UNLIKELY((ULLONG_MAX - 10) / 10 < parser->content_length)) { + SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); + parser->header_state = h_state; + goto error; + } + + parser->content_length = t; + break; + } + + case h_content_length_ws: + if (ch == ' ') break; + SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); + parser->header_state = h_state; + goto error; + + /* Transfer-Encoding: chunked */ + case h_matching_transfer_encoding_token_start: + /* looking for 'Transfer-Encoding: chunked' */ + if ('c' == c) { + h_state = h_matching_transfer_encoding_chunked; + } else if (STRICT_TOKEN(c)) { + /* TODO(indutny): similar code below does this, but why? + * At the very least it seems to be inconsistent given that + * h_matching_transfer_encoding_token does not check for + * `STRICT_TOKEN` + */ + h_state = h_matching_transfer_encoding_token; + } else if (c == ' ' || c == '\t') { + /* Skip lws */ + } else { + h_state = h_general; + } + break; + + case h_matching_transfer_encoding_chunked: + parser->index++; + if (parser->index > sizeof(CHUNKED)-1 + || c != CHUNKED[parser->index]) { + h_state = h_matching_transfer_encoding_token; + } else if (parser->index == sizeof(CHUNKED)-2) { + h_state = h_transfer_encoding_chunked; + } + break; + + case h_matching_transfer_encoding_token: + if (ch == ',') { + h_state = h_matching_transfer_encoding_token_start; + parser->index = 0; + } + break; + + case h_matching_connection_token_start: + /* looking for 'Connection: keep-alive' */ + if (c == 'k') { + h_state = h_matching_connection_keep_alive; + /* looking for 'Connection: close' */ + } else if (c == 'c') { + h_state = h_matching_connection_close; + } else if (c == 'u') { + h_state = h_matching_connection_upgrade; + } else if (STRICT_TOKEN(c)) { + h_state = h_matching_connection_token; + } else if (c == ' ' || c == '\t') { + /* Skip lws */ + } else { + h_state = h_general; + } + break; + + /* looking for 'Connection: keep-alive' */ + case h_matching_connection_keep_alive: + parser->index++; + if (parser->index > sizeof(KEEP_ALIVE)-1 + || c != KEEP_ALIVE[parser->index]) { + h_state = h_matching_connection_token; + } else if (parser->index == sizeof(KEEP_ALIVE)-2) { + h_state = h_connection_keep_alive; + } + break; + + /* looking for 'Connection: close' */ + case h_matching_connection_close: + parser->index++; + if (parser->index > sizeof(CLOSE)-1 || c != CLOSE[parser->index]) { + h_state = h_matching_connection_token; + } else if (parser->index == sizeof(CLOSE)-2) { + h_state = h_connection_close; + } + break; + + /* looking for 'Connection: upgrade' */ + case h_matching_connection_upgrade: + parser->index++; + if (parser->index > sizeof(UPGRADE) - 1 || + c != UPGRADE[parser->index]) { + h_state = h_matching_connection_token; + } else if (parser->index == sizeof(UPGRADE)-2) { + h_state = h_connection_upgrade; + } + break; + + case h_matching_connection_token: + if (ch == ',') { + h_state = h_matching_connection_token_start; + parser->index = 0; + } + break; + + case h_transfer_encoding_chunked: + if (ch != ' ') h_state = h_matching_transfer_encoding_token; + break; + + case h_connection_keep_alive: + case h_connection_close: + case h_connection_upgrade: + if (ch == ',') { + if (h_state == h_connection_keep_alive) { + parser->flags |= F_CONNECTION_KEEP_ALIVE; + } else if (h_state == h_connection_close) { + parser->flags |= F_CONNECTION_CLOSE; + } else if (h_state == h_connection_upgrade) { + parser->flags |= F_CONNECTION_UPGRADE; + } + h_state = h_matching_connection_token_start; + parser->index = 0; + } else if (ch != ' ') { + h_state = h_matching_connection_token; + } + break; + + default: + UPDATE_STATE(s_header_value); + h_state = h_general; + break; + } + } + parser->header_state = h_state; + + if (p == data + len) + --p; + + COUNT_HEADER_SIZE(p - start); + break; + } + + case s_header_almost_done: + { + if (UNLIKELY(ch != LF)) { + SET_ERRNO(HPE_LF_EXPECTED); + goto error; + } + + UPDATE_STATE(s_header_value_lws); + break; + } + + case s_header_value_lws: + { + if (ch == ' ' || ch == '\t') { + if (parser->header_state == h_content_length_num) { + /* treat obsolete line folding as space */ + parser->header_state = h_content_length_ws; + } + UPDATE_STATE(s_header_value_start); + REEXECUTE(); + } + + /* finished the header */ + switch (parser->header_state) { + case h_connection_keep_alive: + parser->flags |= F_CONNECTION_KEEP_ALIVE; + break; + case h_connection_close: + parser->flags |= F_CONNECTION_CLOSE; + break; + case h_transfer_encoding_chunked: + parser->flags |= F_CHUNKED; + break; + case h_connection_upgrade: + parser->flags |= F_CONNECTION_UPGRADE; + break; + default: + break; + } + + UPDATE_STATE(s_header_field_start); + REEXECUTE(); + } + + case s_header_value_discard_ws_almost_done: + { + STRICT_CHECK(ch != LF); + UPDATE_STATE(s_header_value_discard_lws); + break; + } + + case s_header_value_discard_lws: + { + if (ch == ' ' || ch == '\t') { + UPDATE_STATE(s_header_value_discard_ws); + break; + } else { + switch (parser->header_state) { + case h_connection_keep_alive: + parser->flags |= F_CONNECTION_KEEP_ALIVE; + break; + case h_connection_close: + parser->flags |= F_CONNECTION_CLOSE; + break; + case h_connection_upgrade: + parser->flags |= F_CONNECTION_UPGRADE; + break; + case h_transfer_encoding_chunked: + parser->flags |= F_CHUNKED; + break; + case h_content_length: + /* do not allow empty content length */ + SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); + goto error; + break; + default: + break; + } + + /* header value was empty */ + MARK(header_value); + UPDATE_STATE(s_header_field_start); + CALLBACK_DATA_NOADVANCE(header_value); + REEXECUTE(); + } + } + + case s_headers_almost_done: + { + STRICT_CHECK(ch != LF); + + if (parser->flags & F_TRAILING) { + /* End of a chunked request */ + UPDATE_STATE(s_message_done); + CALLBACK_NOTIFY_NOADVANCE(chunk_complete); + REEXECUTE(); + } + + /* Cannot us transfer-encoding and a content-length header together + per the HTTP specification. (RFC 7230 Section 3.3.3) */ + if ((parser->flags & F_TRANSFER_ENCODING) && + (parser->flags & F_CONTENTLENGTH)) { + /* Allow it for lenient parsing as long as `Transfer-Encoding` is + * not `chunked` + */ + if (!lenient || (parser->flags & F_CHUNKED)) { + SET_ERRNO(HPE_UNEXPECTED_CONTENT_LENGTH); + goto error; + } + } + + UPDATE_STATE(s_headers_done); + + /* Set this here so that on_headers_complete() callbacks can see it */ + if ((parser->flags & F_UPGRADE) && + (parser->flags & F_CONNECTION_UPGRADE)) { + /* For responses, "Upgrade: foo" and "Connection: upgrade" are + * mandatory only when it is a 101 Switching Protocols response, + * otherwise it is purely informational, to announce support. + */ + parser->upgrade = + (parser->type == HTTP_REQUEST || parser->status_code == 101); + } else { + parser->upgrade = (parser->method == HTTP_CONNECT); + } + + /* Here we call the headers_complete callback. This is somewhat + * different than other callbacks because if the user returns 1, we + * will interpret that as saying that this message has no body. This + * is needed for the annoying case of recieving a response to a HEAD + * request. + * + * We'd like to use CALLBACK_NOTIFY_NOADVANCE() here but we cannot, so + * we have to simulate it by handling a change in errno below. + */ + if (settings->on_headers_complete) { + switch (settings->on_headers_complete(parser)) { + case 0: + break; + + case 2: + parser->upgrade = 1; + + /* fall through */ + case 1: + parser->flags |= F_SKIPBODY; + break; + + default: + SET_ERRNO(HPE_CB_headers_complete); + RETURN(p - data); /* Error */ + } + } + + if (HTTP_PARSER_ERRNO(parser) != HPE_OK) { + RETURN(p - data); + } + + REEXECUTE(); + } + + case s_headers_done: + { + int hasBody; + STRICT_CHECK(ch != LF); + + parser->nread = 0; + nread = 0; + + hasBody = parser->flags & F_CHUNKED || + (parser->content_length > 0 && parser->content_length != ULLONG_MAX); + if (parser->upgrade && (parser->method == HTTP_CONNECT || + (parser->flags & F_SKIPBODY) || !hasBody)) { + /* Exit, the rest of the message is in a different protocol. */ + UPDATE_STATE(NEW_MESSAGE()); + CALLBACK_NOTIFY(message_complete); + RETURN((p - data) + 1); + } + + if (parser->flags & F_SKIPBODY) { + UPDATE_STATE(NEW_MESSAGE()); + CALLBACK_NOTIFY(message_complete); + } else if (parser->flags & F_CHUNKED) { + /* chunked encoding - ignore Content-Length header, + * prepare for a chunk */ + UPDATE_STATE(s_chunk_size_start); + } else if (parser->flags & F_TRANSFER_ENCODING) { + if (parser->type == HTTP_REQUEST && !lenient) { + /* RFC 7230 3.3.3 */ + + /* If a Transfer-Encoding header field + * is present in a request and the chunked transfer coding is not + * the final encoding, the message body length cannot be determined + * reliably; the server MUST respond with the 400 (Bad Request) + * status code and then close the connection. + */ + SET_ERRNO(HPE_INVALID_TRANSFER_ENCODING); + RETURN(p - data); /* Error */ + } else { + /* RFC 7230 3.3.3 */ + + /* If a Transfer-Encoding header field is present in a response and + * the chunked transfer coding is not the final encoding, the + * message body length is determined by reading the connection until + * it is closed by the server. + */ + UPDATE_STATE(s_body_identity_eof); + } + } else { + if (parser->content_length == 0) { + /* Content-Length header given but zero: Content-Length: 0\r\n */ + UPDATE_STATE(NEW_MESSAGE()); + CALLBACK_NOTIFY(message_complete); + } else if (parser->content_length != ULLONG_MAX) { + /* Content-Length header given and non-zero */ + UPDATE_STATE(s_body_identity); + } else { + if (!http_message_needs_eof(parser)) { + /* Assume content-length 0 - read the next */ + UPDATE_STATE(NEW_MESSAGE()); + CALLBACK_NOTIFY(message_complete); + } else { + /* Read body until EOF */ + UPDATE_STATE(s_body_identity_eof); + } + } + } + + break; + } + + case s_body_identity: + { + uint64_t to_read = MIN(parser->content_length, + (uint64_t) ((data + len) - p)); + + assert(parser->content_length != 0 + && parser->content_length != ULLONG_MAX); + + /* The difference between advancing content_length and p is because + * the latter will automaticaly advance on the next loop iteration. + * Further, if content_length ends up at 0, we want to see the last + * byte again for our message complete callback. + */ + MARK(body); + parser->content_length -= to_read; + p += to_read - 1; + + if (parser->content_length == 0) { + UPDATE_STATE(s_message_done); + + /* Mimic CALLBACK_DATA_NOADVANCE() but with one extra byte. + * + * The alternative to doing this is to wait for the next byte to + * trigger the data callback, just as in every other case. The + * problem with this is that this makes it difficult for the test + * harness to distinguish between complete-on-EOF and + * complete-on-length. It's not clear that this distinction is + * important for applications, but let's keep it for now. + */ + CALLBACK_DATA_(body, p - body_mark + 1, p - data); + REEXECUTE(); + } + + break; + } + + /* read until EOF */ + case s_body_identity_eof: + MARK(body); + p = data + len - 1; + + break; + + case s_message_done: + UPDATE_STATE(NEW_MESSAGE()); + CALLBACK_NOTIFY(message_complete); + if (parser->upgrade) { + /* Exit, the rest of the message is in a different protocol. */ + RETURN((p - data) + 1); + } + break; + + case s_chunk_size_start: + { + assert(nread == 1); + assert(parser->flags & F_CHUNKED); + + unhex_val = unhex[(unsigned char)ch]; + if (UNLIKELY(unhex_val == -1)) { + SET_ERRNO(HPE_INVALID_CHUNK_SIZE); + goto error; + } + + parser->content_length = unhex_val; + UPDATE_STATE(s_chunk_size); + break; + } + + case s_chunk_size: + { + uint64_t t; + + assert(parser->flags & F_CHUNKED); + + if (ch == CR) { + UPDATE_STATE(s_chunk_size_almost_done); + break; + } + + unhex_val = unhex[(unsigned char)ch]; + + if (unhex_val == -1) { + if (ch == ';' || ch == ' ') { + UPDATE_STATE(s_chunk_parameters); + break; + } + + SET_ERRNO(HPE_INVALID_CHUNK_SIZE); + goto error; + } + + t = parser->content_length; + t *= 16; + t += unhex_val; + + /* Overflow? Test against a conservative limit for simplicity. */ + if (UNLIKELY((ULLONG_MAX - 16) / 16 < parser->content_length)) { + SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); + goto error; + } + + parser->content_length = t; + break; + } + + case s_chunk_parameters: + { + assert(parser->flags & F_CHUNKED); + /* just ignore this shit. TODO check for overflow */ + if (ch == CR) { + UPDATE_STATE(s_chunk_size_almost_done); + break; + } + break; + } + + case s_chunk_size_almost_done: + { + assert(parser->flags & F_CHUNKED); + STRICT_CHECK(ch != LF); + + parser->nread = 0; + nread = 0; + + if (parser->content_length == 0) { + parser->flags |= F_TRAILING; + UPDATE_STATE(s_header_field_start); + } else { + UPDATE_STATE(s_chunk_data); + } + CALLBACK_NOTIFY(chunk_header); + break; + } + + case s_chunk_data: + { + uint64_t to_read = MIN(parser->content_length, + (uint64_t) ((data + len) - p)); + + assert(parser->flags & F_CHUNKED); + assert(parser->content_length != 0 + && parser->content_length != ULLONG_MAX); + + /* See the explanation in s_body_identity for why the content + * length and data pointers are managed this way. + */ + MARK(body); + parser->content_length -= to_read; + p += to_read - 1; + + if (parser->content_length == 0) { + UPDATE_STATE(s_chunk_data_almost_done); + } + + break; + } + + case s_chunk_data_almost_done: + assert(parser->flags & F_CHUNKED); + assert(parser->content_length == 0); + STRICT_CHECK(ch != CR); + UPDATE_STATE(s_chunk_data_done); + CALLBACK_DATA(body); + break; + + case s_chunk_data_done: + assert(parser->flags & F_CHUNKED); + STRICT_CHECK(ch != LF); + parser->nread = 0; + nread = 0; + UPDATE_STATE(s_chunk_size_start); + CALLBACK_NOTIFY(chunk_complete); + break; + + default: + assert(0 && "unhandled state"); + SET_ERRNO(HPE_INVALID_INTERNAL_STATE); + goto error; + } + } + + /* Run callbacks for any marks that we have leftover after we ran out of + * bytes. There should be at most one of these set, so it's OK to invoke + * them in series (unset marks will not result in callbacks). + * + * We use the NOADVANCE() variety of callbacks here because 'p' has already + * overflowed 'data' and this allows us to correct for the off-by-one that + * we'd otherwise have (since CALLBACK_DATA() is meant to be run with a 'p' + * value that's in-bounds). + */ + + assert(((header_field_mark ? 1 : 0) + + (header_value_mark ? 1 : 0) + + (url_mark ? 1 : 0) + + (body_mark ? 1 : 0) + + (status_mark ? 1 : 0)) <= 1); + + CALLBACK_DATA_NOADVANCE(header_field); + CALLBACK_DATA_NOADVANCE(header_value); + CALLBACK_DATA_NOADVANCE(url); + CALLBACK_DATA_NOADVANCE(body); + CALLBACK_DATA_NOADVANCE(status); + + RETURN(len); + +error: + if (HTTP_PARSER_ERRNO(parser) == HPE_OK) { + SET_ERRNO(HPE_UNKNOWN); + } + + RETURN(p - data); +} + + +/* Does the parser need to see an EOF to find the end of the message? */ +int +http_message_needs_eof (const http_parser *parser) +{ + if (parser->type == HTTP_REQUEST) { + return 0; + } + + /* See RFC 2616 section 4.4 */ + if (parser->status_code / 100 == 1 || /* 1xx e.g. Continue */ + parser->status_code == 204 || /* No Content */ + parser->status_code == 304 || /* Not Modified */ + parser->flags & F_SKIPBODY) { /* response to a HEAD request */ + return 0; + } + + /* RFC 7230 3.3.3, see `s_headers_almost_done` */ + if ((parser->flags & F_TRANSFER_ENCODING) && + (parser->flags & F_CHUNKED) == 0) { + return 1; + } + + if ((parser->flags & F_CHUNKED) || parser->content_length != ULLONG_MAX) { + return 0; + } + + return 1; +} + + +int +http_should_keep_alive (const http_parser *parser) +{ + if (parser->http_major > 0 && parser->http_minor > 0) { + /* HTTP/1.1 */ + if (parser->flags & F_CONNECTION_CLOSE) { + return 0; + } + } else { + /* HTTP/1.0 or earlier */ + if (!(parser->flags & F_CONNECTION_KEEP_ALIVE)) { + return 0; + } + } + + return !http_message_needs_eof(parser); +} + + +const char * +http_method_str (enum http_method m) +{ + return ELEM_AT(method_strings, m, ""); +} + +const char * +http_status_str (enum http_status s) +{ + switch (s) { +#define XX(num, name, string) case HTTP_STATUS_##name: return #string; + HTTP_STATUS_MAP(XX) +#undef XX + default: return ""; + } +} + +void +http_parser_init (http_parser *parser, enum http_parser_type t) +{ + void *data = parser->data; /* preserve application data */ + memset(parser, 0, sizeof(*parser)); + parser->data = data; + parser->type = t; + parser->state = (t == HTTP_REQUEST ? s_start_req : (t == HTTP_RESPONSE ? s_start_res : s_start_req_or_res)); + parser->http_errno = HPE_OK; +} + +void +http_parser_settings_init(http_parser_settings *settings) +{ + memset(settings, 0, sizeof(*settings)); +} + +const char * +http_errno_name(enum http_errno err) { + assert(((size_t) err) < ARRAY_SIZE(http_strerror_tab)); + return http_strerror_tab[err].name; +} + +const char * +http_errno_description(enum http_errno err) { + assert(((size_t) err) < ARRAY_SIZE(http_strerror_tab)); + return http_strerror_tab[err].description; +} + +static enum http_host_state +http_parse_host_char(enum http_host_state s, const char ch) { + switch(s) { + case s_http_userinfo: + case s_http_userinfo_start: + if (ch == '@') { + return s_http_host_start; + } + + if (IS_USERINFO_CHAR(ch)) { + return s_http_userinfo; + } + break; + + case s_http_host_start: + if (ch == '[') { + return s_http_host_v6_start; + } + + if (IS_HOST_CHAR(ch)) { + return s_http_host; + } + + break; + + case s_http_host: + if (IS_HOST_CHAR(ch)) { + return s_http_host; + } + + /* fall through */ + case s_http_host_v6_end: + if (ch == ':') { + return s_http_host_port_start; + } + + break; + + case s_http_host_v6: + if (ch == ']') { + return s_http_host_v6_end; + } + + /* fall through */ + case s_http_host_v6_start: + if (IS_HEX(ch) || ch == ':' || ch == '.') { + return s_http_host_v6; + } + + if (s == s_http_host_v6 && ch == '%') { + return s_http_host_v6_zone_start; + } + break; + + case s_http_host_v6_zone: + if (ch == ']') { + return s_http_host_v6_end; + } + + /* fall through */ + case s_http_host_v6_zone_start: + /* RFC 6874 Zone ID consists of 1*( unreserved / pct-encoded) */ + if (IS_ALPHANUM(ch) || ch == '%' || ch == '.' || ch == '-' || ch == '_' || + ch == '~') { + return s_http_host_v6_zone; + } + break; + + case s_http_host_port: + case s_http_host_port_start: + if (IS_NUM(ch)) { + return s_http_host_port; + } + + break; + + default: + break; + } + return s_http_host_dead; +} + +static int +http_parse_host(const char * buf, struct http_parser_url *u, int found_at) { + enum http_host_state s; + + const char *p; + size_t buflen = u->field_data[UF_HOST].off + u->field_data[UF_HOST].len; + + assert(u->field_set & (1 << UF_HOST)); + + u->field_data[UF_HOST].len = 0; + + s = found_at ? s_http_userinfo_start : s_http_host_start; + + for (p = buf + u->field_data[UF_HOST].off; p < buf + buflen; p++) { + enum http_host_state new_s = http_parse_host_char(s, *p); + + if (new_s == s_http_host_dead) { + return 1; + } + + switch(new_s) { + case s_http_host: + if (s != s_http_host) { + u->field_data[UF_HOST].off = (uint16_t)(p - buf); + } + u->field_data[UF_HOST].len++; + break; + + case s_http_host_v6: + if (s != s_http_host_v6) { + u->field_data[UF_HOST].off = (uint16_t)(p - buf); + } + u->field_data[UF_HOST].len++; + break; + + case s_http_host_v6_zone_start: + case s_http_host_v6_zone: + u->field_data[UF_HOST].len++; + break; + + case s_http_host_port: + if (s != s_http_host_port) { + u->field_data[UF_PORT].off = (uint16_t)(p - buf); + u->field_data[UF_PORT].len = 0; + u->field_set |= (1 << UF_PORT); + } + u->field_data[UF_PORT].len++; + break; + + case s_http_userinfo: + if (s != s_http_userinfo) { + u->field_data[UF_USERINFO].off = (uint16_t)(p - buf); + u->field_data[UF_USERINFO].len = 0; + u->field_set |= (1 << UF_USERINFO); + } + u->field_data[UF_USERINFO].len++; + break; + + default: + break; + } + s = new_s; + } + + /* Make sure we don't end somewhere unexpected */ + switch (s) { + case s_http_host_start: + case s_http_host_v6_start: + case s_http_host_v6: + case s_http_host_v6_zone_start: + case s_http_host_v6_zone: + case s_http_host_port_start: + case s_http_userinfo: + case s_http_userinfo_start: + return 1; + default: + break; + } + + return 0; +} + +void +http_parser_url_init(struct http_parser_url *u) { + memset(u, 0, sizeof(*u)); +} + +int +http_parser_parse_url(const char *buf, size_t buflen, int is_connect, + struct http_parser_url *u) +{ + enum state s; + const char *p; + enum http_parser_url_fields uf, old_uf; + int found_at = 0; + + if (buflen == 0) { + return 1; + } + + u->port = u->field_set = 0; + s = is_connect ? s_req_server_start : s_req_spaces_before_url; + old_uf = UF_MAX; + + for (p = buf; p < buf + buflen; p++) { + s = parse_url_char(s, *p); + + /* Figure out the next field that we're operating on */ + switch (s) { + case s_dead: + return 1; + + /* Skip delimeters */ + case s_req_schema_slash: + case s_req_schema_slash_slash: + case s_req_server_start: + case s_req_query_string_start: + case s_req_fragment_start: + continue; + + case s_req_schema: + uf = UF_SCHEMA; + break; + + case s_req_server_with_at: + found_at = 1; + + /* fall through */ + case s_req_server: + uf = UF_HOST; + break; + + case s_req_path: + uf = UF_PATH; + break; + + case s_req_query_string: + uf = UF_QUERY; + break; + + case s_req_fragment: + uf = UF_FRAGMENT; + break; + + default: + assert(!"Unexpected state"); + return 1; + } + + /* Nothing's changed; soldier on */ + if (uf == old_uf) { + u->field_data[uf].len++; + continue; + } + + u->field_data[uf].off = (uint16_t)(p - buf); + u->field_data[uf].len = 1; + + u->field_set |= (1 << uf); + old_uf = uf; + } + + /* host must be present if there is a schema */ + /* parsing http:///toto will fail */ + if ((u->field_set & (1 << UF_SCHEMA)) && + (u->field_set & (1 << UF_HOST)) == 0) { + return 1; + } + + if (u->field_set & (1 << UF_HOST)) { + if (http_parse_host(buf, u, found_at) != 0) { + return 1; + } + } + + /* CONNECT requests can only contain "hostname:port" */ + if (is_connect && u->field_set != ((1 << UF_HOST)|(1 << UF_PORT))) { + return 1; + } + + if (u->field_set & (1 << UF_PORT)) { + uint16_t off; + uint16_t len; + const char* p; + const char* end; + unsigned long v; + + off = u->field_data[UF_PORT].off; + len = u->field_data[UF_PORT].len; + end = buf + off + len; + + /* NOTE: The characters are already validated and are in the [0-9] range */ + assert(off + len <= buflen && "Port number overflow"); + v = 0; + for (p = buf + off; p < end; p++) { + v *= 10; + v += *p - '0'; + + /* Ports have a max value of 2^16 */ + if (v > 0xffff) { + return 1; + } + } + + u->port = (uint16_t) v; + } + + return 0; +} + +void +http_parser_pause(http_parser *parser, int paused) { + /* Users should only be pausing/unpausing a parser that is not in an error + * state. In non-debug builds, there's not much that we can do about this + * other than ignore it. + */ + if (HTTP_PARSER_ERRNO(parser) == HPE_OK || + HTTP_PARSER_ERRNO(parser) == HPE_PAUSED) { + uint32_t nread = parser->nread; /* used by the SET_ERRNO macro */ + SET_ERRNO((paused) ? HPE_PAUSED : HPE_OK); + } else { + assert(0 && "Attempting to pause parser in error state"); + } +} + +int +http_body_is_final(const struct http_parser *parser) { + return parser->state == s_message_done; +} + +unsigned long +http_parser_version(void) { + return HTTP_PARSER_VERSION_MAJOR * 0x10000 | + HTTP_PARSER_VERSION_MINOR * 0x00100 | + HTTP_PARSER_VERSION_PATCH * 0x00001; +} + +void +http_parser_set_max_header_size(uint32_t size) { + max_header_size = size; +} diff --git a/lib/http_parser.h b/lib/http_parser.h new file mode 100755 index 0000000..4938ef5 --- /dev/null +++ b/lib/http_parser.h @@ -0,0 +1,455 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ +#ifndef http_parser_h +#define http_parser_h +#ifdef __cplusplus +extern "C" { +#endif + +/* Also update SONAME in the Makefile whenever you change these. */ +#define HTTP_PARSER_VERSION_MAJOR 2 +#define HTTP_PARSER_VERSION_MINOR 9 +#define HTTP_PARSER_VERSION_PATCH 3 + +#include +#if defined(_WIN32) && !defined(__MINGW32__) && \ + (!defined(_MSC_VER) || _MSC_VER<1600) && !defined(__WINE__) +#include +typedef __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +#include +#endif + +/* Compile with -DHTTP_PARSER_STRICT=0 to make less checks, but run + * faster + */ +#ifndef HTTP_PARSER_STRICT +# define HTTP_PARSER_STRICT 0 +#endif + +/* Maximium header size allowed. If the macro is not defined + * before including this header then the default is used. To + * change the maximum header size, define the macro in the build + * environment (e.g. -DHTTP_MAX_HEADER_SIZE=). To remove + * the effective limit on the size of the header, define the macro + * to a very large number (e.g. -DHTTP_MAX_HEADER_SIZE=0x7fffffff) + */ +#ifndef HTTP_MAX_HEADER_SIZE +# define HTTP_MAX_HEADER_SIZE (80*1024) +#endif + +typedef struct http_parser http_parser; +typedef struct http_parser_settings http_parser_settings; + + +/* Callbacks should return non-zero to indicate an error. The parser will + * then halt execution. + * + * The one exception is on_headers_complete. In a HTTP_RESPONSE parser + * returning '1' from on_headers_complete will tell the parser that it + * should not expect a body. This is used when receiving a response to a + * HEAD request which may contain 'Content-Length' or 'Transfer-Encoding: + * chunked' headers that indicate the presence of a body. + * + * Returning `2` from on_headers_complete will tell parser that it should not + * expect neither a body nor any futher responses on this connection. This is + * useful for handling responses to a CONNECT request which may not contain + * `Upgrade` or `Connection: upgrade` headers. + * + * http_data_cb does not return data chunks. It will be called arbitrarily + * many times for each string. E.G. you might get 10 callbacks for "on_url" + * each providing just a few characters more data. + */ +typedef int (*http_data_cb) (http_parser*, const char *at, size_t length); +typedef int (*http_cb) (http_parser*); + + +/* Status Codes */ +#define HTTP_STATUS_MAP(XX) \ + XX(100, CONTINUE, Continue) \ + XX(101, SWITCHING_PROTOCOLS, Switching Protocols) \ + XX(102, PROCESSING, Processing) \ + XX(200, OK, OK) \ + XX(201, CREATED, Created) \ + XX(202, ACCEPTED, Accepted) \ + XX(203, NON_AUTHORITATIVE_INFORMATION, Non-Authoritative Information) \ + XX(204, NO_CONTENT, No Content) \ + XX(205, RESET_CONTENT, Reset Content) \ + XX(206, PARTIAL_CONTENT, Partial Content) \ + XX(207, MULTI_STATUS, Multi-Status) \ + XX(208, ALREADY_REPORTED, Already Reported) \ + XX(226, IM_USED, IM Used) \ + XX(300, MULTIPLE_CHOICES, Multiple Choices) \ + XX(301, MOVED_PERMANENTLY, Moved Permanently) \ + XX(302, FOUND, Found) \ + XX(303, SEE_OTHER, See Other) \ + XX(304, NOT_MODIFIED, Not Modified) \ + XX(305, USE_PROXY, Use Proxy) \ + XX(307, TEMPORARY_REDIRECT, Temporary Redirect) \ + XX(308, PERMANENT_REDIRECT, Permanent Redirect) \ + XX(400, BAD_REQUEST, Bad Request) \ + XX(401, UNAUTHORIZED, Unauthorized) \ + XX(402, PAYMENT_REQUIRED, Payment Required) \ + XX(403, FORBIDDEN, Forbidden) \ + XX(404, NOT_FOUND, Not Found) \ + XX(405, METHOD_NOT_ALLOWED, Method Not Allowed) \ + XX(406, NOT_ACCEPTABLE, Not Acceptable) \ + XX(407, PROXY_AUTHENTICATION_REQUIRED, Proxy Authentication Required) \ + XX(408, REQUEST_TIMEOUT, Request Timeout) \ + XX(409, CONFLICT, Conflict) \ + XX(410, GONE, Gone) \ + XX(411, LENGTH_REQUIRED, Length Required) \ + XX(412, PRECONDITION_FAILED, Precondition Failed) \ + XX(413, PAYLOAD_TOO_LARGE, Payload Too Large) \ + XX(414, URI_TOO_LONG, URI Too Long) \ + XX(415, UNSUPPORTED_MEDIA_TYPE, Unsupported Media Type) \ + XX(416, RANGE_NOT_SATISFIABLE, Range Not Satisfiable) \ + XX(417, EXPECTATION_FAILED, Expectation Failed) \ + XX(421, MISDIRECTED_REQUEST, Misdirected Request) \ + XX(422, UNPROCESSABLE_ENTITY, Unprocessable Entity) \ + XX(423, LOCKED, Locked) \ + XX(424, FAILED_DEPENDENCY, Failed Dependency) \ + XX(426, UPGRADE_REQUIRED, Upgrade Required) \ + XX(428, PRECONDITION_REQUIRED, Precondition Required) \ + XX(429, TOO_MANY_REQUESTS, Too Many Requests) \ + XX(431, REQUEST_HEADER_FIELDS_TOO_LARGE, Request Header Fields Too Large) \ + XX(451, UNAVAILABLE_FOR_LEGAL_REASONS, Unavailable For Legal Reasons) \ + XX(500, INTERNAL_SERVER_ERROR, Internal Server Error) \ + XX(501, NOT_IMPLEMENTED, Not Implemented) \ + XX(502, BAD_GATEWAY, Bad Gateway) \ + XX(503, SERVICE_UNAVAILABLE, Service Unavailable) \ + XX(504, GATEWAY_TIMEOUT, Gateway Timeout) \ + XX(505, HTTP_VERSION_NOT_SUPPORTED, HTTP Version Not Supported) \ + XX(506, VARIANT_ALSO_NEGOTIATES, Variant Also Negotiates) \ + XX(507, INSUFFICIENT_STORAGE, Insufficient Storage) \ + XX(508, LOOP_DETECTED, Loop Detected) \ + XX(510, NOT_EXTENDED, Not Extended) \ + XX(511, NETWORK_AUTHENTICATION_REQUIRED, Network Authentication Required) \ + +enum http_status + { +#define XX(num, name, string) HTTP_STATUS_##name = num, + HTTP_STATUS_MAP(XX) +#undef XX + }; + + +/* Request Methods */ +#define HTTP_METHOD_MAP(XX) \ + XX(0, DELETE, DELETE) \ + XX(1, GET, GET) \ + XX(2, HEAD, HEAD) \ + XX(3, POST, POST) \ + XX(4, PUT, PUT) \ + /* pathological */ \ + XX(5, CONNECT, CONNECT) \ + XX(6, OPTIONS, OPTIONS) \ + XX(7, TRACE, TRACE) \ + /* WebDAV */ \ + XX(8, COPY, COPY) \ + XX(9, LOCK, LOCK) \ + XX(10, MKCOL, MKCOL) \ + XX(11, MOVE, MOVE) \ + XX(12, PROPFIND, PROPFIND) \ + XX(13, PROPPATCH, PROPPATCH) \ + XX(14, SEARCH, SEARCH) \ + XX(15, UNLOCK, UNLOCK) \ + XX(16, BIND, BIND) \ + XX(17, REBIND, REBIND) \ + XX(18, UNBIND, UNBIND) \ + XX(19, ACL, ACL) \ + /* subversion */ \ + XX(20, REPORT, REPORT) \ + XX(21, MKACTIVITY, MKACTIVITY) \ + XX(22, CHECKOUT, CHECKOUT) \ + XX(23, MERGE, MERGE) \ + /* upnp */ \ + XX(24, MSEARCH, M-SEARCH) \ + XX(25, NOTIFY, NOTIFY) \ + XX(26, SUBSCRIBE, SUBSCRIBE) \ + XX(27, UNSUBSCRIBE, UNSUBSCRIBE) \ + /* RFC-5789 */ \ + XX(28, PATCH, PATCH) \ + XX(29, PURGE, PURGE) \ + /* CalDAV */ \ + XX(30, MKCALENDAR, MKCALENDAR) \ + /* RFC-2068, section 19.6.1.2 */ \ + XX(31, LINK, LINK) \ + XX(32, UNLINK, UNLINK) \ + /* icecast */ \ + XX(33, SOURCE, SOURCE) \ + /* RFC-2326 (RTSP) */ \ + XX(34, DESCRIBE, DESCRIBE) \ + XX(35, ANNOUNCE, ANNOUNCE) \ + XX(36, SETUP, SETUP) \ + XX(37, PLAY, PLAY) \ + XX(38, PAUSE, PAUSE) \ + XX(39, TEARDOWN, TEARDOWN) \ + XX(40, GET_PARAMETER, GET_PARAMETER) \ + XX(41, SET_PARAMETER, SET_PARAMETER) \ + XX(42, REDIRECT, REDIRECT) \ + XX(43, RECORD, RECORD) \ + /* RAOP */ \ + XX(44, FLUSH, FLUSH) \ + +enum http_method + { +#define XX(num, name, string) HTTP_##name = num, + HTTP_METHOD_MAP(XX) +#undef XX + }; + + +enum http_parser_type { HTTP_REQUEST, HTTP_RESPONSE, HTTP_BOTH }; + + +/* Flag values for http_parser.flags field */ +enum flags + { F_CHUNKED = 1 << 0 + , F_CONNECTION_KEEP_ALIVE = 1 << 1 + , F_CONNECTION_CLOSE = 1 << 2 + , F_CONNECTION_UPGRADE = 1 << 3 + , F_TRAILING = 1 << 4 + , F_UPGRADE = 1 << 5 + , F_SKIPBODY = 1 << 6 + , F_CONTENTLENGTH = 1 << 7 + , F_TRANSFER_ENCODING = 1 << 8 + }; + + +/* Map for errno-related constants + * + * The provided argument should be a macro that takes 2 arguments. + */ +#define HTTP_ERRNO_MAP(XX) \ + /* No error */ \ + XX(OK, "success") \ + \ + /* Callback-related errors */ \ + XX(CB_message_begin, "the on_message_begin callback failed") \ + XX(CB_url, "the on_url callback failed") \ + XX(CB_header_field, "the on_header_field callback failed") \ + XX(CB_header_value, "the on_header_value callback failed") \ + XX(CB_headers_complete, "the on_headers_complete callback failed") \ + XX(CB_body, "the on_body callback failed") \ + XX(CB_message_complete, "the on_message_complete callback failed") \ + XX(CB_status, "the on_status callback failed") \ + XX(CB_chunk_header, "the on_chunk_header callback failed") \ + XX(CB_chunk_complete, "the on_chunk_complete callback failed") \ + \ + /* Parsing-related errors */ \ + XX(INVALID_EOF_STATE, "stream ended at an unexpected time") \ + XX(HEADER_OVERFLOW, \ + "too many header bytes seen; overflow detected") \ + XX(CLOSED_CONNECTION, \ + "data received after completed connection: close message") \ + XX(INVALID_VERSION, "invalid HTTP version") \ + XX(INVALID_STATUS, "invalid HTTP status code") \ + XX(INVALID_METHOD, "invalid HTTP method") \ + XX(INVALID_URL, "invalid URL") \ + XX(INVALID_HOST, "invalid host") \ + XX(INVALID_PORT, "invalid port") \ + XX(INVALID_PATH, "invalid path") \ + XX(INVALID_QUERY_STRING, "invalid query string") \ + XX(INVALID_FRAGMENT, "invalid fragment") \ + XX(LF_EXPECTED, "LF character expected") \ + XX(INVALID_HEADER_TOKEN, "invalid character in header") \ + XX(INVALID_CONTENT_LENGTH, \ + "invalid character in content-length header") \ + XX(UNEXPECTED_CONTENT_LENGTH, \ + "unexpected content-length header") \ + XX(INVALID_CHUNK_SIZE, \ + "invalid character in chunk size header") \ + XX(INVALID_TRANSFER_ENCODING, \ + "request has invalid transfer-encoding") \ + XX(INVALID_CONSTANT, "invalid constant string") \ + XX(INVALID_INTERNAL_STATE, "encountered unexpected internal state")\ + XX(STRICT, "strict mode assertion failed") \ + XX(PAUSED, "parser is paused") \ + XX(UNKNOWN, "an unknown error occurred") + + +/* Define HPE_* values for each errno value above */ +#define HTTP_ERRNO_GEN(n, s) HPE_##n, +enum http_errno { + HTTP_ERRNO_MAP(HTTP_ERRNO_GEN) +}; +#undef HTTP_ERRNO_GEN + + +/* Get an http_errno value from an http_parser */ +#define HTTP_PARSER_ERRNO(p) ((enum http_errno) (p)->http_errno) + + +struct http_parser { + /** PRIVATE **/ + unsigned int type : 2; /* enum http_parser_type */ + unsigned int state : 7; /* enum state from http_parser.c */ + unsigned int header_state : 7; /* enum header_state from http_parser.c */ + unsigned int index : 7; /* index into current matcher */ + unsigned int lenient_http_headers : 1; + unsigned int flags : 16; /* F_* values from 'flags' enum; semi-public */ + + uint32_t nread; /* # bytes read in various scenarios */ + uint64_t content_length; /* # bytes in body (0 if no Content-Length header) */ + + /** READ-ONLY **/ + unsigned short http_major; + unsigned short http_minor; + unsigned int status_code : 16; /* responses only */ + unsigned int method : 8; /* requests only */ + unsigned int http_errno : 7; + + /* 1 = Upgrade header was present and the parser has exited because of that. + * 0 = No upgrade header present. + * Should be checked when http_parser_execute() returns in addition to + * error checking. + */ + unsigned int upgrade : 1; + + /** PUBLIC **/ + void *data; /* A pointer to get hook to the "connection" or "socket" object */ +}; + + +struct http_parser_settings { + http_cb on_message_begin; + http_data_cb on_url; + http_data_cb on_status; + http_data_cb on_header_field; + http_data_cb on_header_value; + http_cb on_headers_complete; + http_data_cb on_body; + http_cb on_message_complete; + /* When on_chunk_header is called, the current chunk length is stored + * in parser->content_length. + */ + http_cb on_chunk_header; + http_cb on_chunk_complete; +}; + + +enum http_parser_url_fields + { UF_SCHEMA = 0 + , UF_HOST = 1 + , UF_PORT = 2 + , UF_PATH = 3 + , UF_QUERY = 4 + , UF_FRAGMENT = 5 + , UF_USERINFO = 6 + , UF_MAX = 7 + }; + + +/* Result structure for http_parser_parse_url(). + * + * Callers should index into field_data[] with UF_* values iff field_set + * has the relevant (1 << UF_*) bit set. As a courtesy to clients (and + * because we probably have padding left over), we convert any port to + * a uint16_t. + */ +struct http_parser_url { + uint16_t field_set; /* Bitmask of (1 << UF_*) values */ + uint16_t port; /* Converted UF_PORT string */ + + struct { + uint16_t off; /* Offset into buffer in which field starts */ + uint16_t len; /* Length of run in buffer */ + } field_data[UF_MAX]; +}; + + +/* Returns the library version. Bits 16-23 contain the major version number, + * bits 8-15 the minor version number and bits 0-7 the patch level. + * Usage example: + * + * unsigned long version = http_parser_version(); + * unsigned major = (version >> 16) & 255; + * unsigned minor = (version >> 8) & 255; + * unsigned patch = version & 255; + * printf("http_parser v%u.%u.%u\n", major, minor, patch); + */ +unsigned long http_parser_version(void); + +void http_parser_init(http_parser *parser, enum http_parser_type type); + + +/* Initialize http_parser_settings members to 0 + */ +void http_parser_settings_init(http_parser_settings *settings); + + +/* Executes the parser. Returns number of parsed bytes. Sets + * `parser->http_errno` on error. */ +size_t http_parser_execute(http_parser *parser, + const http_parser_settings *settings, + const char *data, + size_t len); + + +/* If http_should_keep_alive() in the on_headers_complete or + * on_message_complete callback returns 0, then this should be + * the last message on the connection. + * If you are the server, respond with the "Connection: close" header. + * If you are the client, close the connection. + */ +int http_should_keep_alive(const http_parser *parser); + +/* Returns a string version of the HTTP method. */ +const char *http_method_str(enum http_method m); + +/* Returns a string version of the HTTP status code. */ +const char *http_status_str(enum http_status s); + +/* Return a string name of the given error */ +const char *http_errno_name(enum http_errno err); + +/* Return a string description of the given error */ +const char *http_errno_description(enum http_errno err); + +/* Initialize all http_parser_url members to 0 */ +void http_parser_url_init(struct http_parser_url *u); + +/* Parse a URL; return nonzero on failure */ +int http_parser_parse_url(const char *buf, size_t buflen, + int is_connect, + struct http_parser_url *u); + +/* Pause or un-pause the parser; a nonzero value pauses */ +void http_parser_pause(http_parser *parser, int paused); + +/* Checks if this is the final chunk of the body. */ +int http_body_is_final(const http_parser *parser); + +/* Change the maximum header size provided at compile time. */ +void http_parser_set_max_header_size(uint32_t size); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/lib/http_request.c b/lib/http_request.c new file mode 100755 index 0000000..a9d2ca0 --- /dev/null +++ b/lib/http_request.c @@ -0,0 +1,252 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include +#include +#include + +#include "http_request.h" +#include "http_parser.h" + +struct http_request_s { + http_parser parser; + http_parser_settings parser_settings; + + const char *method; + char *url; + + char **headers; + int headers_size; + int headers_index; + + char *data; + int datalen; + + int complete; +}; + +static int +on_url(http_parser *parser, const char *at, size_t length) +{ + http_request_t *request = parser->data; + int urllen = request->url ? strlen(request->url) : 0; + + request->url = realloc(request->url, urllen+length+1); + assert(request->url); + + request->url[urllen] = '\0'; + strncat(request->url, at, length); + return 0; +} + +static int +on_header_field(http_parser *parser, const char *at, size_t length) +{ + http_request_t *request = parser->data; + + /* Check if our index is a value */ + if (request->headers_index%2 == 1) { + request->headers_index++; + } + + /* Allocate space for new field-value pair */ + if (request->headers_index == request->headers_size) { + request->headers_size += 2; + request->headers = realloc(request->headers, + request->headers_size*sizeof(char*)); + assert(request->headers); + request->headers[request->headers_index] = NULL; + request->headers[request->headers_index+1] = NULL; + } + + /* Allocate space in the current header string */ + if (request->headers[request->headers_index] == NULL) { + request->headers[request->headers_index] = calloc(1, length+1); + } else { + request->headers[request->headers_index] = realloc( + request->headers[request->headers_index], + strlen(request->headers[request->headers_index])+length+1 + ); + } + assert(request->headers[request->headers_index]); + + strncat(request->headers[request->headers_index], at, length); + return 0; +} + +static int +on_header_value(http_parser *parser, const char *at, size_t length) +{ + http_request_t *request = parser->data; + + /* Check if our index is a field */ + if (request->headers_index%2 == 0) { + request->headers_index++; + } + + /* Allocate space in the current header string */ + if (request->headers[request->headers_index] == NULL) { + request->headers[request->headers_index] = calloc(1, length+1); + } else { + request->headers[request->headers_index] = realloc( + request->headers[request->headers_index], + strlen(request->headers[request->headers_index])+length+1 + ); + } + assert(request->headers[request->headers_index]); + + strncat(request->headers[request->headers_index], at, length); + return 0; +} + +static int +on_body(http_parser *parser, const char *at, size_t length) +{ + http_request_t *request = parser->data; + + request->data = realloc(request->data, request->datalen+length); + assert(request->data); + + memcpy(request->data+request->datalen, at, length); + request->datalen += length; + return 0; +} + +static int +on_message_complete(http_parser *parser) +{ + http_request_t *request = parser->data; + + request->method = http_method_str(request->parser.method); + request->complete = 1; + return 0; +} + +http_request_t * +http_request_init(void) +{ + http_request_t *request; + + request = calloc(1, sizeof(http_request_t)); + if (!request) { + return NULL; + } + http_parser_init(&request->parser, HTTP_REQUEST); + request->parser.data = request; + + request->parser_settings.on_url = &on_url; + request->parser_settings.on_header_field = &on_header_field; + request->parser_settings.on_header_value = &on_header_value; + request->parser_settings.on_body = &on_body; + request->parser_settings.on_message_complete = &on_message_complete; + + return request; +} + +void +http_request_destroy(http_request_t *request) +{ + int i; + + if (request) { + free(request->url); + for (i=0; iheaders_size; i++) { + free(request->headers[i]); + } + free(request->headers); + free(request->data); + free(request); + } +} + +int +http_request_add_data(http_request_t *request, const char *data, int datalen) +{ + int ret; + + assert(request); + + ret = http_parser_execute(&request->parser, + &request->parser_settings, + data, datalen); + return ret; +} + +int +http_request_is_complete(http_request_t *request) +{ + assert(request); + return request->complete; +} + +int +http_request_has_error(http_request_t *request) +{ + assert(request); + return (HTTP_PARSER_ERRNO(&request->parser) != HPE_OK); +} + +const char * +http_request_get_error_name(http_request_t *request) +{ + assert(request); + return http_errno_name(HTTP_PARSER_ERRNO(&request->parser)); +} + +const char * +http_request_get_error_description(http_request_t *request) +{ + assert(request); + return http_errno_description(HTTP_PARSER_ERRNO(&request->parser)); +} + +const char * +http_request_get_method(http_request_t *request) +{ + assert(request); + return request->method; +} + +const char * +http_request_get_url(http_request_t *request) +{ + assert(request); + return request->url; +} + +const char * +http_request_get_header(http_request_t *request, const char *name) +{ + int i; + + assert(request); + + for (i=0; iheaders_size; i+=2) { + if (!strcmp(request->headers[i], name)) { + return request->headers[i+1]; + } + } + return NULL; +} + +const char * +http_request_get_data(http_request_t *request, int *datalen) +{ + assert(request); + + if (datalen) { + *datalen = request->datalen; + } + return request->data; +} diff --git a/lib/http_request.h b/lib/http_request.h new file mode 100755 index 0000000..7899216 --- /dev/null +++ b/lib/http_request.h @@ -0,0 +1,36 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef HTTP_REQUEST_H +#define HTTP_REQUEST_H + +typedef struct http_request_s http_request_t; + + +http_request_t *http_request_init(void); + +int http_request_add_data(http_request_t *request, const char *data, int datalen); +int http_request_is_complete(http_request_t *request); +int http_request_has_error(http_request_t *request); + +const char *http_request_get_error_name(http_request_t *request); +const char *http_request_get_error_description(http_request_t *request); +const char *http_request_get_method(http_request_t *request); +const char *http_request_get_url(http_request_t *request); +const char *http_request_get_header(http_request_t *request, const char *name); +const char *http_request_get_data(http_request_t *request, int *datalen); + +void http_request_destroy(http_request_t *request); + +#endif diff --git a/lib/http_response.c b/lib/http_response.c new file mode 100755 index 0000000..91b30b8 --- /dev/null +++ b/lib/http_response.c @@ -0,0 +1,165 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include +#include +#include +#include + +#include "http_response.h" +#include "compat.h" + +struct http_response_s { + int complete; + int disconnect; + + char *data; + int data_size; + int data_length; +}; + + +static void +http_response_add_data(http_response_t *response, const char *data, int datalen) +{ + int newdatasize; + + assert(response); + assert(data); + assert(datalen > 0); + + newdatasize = response->data_size; + while (response->data_size+datalen > newdatasize) { + newdatasize *= 2; + } + if (newdatasize != response->data_size) { + response->data = realloc(response->data, newdatasize); + assert(response->data); + } + memcpy(response->data+response->data_length, data, datalen); + response->data_length += datalen; +} + +http_response_t * +http_response_init(const char *protocol, int code, const char *message) +{ + http_response_t *response; + char codestr[4]; + + assert(code >= 100 && code < 1000); + + /* Convert code into string */ + memset(codestr, 0, sizeof(codestr)); + snprintf(codestr, sizeof(codestr), "%u", code); + + response = calloc(1, sizeof(http_response_t)); + if (!response) { + return NULL; + } + + /* Allocate response data */ + response->data_size = 1024; + response->data = malloc(response->data_size); + if (!response->data) { + free(response); + return NULL; + } + + /* Add first line of response to the data array */ + http_response_add_data(response, protocol, strlen(protocol)); + http_response_add_data(response, " ", 1); + http_response_add_data(response, codestr, strlen(codestr)); + http_response_add_data(response, " ", 1); + http_response_add_data(response, message, strlen(message)); + http_response_add_data(response, "\r\n", 2); + + return response; +} + +void +http_response_destroy(http_response_t *response) +{ + if (response) { + free(response->data); + free(response); + } +} + +void +http_response_add_header(http_response_t *response, const char *name, const char *value) +{ + assert(response); + assert(name); + assert(value); + + http_response_add_data(response, name, strlen(name)); + http_response_add_data(response, ": ", 2); + http_response_add_data(response, value, strlen(value)); + http_response_add_data(response, "\r\n", 2); +} + +void +http_response_finish(http_response_t *response, const char *data, int datalen) +{ + assert(response); + assert(datalen==0 || (data && datalen > 0)); + + if (data && datalen > 0) { + const char *hdrname = "Content-Length"; + char hdrvalue[16]; + + memset(hdrvalue, 0, sizeof(hdrvalue)); + snprintf(hdrvalue, sizeof(hdrvalue)-1, "%d", datalen); + + /* Add Content-Length header first */ + http_response_add_data(response, hdrname, strlen(hdrname)); + http_response_add_data(response, ": ", 2); + http_response_add_data(response, hdrvalue, strlen(hdrvalue)); + http_response_add_data(response, "\r\n\r\n", 4); + + /* Add data to the end of response */ + http_response_add_data(response, data, datalen); + } else { + /* Add extra end of line after headers */ + http_response_add_data(response, "\r\n", 2); + } + response->complete = 1; +} + +void +http_response_set_disconnect(http_response_t *response, int disconnect) +{ + assert(response); + + response->disconnect = !!disconnect; +} + +int +http_response_get_disconnect(http_response_t *response) +{ + assert(response); + + return response->disconnect; +} + +const char * +http_response_get_data(http_response_t *response, int *datalen) +{ + assert(response); + assert(datalen); + assert(response->complete); + + *datalen = response->data_length; + return response->data; +} diff --git a/lib/http_response.h b/lib/http_response.h new file mode 100755 index 0000000..43e1128 --- /dev/null +++ b/lib/http_response.h @@ -0,0 +1,32 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef HTTP_RESPONSE_H +#define HTTP_RESPONSE_H + +typedef struct http_response_s http_response_t; + +http_response_t *http_response_init(const char *protocol, int code, const char *message); + +void http_response_add_header(http_response_t *response, const char *name, const char *value); +void http_response_finish(http_response_t *response, const char *data, int datalen); + +void http_response_set_disconnect(http_response_t *response, int disconnect); +int http_response_get_disconnect(http_response_t *response); + +const char *http_response_get_data(http_response_t *response, int *datalen); + +void http_response_destroy(http_response_t *response); + +#endif diff --git a/lib/httpd.c b/lib/httpd.c new file mode 100755 index 0000000..3aeee49 --- /dev/null +++ b/lib/httpd.c @@ -0,0 +1,458 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include +#include +#include +#include + +#include "httpd.h" +#include "netutils.h" +#include "http_request.h" +#include "compat.h" +#include "logger.h" + +struct http_connection_s { + int connected; + + int socket_fd; + void *user_data; + http_request_t *request; +}; +typedef struct http_connection_s http_connection_t; + +struct httpd_s { + logger_t *logger; + httpd_callbacks_t callbacks; + + int max_connections; + int open_connections; + http_connection_t *connections; + + /* These variables only edited mutex locked */ + int running; + int joined; + thread_handle_t thread; + mutex_handle_t run_mutex; + + /* Server fds for accepting connections */ + int server_fd4; + int server_fd6; +}; + +httpd_t * +httpd_init(logger_t *logger, httpd_callbacks_t *callbacks, int max_connections) +{ + httpd_t *httpd; + + assert(logger); + assert(callbacks); + assert(max_connections > 0); + + /* Allocate the httpd_t structure */ + httpd = calloc(1, sizeof(httpd_t)); + if (!httpd) { + return NULL; + } + + httpd->max_connections = max_connections; + httpd->connections = calloc(max_connections, sizeof(http_connection_t)); + if (!httpd->connections) { + free(httpd); + return NULL; + } + + /* Use the logger provided */ + httpd->logger = logger; + + /* Save callback pointers */ + memcpy(&httpd->callbacks, callbacks, sizeof(httpd_callbacks_t)); + + /* Initial status joined */ + httpd->running = 0; + httpd->joined = 1; + + return httpd; +} + +void +httpd_destroy(httpd_t *httpd) +{ + if (httpd) { + httpd_stop(httpd); + + free(httpd->connections); + free(httpd); + } +} + +static int +httpd_add_connection(httpd_t *httpd, int fd, unsigned char *local, int local_len, unsigned char *remote, int remote_len) +{ + void *user_data; + int i; + + for (i=0; imax_connections; i++) { + if (!httpd->connections[i].connected) { + break; + } + } + if (i == httpd->max_connections) { + /* This code should never be reached, we do not select server_fds when full */ + logger_log(httpd->logger, LOGGER_INFO, "Max connections reached"); + return -1; + } + + user_data = httpd->callbacks.conn_init(httpd->callbacks.opaque, local, local_len, remote, remote_len); + if (!user_data) { + logger_log(httpd->logger, LOGGER_ERR, "Error initializing HTTP request handler"); + return -1; + } + + httpd->open_connections++; + httpd->connections[i].socket_fd = fd; + httpd->connections[i].connected = 1; + httpd->connections[i].user_data = user_data; + return 0; +} + +static int +httpd_accept_connection(httpd_t *httpd, int server_fd, int is_ipv6) +{ + struct sockaddr_storage remote_saddr; + socklen_t remote_saddrlen; + struct sockaddr_storage local_saddr; + socklen_t local_saddrlen; + unsigned char *local, *remote; + int local_len, remote_len; + int ret, fd; + + remote_saddrlen = sizeof(remote_saddr); + fd = accept(server_fd, (struct sockaddr *)&remote_saddr, &remote_saddrlen); + if (fd == -1) { + /* FIXME: Error happened */ + return -1; + } + + local_saddrlen = sizeof(local_saddr); + ret = getsockname(fd, (struct sockaddr *)&local_saddr, &local_saddrlen); + if (ret == -1) { + shutdown(fd, SHUT_RDWR); + closesocket(fd); + return 0; + } + + logger_log(httpd->logger, LOGGER_INFO, "Accepted %s client on socket %d", + (is_ipv6 ? "IPv6" : "IPv4"), fd); + local = netutils_get_address(&local_saddr, &local_len); + remote = netutils_get_address(&remote_saddr, &remote_len); + + ret = httpd_add_connection(httpd, fd, local, local_len, remote, remote_len); + if (ret == -1) { + shutdown(fd, SHUT_RDWR); + closesocket(fd); + return 0; + } + return 1; +} + +static void +httpd_remove_connection(httpd_t *httpd, http_connection_t *connection) +{ + if (connection->request) { + http_request_destroy(connection->request); + connection->request = NULL; + } + httpd->callbacks.conn_destroy(connection->user_data); + shutdown(connection->socket_fd, SHUT_WR); + closesocket(connection->socket_fd); + connection->connected = 0; + httpd->open_connections--; +} + +static THREAD_RETVAL +httpd_thread(void *arg) +{ + httpd_t *httpd = arg; + char buffer[1024]; + int i; + + assert(httpd); + + while (1) { + fd_set rfds; + struct timeval tv; + int nfds=0; + int ret; + + MUTEX_LOCK(httpd->run_mutex); + if (!httpd->running) { + MUTEX_UNLOCK(httpd->run_mutex); + break; + } + MUTEX_UNLOCK(httpd->run_mutex); + + /* Set timeout value to 5ms */ + tv.tv_sec = 1; + tv.tv_usec = 5000; + + /* Get the correct nfds value and set rfds */ + FD_ZERO(&rfds); + if (httpd->open_connections < httpd->max_connections) { + if (httpd->server_fd4 != -1) { + FD_SET(httpd->server_fd4, &rfds); + if (nfds <= httpd->server_fd4) { + nfds = httpd->server_fd4+1; + } + } + if (httpd->server_fd6 != -1) { + FD_SET(httpd->server_fd6, &rfds); + if (nfds <= httpd->server_fd6) { + nfds = httpd->server_fd6+1; + } + } + } + for (i=0; imax_connections; i++) { + int socket_fd; + if (!httpd->connections[i].connected) { + continue; + } + socket_fd = httpd->connections[i].socket_fd; + FD_SET(socket_fd, &rfds); + if (nfds <= socket_fd) { + nfds = socket_fd+1; + } + } + + ret = select(nfds, &rfds, NULL, NULL, &tv); + if (ret == 0) { + /* Timeout happened */ + continue; + } else if (ret == -1) { + logger_log(httpd->logger, LOGGER_ERR, "httpd error in select"); + break; + } + + if (httpd->open_connections < httpd->max_connections && + httpd->server_fd4 != -1 && FD_ISSET(httpd->server_fd4, &rfds)) { + ret = httpd_accept_connection(httpd, httpd->server_fd4, 0); + if (ret == -1) { + logger_log(httpd->logger, LOGGER_ERR, "httpd error in accept ipv4"); + break; + } else if (ret == 0) { + continue; + } + } + if (httpd->open_connections < httpd->max_connections && + httpd->server_fd6 != -1 && FD_ISSET(httpd->server_fd6, &rfds)) { + ret = httpd_accept_connection(httpd, httpd->server_fd6, 1); + if (ret == -1) { + logger_log(httpd->logger, LOGGER_ERR, "httpd error in accept ipv6"); + break; + } else if (ret == 0) { + continue; + } + } + for (i=0; imax_connections; i++) { + http_connection_t *connection = &httpd->connections[i]; + + if (!connection->connected) { + continue; + } + if (!FD_ISSET(connection->socket_fd, &rfds)) { + continue; + } + + /* If not in the middle of request, allocate one */ + if (!connection->request) { + connection->request = http_request_init(); + assert(connection->request); + } + + logger_log(httpd->logger, LOGGER_DEBUG, "httpd receiving on socket %d", connection->socket_fd); + ret = recv(connection->socket_fd, buffer, sizeof(buffer), 0); + if (ret == 0) { + logger_log(httpd->logger, LOGGER_INFO, "Connection closed for socket %d", connection->socket_fd); + httpd_remove_connection(httpd, connection); + continue; + } + + /* Parse HTTP request from data read from connection */ + http_request_add_data(connection->request, buffer, ret); + if (http_request_has_error(connection->request)) { + logger_log(httpd->logger, LOGGER_ERR, "httpd error in parsing: %s", http_request_get_error_name(connection->request)); + httpd_remove_connection(httpd, connection); + continue; + } + + /* If request is finished, process and deallocate */ + if (http_request_is_complete(connection->request)) { + http_response_t *response = NULL; + // Callback the received data to raop + httpd->callbacks.conn_request(connection->user_data, connection->request, &response); + http_request_destroy(connection->request); + connection->request = NULL; + + if (response) { + const char *data; + int datalen; + int written; + int ret; + + /* Get response data and datalen */ + data = http_response_get_data(response, &datalen); + + written = 0; + while (written < datalen) { + ret = send(connection->socket_fd, data+written, datalen-written, 0); + if (ret == -1) { + logger_log(httpd->logger, LOGGER_ERR, "httpd error in sending data"); + break; + } + written += ret; + } + + if (http_response_get_disconnect(response)) { + logger_log(httpd->logger, LOGGER_INFO, "Disconnecting on software request"); + httpd_remove_connection(httpd, connection); + } + } else { + logger_log(httpd->logger, LOGGER_WARNING, "httpd didn't get response"); + } + http_response_destroy(response); + } else { + logger_log(httpd->logger, LOGGER_DEBUG, "Request not complete, waiting for more data..."); + } + } + } + + /* Remove all connections that are still connected */ + for (i=0; imax_connections; i++) { + http_connection_t *connection = &httpd->connections[i]; + + if (!connection->connected) { + continue; + } + logger_log(httpd->logger, LOGGER_INFO, "Removing connection for socket %d", connection->socket_fd); + httpd_remove_connection(httpd, connection); + } + + /* Close server sockets since they are not used any more */ + if (httpd->server_fd4 != -1) { + shutdown(httpd->server_fd4, SHUT_RDWR); + closesocket(httpd->server_fd4); + httpd->server_fd4 = -1; + } + if (httpd->server_fd6 != -1) { + shutdown(httpd->server_fd6, SHUT_RDWR); + closesocket(httpd->server_fd6); + httpd->server_fd6 = -1; + } + + // Ensure running reflects the actual state + MUTEX_LOCK(httpd->run_mutex); + httpd->running = 0; + MUTEX_UNLOCK(httpd->run_mutex); + + logger_log(httpd->logger, LOGGER_DEBUG, "Exiting HTTP thread"); + + return 0; +} + +int +httpd_start(httpd_t *httpd, unsigned short *port) +{ + /* How many connection attempts are kept in queue */ + int backlog = 5; + + assert(httpd); + assert(port); + + MUTEX_LOCK(httpd->run_mutex); + if (httpd->running || !httpd->joined) { + MUTEX_UNLOCK(httpd->run_mutex); + return 0; + } + + httpd->server_fd4 = netutils_init_socket(port, 0, 0); + if (httpd->server_fd4 == -1) { + logger_log(httpd->logger, LOGGER_ERR, "Error initialising socket %d", SOCKET_GET_ERROR()); + MUTEX_UNLOCK(httpd->run_mutex); + return -1; + } + httpd->server_fd6 = -1;/*= netutils_init_socket(port, 1, 0); + if (httpd->server_fd6 == -1) { + logger_log(httpd->logger, LOGGER_WARNING, "Error initialising IPv6 socket %d", SOCKET_GET_ERROR()); + logger_log(httpd->logger, LOGGER_WARNING, "Continuing without IPv6 support"); + }*/ + + if (httpd->server_fd4 != -1 && listen(httpd->server_fd4, backlog) == -1) { + logger_log(httpd->logger, LOGGER_ERR, "Error listening to IPv4 socket"); + closesocket(httpd->server_fd4); + closesocket(httpd->server_fd6); + MUTEX_UNLOCK(httpd->run_mutex); + return -2; + } + if (httpd->server_fd6 != -1 && listen(httpd->server_fd6, backlog) == -1) { + logger_log(httpd->logger, LOGGER_ERR, "Error listening to IPv6 socket"); + closesocket(httpd->server_fd4); + closesocket(httpd->server_fd6); + MUTEX_UNLOCK(httpd->run_mutex); + return -2; + } + logger_log(httpd->logger, LOGGER_INFO, "Initialized server socket(s)"); + + /* Set values correctly and create new thread */ + httpd->running = 1; + httpd->joined = 0; + THREAD_CREATE(httpd->thread, httpd_thread, httpd); + MUTEX_UNLOCK(httpd->run_mutex); + + return 1; +} + +int +httpd_is_running(httpd_t *httpd) +{ + int running; + + assert(httpd); + + MUTEX_LOCK(httpd->run_mutex); + running = httpd->running || !httpd->joined; + MUTEX_UNLOCK(httpd->run_mutex); + + return running; +} + +void +httpd_stop(httpd_t *httpd) +{ + assert(httpd); + + MUTEX_LOCK(httpd->run_mutex); + if (!httpd->running || httpd->joined) { + MUTEX_UNLOCK(httpd->run_mutex); + return; + } + httpd->running = 0; + MUTEX_UNLOCK(httpd->run_mutex); + + THREAD_JOIN(httpd->thread); + + MUTEX_LOCK(httpd->run_mutex); + httpd->joined = 1; + MUTEX_UNLOCK(httpd->run_mutex); +} + diff --git a/lib/httpd.h b/lib/httpd.h new file mode 100755 index 0000000..fc184e1 --- /dev/null +++ b/lib/httpd.h @@ -0,0 +1,43 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef HTTPD_H +#define HTTPD_H + +#include "logger.h" +#include "http_request.h" +#include "http_response.h" + +typedef struct httpd_s httpd_t; + +struct httpd_callbacks_s { + void* opaque; + void* (*conn_init)(void *opaque, unsigned char *local, int locallen, unsigned char *remote, int remotelen); + void (*conn_request)(void *ptr, http_request_t *request, http_response_t **response); + void (*conn_destroy)(void *ptr); +}; +typedef struct httpd_callbacks_s httpd_callbacks_t; + + +httpd_t *httpd_init(logger_t *logger, httpd_callbacks_t *callbacks, int max_connections); + +int httpd_is_running(httpd_t *httpd); + +int httpd_start(httpd_t *httpd, unsigned short *port); +void httpd_stop(httpd_t *httpd); + +void httpd_destroy(httpd_t *httpd); + + +#endif diff --git a/lib/logger.c b/lib/logger.c new file mode 100755 index 0000000..f3fe354 --- /dev/null +++ b/lib/logger.c @@ -0,0 +1,139 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include +#include +#include +#include + +#include "logger.h" +#include "compat.h" + +struct logger_s { + mutex_handle_t lvl_mutex; + mutex_handle_t cb_mutex; + + int level; + void *cls; + logger_callback_t callback; +}; + +logger_t * +logger_init() +{ + logger_t *logger = calloc(1, sizeof(logger_t)); + assert(logger); + + MUTEX_CREATE(logger->lvl_mutex); + MUTEX_CREATE(logger->cb_mutex); + + logger->level = LOGGER_WARNING; + logger->callback = NULL; + return logger; +} + +void +logger_destroy(logger_t *logger) +{ + MUTEX_DESTROY(logger->lvl_mutex); + MUTEX_DESTROY(logger->cb_mutex); + free(logger); +} + +void +logger_set_level(logger_t *logger, int level) +{ + assert(logger); + + MUTEX_LOCK(logger->lvl_mutex); + logger->level = level; + MUTEX_UNLOCK(logger->lvl_mutex); +} + +void +logger_set_callback(logger_t *logger, logger_callback_t callback, void *cls) +{ + assert(logger); + + MUTEX_LOCK(logger->cb_mutex); + logger->cls = cls; + logger->callback = callback; + MUTEX_UNLOCK(logger->cb_mutex); +} + +static char * +logger_utf8_to_local(const char *str) +{ + char *ret = NULL; + +/* FIXME: This is only implemented on Windows for now */ +#if defined(_WIN32) || defined(_WIN64) + int wclen, mblen; + WCHAR *wcstr; + BOOL failed; + + wclen = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0); + wcstr = malloc(sizeof(WCHAR) * wclen); + MultiByteToWideChar(CP_UTF8, 0, str, -1, wcstr, wclen); + + mblen = WideCharToMultiByte(CP_ACP, 0, wcstr, wclen, NULL, 0, NULL, &failed); + if (failed) { + /* Invalid characters in input, conversion failed */ + free(wcstr); + return NULL; + } + + ret = malloc(sizeof(CHAR) * mblen); + WideCharToMultiByte(CP_ACP, 0, wcstr, wclen, ret, mblen, NULL, NULL); + free(wcstr); +#endif + + return ret; +} + +void +logger_log(logger_t *logger, int level, const char *fmt, ...) +{ + char buffer[4096]; + va_list ap; + + MUTEX_LOCK(logger->lvl_mutex); + if (level > logger->level) { + MUTEX_UNLOCK(logger->lvl_mutex); + return; + } + MUTEX_UNLOCK(logger->lvl_mutex); + + buffer[sizeof(buffer)-1] = '\0'; + va_start(ap, fmt); + vsnprintf(buffer, sizeof(buffer)-1, fmt, ap); + va_end(ap); + + MUTEX_LOCK(logger->cb_mutex); + if (logger->callback) { + logger->callback(logger->cls, level, buffer); + MUTEX_UNLOCK(logger->cb_mutex); + } else { + char *local; + MUTEX_UNLOCK(logger->cb_mutex); + local = logger_utf8_to_local(buffer); + if (local) { + fprintf(stderr, "%s\n", local); + free(local); + } else { + fprintf(stderr, "%s\n", buffer); + } + } +} + diff --git a/lib/logger.h b/lib/logger.h new file mode 100755 index 0000000..00a4257 --- /dev/null +++ b/lib/logger.h @@ -0,0 +1,48 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef LOGGER_H +#define LOGGER_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Define syslog style log levels */ +#define LOGGER_EMERG 0 /* system is unusable */ +#define LOGGER_ALERT 1 /* action must be taken immediately */ +#define LOGGER_CRIT 2 /* critical conditions */ +#define LOGGER_ERR 3 /* error conditions */ +#define LOGGER_WARNING 4 /* warning conditions */ +#define LOGGER_NOTICE 5 /* normal but significant condition */ +#define LOGGER_INFO 6 /* informational */ +#define LOGGER_DEBUG 7 /* debug-level messages */ + +typedef void (*logger_callback_t)(void *cls, int level, const char *msg); + +typedef struct logger_s logger_t; + +logger_t *logger_init(); +void logger_destroy(logger_t *logger); + +void logger_set_level(logger_t *logger, int level); +void logger_set_callback(logger_t *logger, logger_callback_t callback, void *cls); + +void logger_log(logger_t *logger, int level, const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/lib/memalign.h b/lib/memalign.h new file mode 100755 index 0000000..917e02a --- /dev/null +++ b/lib/memalign.h @@ -0,0 +1,53 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef MEMALIGN_H +#define MEMALIGN_H + +#if defined(WIN32) + +#define SYSTEM_GET_PAGESIZE(ret) do {\ + SYSTEM_INFO si;\ + GetSystemInfo(&si);\ + ret = si.dwPageSize;\ +} while(0) +#define SYSTEM_GET_TIME(ret) ret = timeGetTime() + +#define ALIGNED_MALLOC(memptr, alignment, size) do {\ + char *ptr = malloc(sizeof(void*) + (size) + (alignment)-1);\ + memptr = NULL;\ + if (ptr) {\ + size_t ptrval = (size_t)ptr + sizeof(void*) + (alignment)-1;\ + ptrval = ptrval / (alignment) * (alignment);\ + memptr = (void *)ptrval;\ + *(((void **)memptr)-1) = ptr;\ + }\ +} while(0) +#define ALIGNED_FREE(memptr) free(*(((void **)memptr)-1)) + +#else + +#define SYSTEM_GET_PAGESIZE(ret) ret = sysconf(_SC_PAGESIZE) +#define SYSTEM_GET_TIME(ret) do {\ + struct timeval tv;\ + gettimeofday(&tv, NULL);\ + ret = (unsigned int)(tv.tv_sec*1000 + tv.tv_usec/1000);\ +} while(0) + +#define ALIGNED_MALLOC(memptr, alignment, size) if (posix_memalign((void **)&memptr, alignment, size)) memptr = NULL +#define ALIGNED_FREE(memptr) free(memptr) + +#endif + +#endif diff --git a/lib/mirror_buffer.c b/lib/mirror_buffer.c new file mode 100755 index 0000000..abb438b --- /dev/null +++ b/lib/mirror_buffer.c @@ -0,0 +1,142 @@ +/* + * Copyright (c) 2019 dsafa22, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include "mirror_buffer.h" +#include "raop_rtp.h" +#include "raop_rtp.h" +#include +#include "crypto.h" +#include "compat.h" +#include +#include +#include +#include +#include + +//#define DUMP_KEI_IV +struct mirror_buffer_s { + logger_t *logger; + aes_ctx_t *aes_ctx; + int nextDecryptCount; + uint8_t og[16]; + /* AES key and IV */ + // Need secondary processing to use + unsigned char aeskey[RAOP_AESKEY_LEN]; + unsigned char ecdh_secret[32]; +}; + +void +mirror_buffer_init_aes(mirror_buffer_t *mirror_buffer, uint64_t streamConnectionID) +{ + sha_ctx_t *ctx = sha_init(); + unsigned char eaeskey[64] = {}; + memcpy(eaeskey, mirror_buffer->aeskey, 16); + sha_update(ctx, eaeskey, 16); + sha_update(ctx, mirror_buffer->ecdh_secret, 32); + sha_final(ctx, eaeskey, NULL); + + unsigned char hash1[64]; + unsigned char hash2[64]; + char* skey = "AirPlayStreamKey"; + char* siv = "AirPlayStreamIV"; + unsigned char skeyall[255]; + unsigned char sivall[255]; + sprintf((char*) skeyall, "%s%llu", skey, streamConnectionID); + sprintf((char*) sivall, "%s%llu", siv, streamConnectionID); + sha_reset(ctx); + sha_update(ctx, skeyall, strlen((char*) skeyall)); + sha_update(ctx, eaeskey, 16); + sha_final(ctx, hash1, NULL); + + sha_reset(ctx); + sha_update(ctx, sivall, strlen((char*) sivall)); + sha_update(ctx, eaeskey, 16); + sha_final(ctx, hash2, NULL); + sha_destroy(ctx); + + unsigned char decrypt_aeskey[16]; + unsigned char decrypt_aesiv[16]; + memcpy(decrypt_aeskey, hash1, 16); + memcpy(decrypt_aesiv, hash2, 16); +#ifdef DUMP_KEI_IV + FILE* keyfile = fopen("/sdcard/111.keyiv", "wb"); + fwrite(decrypt_aeskey, 16, 1, keyfile); + fwrite(decrypt_aesiv, 16, 1, keyfile); + fclose(keyfile); +#endif + // Need to be initialized externally + mirror_buffer->aes_ctx = aes_ctr_init(decrypt_aeskey, decrypt_aesiv); + mirror_buffer->nextDecryptCount = 0; +} + +mirror_buffer_t * +mirror_buffer_init(logger_t *logger, + const unsigned char *aeskey, + const unsigned char *ecdh_secret) +{ + mirror_buffer_t *mirror_buffer; + assert(aeskey); + assert(ecdh_secret); + mirror_buffer = calloc(1, sizeof(mirror_buffer_t)); + if (!mirror_buffer) { + return NULL; + } + memcpy(mirror_buffer->aeskey, aeskey, RAOP_AESKEY_LEN); + memcpy(mirror_buffer->ecdh_secret, ecdh_secret, 32); + mirror_buffer->logger = logger; + mirror_buffer->nextDecryptCount = 0; + //mirror_buffer_init_aes(mirror_buffer, aeskey, ecdh_secret, streamConnectionID); + return mirror_buffer; +} + +void mirror_buffer_decrypt(mirror_buffer_t *mirror_buffer, unsigned char* input, unsigned char* output, int inputLen) { + // Start decrypting + if (mirror_buffer->nextDecryptCount > 0) {//mirror_buffer->nextDecryptCount = 10 + for (int i = 0; i < mirror_buffer->nextDecryptCount; i++) { + output[i] = (input[i] ^ mirror_buffer->og[(16 - mirror_buffer->nextDecryptCount) + i]); + } + } + // Handling encrypted bytes + int encryptlen = ((inputLen - mirror_buffer->nextDecryptCount) / 16) * 16; + // Aes decryption + aes_ctr_start_fresh_block(mirror_buffer->aes_ctx); + aes_ctr_decrypt(mirror_buffer->aes_ctx, input + mirror_buffer->nextDecryptCount, + input + mirror_buffer->nextDecryptCount, encryptlen); + // Copy to output + memcpy(output + mirror_buffer->nextDecryptCount, input + mirror_buffer->nextDecryptCount, encryptlen); + int outputlength = mirror_buffer->nextDecryptCount + encryptlen; + // Processing remaining length + int restlen = (inputLen - mirror_buffer->nextDecryptCount) % 16; + int reststart = inputLen - restlen; + mirror_buffer->nextDecryptCount = 0; + if (restlen > 0) { + memset(mirror_buffer->og, 0, 16); + memcpy(mirror_buffer->og, input + reststart, restlen); + aes_ctr_decrypt(mirror_buffer->aes_ctx, mirror_buffer->og, mirror_buffer->og, 16); + for (int j = 0; j < restlen; j++) { + output[reststart + j] = mirror_buffer->og[j]; + } + outputlength += restlen; + mirror_buffer->nextDecryptCount = 16 - restlen;// Difference 16-6=10 bytes + } +} + +void +mirror_buffer_destroy(mirror_buffer_t *mirror_buffer) +{ + if (mirror_buffer) { + aes_ctr_destroy(mirror_buffer->aes_ctx); + free(mirror_buffer); + } +} diff --git a/lib/mirror_buffer.h b/lib/mirror_buffer.h new file mode 100755 index 0000000..f64b340 --- /dev/null +++ b/lib/mirror_buffer.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2019 dsafa22, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef MIRROR_BUFFER_H +#define MIRROR_BUFFER_H + +#include +#include "logger.h" + +typedef struct mirror_buffer_s mirror_buffer_t; + + +mirror_buffer_t *mirror_buffer_init( logger_t *logger, + const unsigned char *aeskey, + const unsigned char *ecdh_secret); +void mirror_buffer_init_aes(mirror_buffer_t *mirror_buffer, uint64_t streamConnectionID); +void mirror_buffer_decrypt(mirror_buffer_t *raop_mirror, unsigned char* input, unsigned char* output, int datalen); +void mirror_buffer_destroy(mirror_buffer_t *mirror_buffer); +#endif //MIRROR_BUFFER_H diff --git a/lib/netutils.c b/lib/netutils.c new file mode 100755 index 0000000..9e160c7 --- /dev/null +++ b/lib/netutils.c @@ -0,0 +1,203 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include +#include +#include + +#include "compat.h" + +int +netutils_init() +{ +#ifdef WIN32 + WORD wVersionRequested; + WSADATA wsaData; + int ret; + + wVersionRequested = MAKEWORD(2, 2); + ret = WSAStartup(wVersionRequested, &wsaData); + if (ret) { + return -1; + } + + if (LOBYTE(wsaData.wVersion) != 2 || + HIBYTE(wsaData.wVersion) != 2) { + /* Version mismatch, requested version not found */ + return -1; + } +#endif + return 0; +} + +void +netutils_cleanup() +{ +#ifdef WIN32 + WSACleanup(); +#endif +} + +unsigned char * +netutils_get_address(void *sockaddr, int *length) +{ + unsigned char ipv4_prefix[] = { 0,0,0,0,0,0,0,0,0,0,255,255 }; + struct sockaddr *address = sockaddr; + + assert(address); + assert(length); + + if (address->sa_family == AF_INET) { + struct sockaddr_in *sin; + + sin = (struct sockaddr_in *)address; + *length = sizeof(sin->sin_addr.s_addr); + return (unsigned char *)&sin->sin_addr.s_addr; + } else if (address->sa_family == AF_INET6) { + struct sockaddr_in6 *sin6; + + sin6 = (struct sockaddr_in6 *)address; + if (!memcmp(sin6->sin6_addr.s6_addr, ipv4_prefix, 12)) { + /* Actually an embedded IPv4 address */ + *length = sizeof(sin6->sin6_addr.s6_addr)-12; + return (sin6->sin6_addr.s6_addr+12); + } + *length = sizeof(sin6->sin6_addr.s6_addr); + return sin6->sin6_addr.s6_addr; + } + + *length = 0; + return NULL; +} + +int +netutils_init_socket(unsigned short *port, int use_ipv6, int use_udp) +{ + int family = use_ipv6 ? AF_INET6 : AF_INET; + int type = use_udp ? SOCK_DGRAM : SOCK_STREAM; + int proto = use_udp ? IPPROTO_UDP : IPPROTO_TCP; + + struct sockaddr_storage saddr; + socklen_t socklen; + int server_fd; + int ret; + int reuseaddr = 1; + + assert(port); + + server_fd = socket(family, type, proto); + if (server_fd == -1) { + goto cleanup; + } + + ret = setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof (reuseaddr)); + if (ret == -1) { + goto cleanup; + } + + memset(&saddr, 0, sizeof(saddr)); + if (use_ipv6) { + struct sockaddr_in6 *sin6ptr = (struct sockaddr_in6 *)&saddr; + int v6only = 1; + + /* Initialize sockaddr for bind */ + sin6ptr->sin6_family = family; + sin6ptr->sin6_addr = in6addr_any; + sin6ptr->sin6_port = htons(*port); + +#ifndef WIN32 + /* Make sure we only listen to IPv6 addresses */ + setsockopt(server_fd, IPPROTO_IPV6, IPV6_V6ONLY, + (char *) &v6only, sizeof(v6only)); +#endif + + socklen = sizeof(*sin6ptr); + ret = bind(server_fd, (struct sockaddr *)sin6ptr, socklen); + if (ret == -1) { + goto cleanup; + } + + ret = getsockname(server_fd, (struct sockaddr *)sin6ptr, &socklen); + if (ret == -1) { + goto cleanup; + } + *port = ntohs(sin6ptr->sin6_port); + } else { + struct sockaddr_in *sinptr = (struct sockaddr_in *)&saddr; + + /* Initialize sockaddr for bind */ + sinptr->sin_family = family; + sinptr->sin_addr.s_addr = INADDR_ANY; + sinptr->sin_port = htons(*port); + + socklen = sizeof(*sinptr); + ret = bind(server_fd, (struct sockaddr *)sinptr, socklen); + if (ret == -1) { + goto cleanup; + } + + ret = getsockname(server_fd, (struct sockaddr *)sinptr, &socklen); + if (ret == -1) { + goto cleanup; + } + *port = ntohs(sinptr->sin_port); + } + return server_fd; + + cleanup: + ret = SOCKET_GET_ERROR(); + if (server_fd != -1) { + closesocket(server_fd); + } + SOCKET_SET_ERROR(ret); + return -1; +} + +// Src is the ip address +int +netutils_parse_address(int family, const char *src, void *dst, int dstlen) +{ + struct addrinfo *result; + struct addrinfo *ptr; + struct addrinfo hints; + int length; + int ret; + + if (family != AF_INET && family != AF_INET6) { + return -1; + } + if (!src || !dst) { + return -1; + } + + memset(&hints, 0, sizeof(hints)); + hints.ai_family = family; + hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST; + + ret = getaddrinfo(src, NULL, &hints, &result); + if (ret != 0) { + return -1; + } + + length = -1; + for (ptr=result; ptr!=NULL; ptr=ptr->ai_next) { + if (family == ptr->ai_family && (unsigned int)dstlen >= ptr->ai_addrlen) { + memcpy(dst, ptr->ai_addr, ptr->ai_addrlen); + length = ptr->ai_addrlen; + break; + } + } + freeaddrinfo(result); + return length; +} diff --git a/lib/netutils.h b/lib/netutils.h old mode 100644 new mode 100755 diff --git a/lib/pairing.c b/lib/pairing.c new file mode 100755 index 0000000..1a70cc5 --- /dev/null +++ b/lib/pairing.c @@ -0,0 +1,261 @@ +/** + * Copyright (C) 2018 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include +#include +#include + +#include "pairing.h" +#include "curve25519/curve25519.h" +#include "ed25519/ed25519.h" +#include "crypto.h" + +#define SALT_KEY "Pair-Verify-AES-Key" +#define SALT_IV "Pair-Verify-AES-IV" + +struct pairing_s { + unsigned char ed_private[64]; + unsigned char ed_public[32]; +}; + +typedef enum { + STATUS_INITIAL, + STATUS_SETUP, + STATUS_HANDSHAKE, + STATUS_FINISHED +} status_t; + +struct pairing_session_s { + status_t status; + + unsigned char ed_private[64]; + unsigned char ed_ours[32]; + unsigned char ed_theirs[32]; + + unsigned char ecdh_ours[32]; + unsigned char ecdh_theirs[32]; + unsigned char ecdh_secret[32]; +}; + +static int +derive_key_internal(pairing_session_t *session, const unsigned char *salt, unsigned int saltlen, unsigned char *key, unsigned int keylen) +{ + unsigned char hash[64]; + + if (keylen > sizeof(hash)) { + return -1; + } + + sha_ctx_t *ctx = sha_init(); + sha_update(ctx, salt, saltlen); + sha_update(ctx, session->ecdh_secret, 32); + sha_final(ctx, hash, NULL); + sha_destroy(ctx); + + memcpy(key, hash, keylen); + return 0; +} + +pairing_t * +pairing_init_generate() +{ + unsigned char seed[32]; + + if (ed25519_create_seed(seed)) { + return NULL; + } + return pairing_init_seed(seed); +} + +pairing_t * +pairing_init_seed(const unsigned char seed[32]) +{ + pairing_t *pairing; + + pairing = calloc(1, sizeof(pairing_t)); + if (!pairing) { + return NULL; + } + + ed25519_create_keypair(pairing->ed_public, pairing->ed_private, seed); + return pairing; +} + +void +pairing_get_public_key(pairing_t *pairing, unsigned char public_key[32]) +{ + assert(pairing); + + memcpy(public_key, pairing->ed_public, 32); +} + +void +pairing_get_ecdh_secret_key(pairing_session_t *session, unsigned char ecdh_secret[32]) +{ + assert(session); + memcpy(ecdh_secret, session->ecdh_secret, 32); +} + + +pairing_session_t * +pairing_session_init(pairing_t *pairing) +{ + pairing_session_t *session; + + if (!pairing) { + return NULL; + } + + session = calloc(1, sizeof(pairing_session_t)); + if (!session) { + return NULL; + } + memcpy(session->ed_private, pairing->ed_private, 64); + memcpy(session->ed_ours, pairing->ed_public, 32); + session->status = STATUS_INITIAL; + + return session; +} + +void +pairing_session_set_setup_status(pairing_session_t *session) +{ + assert(session); + session->status = STATUS_SETUP; +} + +int +pairing_session_check_handshake_status(pairing_session_t *session) +{ + assert(session); + if (session->status != STATUS_SETUP) { + return -1; + } + return 0; +} + +int +pairing_session_handshake(pairing_session_t *session, const unsigned char ecdh_key[32], const unsigned char ed_key[32]) +{ + unsigned char ecdh_priv[32]; + + assert(session); + + if (session->status == STATUS_FINISHED) { + return -1; + } + if (ed25519_create_seed(ecdh_priv)) { + return -2; + } + + memcpy(session->ecdh_theirs, ecdh_key, 32); + memcpy(session->ed_theirs, ed_key, 32); + curve25519_donna(session->ecdh_ours, ecdh_priv, kCurve25519BasePoint); + curve25519_donna(session->ecdh_secret, ecdh_priv, session->ecdh_theirs); + + session->status = STATUS_HANDSHAKE; + return 0; +} + +int +pairing_session_get_public_key(pairing_session_t *session, unsigned char ecdh_key[32]) +{ + assert(session); + + if (session->status != STATUS_HANDSHAKE) { + return -1; + } + + memcpy(ecdh_key, session->ecdh_ours, 32); + return 0; +} + +int +pairing_session_get_signature(pairing_session_t *session, unsigned char signature[64]) +{ + unsigned char sig_msg[64]; + unsigned char key[16]; + unsigned char iv[16]; + aes_ctx_t *aes_ctx; + + assert(session); + + if (session->status != STATUS_HANDSHAKE) { + return -1; + } + + /* First sign the public ECDH keys of both parties */ + memcpy(&sig_msg[0], session->ecdh_ours, 32); + memcpy(&sig_msg[32], session->ecdh_theirs, 32); + + ed25519_sign(signature, sig_msg, sizeof(sig_msg), session->ed_ours, session->ed_private); + + /* Then encrypt the result with keys derived from the shared secret */ + derive_key_internal(session, (const unsigned char *) SALT_KEY, strlen(SALT_KEY), key, sizeof(key)); + derive_key_internal(session, (const unsigned char *) SALT_IV, strlen(SALT_IV), iv, sizeof(key)); + + aes_ctx = aes_ctr_init(key, iv); + aes_ctr_encrypt(aes_ctx, signature, signature, 64); + aes_ctr_destroy(aes_ctx); + + return 0; +} + +int +pairing_session_finish(pairing_session_t *session, const unsigned char signature[64]) +{ + unsigned char sig_buffer[64]; + unsigned char sig_msg[64]; + unsigned char key[16]; + unsigned char iv[16]; + aes_ctx_t *aes_ctx; + + assert(session); + + if (session->status != STATUS_HANDSHAKE) { + return -1; + } + + /* First decrypt the signature with keys derived from the shared secret */ + derive_key_internal(session, (const unsigned char *) SALT_KEY, strlen(SALT_KEY), key, sizeof(key)); + derive_key_internal(session, (const unsigned char *) SALT_IV, strlen(SALT_IV), iv, sizeof(key)); + + aes_ctx = aes_ctr_init(key, iv); + /* One fake round for the initial handshake encryption */ + aes_ctr_encrypt(aes_ctx, sig_buffer, sig_buffer, 64); + aes_ctr_encrypt(aes_ctx, signature, sig_buffer, 64); + aes_ctr_destroy(aes_ctx); + + /* Then verify the signature with public ECDH keys of both parties */ + memcpy(&sig_msg[0], session->ecdh_theirs, 32); + memcpy(&sig_msg[32], session->ecdh_ours, 32); + if (!ed25519_verify(sig_buffer, sig_msg, sizeof(sig_msg), session->ed_theirs)) { + return -2; + } + + session->status = STATUS_FINISHED; + return 0; +} + +void +pairing_session_destroy(pairing_session_t *session) +{ + free(session); +} + +void +pairing_destroy(pairing_t *pairing) +{ + free(pairing); +} diff --git a/lib/pairing.h b/lib/pairing.h new file mode 100755 index 0000000..2df7dd0 --- /dev/null +++ b/lib/pairing.h @@ -0,0 +1,38 @@ +/** + * Copyright (C) 2018 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef PAIRING_H +#define PAIRING_H + +typedef struct pairing_s pairing_t; +typedef struct pairing_session_s pairing_session_t; + +pairing_t *pairing_init_generate(); +pairing_t *pairing_init_seed(const unsigned char seed[32]); +void pairing_get_public_key(pairing_t *pairing, unsigned char public_key[32]); + +pairing_session_t *pairing_session_init(pairing_t *pairing); +void pairing_session_set_setup_status(pairing_session_t *session); +int pairing_session_check_handshake_status(pairing_session_t *session); +int pairing_session_handshake(pairing_session_t *session, const unsigned char ecdh_key[32], const unsigned char ed_key[32]); +int pairing_session_get_public_key(pairing_session_t *session, unsigned char ecdh_key[32]); +int pairing_session_get_signature(pairing_session_t *session, unsigned char signature[64]); +int pairing_session_finish(pairing_session_t *session, const unsigned char signature[64]); +void pairing_session_destroy(pairing_session_t *session); + +void pairing_destroy(pairing_t *pairing); + +void pairing_get_ecdh_secret_key(pairing_session_t *session, unsigned char ecdh_secret[32]); + +#endif diff --git a/lib/playfair/CMakeLists.txt b/lib/playfair/CMakeLists.txt new file mode 100755 index 0000000..792daf0 --- /dev/null +++ b/lib/playfair/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.4.1) +aux_source_directory(. playfair_src) +set(DIR_SRCS ${playfair_src}) +include_directories(.) +add_library( playfair + STATIC + ${DIR_SRCS}) \ No newline at end of file diff --git a/lib/playfair/LICENSE.md b/lib/playfair/LICENSE.md new file mode 100755 index 0000000..09f984d --- /dev/null +++ b/lib/playfair/LICENSE.md @@ -0,0 +1,637 @@ + +# GNU GENERAL PUBLIC LICENSE +Version 3, 29 June 2007 + +Copyright (C) 2007 [Free Software Foundation, Inc.](http://fsf.org/) + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +## Preamble + +The GNU General Public License is a free, copyleft license for software and +other kinds of works. + +The licenses for most software and other practical works are designed to take +away your freedom to share and change the works. By contrast, the GNU General +Public License is intended to guarantee your freedom to share and change all +versions of a program--to make sure it remains free software for all its users. +We, the Free Software Foundation, use the GNU General Public License for most +of our software; it applies also to any other work released this way by its +authors. You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for them if you wish), that you +receive source code or can get it if you want it, that you can change the +software or use pieces of it in new free programs, and that you know you can do +these things. + +To protect your rights, we need to prevent others from denying you these rights +or asking you to surrender the rights. Therefore, you have certain +responsibilities if you distribute copies of the software, or if you modify it: +responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must pass on to the recipients the same freedoms that you received. +You must make sure that they, too, receive or can get the source code. And you +must show them these terms so they know their rights. + +Developers that use the GNU GPL protect your rights with two steps: + + 1. assert copyright on the software, and + 2. offer you this License giving you legal permission to copy, distribute + and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains that +there is no warranty for this free software. For both users' and authors' sake, +the GPL requires that modified versions be marked as changed, so that their +problems will not be attributed erroneously to authors of previous versions. + +Some devices are designed to deny users access to install or run modified +versions of the software inside them, although the manufacturer can do so. This +is fundamentally incompatible with the aim of protecting users' freedom to +change the software. The systematic pattern of such abuse occurs in the area of +products for individuals to use, which is precisely where it is most +unacceptable. Therefore, we have designed this version of the GPL to prohibit +the practice for those products. If such problems arise substantially in other +domains, we stand ready to extend this provision to those domains in future +versions of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. States +should not allow patents to restrict development and use of software on +general-purpose computers, but in those that do, we wish to avoid the special +danger that patents applied to a free program could make it effectively +proprietary. To prevent this, the GPL assures that patents cannot be used to +render the program non-free. + +The precise terms and conditions for copying, distribution and modification +follow. + +## TERMS AND CONDITIONS + +### 0. Definitions. + +*This License* refers to version 3 of the GNU General Public License. + +*Copyright* also means copyright-like laws that apply to other kinds of works, +such as semiconductor masks. + +*The Program* refers to any copyrightable work licensed under this License. +Each licensee is addressed as *you*. *Licensees* and *recipients* may be +individuals or organizations. + +To *modify* a work means to copy from or adapt all or part of the work in a +fashion requiring copyright permission, other than the making of an exact copy. +The resulting work is called a *modified version* of the earlier work or a work +*based on* the earlier work. + +A *covered work* means either the unmodified Program or a work based on the +Program. + +To *propagate* a work means to do anything with it that, without permission, +would make you directly or secondarily liable for infringement under applicable +copyright law, except executing it on a computer or modifying a private copy. +Propagation includes copying, distribution (with or without modification), +making available to the public, and in some countries other activities as well. + +To *convey* a work means any kind of propagation that enables other parties to +make or receive copies. Mere interaction with a user through a computer +network, with no transfer of a copy, is not conveying. + +An interactive user interface displays *Appropriate Legal Notices* to the +extent that it includes a convenient and prominently visible feature that + + 1. displays an appropriate copyright notice, and + 2. tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the work + under this License, and how to view a copy of this License. + +If the interface presents a list of user commands or options, such as a menu, a +prominent item in the list meets this criterion. + +### 1. Source Code. + +The *source code* for a work means the preferred form of the work for making +modifications to it. *Object code* means any non-source form of a work. + +A *Standard Interface* means an interface that either is an official standard +defined by a recognized standards body, or, in the case of interfaces specified +for a particular programming language, one that is widely used among developers +working in that language. + +The *System Libraries* of an executable work include anything, other than the +work as a whole, that (a) is included in the normal form of packaging a Major +Component, but which is not part of that Major Component, and (b) serves only +to enable use of the work with that Major Component, or to implement a Standard +Interface for which an implementation is available to the public in source code +form. A *Major Component*, in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system (if any) on +which the executable work runs, or a compiler used to produce the work, or an +object code interpreter used to run it. + +The *Corresponding Source* for a work in object code form means all the source +code needed to generate, install, and (for an executable work) run the object +code and to modify the work, including scripts to control those activities. +However, it does not include the work's System Libraries, or general-purpose +tools or generally available free programs which are used unmodified in +performing those activities but which are not part of the work. For example, +Corresponding Source includes interface definition files associated with source +files for the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, such as +by intimate data communication or control flow between those subprograms and +other parts of the work. + +The Corresponding Source need not include anything that users can regenerate +automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +### 2. Basic Permissions. + +All rights granted under this License are granted for the term of copyright on +the Program, and are irrevocable provided the stated conditions are met. This +License explicitly affirms your unlimited permission to run the unmodified +Program. The output from running a covered work is covered by this License only +if the output, given its content, constitutes a covered work. This License +acknowledges your rights of fair use or other equivalent, as provided by +copyright law. + +You may make, run and propagate covered works that you do not convey, without +conditions so long as your license otherwise remains in force. You may convey +covered works to others for the sole purpose of having them make modifications +exclusively for you, or provide you with facilities for running those works, +provided that you comply with the terms of this License in conveying all +material for which you do not control copyright. Those thus making or running +the covered works for you must do so exclusively on your behalf, under your +direction and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the +conditions stated below. Sublicensing is not allowed; section 10 makes it +unnecessary. + +### 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological measure +under any applicable law fulfilling obligations under article 11 of the WIPO +copyright treaty adopted on 20 December 1996, or similar laws prohibiting or +restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention is +effected by exercising rights under this License with respect to the covered +work, and you disclaim any intention to limit operation or modification of the +work as a means of enforcing, against the work's users, your or third parties' +legal rights to forbid circumvention of technological measures. + +### 4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you receive it, +in any medium, provided that you conspicuously and appropriately publish on +each copy an appropriate copyright notice; keep intact all notices stating that +this License and any non-permissive terms added in accord with section 7 apply +to the code; keep intact all notices of the absence of any warranty; and give +all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may +offer support or warranty protection for a fee. + +### 5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to produce it +from the Program, in the form of source code under the terms of section 4, +provided that you also meet all of these conditions: + + - a) The work must carry prominent notices stating that you modified it, and + giving a relevant date. + - b) The work must carry prominent notices stating that it is released under + this License and any conditions added under section 7. This requirement + modifies the requirement in section 4 to *keep intact all notices*. + - c) You must license the entire work, as a whole, under this License to + anyone who comes into possession of a copy. This License will therefore + apply, along with any applicable section 7 additional terms, to the whole + of the work, and all its parts, regardless of how they are packaged. This + License gives no permission to license the work in any other way, but it + does not invalidate such permission if you have separately received it. + - d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your work need + not make them do so. + +A compilation of a covered work with other separate and independent works, +which are not by their nature extensions of the covered work, and which are not +combined with it such as to form a larger program, in or on a volume of a +storage or distribution medium, is called an *aggregate* if the compilation and +its resulting copyright are not used to limit the access or legal rights of the +compilation's users beyond what the individual works permit. Inclusion of a +covered work in an aggregate does not cause this License to apply to the other +parts of the aggregate. + +### 6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms of sections 4 +and 5, provided that you also convey the machine-readable Corresponding Source +under the terms of this License, in one of these ways: + + - a) Convey the object code in, or embodied in, a physical product (including + a physical distribution medium), accompanied by the Corresponding Source + fixed on a durable physical medium customarily used for software + interchange. + - b) Convey the object code in, or embodied in, a physical product (including + a physical distribution medium), accompanied by a written offer, valid for + at least three years and valid for as long as you offer spare parts or + customer support for that product model, to give anyone who possesses the + object code either + 1. a copy of the Corresponding Source for all the software in the product + that is covered by this License, on a durable physical medium + customarily used for software interchange, for a price no more than your + reasonable cost of physically performing this conveying of source, or + 2. access to copy the Corresponding Source from a network server at no + charge. + - c) Convey individual copies of the object code with a copy of the written + offer to provide the Corresponding Source. This alternative is allowed only + occasionally and noncommercially, and only if you received the object code + with such an offer, in accord with subsection 6b. + - d) Convey the object code by offering access from a designated place + (gratis or for a charge), and offer equivalent access to the Corresponding + Source in the same way through the same place at no further charge. You + need not require recipients to copy the Corresponding Source along with the + object code. If the place to copy the object code is a network server, the + Corresponding Source may be on a different server operated by you or a + third party) that supports equivalent copying facilities, provided you + maintain clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the Corresponding + Source, you remain obligated to ensure that it is available for as long as + needed to satisfy these requirements. + - e) Convey the object code using peer-to-peer transmission, provided you + inform other peers where the object code and Corresponding Source of the + work are being offered to the general public at no charge under subsection + 6d. + +A separable portion of the object code, whose source code is excluded from the +Corresponding Source as a System Library, need not be included in conveying the +object code work. + +A *User Product* is either + + 1. a *consumer product*, which means any tangible personal property which is + normally used for personal, family, or household purposes, or + 2. anything designed or sold for incorporation into a dwelling. + +In determining whether a product is a consumer product, doubtful cases shall be +resolved in favor of coverage. For a particular product received by a +particular user, *normally used* refers to a typical or common use of that +class of product, regardless of the status of the particular user or of the way +in which the particular user actually uses, or expects or is expected to use, +the product. A product is a consumer product regardless of whether the product +has substantial commercial, industrial or non-consumer uses, unless such uses +represent the only significant mode of use of the product. + +*Installation Information* for a User Product means any methods, procedures, +authorization keys, or other information required to install and execute +modified versions of a covered work in that User Product from a modified +version of its Corresponding Source. The information must suffice to ensure +that the continued functioning of the modified object code is in no case +prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as part of a +transaction in which the right of possession and use of the User Product is +transferred to the recipient in perpetuity or for a fixed term (regardless of +how the transaction is characterized), the Corresponding Source conveyed under +this section must be accompanied by the Installation Information. But this +requirement does not apply if neither you nor any third party retains the +ability to install modified object code on the User Product (for example, the +work has been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates for a +work that has been modified or installed by the recipient, or for the User +Product in which it has been modified or installed. Access to a network may be +denied when the modification itself materially and adversely affects the +operation of the network or violates the rules and protocols for communication +across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord +with this section must be in a format that is publicly documented (and with an +implementation available to the public in source code form), and must require +no special password or key for unpacking, reading or copying. + +### 7. Additional Terms. + +*Additional permissions* are terms that supplement the terms of this License by +making exceptions from one or more of its conditions. Additional permissions +that are applicable to the entire Program shall be treated as though they were +included in this License, to the extent that they are valid under applicable +law. If additional permissions apply only to part of the Program, that part may +be used separately under those permissions, but the entire Program remains +governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any +additional permissions from that copy, or from any part of it. (Additional +permissions may be written to require their own removal in certain cases when +you modify the work.) You may place additional permissions on material, added +by you to a covered work, for which you have or can give appropriate copyright +permission. + +Notwithstanding any other provision of this License, for material you add to a +covered work, you may (if authorized by the copyright holders of that material) +supplement the terms of this License with terms: + + - a) Disclaiming warranty or limiting liability differently from the terms of + sections 15 and 16 of this License; or + - b) Requiring preservation of specified reasonable legal notices or author + attributions in that material or in the Appropriate Legal Notices displayed + by works containing it; or + - c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in reasonable + ways as different from the original version; or + - d) Limiting the use for publicity purposes of names of licensors or authors + of the material; or + - e) Declining to grant rights under trademark law for use of some trade + names, trademarks, or service marks; or + - f) Requiring indemnification of licensors and authors of that material by + anyone who conveys the material (or modified versions of it) with + contractual assumptions of liability to the recipient, for any liability + that these contractual assumptions directly impose on those licensors and + authors. + +All other non-permissive additional terms are considered *further restrictions* +within the meaning of section 10. If the Program as you received it, or any +part of it, contains a notice stating that it is governed by this License along +with a term that is a further restriction, you may remove that term. If a +license document contains a further restriction but permits relicensing or +conveying under this License, you may add to a covered work material governed +by the terms of that license document, provided that the further restriction +does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, +in the relevant source files, a statement of the additional terms that apply to +those files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a +separately written license, or stated as exceptions; the above requirements +apply either way. + +### 8. Termination. + +You may not propagate or modify a covered work except as expressly provided +under this License. Any attempt otherwise to propagate or modify it is void, +and will automatically terminate your rights under this License (including any +patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a +particular copyright holder is reinstated + + - a) provisionally, unless and until the copyright holder explicitly and + finally terminates your license, and + - b) permanently, if the copyright holder fails to notify you of the + violation by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated +permanently if the copyright holder notifies you of the violation by some +reasonable means, this is the first time you have received notice of violation +of this License (for any work) from that copyright holder, and you cure the +violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses +of parties who have received copies or rights from you under this License. If +your rights have been terminated and not permanently reinstated, you do not +qualify to receive new licenses for the same material under section 10. + +### 9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run a copy +of the Program. Ancillary propagation of a covered work occurring solely as a +consequence of using peer-to-peer transmission to receive a copy likewise does +not require acceptance. However, nothing other than this License grants you +permission to propagate or modify any covered work. These actions infringe +copyright if you do not accept this License. Therefore, by modifying or +propagating a covered work, you indicate your acceptance of this License to do +so. + +### 10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically receives a +license from the original licensors, to run, modify and propagate that work, +subject to this License. You are not responsible for enforcing compliance by +third parties with this License. + +An *entity transaction* is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered work +results from an entity transaction, each party to that transaction who receives +a copy of the work also receives whatever licenses to the work the party's +predecessor in interest had or could give under the previous paragraph, plus a +right to possession of the Corresponding Source of the work from the +predecessor in interest, if the predecessor has it or can get it with +reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights +granted or affirmed under this License. For example, you may not impose a +license fee, royalty, or other charge for exercise of rights granted under this +License, and you may not initiate litigation (including a cross-claim or +counterclaim in a lawsuit) alleging that any patent claim is infringed by +making, using, selling, offering for sale, or importing the Program or any +portion of it. + +### 11. Patents. + +A *contributor* is a copyright holder who authorizes use under this License of +the Program or a work on which the Program is based. The work thus licensed is +called the contributor's *contributor version*. + +A contributor's *essential patent claims* are all patent claims owned or +controlled by the contributor, whether already acquired or hereafter acquired, +that would be infringed by some manner, permitted by this License, of making, +using, or selling its contributor version, but do not include claims that would +be infringed only as a consequence of further modification of the contributor +version. For purposes of this definition, *control* includes the right to grant +patent sublicenses in a manner consistent with the requirements of this +License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent +license under the contributor's essential patent claims, to make, use, sell, +offer for sale, import and otherwise run, modify and propagate the contents of +its contributor version. + +In the following three paragraphs, a *patent license* is any express agreement +or commitment, however denominated, not to enforce a patent (such as an express +permission to practice a patent or covenant not to sue for patent +infringement). To *grant* such a patent license to a party means to make such +an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the +Corresponding Source of the work is not available for anyone to copy, free of +charge and under the terms of this License, through a publicly available +network server or other readily accessible means, then you must either + + 1. cause the Corresponding Source to be so available, or + 2. arrange to deprive yourself of the benefit of the patent license for this + particular work, or + 3. arrange, in a manner consistent with the requirements of this License, to + extend the patent license to downstream recipients. + +*Knowingly relying* means you have actual knowledge that, but for the patent +license, your conveying the covered work in a country, or your recipient's use +of the covered work in a country, would infringe one or more identifiable +patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you +convey, or propagate by procuring conveyance of, a covered work, and grant a +patent license to some of the parties receiving the covered work authorizing +them to use, propagate, modify or convey a specific copy of the covered work, +then the patent license you grant is automatically extended to all recipients +of the covered work and works based on it. + +A patent license is *discriminatory* if it does not include within the scope of +its coverage, prohibits the exercise of, or is conditioned on the non-exercise +of one or more of the rights that are specifically granted under this License. +You may not convey a covered work if you are a party to an arrangement with a +third party that is in the business of distributing software, under which you +make payment to the third party based on the extent of your activity of +conveying the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory patent +license + + - a) in connection with copies of the covered work conveyed by you (or copies + made from those copies), or + - b) primarily for and in connection with specific products or compilations + that contain the covered work, unless you entered into that arrangement, or + that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied +license or other defenses to infringement that may otherwise be available to +you under applicable patent law. + +### 12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not excuse +you from the conditions of this License. If you cannot convey a covered work so +as to satisfy simultaneously your obligations under this License and any other +pertinent obligations, then as a consequence you may not convey it at all. For +example, if you agree to terms that obligate you to collect a royalty for +further conveying from those to whom you convey the Program, the only way you +could satisfy both those terms and this License would be to refrain entirely +from conveying the Program. + +### 13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have permission to +link or combine any covered work with a work licensed under version 3 of the +GNU Affero General Public License into a single combined work, and to convey +the resulting work. The terms of this License will continue to apply to the +part which is the covered work, but the special requirements of the GNU Affero +General Public License, section 13, concerning interaction through a network +will apply to the combination as such. + +### 14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of the GNU +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program specifies +that a certain numbered version of the GNU General Public License *or any later +version* applies to it, you have the option of following the terms and +conditions either of that numbered version or of any later version published by +the Free Software Foundation. If the Program does not specify a version number +of the GNU General Public License, you may choose any version ever published by +the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the +GNU General Public License can be used, that proxy's public statement of +acceptance of a version permanently authorizes you to choose that version for +the Program. + +Later license versions may give you additional or different permissions. +However, no additional obligations are imposed on any author or copyright +holder as a result of your choosing to follow a later version. + +### 15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE +LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER +PARTIES PROVIDE THE PROGRAM *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER +EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE +QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR +CORRECTION. + +### 16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY +COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS +PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE +THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED +INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE +PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY +HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +### 17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided above cannot +be given local legal effect according to their terms, reviewing courts shall +apply local law that most closely approximates an absolute waiver of all civil +liability in connection with the Program, unless a warranty or assumption of +liability accompanies a copy of the Program in return for a fee. + +## END OF TERMS AND CONDITIONS ### + +### How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively state the exclusion +of warranty; and each file should have at least the *copyright* line and a +pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If the program does terminal interaction, make it output a short notice like +this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w` and `show c` should show the appropriate +parts of the General Public License. Of course, your program's commands might +be different; for a GUI interface, you would use an *about box*. + +You should also get your employer (if you work as a programmer) or school, if +any, to sign a *copyright disclaimer* for the program, if necessary. For more +information on this, and how to apply and follow the GNU GPL, see +[http://www.gnu.org/licenses/](http://www.gnu.org/licenses/). + +The GNU General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may consider +it more useful to permit linking proprietary applications with the library. If +this is what you want to do, use the GNU Lesser General Public License instead +of this License. But first, please read +[http://www.gnu.org/philosophy/why-not-lgpl.html](http://www.gnu.org/philosophy/why-not-lgpl.html). diff --git a/lib/playfair/hand_garble.c b/lib/playfair/hand_garble.c new file mode 100755 index 0000000..8e8361b --- /dev/null +++ b/lib/playfair/hand_garble.c @@ -0,0 +1,443 @@ +#include +#include + +#define printf(...) (void)0; + +uint8_t rol8(uint8_t x, int y); +uint32_t rol8x(uint8_t x, int y); + +uint32_t weird_ror8(uint8_t input, int count) +{ + if (count == 0) + return 0; + return ((input >> count) & 0xff) | (input & 0xff) << (8-count); + +} + +uint32_t weird_rol8(uint8_t input, int count) +{ + if (count == 0) + return 0; + return ((input << count) & 0xff) | (input & 0xff) >> (8-count); +} + +uint32_t weird_rol32(uint8_t input, int count) +{ + if (count == 0) + return 0; + return (input << count) ^ (input >> (8 - count)); +} + +// I do not know why it is doing all of this, and there is still a possibility for a gremlin or two to be lurking in the background +// I DO know it is not trivial. It could be purely random garbage, of course. +void garble(unsigned char* buffer0, unsigned char* buffer1, unsigned char* buffer2, unsigned char* buffer3, unsigned char* buffer4) +{ + unsigned int tmp, tmp2, tmp3; + unsigned int A, B, C, D, E, M, J, G, F, H, K, R, S, T, U, V, W, X, Y, Z; + // buffer1[64] = A + // (buffer1[99] / 3) = B + // 0ABAAABB + // Then we AND with a complex expression, and add 20 just for good measure + buffer2[12] = 0x14 + (((buffer1[64] & 92) | ((buffer1[99] / 3) & 35)) & buffer4[rol8x(buffer4[(buffer1[206] % 21)],4) % 21]); + printf("buffer2[12] = %02x\n", buffer2[12]); + + // This is a bit simpler: 2*B*B/25 + buffer1[4] = (buffer1[99] / 5) * (buffer1[99] / 5) * 2; + printf("buffer1[4] = %02x\n", buffer1[4]); + + // Simpler still! + buffer2[34] = 0xb8; + printf("buffer2[34] = %02x\n", buffer2[34]); + + // ... + buffer1[153] ^= (buffer2[buffer1[203] % 35] * buffer2[buffer1[203] % 35] * buffer1[190]); + printf("buffer1[153] = %02x\n", buffer1[153]); + + // This one looks simple, but wow was it not :( + buffer0[3] -= (((buffer4[buffer1[205] % 21]>>1) & 80) | 0xe6440); + printf("buffer0[3] = %02x\n", buffer0[3]); + + // This is always 0x93 + buffer0[16] = 0x93; + printf("buffer0[16] = %02x\n", buffer0[16]); + + // This is always 0x62 + buffer0[13] = 0x62; + printf("buffer0[13] = %02x\n", buffer0[13]); + + buffer1[33] -= (buffer4[buffer1[36] % 21] & 0xf6); + printf("buffer1[33] = %02x\n", buffer1[33]); + + // This is always 7 + tmp2 = buffer2[buffer1[67] % 35]; + buffer2[12] = 0x07; + printf("buffer2[12] = %02x\n", buffer2[12]); + + // This is pretty easy! + tmp = buffer0[buffer1[181] % 20]; + buffer1[2] -= 3136; + printf("buffer1[2] = %02x\n", buffer1[2]); + + buffer0[19] = buffer4[buffer1[58] % 21]; + printf("buffer0[19] = %02x\n", buffer0[19]); + + buffer3[0] = 92 - buffer2[buffer1[32] % 35]; + printf("buffer3[0] = %02x\n", buffer3[0]); + + buffer3[4] = buffer2[buffer1[15] % 35] + 0x9e; + printf("buffer3[4] = %02x\n", buffer3[4]); + + buffer1[34] += (buffer4[((buffer2[buffer1[15] % 35] + 0x9e) & 0xff) % 21] / 5); + printf("buffer1[34] = %02x\n", buffer1[34]); + + buffer0[19] += 0xfffffee6 - ((buffer0[buffer3[4] % 20]>>1) & 102); + printf("buffer0[19] = %02x\n", buffer0[19]); + + // This LOOKS like it should be a rol8x, but it just doesnt work out because if the shift amount is 0, then the output is 0 too :( + // FIXME: Switch to weird_ror8 + buffer1[15] = (3*(((buffer1[72] >> (buffer4[buffer1[190] % 21] & 7)) ^ (buffer1[72] << ((7 - (buffer4[buffer1[190] % 21]-1)&7)))) - (3*buffer4[buffer1[126] % 21]))) ^ buffer1[15]; + printf("buffer1[15] = %02x\n", buffer1[15]); + + buffer0[15] ^= buffer2[buffer1[181] % 35] * buffer2[buffer1[181] % 35] * buffer2[buffer1[181] % 35]; + printf("buffer0[15] = %02x\n", buffer0[15]); + + buffer2[4] ^= buffer1[202]/3; + printf("buffer2[4] = %02x\n", buffer2[4]); + + // This could probably be quite a bit simpler. + A = 92 - buffer0[buffer3[0] % 20]; + E = (A & 0xc6) | (~buffer1[105] & 0xc6) | (A & (~buffer1[105])); + buffer2[1] += (E*E*E); + printf("buffer2[1] = %02x\n", buffer2[1]); + + buffer0[19] ^= ((224 | (buffer4[buffer1[92] % 21] & 27)) * buffer2[buffer1[41] % 35]) / 3; + printf("buffer0[19] = %02x\n", buffer0[19]); + + buffer1[140] += weird_ror8(92, buffer1[5] & 7); + printf("buffer1[140] = %02x\n", buffer1[140]); + + // Is this as simple as it could be? + buffer2[12] += ((((~buffer1[4]) ^ buffer2[buffer1[12] % 35]) | buffer1[182]) & 192) | (((~buffer1[4]) ^ buffer2[buffer1[12] % 35]) & buffer1[182]); + printf("buffer2[12] = %02x\n", buffer2[12]); + + buffer1[36] += 125; + printf("buffer1[36] = %02x\n", buffer1[36]); + + buffer1[124] = rol8x((((74 & buffer1[138]) | ((74 | buffer1[138]) & buffer0[15])) & buffer0[buffer1[43] % 20]) | (((74 & buffer1[138]) | ((74 | buffer1[138]) & buffer0[15]) | buffer0[buffer1[43] % 20]) & 95), 4); + printf("buffer1[124] = %02x\n", buffer1[124]); + + buffer3[8] = ((((buffer0[buffer3[4] % 20] & 95)) & ((buffer4[buffer1[68] % 21] & 46) << 1)) | 16) ^ 92; + printf("buffer3[8] = %02x\n", buffer3[8]); + + A = buffer1[177] + buffer4[buffer1[79] % 21]; + D = (((A >> 1) | ((3 * buffer1[148]) / 5)) & buffer2[1]) | ((A >> 1) & ((3 * buffer1[148])/5)); + buffer3[12] = ((-34 - D)); + printf("buffer3[12] = %02x\n", buffer3[12]); + + A = 8 - ((buffer2[22] & 7)); // FIXME: buffer2[22] = 74, so A is always 6 and B^C is just ror8(buffer1[33], 6) + B = (buffer1[33] >> (A & 7)); + C = buffer1[33] << (buffer2[22] & 7); + buffer2[16] += ((buffer2[buffer3[0] % 35] & 159) | buffer0[buffer3[4] % 20] | 8) - ((B^C) | 128); + printf("buffer2[16] = %02x\n", buffer2[16]); + + // This one was very easy so I just skipped ahead and did it + buffer0[14] ^= buffer2[buffer3[12] % 35]; + printf("buffer0[14] = %02x\n", buffer0[14]); + + // Monster goes here + A = weird_rol8(buffer4[buffer0[buffer1[201] % 20] % 21], ((buffer2[buffer1[112] % 35] << 1) & 7)); + D = (buffer0[buffer1[208] % 20] & 131) | (buffer0[buffer1[164] % 20] & 124); + buffer1[19] += (A & (D/5)) | ((A | (D/5)) & 37); + printf("buffer1[19] = %02x\n", buffer1[19]); + + buffer2[8] = weird_ror8(140, ((buffer4[buffer1[45] % 21] + 92) * (buffer4[buffer1[45] % 21] + 92)) & 7); + printf("buffer2[8] = %02x\n", buffer2[8]); + + buffer1[190] = 56; + printf("buffer1[190] = %02x\n", buffer1[190]); + + buffer2[8] ^= buffer3[0]; + printf("buffer2[8] = %02x\n", buffer2[8]); + + buffer1[53] = ~((buffer0[buffer1[83] % 20] | 204)/5); + printf("buffer1[53] = %02x\n", buffer1[53]); + + buffer0[13] += buffer0[buffer1[41] % 20]; + printf("buffer0[13] = %02x\n", buffer0[13]); + + buffer0[10] = ((buffer2[buffer3[0] % 35] & buffer1[2]) | ((buffer2[buffer3[0] % 35] | buffer1[2]) & buffer3[12])) / 15; + printf("buffer0[10] = %02x\n", buffer0[10]); + + A = (((56 | (buffer4[buffer1[2] % 21] & 68)) | buffer2[buffer3[8] % 35]) & 42) | (((buffer4[buffer1[2] % 21] & 68) | 56) & buffer2[buffer3[8] % 35]); + buffer3[16] = (A*A) + 110; + printf("buffer3[16] = %02x\n", buffer3[16]); + + buffer3[20] = 202 - buffer3[16]; + printf("buffer3[20] = %02x\n", buffer3[20]); + + buffer3[24] = buffer1[151]; + printf("buffer3[24] = %02x\n", buffer3[24]); + + buffer2[13] ^= buffer4[buffer3[0] % 21]; + printf("buffer2[13] = %02x\n", buffer2[13]); + + B = ((buffer2[buffer1[179] % 35] - 38) & 177) | (buffer3[12] & 177); + C = ((buffer2[buffer1[179] % 35] - 38)) & buffer3[12]; + buffer3[28] = 30 + ((B | C) * (B | C)); + printf("buffer3[28] = %02x\n", buffer3[28]); + + buffer3[32] = buffer3[28] + 62; + printf("buffer3[32] = %02x\n", buffer3[32]); + + // eek + A = ((buffer3[20] + (buffer3[0] & 74)) | ~buffer4[buffer3[0] % 21]) & 121; + B = ((buffer3[20] + (buffer3[0] & 74)) & ~buffer4[buffer3[0] % 21]); + tmp3 = (A|B); + C = ((((A|B) ^ 0xffffffa6) | buffer3[0]) & 4) | (((A|B) ^ 0xffffffa6) & buffer3[0]); + buffer1[47] = (buffer2[buffer1[89] % 35] + C) ^ buffer1[47]; + printf("buffer1[47] = %02x\n", buffer1[47]); + + buffer3[36] = ((rol8((tmp & 179) + 68, 2) & buffer0[3]) | (tmp2 & ~buffer0[3])) - 15; + printf("buffer3[36] = %02x\n", buffer3[36]); + + buffer1[123] ^= 221; + printf("buffer1[123] = %02x\n", buffer1[123]); + + A = ((buffer4[buffer3[0] % 21]) / 3) - buffer2[buffer3[4] % 35]; + C = (((buffer3[0] & 163) + 92) & 246) | (buffer3[0] & 92); + E = ((C | buffer3[24]) & 54) | (C & buffer3[24]); + buffer3[40] = A - E; + printf("buffer3[40] = %02x\n", buffer3[40]); + + buffer3[44] = tmp3 ^ 81 ^ (((buffer3[0] >> 1) & 101) + 26); + printf("buffer3[44] = %02x\n", buffer3[44]); + + buffer3[48] = buffer2[buffer3[4] % 35] & 27; + printf("buffer3[48] = %02x\n", buffer3[48]); + buffer3[52] = 27; + printf("buffer3[52] = %02x\n", buffer3[52]); + buffer3[56] = 199; + printf("buffer3[56] = %02x\n", buffer3[56]); + + // caffeine + buffer3[64] = buffer3[4] + (((((((buffer3[40] | buffer3[24]) & 177) | (buffer3[40] & buffer3[24])) & ((((buffer4[buffer3[0] % 20] & 177) | 176)) | ((buffer4[buffer3[0] % 21]) & ~3))) | ((((buffer3[40] & buffer3[24]) | ((buffer3[40] | buffer3[24]) & 177)) & 199) | ((((buffer4[buffer3[0] % 21] & 1) + 176) | (buffer4[buffer3[0] % 21] & ~3)) & buffer3[56]))) & (~buffer3[52])) | buffer3[48]); + printf("buffer3[64] = %02x (want E7)\n", buffer3[64]); + + buffer2[33] ^= buffer1[26]; + printf("buffer2[33] = %02x\n", buffer2[33]); + + buffer1[106] ^= buffer3[20] ^ 133; + printf("buffer1[106] = %02x\n", buffer1[106]); + + buffer2[30] = ((buffer3[64] / 3) - (275 | (buffer3[0] & 247))) ^ buffer0[buffer1[122] % 20]; + printf("buffer2[130] = %02x\n", buffer2[30]); + + buffer1[22] = (buffer2[buffer1[90] % 35] & 95) | 68; + printf("buffer1[22] = %02x\n", buffer1[22]); + + A = (buffer4[buffer3[36] % 21] & 184) | (buffer2[buffer3[44] % 35] & ~184); + buffer2[18] += ((A*A*A) >> 1); + printf("buffer2[18] = %02x\n", buffer2[18]); + + buffer2[5] -= buffer4[buffer1[92] % 21]; + printf("buffer2[5] = %02x\n", buffer2[5]); + + A = (((buffer1[41] & ~24)|(buffer2[buffer1[183] % 35] & 24)) & (buffer3[16] + 53)) | (buffer3[20] & buffer2[buffer3[20] % 35]); + B = (buffer1[17] & (~buffer3[44])) | (buffer0[buffer1[59] % 20] & buffer3[44]); + buffer2[18] ^= (A*B); + printf("buffer2[18] = %02x\n", buffer2[18]); + + + A = weird_ror8(buffer1[11], buffer2[buffer1[28] % 35] & 7) & 7; + B = (((buffer0[buffer1[93] % 20] & ~buffer0[14]) | (buffer0[14] & 150)) & ~28) | (buffer1[7] & 28); + buffer2[22] = (((((B | weird_rol8(buffer2[buffer3[0] % 35], A)) & buffer2[33]) | (B & weird_rol8(buffer2[buffer3[0] % 35], A))) + 74) & 0xff); + printf("buffer2[22] = %02x\n", buffer2[22]); + + A = buffer4[(buffer0[buffer1[39] % 20] ^ 217) % 21]; // X5 + buffer0[15] -= ((((buffer3[20] | buffer3[0]) & 214) | (buffer3[20] & buffer3[0])) & A) | ((((buffer3[20] | buffer3[0]) & 214) | (buffer3[20] & buffer3[0]) | A) & buffer3[32]); + printf("buffer0[15] = %02x\n", buffer0[15]); + + // We need to save T here, and boy is it complicated to calculate! + B = (((buffer2[buffer1[57] % 35] & buffer0[buffer3[64] % 20]) | ((buffer0[buffer3[64] % 20] | buffer2[buffer1[57] % 35]) & 95) | (buffer3[64] & 45) | 82) & 32); + C = ((buffer2[buffer1[57] % 35] & buffer0[buffer3[64] % 20]) | ((buffer2[buffer1[57] % 35] | buffer0[buffer3[64] % 20]) & 95)) & ((buffer3[64] & 45) | 82); + D = ((((buffer3[0]/3) - (buffer3[64]|buffer1[22]))) ^ (buffer3[28] + 62) ^ ((B|C))); + T = buffer0[(D & 0xff) % 20]; + + buffer3[68] = (buffer0[buffer1[99] % 20] * buffer0[buffer1[99] % 20] * buffer0[buffer1[99] % 20] * buffer0[buffer1[99] % 20]) | buffer2[buffer3[64] % 35]; + printf("buffer3[68] = %02x\n", buffer3[68]); + + U = buffer0[buffer1[50] % 20]; // this is also v100 + W = buffer2[buffer1[138] % 35]; + X = buffer4[buffer1[39] % 21]; + Y = buffer0[buffer1[4] % 20]; // this is also v120 + Z = buffer4[buffer1[202] % 21]; // also v124 + V = buffer0[buffer1[151] % 20]; + S = buffer2[buffer1[14] % 35]; + R = buffer0[buffer1[145] % 20]; + + A = (buffer2[buffer3[68] % 35] & buffer0[buffer1[209] % 20]) | ((buffer2[buffer3[68] % 35] | buffer0[buffer1[209] % 20]) & 24); + B = weird_rol8(buffer4[buffer1[127] % 21], buffer2[buffer3[68] % 35] & 7); + C = (A & buffer0[10]) | (B & ~buffer0[10]); + D = 7 ^ (buffer4[buffer2[buffer3[36] % 35] % 21] << 1); + buffer3[72] = (C & 71) | (D & ~71); + printf("buffer3[72] = %02x\n", buffer3[72]); + + buffer2[2] += (((buffer0[buffer3[20] % 20] << 1) & 159) | (buffer4[buffer1[190] % 21] & ~159)) & ((((buffer4[buffer3[64] % 21] & 110) | (buffer0[buffer1[25] % 20] & ~110)) & ~150) | (buffer1[25] & 150)); + printf("buffer2[2] = %02x\n", buffer2[2]); + + buffer2[14] -= ((buffer2[buffer3[20] % 35] & (buffer3[72] ^ buffer2[buffer1[100] % 35])) & ~34) | (buffer1[97] & 34); + printf("buffer2[14] = %02x\n", buffer2[14]); + + buffer0[17] = 115; + printf("buffer0[17] = %02x\n", buffer0[17]); + + buffer1[23] ^= ((((((buffer4[buffer1[17] % 21] | buffer0[buffer3[20] % 20]) & buffer3[72]) | (buffer4[buffer1[17] % 21] & buffer0[buffer3[20] % 20])) & (buffer1[50]/3)) | + ((((buffer4[buffer1[17] % 21] | buffer0[buffer3[20] % 20]) & buffer3[72]) | (buffer4[buffer1[17] % 21] & buffer0[buffer3[20] % 20]) | (buffer1[50] / 3)) & 246)) << 1); + printf("buffer1[23] = %02x\n", buffer1[23]); + + buffer0[13] = ((((((buffer0[buffer3[40] % 20] | buffer1[10]) & 82) | (buffer0[buffer3[40] % 20] & buffer1[10])) & 209) | + ((buffer0[buffer1[39] % 20] << 1) & 46)) >> 1); + printf("buffer0[13] = %02x\n", buffer0[13]); + + buffer2[33] -= buffer1[113] & 9; + printf("buffer2[33] = %02x\n", buffer2[33]); + + buffer2[28] -= ((((2 | (buffer1[110] & 222)) >> 1) & ~223) | (buffer3[20] & 223)); + printf("buffer2[28] = %02x\n", buffer2[28]); + + J = weird_rol8((V | Z), (U & 7)); // OK + A = (buffer2[16] & T) | (W & (~buffer2[16])); + B = (buffer1[33] & 17) | (X & ~17); + E = ((Y | ((A+B) / 5)) & 147) | + (Y & ((A+B) / 5)); // OK + M = (buffer3[40] & buffer4[((buffer3[8] + J + E) & 0xff) % 21]) | + ((buffer3[40] | buffer4[((buffer3[8] + J + E) & 0xff) % 21]) & buffer2[23]); + + buffer0[15] = (((buffer4[buffer3[20] % 21] - 48) & (~buffer1[184])) | ((buffer4[buffer3[20] % 21] - 48) & 189) | (189 & ~buffer1[184])) & (M*M*M); + printf("buffer0[15] = %02x\n", buffer0[15]); + + buffer2[22] += buffer1[183]; + printf("buffer2[22] = %02x\n", buffer2[22]); + + buffer3[76] = (3 * buffer4[buffer1[1] % 21]) ^ buffer3[0]; + printf("buffer3[76] = %02x\n", buffer3[76]); + + A = buffer2[((buffer3[8] + (J + E)) & 0xff) % 35]; + F = (((buffer4[buffer1[178] % 21] & A) | ((buffer4[buffer1[178] % 21] | A) & 209)) * buffer0[buffer1[13] % 20]) * (buffer4[buffer1[26] % 21] >> 1); + G = (F + 0x733ffff9) * 198 - (((F + 0x733ffff9) * 396 + 212) & 212) + 85; + buffer3[80] = buffer3[36] + (G ^ 148) + ((G ^ 107) << 1) - 127; + printf("buffer3[80] = %02x\n", buffer3[80]); + + buffer3[84] = ((buffer2[buffer3[64] % 35]) & 245) | (buffer2[buffer3[20] % 35] & 10); + printf("buffer3[84] = %02x\n", buffer3[84]); + + A = buffer0[buffer3[68] % 20] | 81; + buffer2[18] -= ((A*A*A) & ~buffer0[15]) | ((buffer3[80] / 15) & buffer0[15]); + printf("buffer2[18] = %02x\n", buffer2[18]); + + buffer3[88] = buffer3[8] + J + E - buffer0[buffer1[160] % 20] + (buffer4[buffer0[((buffer3[8] + J + E) & 255) % 20] % 21] / 3); + printf("buffer3[88] = %02x\n", buffer3[88]); + + B = ((R ^ buffer3[72]) & ~198) | ((S * S) & 198); + F = (buffer4[buffer1[69] % 21] & buffer1[172]) | ((buffer4[buffer1[69] % 21] | buffer1[172] ) & ((buffer3[12] - B) + 77)); + buffer0[16] = 147 - ((buffer3[72] & ((F & 251) | 1)) | (((F & 250) | buffer3[72]) & 198)); + printf("buffer0[16] = %02x\n", buffer0[16]); + + C = (buffer4[buffer1[168] % 21] & buffer0[buffer1[29] % 20] & 7) | ((buffer4[buffer1[168] % 21] | buffer0[buffer1[29] % 20]) & 6); + F = (buffer4[buffer1[155] % 21] & buffer1[105]) | ((buffer4[buffer1[155] % 21] | buffer1[105]) & 141); + buffer0[3] -= buffer4[weird_rol32(F, C) % 21]; + printf("buffer0[3] = %02x\n", buffer0[3]); + + buffer1[5] = weird_ror8(buffer0[12], ((buffer0[buffer1[61] % 20] / 5) & 7)) ^ (((~buffer2[buffer3[84] % 35]) & 0xffffffff) / 5); + printf("buffer1[5] = %02x\n", buffer1[5]); + + buffer1[198] += buffer1[3]; + printf("buffer1[198] = %02x\n", buffer1[198]); + + A = (162 | buffer2[buffer3[64] % 35]); + buffer1[164] += ((A*A)/5); + printf("buffer1[164] = %02x\n", buffer1[164]); + + G = weird_ror8(139, (buffer3[80] & 7)); + C = ((buffer4[buffer3[64] % 21] * buffer4[buffer3[64] % 21] * buffer4[buffer3[64] % 21]) & 95) | (buffer0[buffer3[40] % 20] & ~95); + buffer3[92] = (G & 12) | (buffer0[buffer3[20] % 20] & 12) | (G & buffer0[buffer3[20] % 20]) | C; + printf("buffer3[92] = %02x\n", buffer3[92]); + + buffer2[12] += ((buffer1[103] & 32) | (buffer3[92] & ((buffer1[103] | 60))) | 16)/3; + printf("buffer2[12] = %02x\n", buffer2[12]); + + buffer3[96] = buffer1[143]; + printf("buffer3[96] = %02x\n", buffer3[96]); + + buffer3[100] = 27; + printf("buffer3[100] = %02x\n", buffer3[100]); + + buffer3[104] = (((buffer3[40] & ~buffer2[8]) | (buffer1[35] & buffer2[8])) & buffer3[64]) ^ 119; + printf("buffer3[104] = %02x\n", buffer3[104]); + + buffer3[108] = 238 & ((((buffer3[40] & ~buffer2[8]) | (buffer1[35] & buffer2[8])) & buffer3[64]) << 1); + printf("buffer3[108] = %02x\n", buffer3[108]); + + buffer3[112] = (~buffer3[64] & (buffer3[84] / 3)) ^ 49; + printf("buffer3[112] = %02x\n", buffer3[112]); + + buffer3[116] = 98 & ((~buffer3[64] & (buffer3[84] / 3)) << 1); + printf("buffer3[116] = %02x\n", buffer3[116]); + + // finale + A = (buffer1[35] & buffer2[8]) | (buffer3[40] & ~buffer2[8]); + B = (A & buffer3[64]) | (((buffer3[84] / 3) & ~buffer3[64])); + buffer1[143] = buffer3[96] - ((B & (86 + ((buffer1[172] & 64) >> 1))) | (((((buffer1[172] & 65) >> 1) ^ 86) | ((~buffer3[64] & (buffer3[84] / 3)) | (((buffer3[40] & ~buffer2[8]) | (buffer1[35] & buffer2[8])) & buffer3[64]))) & buffer3[100])); + printf("buffer1[143] = %02x\n", buffer1[143]); + + buffer2[29] = 162; + printf("buffer2[29] = %02x\n", buffer2[29]); + + A = ((((buffer4[buffer3[88] % 21]) & 160) | (buffer0[buffer1[125] % 20] & 95)) >> 1); + B = buffer2[buffer1[149] % 35] ^ (buffer1[43] * buffer1[43]); + buffer0[15] += (B&A) | ((A|B) & 115); + printf("buffer0[15] = %02x\n", buffer0[15]); + + buffer3[120] = buffer3[64] - buffer0[buffer3[40] % 20]; + printf("buffer3[120] = %02x\n", buffer3[120]); + + buffer1[95] = buffer4[buffer3[20] % 21]; + printf("buffer1[95] = %02x\n", buffer1[95]); + + A = weird_ror8(buffer2[buffer3[80] % 35], (buffer2[buffer1[17] % 35] * buffer2[buffer1[17] % 35] * buffer2[buffer1[17] % 35]) & 7); + buffer0[7] -= (A*A); + printf("buffer0[7] = %02x\n", buffer0[7]); + + buffer2[8] = buffer2[8] - buffer1[184] + (buffer4[buffer1[202] % 21] * buffer4[buffer1[202] % 21] * buffer4[buffer1[202] % 21]); + printf("buffer2[8] = %02x\n", buffer2[8]); + + buffer0[16] = (buffer2[buffer1[102] % 35] << 1) & 132; + printf("buffer0[16] = %02x\n", buffer0[16]); + + buffer3[124] = (buffer4[buffer3[40] % 21] >> 1) ^ buffer3[68]; + printf("buffer3[124] = %02x\n", buffer3[124]); + + buffer0[7] -= (buffer0[buffer1[191] % 20] - (((buffer4[buffer1[80] % 21] << 1) & ~177) | (buffer4[buffer4[buffer3[88] % 21] % 21] & 177))); + printf("buffer0[7] = %02x\n", buffer0[7]); + + buffer0[6] = buffer0[buffer1[119] % 20]; + printf("buffer0[6] = %02x\n", buffer0[6]); + + A = (buffer4[buffer1[190] % 21] & ~209) | (buffer1[118] & 209); + B = buffer0[buffer3[120] % 20] * buffer0[buffer3[120] % 20]; + buffer0[12] = (buffer0[buffer3[84] % 20] ^ (buffer2[buffer1[71] % 35] + buffer2[buffer1[15] % 35])) & ((A & B) | ((A | B) & 27)); + printf("buffer0[12] = %02x\n", buffer0[12]); + + B = (buffer1[32] & buffer2[buffer3[88] % 35]) | ((buffer1[32] | buffer2[buffer3[88] % 35]) & 23); + D = (((buffer4[buffer1[57] % 21] * 231) & 169) | (B & 86)); + F = (((buffer0[buffer1[82] % 20] & ~29) | (buffer4[buffer3[124] % 21] & 29)) & 190) | (buffer4[(D/5) % 21] & ~190); + H = buffer0[buffer3[40] % 20] * buffer0[buffer3[40] % 20] * buffer0[buffer3[40] % 20]; + K = (H & buffer1[82]) | (H & 92) | (buffer1[82] & 92); + buffer3[128] = ((F & K) | ((F | K) & 192)) ^ (D/5); + printf("buffer3[128] = %02x\n", buffer3[128]); + + buffer2[25] ^= ((buffer0[buffer3[120] % 20] << 1) * buffer1[5]) - (weird_rol8(buffer3[76], (buffer4[buffer3[124] % 21] & 7)) & (buffer3[20] + 110)); + printf("buffer2[25] = %02x\n", buffer2[25]); + //exit(0); + +} diff --git a/lib/playfair/modified_md5.c b/lib/playfair/modified_md5.c new file mode 100755 index 0000000..3758a33 --- /dev/null +++ b/lib/playfair/modified_md5.c @@ -0,0 +1,119 @@ +#include +#include +#include +#include +#include +#include +#define printf(...) (void)0; + +int shift[] = {7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, + 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, + 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, + 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21}; + +uint32_t F(uint32_t B, uint32_t C, uint32_t D) +{ + return (B & C) | (~B & D); +} + +uint32_t G(uint32_t B, uint32_t C, uint32_t D) +{ + return (B & D) | (C & ~D); +} + +uint32_t H(uint32_t B, uint32_t C, uint32_t D) +{ + return B ^ C ^ D; +} + +uint32_t I(uint32_t B, uint32_t C, uint32_t D) +{ + return C ^ (B | ~D); +} + + +uint32_t rol(uint32_t input, int count) +{ + return ((input << count) & 0xffffffff) | (input & 0xffffffff) >> (32-count); +} + +void swap(uint32_t* a, uint32_t* b) +{ + printf("%08x <-> %08x\n", *a, *b); + uint32_t c = *a; + *a = *b; + *b = c; +} + +void modified_md5(unsigned char* originalblockIn, unsigned char* keyIn, unsigned char* keyOut) +{ + unsigned char blockIn[64]; + uint32_t* block_words = (uint32_t*)blockIn; + uint32_t* key_words = (uint32_t*)keyIn; + uint32_t* out_words = (uint32_t*)keyOut; + uint32_t A, B, C, D, Z, tmp; + int i; + + memcpy(blockIn, originalblockIn, 64); + + // Each cycle does something like this: + A = key_words[0]; + B = key_words[1]; + C = key_words[2]; + D = key_words[3]; + for (i = 0; i < 64; i++) + { + uint32_t input; + int j; + if (i < 16) + j = i; + else if (i < 32) + j = (5*i + 1) % 16; + else if (i < 48) + j = (3*i + 5) % 16; + else if (i < 64) + j = 7*i % 16; + + input = blockIn[4*j] << 24 | blockIn[4*j+1] << 16 | blockIn[4*j+2] << 8 | blockIn[4*j+3]; + printf("Key = %08x\n", A); + Z = A + input + (int)(long long)((1LL << 32) * fabs(sin(i + 1))); + if (i < 16) + Z = rol(Z + F(B,C,D), shift[i]); + else if (i < 32) + Z = rol(Z + G(B,C,D), shift[i]); + else if (i < 48) + Z = rol(Z + H(B,C,D), shift[i]); + else if (i < 64) + Z = rol(Z + I(B,C,D), shift[i]); + if (i == 63) + printf("Ror is %08x\n", Z); + printf("Output of round %d: %08X + %08X = %08X (shift %d, constant %08X)\n", i, Z, B, Z+B, shift[i], (int)(long long)((1LL << 32) * fabs(sin(i + 1)))); + Z = Z + B; + tmp = D; + D = C; + C = B; + B = Z; + A = tmp; + if (i == 31) + { + // swapsies + swap(&block_words[A & 15], &block_words[B & 15]); + swap(&block_words[C & 15], &block_words[D & 15]); + swap(&block_words[(A & (15<<4))>>4], &block_words[(B & (15<<4))>>4]); + swap(&block_words[(A & (15<<8))>>8], &block_words[(B & (15<<8))>>8]); + swap(&block_words[(A & (15<<12))>>12], &block_words[(B & (15<<12))>>12]); + } + } + printf("%08X %08X %08X %08X\n", A, B, C, D); + // Now we can actually compute the output + printf("Out:\n"); + printf("%08x + %08x = %08x\n", key_words[0], A, key_words[0] + A); + printf("%08x + %08x = %08x\n", key_words[1], B, key_words[1] + B); + printf("%08x + %08x = %08x\n", key_words[2], C, key_words[2] + C); + printf("%08x + %08x = %08x\n", key_words[3], D, key_words[3] + D); + out_words[0] = key_words[0] + A; + out_words[1] = key_words[1] + B; + out_words[2] = key_words[2] + C; + out_words[3] = key_words[3] + D; + +} diff --git a/lib/playfair/omg_hax.c b/lib/playfair/omg_hax.c new file mode 100755 index 0000000..96f79a9 --- /dev/null +++ b/lib/playfair/omg_hax.c @@ -0,0 +1,540 @@ +void modified_md5(unsigned char* originalblockIn, unsigned char* keyIn, unsigned char* keyOut); +void sap_hash(unsigned char* blockIn, unsigned char* keyOut); + +#include +#include +#include +#include +#include "omg_hax.h" + +#define printf(...) (void)0; + +void xor_blocks(unsigned char* a, unsigned char* b, unsigned char* out) +{ + for (int i = 0; i < 16; i++) + out[i] = a[i] ^ b[i]; +} + + +void z_xor(unsigned char* in, unsigned char* out, int blocks) +{ + for (int j = 0; j < blocks; j++) + for (int i = 0; i < 16; i++) + out[j*16+i] = in[j*16+i] ^ z_key[i]; +} + +void x_xor(unsigned char* in, unsigned char* out, int blocks) +{ + for (int j = 0; j < blocks; j++) + for (int i = 0; i < 16; i++) + out[j*16+i] = in[j*16+i] ^ x_key[i]; +} + + +void t_xor(unsigned char* in, unsigned char* out) +{ + for (int i = 0; i < 16; i++) + out[i] = in[i] ^ t_key[i]; +} + +unsigned char sap_iv[] = {0x2B,0x84,0xFB,0x79,0xDA,0x75,0xB9,0x04,0x6C,0x24,0x73,0xF7,0xD1,0xC4,0xAB,0x0E,0x2B,0x84,0xFB,0x79,0x75,0xB9,0x04,0x6C,0x24,0x73}; + +unsigned char sap_key_material[] = {0xA1, 0x1A, 0x4A, 0x83, + 0xF2, 0x7A, 0x75, 0xEE, + 0xA2, 0x1A, 0x7D, 0xB8, + 0x8D, 0x77, 0x92, 0xAB}; + +unsigned char index_mangle[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1B, 0x36, 0x6C}; + +unsigned char* table_index(int i) +{ + return &table_s1[((31*i) % 0x28) << 8]; +} + +unsigned char* message_table_index(int i) +{ + return &table_s2[(97*i % 144) << 8]; +} + +void print_block(char* msg, unsigned char* dword) +{ + printf("%s", msg); + for (int i = 0; i < 16; i++) + printf("%02X ", dword[i]); + printf("\n"); +} + +void permute_block_1(unsigned char* block) +{ + block[0] = table_s3[block[0]]; + block[4] = table_s3[0x400+block[4]]; + block[8] = table_s3[0x800+block[8]]; + block[12] = table_s3[0xc00+block[12]]; + + unsigned char tmp = block[13]; + block[13] = table_s3[0x100+block[9]]; + block[9] = table_s3[0xd00+block[5]]; + block[5] = table_s3[0x900+block[1]]; + block[1] = table_s3[0x500+tmp]; + + tmp = block[2]; + block[2] = table_s3[0xa00+block[10]]; + block[10] = table_s3[0x200+tmp]; + tmp = block[6]; + block[6] = table_s3[0xe00+block[14]]; + block[14] = table_s3[0x600+tmp]; + + tmp = block[3]; + block[3] = table_s3[0xf00+block[7]]; + block[7] = table_s3[0x300+block[11]]; + block[11] = table_s3[0x700+block[15]]; + block[15] = table_s3[0xb00+tmp]; + print_block("Permutation complete. Final value of block: ", block); // This looks right to me, at least for decrypt_kernel +} + +unsigned char* permute_table_2(unsigned int i) +{ + return &table_s4[((71 * i) % 144) << 8]; +} + +void permute_block_2(unsigned char* block, int round) +{ + // round is 0..8? + printf("Permuting via table2, round %d... (block[0] = %02X)\n", round, block[0]); + block[0] = permute_table_2(round*16+0)[block[0]]; + block[4] = permute_table_2(round*16+4)[block[4]]; + block[8] = permute_table_2(round*16+8)[block[8]]; + block[12] = permute_table_2(round*16+12)[block[12]]; + + unsigned char tmp = block[13]; + block[13] = permute_table_2(round*16+13)[block[9]]; + block[9] = permute_table_2(round*16+9)[block[5]]; + block[5] = permute_table_2(round*16+5)[block[1]]; + block[1] = permute_table_2(round*16+1)[tmp]; + + tmp = block[2]; + block[2] = permute_table_2(round*16+2)[block[10]]; + block[10] = permute_table_2(round*16+10)[tmp]; + tmp = block[6]; + block[6] = permute_table_2(round*16+6)[block[14]]; + block[14] = permute_table_2(round*16+14)[tmp]; + + tmp = block[3]; + block[3] = permute_table_2(round*16+3)[block[7]]; + block[7] = permute_table_2(round*16+7)[block[11]]; + block[11] = permute_table_2(round*16+11)[block[15]]; + block[15] = permute_table_2(round*16+15)[tmp]; + print_block("Permutation (2) complete. Final value of block: ", block); // This looks right to me, at least for decrypt_kernel +} + +// This COULD just be Rijndael key expansion, but with a different set of S-boxes +void generate_key_schedule(unsigned char* key_material, uint32_t key_schedule[11][4]) +{ + uint32_t key_data[4]; + int i; + for (i = 0; i < 11; i++) + { + key_schedule[i][0] = 0xdeadbeef; + key_schedule[i][1] = 0xdeadbeef; + key_schedule[i][2] = 0xdeadbeef; + key_schedule[i][3] = 0xdeadbeef; + } + unsigned char* buffer = (unsigned char*)key_data; + int ti = 0; + printf("Generating key schedule\n"); + // G + print_block("Raw key material: ", key_material); + t_xor(key_material, buffer); + print_block("G has produced: ", buffer); + for (int round = 0; round < 11; round++) + { + printf("Starting round %d\n", round); + // H + key_schedule[round][0] = key_data[0]; + printf("H has set chunk 1 of round %d %08X\n", round, key_schedule[round][0]); + printf("H complete\n"); + // I + unsigned char* table1 = table_index(ti); + unsigned char* table2 = table_index(ti+1); + unsigned char* table3 = table_index(ti+2); + unsigned char* table4 = table_index(ti+3); + ti += 4; + //buffer[0] = (buffer[0] - (4 & (buffer[0] << 1)) + 2) ^ 2 ^ index_mangle[round] ^ table1[buffer[0x0d]]; + printf("S-box: 0x%02x -> 0x%02x\n", buffer[0x0d], table1[buffer[0x0d]]); + printf("S-box: 0x%02x -> 0x%02x\n", buffer[0x0e], table2[buffer[0x0e]]); + printf("S-box: 0x%02x -> 0x%02x\n", buffer[0x0f], table3[buffer[0x0f]]); + printf("S-box: 0x%02x -> 0x%02x\n", buffer[0x0c], table4[buffer[0x0c]]); + buffer[0] ^= table1[buffer[0x0d]] ^ index_mangle[round]; + buffer[1] ^= table2[buffer[0x0e]]; + buffer[2] ^= table3[buffer[0x0f]]; + buffer[3] ^= table4[buffer[0x0c]]; + print_block("After I, buffer is now: ", buffer); + printf("I complete\n"); + // H + key_schedule[round][1] = key_data[1]; + printf("H has set chunk 2 to %08X\n", key_schedule[round][1]); + + printf("H complete\n"); + // J + key_data[1] ^= key_data[0]; + printf("J complete\n"); + print_block("Buffer is now ", buffer); + // H + key_schedule[round][2] = key_data[2]; + printf("H has set chunk3 to %08X\n", key_schedule[round][2]); + printf("H complete\n"); + + // J + key_data[2] ^= key_data[1]; + printf("J complete\n"); + // K and L + // Implement K and L to fill in other bits of the key schedule + key_schedule[round][3] = key_data[3]; + // J again + key_data[3] ^= key_data[2]; + printf("J complete\n"); + } + for (i = 0; i < 11; i++) + print_block("Schedule: ", (unsigned char*)key_schedule[i]); +} + +// This MIGHT just be AES, or some variant thereof. +void cycle(unsigned char* block, uint32_t key_schedule[11][4]) +{ + uint32_t ptr1 = 0; + uint32_t ptr2 = 0; + uint32_t ptr3 = 0; + uint32_t ptr4 = 0; + uint32_t ab; + unsigned char* buffer = (unsigned char*)&ab; + uint32_t* bWords = (uint32_t*)block; + bWords[0] ^= key_schedule[10][0]; + bWords[1] ^= key_schedule[10][1]; + bWords[2] ^= key_schedule[10][2]; + bWords[3] ^= key_schedule[10][3]; + // First, these are permuted + permute_block_1(block); + + for (int round = 0; round < 9; round++) + { + // E + // Note that table_s5 is a table of 4-byte words. Therefore we do not need to <<2 these indices + // TODO: Are these just T-tables? + unsigned char* key0 = (unsigned char*)&key_schedule[9-round][0]; + ptr1 = table_s5[block[3] ^ key0[3]]; + ptr2 = table_s6[block[2] ^ key0[2]]; + ptr3 = table_s8[block[0] ^ key0[0]]; + ptr4 = table_s7[block[1] ^ key0[1]]; + + // A B + ab = ptr1 ^ ptr2 ^ ptr3 ^ ptr4; + printf("ab: %08X %08X %08X %08X -> %08X\n", ptr1, ptr2, ptr3, ptr4, ab); + // C + ((uint32_t*)block)[0] = ab; + printf("f7 = %02X\n", block[7]); + unsigned char* key1 = (unsigned char*)&key_schedule[9-round][1]; + ptr2 = table_s5[block[7] ^ key1[3]]; + ptr1 = table_s6[block[6] ^ key1[2]]; + ptr4 = table_s7[block[5] ^ key1[1]]; + ptr3 = table_s8[block[4] ^ key1[0]]; + // A B again + ab = ptr1 ^ ptr2 ^ ptr3 ^ ptr4; + printf("ab: %08X %08X %08X %08X -> %08X\n", ptr1, ptr2, ptr3, ptr4, ab); + // D is a bit of a nightmare, but it is really not as complicated as you might think + unsigned char* key2 = (unsigned char*)&key_schedule[9-round][2]; + unsigned char* key3 = (unsigned char*)&key_schedule[9-round][3]; + ((uint32_t*)block)[1] = ab; + ((uint32_t*)block)[2] = table_s5[block[11] ^ key2[3]] ^ + table_s6[block[10] ^ key2[2]] ^ + table_s7[block[9] ^ key2[1]] ^ + table_s8[block[8] ^ key2[0]]; + + ((uint32_t*)block)[3] = table_s5[block[15] ^ key3[3]] ^ + table_s6[block[14] ^ key3[2]] ^ + table_s7[block[13] ^ key3[1]] ^ + table_s8[block[12] ^ key3[0]]; + printf("Set block2 = %08X, block3 = %08X\n", ((uint32_t*)block)[2], ((uint32_t*)block)[3]); + // In the last round, instead of the permute, we do F + permute_block_2(block, 8-round); + } + printf("Using last bit of key up: %08X xor %08X -> %08X\n", ((uint32_t*)block)[0], key_schedule[0][0], ((uint32_t*)block)[0] ^ key_schedule[0][0]); + ((uint32_t*)block)[0] ^= key_schedule[0][0]; + ((uint32_t*)block)[1] ^= key_schedule[0][1]; + ((uint32_t*)block)[2] ^= key_schedule[0][2]; + ((uint32_t*)block)[3] ^= key_schedule[0][3]; +} + + +void decrypt_sap(unsigned char* sapIn, unsigned char* sapOut) +{ + uint32_t key_schedule[11][4]; + unsigned char* iv; + print_block("Base sap: ", &sapIn[0xf0]); + z_xor(sapIn, sapOut, 16); + generate_key_schedule(sap_key_material, key_schedule); + print_block("lastSap before cycle: ", &sapOut[0xf0]); + for (int i = 0xf0; i >= 0x00; i-=0x10) + { + printf("Ready to cycle %02X\n", i); + cycle(&sapOut[i], key_schedule); + print_block("After cycling, block is: ", &sapOut[i]); + if (i > 0) + { // xor with previous block + iv = &sapOut[i-0x10]; + } + else + { // xor with sap IV + iv = sap_iv; + } + for (int j = 0; j < 16; j++) + { + printf("%02X ^ %02X -> %02X\n", sapOut[i+j], iv[j], sapOut[i+j] ^ iv[j]); + sapOut[i+j] = sapOut[i+j] ^ iv[j]; + } + printf("Decrypted SAP %02X-%02X:\n", i, i+0xf); + print_block("", &sapOut[i]); + } + // Lastly grind the whole thing through x_key. This is the last time we modify sap + x_xor(sapOut, sapOut, 16); + printf("Sap is decrypted to\n"); + for (int i = 0xf0; i >= 0x00; i-=0x10) + { + printf("Final SAP %02X-%02X: ", i, i+0xf); + print_block("", &sapOut[i]); + } +} + +unsigned char initial_session_key[] = {0xDC, 0xDC, 0xF3, 0xB9, 0x0B, 0x74, 0xDC, 0xFB, 0x86, 0x7F, 0xF7, 0x60, 0x16, 0x72, 0x90, 0x51}; + + +void decrypt_key(unsigned char* decryptedSap, unsigned char* keyIn, unsigned char* iv, unsigned char* keyOut) +{ + unsigned char blockIn[16]; + uint32_t key_schedule[11][4]; + uint32_t mode_key_schedule[11][4]; + generate_key_schedule(&decryptedSap[8], key_schedule); + printf("Generating mode key:\n"); + generate_key_schedule(initial_session_key, mode_key_schedule); + z_xor(keyIn, blockIn, 1); + print_block("Input to cycle is: ", blockIn); + cycle(blockIn, key_schedule); + for (int j = 0; j < 16; j++) + keyOut[j] = blockIn[j] ^ iv[j]; + print_block("Output from cycle is: ", keyOut); + x_xor(keyOut, keyOut, 1); +} + + +void decryptMessage(unsigned char* messageIn, unsigned char* decryptedMessage) +{ + unsigned char buffer[16]; + int i, j; + unsigned char tmp; + uint32_t key_schedule[11][4]; + int mode = messageIn[12]; // 0,1,2,3 + printf("mode = %02x\n", mode); + generate_key_schedule(initial_session_key, key_schedule); + + // For M0-M6 we follow the same pattern + for (i = 0; i < 8; i++) + { + // First, copy in the nth block (we must start with the last one) + for (j = 0; j < 16; j++) + { + if (mode == 3) + buffer[j] = messageIn[(0x80-0x10*i)+j]; + else if (mode == 2 || mode == 1 || mode == 0) + buffer[j] = messageIn[(0x10*(i+1))+j]; + } + // do this permutation and update 9 times. Could this be cycle(), or the reverse of cycle()? + for (j = 0; j < 9; j++) + { + int base = 0x80 - 0x10*j; + //print_block("About to cycle. Buffer is currently: ", buffer); + buffer[0x0] = message_table_index(base+0x0)[buffer[0x0]] ^ message_key[mode][base+0x0]; + buffer[0x4] = message_table_index(base+0x4)[buffer[0x4]] ^ message_key[mode][base+0x4]; + buffer[0x8] = message_table_index(base+0x8)[buffer[0x8]] ^ message_key[mode][base+0x8]; + buffer[0xc] = message_table_index(base+0xc)[buffer[0xc]] ^ message_key[mode][base+0xc]; + + tmp = buffer[0x0d]; + buffer[0xd] = message_table_index(base+0xd)[buffer[0x9]] ^ message_key[mode][base+0xd]; + buffer[0x9] = message_table_index(base+0x9)[buffer[0x5]] ^ message_key[mode][base+0x9]; + buffer[0x5] = message_table_index(base+0x5)[buffer[0x1]] ^ message_key[mode][base+0x5]; + buffer[0x1] = message_table_index(base+0x1)[tmp] ^ message_key[mode][base+0x1]; + + tmp = buffer[0x02]; + buffer[0x2] = message_table_index(base+0x2)[buffer[0xa]] ^ message_key[mode][base+0x2]; + buffer[0xa] = message_table_index(base+0xa)[tmp] ^ message_key[mode][base+0xa]; + tmp = buffer[0x06]; + buffer[0x6] = message_table_index(base+0x6)[buffer[0xe]] ^ message_key[mode][base+0x6]; + buffer[0xe] = message_table_index(base+0xe)[tmp] ^ message_key[mode][base+0xe]; + + tmp = buffer[0x3]; + buffer[0x3] = message_table_index(base+0x3)[buffer[0x7]] ^ message_key[mode][base+0x3]; + buffer[0x7] = message_table_index(base+0x7)[buffer[0xb]] ^ message_key[mode][base+0x7]; + buffer[0xb] = message_table_index(base+0xb)[buffer[0xf]] ^ message_key[mode][base+0xb]; + buffer[0xf] = message_table_index(base+0xf)[tmp] ^ message_key[mode][base+0xf]; + + // Now we must replace the entire buffer with 4 words that we read and xor together + uint32_t word; + uint32_t* block = (uint32_t*)buffer; + + block[0] = table_s9[0x000 + buffer[0x0]] ^ + table_s9[0x100 + buffer[0x1]] ^ + table_s9[0x200 + buffer[0x2]] ^ + table_s9[0x300 + buffer[0x3]]; + block[1] = table_s9[0x000 + buffer[0x4]] ^ + table_s9[0x100 + buffer[0x5]] ^ + table_s9[0x200 + buffer[0x6]] ^ + table_s9[0x300 + buffer[0x7]]; + block[2] = table_s9[0x000 + buffer[0x8]] ^ + table_s9[0x100 + buffer[0x9]] ^ + table_s9[0x200 + buffer[0xa]] ^ + table_s9[0x300 + buffer[0xb]]; + block[3] = table_s9[0x000 + buffer[0xc]] ^ + table_s9[0x100 + buffer[0xd]] ^ + table_s9[0x200 + buffer[0xe]] ^ + table_s9[0x300 + buffer[0xf]]; + } + // Next, another permute with a different table + buffer[0x0] = table_s10[(0x0 << 8) + buffer[0x0]]; + buffer[0x4] = table_s10[(0x4 << 8) + buffer[0x4]]; + buffer[0x8] = table_s10[(0x8 << 8) + buffer[0x8]]; + buffer[0xc] = table_s10[(0xc << 8) + buffer[0xc]]; + + tmp = buffer[0x0d]; + buffer[0xd] = table_s10[(0xd << 8) + buffer[0x9]]; + buffer[0x9] = table_s10[(0x9 << 8) + buffer[0x5]]; + buffer[0x5] = table_s10[(0x5 << 8) + buffer[0x1]]; + buffer[0x1] = table_s10[(0x1 << 8) + tmp]; + + tmp = buffer[0x02]; + buffer[0x2] = table_s10[(0x2 << 8) + buffer[0xa]]; + buffer[0xa] = table_s10[(0xa << 8) + tmp]; + tmp = buffer[0x06]; + buffer[0x6] = table_s10[(0x6 << 8) + buffer[0xe]]; + buffer[0xe] = table_s10[(0xe << 8) + tmp]; + + tmp = buffer[0x3]; + buffer[0x3] = table_s10[(0x3 << 8) + buffer[0x7]]; + buffer[0x7] = table_s10[(0x7 << 8) + buffer[0xb]]; + buffer[0xb] = table_s10[(0xb << 8) + buffer[0xf]]; + buffer[0xf] = table_s10[(0xf << 8) + tmp]; + + // And finally xor with the previous block of the message, except in mode-2 where we do this in reverse + if (mode == 2 || mode == 1 || mode == 0) + { + if (i > 0) + { + xor_blocks(buffer, &messageIn[0x10*i], &decryptedMessage[0x10*i]); // remember that the first 0x10 bytes are the header + } + else + xor_blocks(buffer, message_iv[mode], &decryptedMessage[0x10*i]); + print_block(" ", &decryptedMessage[0x10*i]); + } + else + { + if (i < 7) + xor_blocks(buffer, &messageIn[0x70 - 0x10*i], &decryptedMessage[0x70 - 0x10*i]); + else + xor_blocks(buffer, message_iv[mode], &decryptedMessage[0x70 - 0x10*i]); + printf("Decrypted message block %02X-%02X:", 0x70 - 0x10*i, 0x70 - 0x10*i+0xf); + print_block(" ", &decryptedMessage[0x70 - 0x10*i]); + } + } +} + +unsigned char static_source_1[] = {0xFA, 0x9C, 0xAD, 0x4D, 0x4B, 0x68, 0x26, 0x8C, 0x7F, 0xF3, 0x88, 0x99, 0xDE, 0x92, 0x2E, 0x95, + 0x1E}; +unsigned char static_source_2[] = {0xEC, 0x4E, 0x27, 0x5E, 0xFD, 0xF2, 0xE8, 0x30, 0x97, 0xAE, 0x70, 0xFB, 0xE0, 0x00, 0x3F, 0x1C, + 0x39, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x09, 0x00, 0x0, 0x00, 0x00, 0x00, 0x00}; + +void swap_bytes(unsigned char* a, unsigned char *b) +{ + unsigned char c = *a; + *a = *b; + *b = c; +} + +void generate_session_key(unsigned char* oldSap, unsigned char* messageIn, unsigned char* sessionKey) +{ + unsigned char decryptedMessage[128]; + unsigned char newSap[320]; + unsigned char Q[210]; + int i; + int round; + unsigned char md5[16]; + unsigned char otherHash[16]; + + decryptMessage(messageIn, decryptedMessage); + // Now that we have the decrypted message, we can combine it with our initial sap to form the 5 blocks needed to generate the 5 words which, when added together, give + // the session key. + memcpy(&newSap[0x000], static_source_1, 0x11); + memcpy(&newSap[0x011], decryptedMessage, 0x80); + memcpy(&newSap[0x091], &oldSap[0x80], 0x80); + memcpy(&newSap[0x111], static_source_2, 0x2f); + memcpy(sessionKey, initial_session_key, 16); + + for (round = 0; round < 5; round++) + { + unsigned char* base = &newSap[round * 64]; + print_block("Input block: ", &base[0]); + print_block("Input block: ", &base[0x10]); + print_block("Input block: ", &base[0x20]); + print_block("Input block: ", &base[0x30]); + modified_md5(base, sessionKey, md5); + printf("MD5 OK\n"); + sap_hash(base, sessionKey); + printf("OtherHash OK\n"); + + printf("MD5 = "); + for (i = 0; i < 4; i++) + printf("%08x ", ((uint32_t*)md5)[i]); + printf("\nOtherHash = "); + for (i = 0; i < 4; i++) + printf("%08x ", ((uint32_t*)sessionKey)[i]); + printf("\n"); + + uint32_t* sessionKeyWords = (uint32_t*)sessionKey; + uint32_t* md5Words = (uint32_t*)md5; + for (i = 0; i < 4; i++) + { + sessionKeyWords[i] = (sessionKeyWords[i] + md5Words[i]) & 0xffffffff; + } + printf("Current key: "); + for (i = 0; i < 16; i++) + printf("%02x", sessionKey[i]); + printf("\n"); + } + for (i = 0; i < 16; i+=4) + { + swap_bytes(&sessionKey[i], &sessionKey[i+3]); + swap_bytes(&sessionKey[i+1], &sessionKey[i+2]); + } + + // Finally the whole thing is XORd with 121: + for (i = 0; i < 16; i++) + sessionKey[i] ^= 121; + print_block("Session key computed as: ", sessionKey); +} + +unsigned char default_sap[] = + { 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, + 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, + 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, + 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, + 0x79, 0x79, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x02, 0x53, + 0x00, 0x01, 0xcc, 0x34, 0x2a, 0x5e, 0x5b, 0x1a, 0x67, 0x73, 0xc2, 0x0e, 0x21, 0xb8, 0x22, 0x4d, + 0xf8, 0x62, 0x48, 0x18, 0x64, 0xef, 0x81, 0x0a, 0xae, 0x2e, 0x37, 0x03, 0xc8, 0x81, 0x9c, 0x23, + 0x53, 0x9d, 0xe5, 0xf5, 0xd7, 0x49, 0xbc, 0x5b, 0x7a, 0x26, 0x6c, 0x49, 0x62, 0x83, 0xce, 0x7f, + 0x03, 0x93, 0x7a, 0xe1, 0xf6, 0x16, 0xde, 0x0c, 0x15, 0xff, 0x33, 0x8c, 0xca, 0xff, 0xb0, 0x9e, + 0xaa, 0xbb, 0xe4, 0x0f, 0x5d, 0x5f, 0x55, 0x8f, 0xb9, 0x7f, 0x17, 0x31, 0xf8, 0xf7, 0xda, 0x60, + 0xa0, 0xec, 0x65, 0x79, 0xc3, 0x3e, 0xa9, 0x83, 0x12, 0xc3, 0xb6, 0x71, 0x35, 0xa6, 0x69, 0x4f, + 0xf8, 0x23, 0x05, 0xd9, 0xba, 0x5c, 0x61, 0x5f, 0xa2, 0x54, 0xd2, 0xb1, 0x83, 0x45, 0x83, 0xce, + 0xe4, 0x2d, 0x44, 0x26, 0xc8, 0x35, 0xa7, 0xa5, 0xf6, 0xc8, 0x42, 0x1c, 0x0d, 0xa3, 0xf1, 0xc7, + 0x00, 0x50, 0xf2, 0xe5, 0x17, 0xf8, 0xd0, 0xfa, 0x77, 0x8d, 0xfb, 0x82, 0x8d, 0x40, 0xc7, 0x8e, + 0x94, 0x1e, 0x1e, 0x1e}; diff --git a/lib/playfair/omg_hax.h b/lib/playfair/omg_hax.h new file mode 100755 index 0000000..d6f19d3 --- /dev/null +++ b/lib/playfair/omg_hax.h @@ -0,0 +1,32 @@ +unsigned char message_key[4][144] = {{0x1D, 0x24, 0x03, 0x40, 0xDC, 0xAE, 0xC7, 0xA8, 0x26, 0x7C, 0x20, 0x99, 0x5D, 0x7E, 0x89, 0x2E, 0xA2, 0x58, 0xAF, 0xBE, 0xB8, 0x07, 0x9A, 0x2F, 0x87, 0x77, 0xD3, 0xCE, 0x37, 0x3E, 0x1B, 0x16, 0x41, 0x4F, 0x4E, 0xBE, 0x62, 0x5A, 0x00, 0x77, 0xC6, 0xEB, 0xDA, 0x4B, 0x97, 0x1A, 0x61, 0x8D, 0x31, 0x32, 0x1C, 0xA2, 0x78, 0x9B, 0x66, 0x72, 0x60, 0x94, 0x44, 0x86, 0xCB, 0x09, 0xBD, 0x3A, 0x77, 0x57, 0xC1, 0x72, 0x61, 0x1D, 0x32, 0xC7, 0x85, 0xD1, 0xEF, 0xE5, 0x4D, 0x95, 0x0B, 0xF0, 0xD8, 0x18, 0xE7, 0x4A, 0xDC, 0x77, 0xCA, 0x55, 0x28, 0x32, 0x93, 0x2A, 0x7B, 0x3E, 0x3A, 0xD4, 0x97, 0xFD, 0x7D, 0x6D, 0x95, 0x71, 0x27, 0x9C, 0x77, 0x6A, 0x7C, 0xD5, 0xBF, 0x9D, 0x0E, 0xF2, 0x0F, 0x55, 0x91, 0x29, 0xCF, 0xAA, 0x58, 0x1C, 0x7A, 0xE7, 0xCB, 0x8B, 0x20, 0x07, 0x53, 0xAA, 0x59, 0x40, 0x3B, 0x03, 0xBE, 0x33, 0x47, 0x47, 0x5A, 0x4F, 0x86, 0x31, 0x8D, 0x30, 0xF9, 0x1C}, + {0xF1, 0xA2, 0x04, 0x7A, 0xAE, 0xE9, 0xD8, 0xBF, 0xD4, 0xC0, 0x6B, 0x77, 0xC1, 0x05, 0x8C, 0x99, 0xA9, 0xFD, 0x3D, 0x44, 0xEE, 0x7B, 0x6C, 0x28, 0x42, 0x31, 0x63, 0x87, 0x6D, 0xD2, 0x6D, 0x48, 0xCC, 0x4E, 0x93, 0x31, 0x7B, 0x27, 0x14, 0xFC, 0x2D, 0x71, 0x5D, 0xE4, 0xB0, 0xF9, 0x4B, 0x82, 0x76, 0x52, 0xD5, 0x02, 0x6C, 0xB6, 0xCF, 0x57, 0xFE, 0xB2, 0xBF, 0xB7, 0x30, 0x56, 0x7B, 0x9B, 0x3E, 0x3E, 0xB0, 0x47, 0x10, 0x63, 0xE8, 0x72, 0x1C, 0x38, 0x2D, 0x79, 0xC4, 0x77, 0x3C, 0xD1, 0xED, 0x02, 0x43, 0x03, 0x5C, 0xBC, 0x57, 0x9E, 0x43, 0x02, 0x67, 0xA1, 0x9B, 0x8C, 0xF3, 0x54, 0xE4, 0x46, 0xE1, 0x1C, 0x4F, 0xDC, 0xF7, 0x9F, 0xF4, 0x49, 0x76, 0x4F, 0x13, 0x96, 0x86, 0xCF, 0xF1, 0x7A, 0x01, 0xAC, 0xE4, 0xD5, 0x32, 0x5B, 0x5D, 0x7D, 0xEE, 0xCA, 0xBF, 0x76, 0xFB, 0x50, 0xD7, 0xEC, 0x9C, 0xA3, 0xF6, 0x2E, 0xBE, 0x9B, 0xC7, 0xC8, 0x0F, 0xF2, 0xB7, 0x3B, 0xDE, 0x8A}, + {0x18, 0x6E, 0xD3, 0x73, 0x5E, 0xE9, 0x5A, 0x8F, 0x66, 0x3F, 0xF1, 0xB8, 0x4A, 0x62, 0xD9, 0xC0, 0xD2, 0x08, 0x13, 0x61, 0xCB, 0xF3, 0xAD, 0xA6, 0x26, 0x4D, 0x3A, 0x7B, 0x06, 0xB5, 0x51, 0x56, 0xFE, 0x66, 0x0A, 0xD8, 0x3A, 0xAA, 0x47, 0x49, 0xD3, 0x7C, 0xC3, 0x68, 0x70, 0xD0, 0x96, 0x80, 0x6A, 0x05, 0x90, 0xEF, 0xAF, 0x43, 0x42, 0xC4, 0x2E, 0x50, 0x4C, 0x96, 0x13, 0xB5, 0x2E, 0x4C, 0x80, 0xA2, 0x8D, 0x23, 0xEE, 0xE2, 0x5E, 0x78, 0xF4, 0x3D, 0x65, 0xCA, 0x71, 0x4F, 0x68, 0x9E, 0x4B, 0x43, 0x58, 0x7B, 0x47, 0x96, 0x40, 0x81, 0x8A, 0x98, 0x6C, 0x04, 0x33, 0x0F, 0x2F, 0x1C, 0x33, 0x8E, 0xEA, 0xA1, 0x4F, 0xA8, 0x37, 0x93, 0x17, 0x1D, 0x8D, 0x18, 0xA9, 0x6A, 0x1B, 0x07, 0x7C, 0xB6, 0x08, 0x58, 0x1F, 0x12, 0x00, 0xFA, 0x37, 0x4D, 0x7F, 0xBA, 0xA5, 0x00, 0x6B, 0x72, 0x78, 0x9C, 0x33, 0xE8, 0x41, 0x07, 0xB7, 0xC1, 0x67, 0x9B, 0x76, 0xBB, 0xDD, 0x91, 0x3D, 0x3D}, + {0x47, 0x69, 0x9F, 0x08, 0xB8, 0x82, 0xFB, 0xA1, 0x95, 0xE5, 0x6F, 0x41, 0x79, 0x1E, 0x0C, 0xB6, 0xA1, 0xCA, 0x11, 0x0A, 0xE2, 0x87, 0x2C, 0x7E, 0x39, 0xBC, 0x98, 0xA5, 0x1E, 0xB2, 0xFA, 0x1F, 0xEE, 0x73, 0x42, 0xD7, 0xA9, 0x09, 0x42, 0xC0, 0xEF, 0xC4, 0x44, 0x0C, 0x0F, 0x6F, 0x97, 0x09, 0x08, 0xBC, 0x66, 0x31, 0x33, 0xFF, 0xCA, 0x7E, 0xB5, 0xE9, 0x7D, 0x77, 0x98, 0xC0, 0xD2, 0x6A, 0xFD, 0x2F, 0x0B, 0x6C, 0x9D, 0xAB, 0xAA, 0x78, 0x4C, 0x76, 0xDE, 0x21, 0xBF, 0xF4, 0x3A, 0x28, 0x2A, 0xC4, 0x74, 0xB4, 0xA9, 0x1B, 0x9A, 0x38, 0x21, 0x4C, 0xEB, 0xBD, 0x72, 0x51, 0xA6, 0x15, 0xD4, 0x9E, 0x17, 0xF3, 0x94, 0x26, 0x6D, 0x07, 0x5F, 0x92, 0xAA, 0xA4, 0x4E, 0xF2, 0xCD, 0x3F, 0x02, 0x4F, 0x05, 0x35, 0xE3, 0x58, 0xDF, 0x82, 0x7E, 0x6A, 0x17, 0xF0, 0x5F, 0x6B, 0xDC, 0xE9, 0x3A, 0xCF, 0x04, 0xB3, 0x01, 0x44, 0x87, 0xD7, 0xBC, 0xAD, 0x3D, 0x74, 0x96, 0x74, 0xA3, 0x99}}; +unsigned char message_iv[4][16] = {{0x57, 0x52, 0xF1, 0xB7, 0x54, 0x9D, 0x8F, 0x87, 0x0C, 0x10, 0x48, 0x5A, 0x60, 0x88, 0xCA, 0xDB}, + {0xDF, 0x7B, 0x15, 0x63, 0xF0, 0x05, 0x58, 0x77, 0x52, 0xA9, 0x04, 0x02, 0xB9, 0xA3, 0x92, 0x95}, + {0x68, 0xB5, 0x46, 0x11, 0xFB, 0x04, 0xDE, 0x67, 0x6C, 0x96, 0x8E, 0xFB, 0x8C, 0x9D, 0xB0, 0xC9}, + {0x27, 0x07, 0x8B, 0x21, 0x23, 0x36, 0x1E, 0x7A, 0xDC, 0x9D, 0x0B, 0x11, 0x53, 0x54, 0x69, 0x0D}}; + +unsigned char z_key[] = {0x1a, 0x64, 0xf9, 0x60, 0x6c, 0xe3, 0x01, 0xa9, 0x54, 0x48, 0x1b, 0xd4, 0xab, 0x81, 0xfc, 0xc6}; +unsigned char x_key[] = {0x8e, 0xba, 0x07, 0xcc, 0xb6, 0x5a, 0xf6, 0x20, 0x33, 0xcf, 0xf8, 0x42, 0xe5, 0xd5, 0x5a, 0x7d}; +unsigned char t_key[] = {0xd0, 0x04, 0xa9, 0x61, 0x6b, 0xa4, 0x00, 0x87, 0x68, 0x8b, 0x5f, 0x15, 0x15, 0x35, 0xd9, 0xa9}; + +unsigned long table_s5[] = {0x21aa8423, 0x2fa1892a, 0x3dbc9e31, 0x33b79338, 0x1986b007, 0x178dbd0e, 0x590aa15, 0xb9ba71c, 0x51f2ec6b, 0x5ff9e162, 0x4de4f679, 0x43effb70, 0x69ded84f, 0x67d5d546, 0x75c8c25d, 0x7bc3cf54, 0xc11a54b3, 0xcf1159ba, 0xdd0c4ea1, 0xd30743a8, 0xf9366097, 0xf73d6d9e, 0xe5207a85, 0xeb2b778c, 0xb1423cfb, 0xbf4931f2, 0xad5426e9, 0xa35f2be0, 0x896e08df, 0x876505d6, 0x957812cd, 0x9b731fc4, 0xfad13f18, 0xf4da3211, 0xe6c7250a, 0xe8cc2803, 0xc2fd0b3c, 0xccf60635, 0xdeeb112e, 0xd0e01c27, 0x8a895750, 0x84825a59, 0x969f4d42, 0x9894404b, 0xb2a56374, 0xbcae6e7d, 0xaeb37966, 0xa0b8746f, 0x1a61ef88, 0x146ae281, 0x677f59a, 0x87cf893, 0x224ddbac, 0x2c46d6a5, 0x3e5bc1be, 0x3050ccb7, 0x6a3987c0, 0x64328ac9, 0x762f9dd2, 0x782490db, 0x5215b3e4, 0x5c1ebeed, 0x4e03a9f6, 0x4008a4ff, 0x8c5ce955, 0x8257e45c, 0x904af347, 0x9e41fe4e, 0xb470dd71, 0xba7bd078, 0xa866c763, 0xa66dca6a, 0xfc04811d, 0xf20f8c14, 0xe0129b0f, 0xee199606, 0xc428b539, 0xca23b830, 0xd83eaf2b, 0xd635a222, 0x6cec39c5, 0x62e734cc, 0x70fa23d7, 0x7ef12ede, 0x54c00de1, 0x5acb00e8, 0x48d617f3, 0x46dd1afa, 0x1cb4518d, 0x12bf5c84, 0xa24b9f, 0xea94696, 0x249865a9, 0x2a9368a0, 0x388e7fbb, 0x368572b2, 0x5727526e, 0x592c5f67, 0x4b31487c, 0x453a4575, 0x6f0b664a, 0x61006b43, 0x731d7c58, 0x7d167151, 0x277f3a26, 0x2974372f, 0x3b692034, 0x35622d3d, 0x1f530e02, 0x1158030b, 0x3451410, 0xd4e1919, 0xb79782fe, 0xb99c8ff7, 0xab8198ec, 0xa58a95e5, 0x8fbbb6da, 0x81b0bbd3, 0x93adacc8, 0x9da6a1c1, 0xc7cfeab6, 0xc9c4e7bf, 0xdbd9f0a4, 0xd5d2fdad, 0xffe3de92, 0xf1e8d39b, 0xe3f5c480, 0xedfec989, 0x605d5ecf, 0x6e5653c6, 0x7c4b44dd, 0x724049d4, 0x58716aeb, 0x567a67e2, 0x446770f9, 0x4a6c7df0, 0x10053687, 0x1e0e3b8e, 0xc132c95, 0x218219c, 0x282902a3, 0x26220faa, 0x343f18b1, 0x3a3415b8, 0x80ed8e5f, 0x8ee68356, 0x9cfb944d, 0x92f09944, 0xb8c1ba7b, 0xb6cab772, 0xa4d7a069, 0xaadcad60, 0xf0b5e617, 0xfebeeb1e, 0xeca3fc05, 0xe2a8f10c, 0xc899d233, 0xc692df3a, 0xd48fc821, 0xda84c528, 0xbb26e5f4, 0xb52de8fd, 0xa730ffe6, 0xa93bf2ef, 0x830ad1d0, 0x8d01dcd9, 0x9f1ccbc2, 0x9117c6cb, 0xcb7e8dbc, 0xc57580b5, 0xd76897ae, 0xd9639aa7, 0xf352b998, 0xfd59b491, 0xef44a38a, 0xe14fae83, 0x5b963564, 0x559d386d, 0x47802f76, 0x498b227f, 0x63ba0140, 0x6db10c49, 0x7fac1b52, 0x71a7165b, 0x2bce5d2c, 0x25c55025, 0x37d8473e, 0x39d34a37, 0x13e26908, 0x1de96401, 0xff4731a, 0x1ff7e13, 0xcdab33b9, 0xc3a03eb0, 0xd1bd29ab, 0xdfb624a2, 0xf587079d, 0xfb8c0a94, 0xe9911d8f, 0xe79a1086, 0xbdf35bf1, 0xb3f856f8, 0xa1e541e3, 0xafee4cea, 0x85df6fd5, 0x8bd462dc, 0x99c975c7, 0x97c278ce, 0x2d1be329, 0x2310ee20, 0x310df93b, 0x3f06f432, 0x1537d70d, 0x1b3cda04, 0x921cd1f, 0x72ac016, 0x5d438b61, 0x53488668, 0x41559173, 0x4f5e9c7a, 0x656fbf45, 0x6b64b24c, 0x7979a557, 0x7772a85e, 0x16d08882, 0x18db858b, 0xac69290, 0x4cd9f99, 0x2efcbca6, 0x20f7b1af, 0x32eaa6b4, 0x3ce1abbd, 0x6688e0ca, 0x6883edc3, 0x7a9efad8, 0x7495f7d1, 0x5ea4d4ee, 0x50afd9e7, 0x42b2cefc, 0x4cb9c3f5, 0xf6605812, 0xf86b551b, 0xea764200, 0xe47d4f09, 0xce4c6c36, 0xc047613f, 0xd25a7624, 0xdc517b2d, 0x8638305a, 0x88333d53, 0x9a2e2a48, 0x94252741, 0xbe14047e, 0xb01f0977, 0xa2021e6c, 0xac091365}; + +unsigned long table_s6[] = {0x5ee7493, 0xce07f9e, 0x17f26289, 0x1efc6984, 0x21d658a7, 0x28d853aa, 0x33ca4ebd, 0x3ac445b0, 0x4d9e2cfb, 0x449027f6, 0x5f823ae1, 0x568c31ec, 0x69a600cf, 0x60a80bc2, 0x7bba16d5, 0x72b41dd8, 0x950ec443, 0x9c00cf4e, 0x8712d259, 0x8e1cd954, 0xb136e877, 0xb838e37a, 0xa32afe6d, 0xaa24f560, 0xdd7e9c2b, 0xd4709726, 0xcf628a31, 0xc66c813c, 0xf946b01f, 0xf048bb12, 0xeb5aa605, 0xe254ad08, 0x3e350f28, 0x373b0425, 0x2c291932, 0x2527123f, 0x1a0d231c, 0x13032811, 0x8113506, 0x11f3e0b, 0x76455740, 0x7f4b5c4d, 0x6459415a, 0x6d574a57, 0x527d7b74, 0x5b737079, 0x40616d6e, 0x496f6663, 0xaed5bff8, 0xa7dbb4f5, 0xbcc9a9e2, 0xb5c7a2ef, 0x8aed93cc, 0x83e398c1, 0x98f185d6, 0x91ff8edb, 0xe6a5e790, 0xefabec9d, 0xf4b9f18a, 0xfdb7fa87, 0xc29dcba4, 0xcb93c0a9, 0xd081ddbe, 0xd98fd6b3, 0x734382fe, 0x7a4d89f3, 0x615f94e4, 0x68519fe9, 0x577baeca, 0x5e75a5c7, 0x4567b8d0, 0x4c69b3dd, 0x3b33da96, 0x323dd19b, 0x292fcc8c, 0x2021c781, 0x1f0bf6a2, 0x1605fdaf, 0xd17e0b8, 0x419ebb5, 0xe3a3322e, 0xeaad3923, 0xf1bf2434, 0xf8b12f39, 0xc79b1e1a, 0xce951517, 0xd5870800, 0xdc89030d, 0xabd36a46, 0xa2dd614b, 0xb9cf7c5c, 0xb0c17751, 0x8feb4672, 0x86e54d7f, 0x9df75068, 0x94f95b65, 0x4898f945, 0x4196f248, 0x5a84ef5f, 0x538ae452, 0x6ca0d571, 0x65aede7c, 0x7ebcc36b, 0x77b2c866, 0xe8a12d, 0x9e6aa20, 0x12f4b737, 0x1bfabc3a, 0x24d08d19, 0x2dde8614, 0x36cc9b03, 0x3fc2900e, 0xd8784995, 0xd1764298, 0xca645f8f, 0xc36a5482, 0xfc4065a1, 0xf54e6eac, 0xee5c73bb, 0xe75278b6, 0x900811fd, 0x99061af0, 0x821407e7, 0x8b1a0cea, 0xb4303dc9, 0xbd3e36c4, 0xa62c2bd3, 0xaf2220de, 0xe9af8349, 0xe0a18844, 0xfbb39553, 0xf2bd9e5e, 0xcd97af7d, 0xc499a470, 0xdf8bb967, 0xd685b26a, 0xa1dfdb21, 0xa8d1d02c, 0xb3c3cd3b, 0xbacdc636, 0x85e7f715, 0x8ce9fc18, 0x97fbe10f, 0x9ef5ea02, 0x794f3399, 0x70413894, 0x6b532583, 0x625d2e8e, 0x5d771fad, 0x547914a0, 0x4f6b09b7, 0x466502ba, 0x313f6bf1, 0x383160fc, 0x23237deb, 0x2a2d76e6, 0x150747c5, 0x1c094cc8, 0x71b51df, 0xe155ad2, 0xd274f8f2, 0xdb7af3ff, 0xc068eee8, 0xc966e5e5, 0xf64cd4c6, 0xff42dfcb, 0xe450c2dc, 0xed5ec9d1, 0x9a04a09a, 0x930aab97, 0x8818b680, 0x8116bd8d, 0xbe3c8cae, 0xb73287a3, 0xac209ab4, 0xa52e91b9, 0x42944822, 0x4b9a432f, 0x50885e38, 0x59865535, 0x66ac6416, 0x6fa26f1b, 0x74b0720c, 0x7dbe7901, 0xae4104a, 0x3ea1b47, 0x18f80650, 0x11f60d5d, 0x2edc3c7e, 0x27d23773, 0x3cc02a64, 0x35ce2169, 0x9f027524, 0x960c7e29, 0x8d1e633e, 0x84106833, 0xbb3a5910, 0xb234521d, 0xa9264f0a, 0xa0284407, 0xd7722d4c, 0xde7c2641, 0xc56e3b56, 0xcc60305b, 0xf34a0178, 0xfa440a75, 0xe1561762, 0xe8581c6f, 0xfe2c5f4, 0x6eccef9, 0x1dfed3ee, 0x14f0d8e3, 0x2bdae9c0, 0x22d4e2cd, 0x39c6ffda, 0x30c8f4d7, 0x47929d9c, 0x4e9c9691, 0x558e8b86, 0x5c80808b, 0x63aab1a8, 0x6aa4baa5, 0x71b6a7b2, 0x78b8acbf, 0xa4d90e9f, 0xadd70592, 0xb6c51885, 0xbfcb1388, 0x80e122ab, 0x89ef29a6, 0x92fd34b1, 0x9bf33fbc, 0xeca956f7, 0xe5a75dfa, 0xfeb540ed, 0xf7bb4be0, 0xc8917ac3, 0xc19f71ce, 0xda8d6cd9, 0xd38367d4, 0x3439be4f, 0x3d37b542, 0x2625a855, 0x2f2ba358, 0x1001927b, 0x190f9976, 0x21d8461, 0xb138f6c, 0x7c49e627, 0x7547ed2a, 0x6e55f03d, 0x675bfb30, 0x5871ca13, 0x517fc11e, 0x4a6ddc09, 0x4363d704}; + +unsigned long table_s7[] = {0xb33a6e73, 0xbe336078, 0xa9287265, 0xa4217c6e, 0x871e565f, 0x8a175854, 0x9d0c4a49, 0x90054442, 0xdb721e2b, 0xd67b1020, 0xc160023d, 0xcc690c36, 0xef562607, 0xe25f280c, 0xf5443a11, 0xf84d341a, 0x63aa8ec3, 0x6ea380c8, 0x79b892d5, 0x74b19cde, 0x578eb6ef, 0x5a87b8e4, 0x4d9caaf9, 0x4095a4f2, 0xbe2fe9b, 0x6ebf090, 0x11f0e28d, 0x1cf9ec86, 0x3fc6c6b7, 0x32cfc8bc, 0x25d4daa1, 0x28ddd4aa, 0x801b508, 0x508bb03, 0x1213a91e, 0x1f1aa715, 0x3c258d24, 0x312c832f, 0x26379132, 0x2b3e9f39, 0x6049c550, 0x6d40cb5b, 0x7a5bd946, 0x7752d74d, 0x546dfd7c, 0x5964f377, 0x4e7fe16a, 0x4376ef61, 0xd89155b8, 0xd5985bb3, 0xc28349ae, 0xcf8a47a5, 0xecb56d94, 0xe1bc639f, 0xf6a77182, 0xfbae7f89, 0xb0d925e0, 0xbdd02beb, 0xaacb39f6, 0xa7c237fd, 0x84fd1dcc, 0x89f413c7, 0x9eef01da, 0x93e60fd1, 0xde4cc385, 0xd345cd8e, 0xc45edf93, 0xc957d198, 0xea68fba9, 0xe761f5a2, 0xf07ae7bf, 0xfd73e9b4, 0xb604b3dd, 0xbb0dbdd6, 0xac16afcb, 0xa11fa1c0, 0x82208bf1, 0x8f2985fa, 0x983297e7, 0x953b99ec, 0xedc2335, 0x3d52d3e, 0x14ce3f23, 0x19c73128, 0x3af81b19, 0x37f11512, 0x20ea070f, 0x2de30904, 0x6694536d, 0x6b9d5d66, 0x7c864f7b, 0x718f4170, 0x52b06b41, 0x5fb9654a, 0x48a27757, 0x45ab795c, 0x657718fe, 0x687e16f5, 0x7f6504e8, 0x726c0ae3, 0x515320d2, 0x5c5a2ed9, 0x4b413cc4, 0x464832cf, 0xd3f68a6, 0x3666ad, 0x172d74b0, 0x1a247abb, 0x391b508a, 0x34125e81, 0x23094c9c, 0x2e004297, 0xb5e7f84e, 0xb8eef645, 0xaff5e458, 0xa2fcea53, 0x81c3c062, 0x8ccace69, 0x9bd1dc74, 0x96d8d27f, 0xddaf8816, 0xd0a6861d, 0xc7bd9400, 0xcab49a0b, 0xe98bb03a, 0xe482be31, 0xf399ac2c, 0xfe90a227, 0x69d62f84, 0x64df218f, 0x73c43392, 0x7ecd3d99, 0x5df217a8, 0x50fb19a3, 0x47e00bbe, 0x4ae905b5, 0x19e5fdc, 0xc9751d7, 0x1b8c43ca, 0x16854dc1, 0x35ba67f0, 0x38b369fb, 0x2fa87be6, 0x22a175ed, 0xb946cf34, 0xb44fc13f, 0xa354d322, 0xae5ddd29, 0x8d62f718, 0x806bf913, 0x9770eb0e, 0x9a79e505, 0xd10ebf6c, 0xdc07b167, 0xcb1ca37a, 0xc615ad71, 0xe52a8740, 0xe823894b, 0xff389b56, 0xf231955d, 0xd2edf4ff, 0xdfe4faf4, 0xc8ffe8e9, 0xc5f6e6e2, 0xe6c9ccd3, 0xebc0c2d8, 0xfcdbd0c5, 0xf1d2dece, 0xbaa584a7, 0xb7ac8aac, 0xa0b798b1, 0xadbe96ba, 0x8e81bc8b, 0x8388b280, 0x9493a09d, 0x999aae96, 0x27d144f, 0xf741a44, 0x186f0859, 0x15660652, 0x36592c63, 0x3b502268, 0x2c4b3075, 0x21423e7e, 0x6a356417, 0x673c6a1c, 0x70277801, 0x7d2e760a, 0x5e115c3b, 0x53185230, 0x4403402d, 0x490a4e26, 0x4a08272, 0x9a98c79, 0x1eb29e64, 0x13bb906f, 0x3084ba5e, 0x3d8db455, 0x2a96a648, 0x279fa843, 0x6ce8f22a, 0x61e1fc21, 0x76faee3c, 0x7bf3e037, 0x58ccca06, 0x55c5c40d, 0x42ded610, 0x4fd7d81b, 0xd43062c2, 0xd9396cc9, 0xce227ed4, 0xc32b70df, 0xe0145aee, 0xed1d54e5, 0xfa0646f8, 0xf70f48f3, 0xbc78129a, 0xb1711c91, 0xa66a0e8c, 0xab630087, 0x885c2ab6, 0x855524bd, 0x924e36a0, 0x9f4738ab, 0xbf9b5909, 0xb2925702, 0xa589451f, 0xa8804b14, 0x8bbf6125, 0x86b66f2e, 0x91ad7d33, 0x9ca47338, 0xd7d32951, 0xdada275a, 0xcdc13547, 0xc0c83b4c, 0xe3f7117d, 0xeefe1f76, 0xf9e50d6b, 0xf4ec0360, 0x6f0bb9b9, 0x6202b7b2, 0x7519a5af, 0x7810aba4, 0x5b2f8195, 0x56268f9e, 0x413d9d83, 0x4c349388, 0x743c9e1, 0xa4ac7ea, 0x1d51d5f7, 0x1058dbfc, 0x3367f1cd, 0x3e6effc6, 0x2975eddb, 0x247ce3d0}; + +unsigned long table_s8[] = {0xb4469bf0, 0xbf4b92fe, 0xa25c89ec, 0xa95180e2, 0x9872bfc8, 0x937fb6c6, 0x8e68add4, 0x8565a4da, 0xec2ed380, 0xe723da8e, 0xfa34c19c, 0xf139c892, 0xc01af7b8, 0xcb17feb6, 0xd600e5a4, 0xdd0decaa, 0x4960b10, 0xf9b021e, 0x128c190c, 0x19811002, 0x28a22f28, 0x23af2626, 0x3eb83d34, 0x35b5343a, 0x5cfe4360, 0x57f34a6e, 0x4ae4517c, 0x41e95872, 0x70ca6758, 0x7bc76e56, 0x66d07544, 0x6ddd7c4a, 0xcffda02b, 0xc4f0a925, 0xd9e7b237, 0xd2eabb39, 0xe3c98413, 0xe8c48d1d, 0xf5d3960f, 0xfede9f01, 0x9795e85b, 0x9c98e155, 0x818ffa47, 0x8a82f349, 0xbba1cc63, 0xb0acc56d, 0xadbbde7f, 0xa6b6d771, 0x7f2d30cb, 0x742039c5, 0x693722d7, 0x623a2bd9, 0x531914f3, 0x58141dfd, 0x450306ef, 0x4e0e0fe1, 0x274578bb, 0x2c4871b5, 0x315f6aa7, 0x3a5263a9, 0xb715c83, 0x7c558d, 0x1d6b4e9f, 0x16664791, 0x422bed5d, 0x4926e453, 0x5431ff41, 0x5f3cf64f, 0x6e1fc965, 0x6512c06b, 0x7805db79, 0x7308d277, 0x1a43a52d, 0x114eac23, 0xc59b731, 0x754be3f, 0x36778115, 0x3d7a881b, 0x206d9309, 0x2b609a07, 0xf2fb7dbd, 0xf9f674b3, 0xe4e16fa1, 0xefec66af, 0xdecf5985, 0xd5c2508b, 0xc8d54b99, 0xc3d84297, 0xaa9335cd, 0xa19e3cc3, 0xbc8927d1, 0xb7842edf, 0x86a711f5, 0x8daa18fb, 0x90bd03e9, 0x9bb00ae7, 0x3990d686, 0x329ddf88, 0x2f8ac49a, 0x2487cd94, 0x15a4f2be, 0x1ea9fbb0, 0x3bee0a2, 0x8b3e9ac, 0x61f89ef6, 0x6af597f8, 0x77e28cea, 0x7cef85e4, 0x4dccbace, 0x46c1b3c0, 0x5bd6a8d2, 0x50dba1dc, 0x89404666, 0x824d4f68, 0x9f5a547a, 0x94575d74, 0xa574625e, 0xae796b50, 0xb36e7042, 0xb863794c, 0xd1280e16, 0xda250718, 0xc7321c0a, 0xcc3f1504, 0xfd1c2a2e, 0xf6112320, 0xeb063832, 0xe00b313c, 0x439c77b1, 0x48917ebf, 0x558665ad, 0x5e8b6ca3, 0x6fa85389, 0x64a55a87, 0x79b24195, 0x72bf489b, 0x1bf43fc1, 0x10f936cf, 0xdee2ddd, 0x6e324d3, 0x37c01bf9, 0x3ccd12f7, 0x21da09e5, 0x2ad700eb, 0xf34ce751, 0xf841ee5f, 0xe556f54d, 0xee5bfc43, 0xdf78c369, 0xd475ca67, 0xc962d175, 0xc26fd87b, 0xab24af21, 0xa029a62f, 0xbd3ebd3d, 0xb633b433, 0x87108b19, 0x8c1d8217, 0x910a9905, 0x9a07900b, 0x38274c6a, 0x332a4564, 0x2e3d5e76, 0x25305778, 0x14136852, 0x1f1e615c, 0x2097a4e, 0x9047340, 0x604f041a, 0x6b420d14, 0x76551606, 0x7d581f08, 0x4c7b2022, 0x4776292c, 0x5a61323e, 0x516c3b30, 0x88f7dc8a, 0x83fad584, 0x9eedce96, 0x95e0c798, 0xa4c3f8b2, 0xafcef1bc, 0xb2d9eaae, 0xb9d4e3a0, 0xd09f94fa, 0xdb929df4, 0xc68586e6, 0xcd888fe8, 0xfcabb0c2, 0xf7a6b9cc, 0xeab1a2de, 0xe1bcabd0, 0xb5f1011c, 0xbefc0812, 0xa3eb1300, 0xa8e61a0e, 0x99c52524, 0x92c82c2a, 0x8fdf3738, 0x84d23e36, 0xed99496c, 0xe6944062, 0xfb835b70, 0xf08e527e, 0xc1ad6d54, 0xcaa0645a, 0xd7b77f48, 0xdcba7646, 0x52191fc, 0xe2c98f2, 0x133b83e0, 0x18368aee, 0x2915b5c4, 0x2218bcca, 0x3f0fa7d8, 0x3402aed6, 0x5d49d98c, 0x5644d082, 0x4b53cb90, 0x405ec29e, 0x717dfdb4, 0x7a70f4ba, 0x6767efa8, 0x6c6ae6a6, 0xce4a3ac7, 0xc54733c9, 0xd85028db, 0xd35d21d5, 0xe27e1eff, 0xe97317f1, 0xf4640ce3, 0xff6905ed, 0x962272b7, 0x9d2f7bb9, 0x803860ab, 0x8b3569a5, 0xba16568f, 0xb11b5f81, 0xac0c4493, 0xa7014d9d, 0x7e9aaa27, 0x7597a329, 0x6880b83b, 0x638db135, 0x52ae8e1f, 0x59a38711, 0x44b49c03, 0x4fb9950d, 0x26f2e257, 0x2dffeb59, 0x30e8f04b, 0x3be5f945, 0xac6c66f, 0x1cbcf61, 0x1cdcd473, 0x17d1dd7d}; + +unsigned char table_s1[] = {0x66,0xac,0x60,0xcb,0x1d,0x74,0x99,0xfc,0x54,0x21,0x15,0xef,0x46,0xcc,0x63,0x55,0x5,0x3,0x17,0x80,0x25,0x84,0xf1,0x76,0x6f,0xb3,0xfe,0x14,0x1c,0x9e,0x4f,0xa2,0x1f,0x73,0xd0,0xe7,0xa,0xb6,0x4d,0x30,0xc,0x2,0x7c,0xca,0x9f,0xa0,0xe5,0xb4,0x5f,0xb0,0xbc,0x9d,0xf3,0xf9,0x95,0x6e,0xdd,0xd2,0x77,0xba,0x1e,0xec,0xf,0xc0,0xb1,0x98,0xe4,0x39,0x7f,0x4e,0x28,0x64,0xbd,0x24,0x20,0x8a,0x2c,0x33,0x38,0x34,0xd3,0xeb,0x3d,0x8f,0xe2,0x9b,0xed,0xe0,0xb5,0x16,0x8,0xbf,0x85,0xcd,0x86,0x32,0x3e,0x97,0x7e,0x5a,0x7b,0xea,0xaa,0xbe,0x79,0x70,0xb8,0x83,0xf8,0xb2,0xdc,0x69,0xa4,0x68,0xfd,0x3a,0x48,0x5d,0xcf,0xad,0x57,0xd9,0x4a,0xd5,0x4b,0x88,0x6c,0x8c,0x4,0xf2,0xc4,0xc5,0xa7,0x92,0x3b,0x50,0x53,0xe9,0xfb,0x89,0xf5,0x37,0x6a,0x61,0xc9,0x8e,0x52,0xd1,0x2e,0x7a,0x18,0xf6,0x7,0x4c,0xb9,0x41,0x3f,0x71,0xfa,0x29,0x81,0x1a,0x67,0x90,0xd4,0x51,0xc8,0xa6,0x26,0x96,0xc1,0xdb,0xae,0xb7,0xd7,0x5e,0xff,0x1b,0xf4,0x59,0xe,0xd6,0x62,0x40,0xf0,0xa9,0xd,0x27,0xc3,0xee,0xc6,0x42,0x2b,0x12,0x56,0x3c,0x8b,0xe8,0x31,0x72,0x10,0xd8,0xb,0x58,0x82,0x43,0x5c,0xa3,0x91,0x11,0x44,0x94,0x9,0xa1,0xf7,0x5b,0x6d,0x65,0xdf,0xc7,0x2f,0xce,0x0,0x93,0xde,0xda,0xab,0x36,0x8d,0x9c,0xe3,0x2d,0x6,0x49,0x6b,0x13,0xaf,0x7d,0x75,0x45,0x2a,0x35,0xe1,0x47,0x23,0x19,0xbb,0xa5,0xc2,0x9a,0x1,0xe6,0xa8,0x87,0x78,0x22,0xc7,0xa9,0x30,0xb5,0xf1,0x6,0x7b,0xe0,0x3f,0xb6,0xd6,0xcf,0xba,0xa0,0xf7,0x47,0x21,0x3,0xb7,0x6f,0x38,0x95,0x7a,0x9e,0x23,0xa7,0x8f,0xa2,0x46,0x6c,0xc8,0x91,0x31,0x5a,0xf3,0xc6,0xa4,0xa5,0x93,0x65,0x0,0xb,0x56,0x94,0xe8,0x9a,0x88,0x32,0x97,0x79,0x1b,0x4f,0xb0,0x33,0xef,0xa8,0x48,0x9b,0x10,0x5e,0x20,0xd8,0x2d,0x66,0x4c,0x82,0xfd,0xec,0x57,0xca,0xbb,0xbf,0x24,0x14,0x1c,0xce,0x72,0xa,0x28,0x67,0xc4,0xda,0x78,0x42,0x26,0x80,0x54,0x4b,0x43,0x19,0xe6,0xc9,0x87,0x60,0xfb,0xa3,0x13,0x50,0x89,0xea,0x5d,0x37,0x73,0x4a,0xc2,0x3d,0x22,0xe3,0x39,0x6a,0xb9,0x71,0x3a,0x96,0xc0,0x68,0xf5,0x25,0x70,0xf0,0xf2,0x61,0xaf,0x4e,0xa6,0xbe,0x4,0xc,0x51,0x2c,0xd7,0x6b,0x86,0xb1,0x12,0x7e,0xd5,0x84,0xc1,0xfe,0xab,0x1d,0x63,0x6d,0xf,0xf4,0x98,0x92,0xfc,0xdd,0xd1,0x3e,0xa1,0x6e,0x8d,0x7f,0xdb,0x16,0xb3,0xbc,0x9d,0xf8,0x15,0x7c,0xaa,0x1,0xcd,0x7,0x34,0x2,0xad,0x27,0x8e,0x74,0x40,0x35,0x17,0x90,0xe5,0x44,0xe1,0x76,0x62,0x64,0xc3,0x2e,0xff,0x7d,0x75,0x9f,0xd2,0xe,0xdf,0xcb,0x8b,0x1a,0x3b,0x1f,0xf6,0x5f,0x8,0xbd,0xd3,0x99,0xe2,0xd9,0x11,0x18,0xcc,0xae,0x3c,0x29,0x5b,0x9c,0x9,0xc5,0xed,0xd,0xe9,0x2a,0xb4,0x2b,0xb8,0x36,0x5,0x49,0x2f,0x1e,0x58,0x85,0xf9,0xd0,0x55,0x59,0x52,0x4d,0xeb,0x41,0x45,0xdc,0x81,0x8c,0xfa,0x83,0xee,0x5c,0x8a,0xb2,0x53,0xe7,0xac,0xe4,0xde,0x69,0x77,0xd4,0x17,0xa7,0xf0,0xea,0x9f,0x86,0xe6,0x6f,0xb0,0x2b,0x56,0xa1,0xe5,0x60,0xf9,0x97,0xc1,0x98,0x3c,0x16,0xf2,0xdf,0xf7,0x73,0xce,0x2a,0xc5,0x68,0x3f,0xe7,0x53,0x71,0x62,0xd8,0xca,0xb8,0xc4,0x6,0x5b,0x50,0x35,0xc3,0xf5,0xf4,0x96,0xa3,0xa,0x61,0x36,0x7d,0x88,0x70,0xe,0x40,0xcb,0x18,0xf8,0xbf,0x63,0xe0,0x1f,0x4b,0x29,0xc7,0x37,0x78,0x5a,0x22,0x9e,0x4c,0x44,0x74,0xef,0xeb,0x9a,0x7,0xbc,0xad,0xd2,0x1c,0xf3,0xab,0x30,0xd7,0x99,0xb6,0x49,0x13,0x1b,0x4,0xd0,0x76,0x12,0x28,0x8a,0x94,0x21,0xe9,0x3a,0x69,0xb3,0x72,0x6d,0x92,0x1a,0x23,0x67,0xd,0xba,0xd9,0x0,0x43,0x5c,0x54,0xee,0xf6,0x1e,0xff,0x31,0xa2,0xa0,0x20,0x75,0xa5,0x38,0x90,0xc6,0x6a,0x3d,0x33,0x4d,0xfb,0xae,0x91,0xd4,0x85,0x2e,0x42,0xe1,0xd6,0x3b,0x87,0x7c,0x1,0xec,0xe3,0x46,0x8b,0x2f,0xdd,0x3e,0xf1,0x6e,0x81,0x8d,0xac,0xc2,0xc8,0xa4,0x5f,0x65,0x10,0x24,0xde,0x77,0xfd,0x52,0x64,0x57,0x9d,0x51,0xfa,0x2c,0x45,0xa8,0xcd,0x5e,0x82,0xcf,0x25,0x2d,0xaf,0x7e,0x93,0x34,0x32,0x26,0xb1,0x14,0xb5,0xc0,0x47,0x48,0x41,0x89,0xb2,0xc9,0x83,0xed,0x58,0xf,0xa6,0x4f,0x6b,0x4a,0xdb,0x9b,0x8f,0x66,0xe8,0x7b,0xe4,0x7a,0xb9,0x5d,0xbd,0x95,0x59,0xcc,0xb,0x79,0x6c,0xfe,0x9c,0x8c,0x15,0x11,0xbb,0x1d,0x2,0x9,0x5,0x80,0xa9,0xd5,0x8,0x4e,0x7f,0x19,0x55,0x84,0x27,0x39,0x8e,0xb4,0xfc,0xb7,0x3,0xe2,0xda,0xc,0xbe,0xd3,0xaa,0xdc,0xd1,0x1c,0xf8,0x5e,0xf3,0xd1,0x9,0x47,0x65,0xae,0xf7,0x20,0xa,0xe9,0xc4,0x45,0xc1,0x1d,0x86,0x97,0x60,0x56,0xd3,0xa1,0xcf,0x91,0x21,0xdc,0xc6,0xb0,0xa9,0x59,0xd0,0x89,0xce,0xd6,0x55,0x7d,0x29,0xf1,0x1f,0x4b,0x0,0x46,0xbe,0x76,0x38,0x2e,0xfd,0xf5,0x3,0xc2,0xc3,0x95,0xa0,0x57,0x3c,0xee,0x54,0x8e,0xfc,0x30,0xf2,0x66,0x6d,0x32,0x2d,0x40,0xe6,0x1e,0x24,0xa2,0xbc,0x9d,0xc5,0xe1,0x6,0x80,0xaf,0x25,0x7f,0xdd,0xd9,0x31,0xac,0x9b,0x8a,0x2a,0xe4,0x4e,0x1,0x14,0x6c,0x7a,0xa8,0x42,0x72,0x16,0x96,0x93,0x43,0xa6,0xe,0x5c,0xf0,0x62,0x6a,0xc0,0xd8,0xc9,0x28,0x94,0x7,0x15,0x2c,0x3b,0x51,0xef,0x8c,0x75,0x36,0xdf,0x17,0x5f,0xc,0x44,0x85,0xa4,0x5b,0xb7,0x58,0x9a,0xbb,0xfe,0xf4,0x69,0x92,0xd5,0xda,0xbd,0x70,0xeb,0x19,0xc7,0x8,0x74,0x18,0xe0,0xd7,0xb1,0xd,0x37,0x4a,0x5,0xb,0xcd,0x7b,0xa7,0x98,0xb3,0xe2,0x4,0x2,0x87,0x10,0x83,0x22,0x71,0xf6,0xb4,0x68,0x13,0xf9,0x99,0x1b,0xa5,0x48,0xab,0x61,0xcc,0x67,0x73,0x1a,0xfb,0x9e,0x26,0x53,0xe8,0x12,0xcb,0x41,0x52,0x64,0x6f,0xa3,0x3d,0xfa,0x5a,0x4f,0xaa,0xc8,0xde,0x50,0xd2,0x4d,0x8f,0x4c,0x8b,0x6b,0x90,0x39,0x5d,0x79,0xed,0x7c,0xb9,0xad,0x77,0x7e,0x84,0xbf,0xb5,0xff,0x6e,0xdb,0xec,0xd4,0x88,0x3a,0x9c,0xe5,0xe7,0xea,0x11,0xb2,0xb8,0xf,0xca,0x82,0x35,0x81,0x9f,0xb6,0x3e,0xe3,0x49,0x78,0x63,0x2f,0x23,0xba,0x8d,0x27,0x34,0x2b,0x33,0x3f,0x3c,0x23,0xf7,0x51,0x35,0xf,0xad,0xb3,0xd4,0x8c,0x17,0xf0,0xbe,0x91,0x6e,0x34,0xc8,0xcc,0xbd,0x20,0x9b,0x8a,0xf5,0x3b,0x10,0x5f,0x7d,0x5,0xb9,0x6b,0x63,0x53,0x87,0x7,0x52,0x82,0x1f,0xb7,0xe1,0x4d,0x7b,0x73,0xc9,0xd1,0x39,0xd8,0x16,0x85,0x3d,0x4,0x40,0x2a,0x9d,0xfe,0x27,0x64,0x6,0xce,0x1d,0x4e,0x94,0x55,0x4a,0xb5,0xe9,0xd,0xe2,0x4f,0x18,0xc0,0x74,0x56,0xe6,0xbf,0x1b,0x31,0xd5,0xf8,0xd0,0x54,0x97,0xc,0x71,0x86,0xc2,0x47,0xde,0xb0,0x30,0x80,0xd7,0xcd,0xb8,0xa1,0xc1,0x48,0xdf,0x98,0x44,0xc7,0x38,0x6c,0xe,0xe0,0x11,0x5a,0xaf,0x57,0x29,0x67,0xec,0x3f,0x12,0xe4,0xd2,0xd3,0xb1,0x84,0x2d,0x46,0x45,0xff,0xed,0x9f,0xe3,0x21,0x7c,0x77,0xb2,0x7e,0xeb,0x2c,0x5e,0x4b,0xd9,0xbb,0x41,0xcf,0x5c,0xc3,0x5d,0x9e,0x7a,0x9a,0x28,0x81,0x68,0x4c,0x6d,0xfc,0xbc,0xa8,0x6f,0x66,0xae,0x95,0xee,0xa4,0xca,0x7f,0xc5,0xfd,0x2b,0x99,0xf4,0x8d,0xfb,0xf6,0xa3,0x0,0x1e,0xa9,0x93,0xdb,0x90,0x24,0xa7,0x8e,0xf2,0x2f,0x69,0x58,0x3e,0x72,0xab,0x32,0x36,0x9c,0x3a,0x25,0x2e,0x22,0x49,0xa6,0xaa,0x8b,0xe5,0xef,0x83,0x78,0xcb,0xc4,0x61,0xac,0x8,0xfa,0x19,0xd6,0x9,0x65,0xc6,0xf1,0x1c,0xa0,0x5b,0x26,0x1a,0x14,0x6a,0xdc,0x89,0xb6,0xf3,0xa2,0x13,0x15,0x1,0x96,0x33,0x92,0xe7,0x60,0x79,0xa5,0xe8,0x2,0xa,0x88,0x59,0xb4,0x70,0xba,0x76,0xdd,0xb,0x62,0x8f,0xea,0x42,0x37,0x3,0xf9,0x50,0xda,0x75,0x43,0x37,0xac,0xbd,0x4a,0x7c,0xf9,0x8b,0xe5,0xbb,0xb,0xf6,0xec,0x9a,0x83,0x73,0xfa,0x36,0xd2,0x74,0xd9,0xfb,0x23,0x6d,0x4f,0x84,0xdd,0xa,0x20,0xc3,0xee,0x6f,0xeb,0xdf,0x29,0xe8,0xe9,0xbf,0x8a,0x7d,0x16,0xc4,0x7e,0xa4,0xd6,0x1a,0xd8,0x4c,0x47,0xa3,0xe4,0xfc,0x7f,0x57,0x3,0xdb,0x35,0x61,0x2a,0x6c,0x94,0x5c,0x12,0x4,0xd7,0xf7,0xf3,0x1b,0x86,0xb1,0xa0,0x0,0xce,0x64,0x2b,0x3e,0x46,0x50,0x82,0x68,0x58,0x18,0x7,0x6a,0xcc,0x34,0xe,0x88,0x96,0xb7,0xef,0xcb,0x2c,0xaa,0x85,0xf,0x55,0x3f,0x6,0x11,0x7b,0xc5,0xa6,0x5f,0x1c,0xf5,0x3d,0x75,0x26,0x6e,0xaf,0x8e,0x71,0x3c,0xbc,0xb9,0x69,0x8c,0x24,0x76,0xda,0x48,0x40,0xea,0xf2,0xe3,0x2,0xbe,0x2d,0x5e,0x32,0xca,0xfd,0x9b,0x27,0x1d,0x60,0x2f,0x21,0xe7,0x51,0x8d,0xb2,0x99,0xc8,0x9d,0x72,0xb0,0x91,0xd4,0xde,0x43,0xb8,0xff,0xf0,0x97,0x5a,0xc1,0x33,0xed,0x22,0x81,0x4b,0xe6,0x4d,0x59,0x30,0xd1,0xb4,0xc,0x79,0xc2,0x38,0xe1,0x6b,0x78,0x4e,0x2e,0x28,0xad,0x3a,0xa9,0x8,0x5b,0xdc,0x9e,0x42,0x39,0xd3,0xb3,0x31,0x8f,0x62,0xba,0x13,0x77,0x53,0xc7,0x56,0x93,0x87,0x5d,0x54,0xae,0x95,0x9f,0xd5,0x44,0xf1,0x45,0x89,0x17,0xd0,0x70,0x65,0x80,0xe2,0xf4,0x7a,0xf8,0x67,0xa5,0x66,0xa1,0x41,0xb5,0x9c,0x14,0xc9,0x63,0x52,0x49,0x5,0x9,0x90,0xa7,0xd,0x1e,0x1,0x19,0x15,0xc6,0xfe,0xa2,0x10,0xb6,0xcf,0xcd,0xc0,0x3b,0x98,0x92,0x25,0xe0,0xa8,0x1f,0xab,0xb3,0x52,0xee,0x7d,0x18,0x10,0xba,0xa2,0xdc,0x74,0x26,0x8a,0x6c,0xec,0xe9,0x39,0x3e,0xff,0xde,0x21,0xa5,0x6d,0x25,0x76,0x95,0xf6,0xf,0x4c,0x6f,0x56,0x41,0x2b,0xfa,0xd5,0x5f,0x5,0xe7,0xbf,0x9b,0x7c,0x64,0x5e,0xd8,0xc6,0x48,0x57,0x3a,0x9c,0x0,0xd2,0x38,0x8,0x34,0x7b,0x6e,0x16,0xe1,0xf0,0x50,0x9e,0xa7,0xa3,0x4b,0xd6,0xc,0x42,0x54,0x87,0x31,0x7a,0x3c,0xc4,0x7,0x53,0x8b,0x65,0xf3,0xb4,0xac,0x2f,0x4a,0x88,0x1c,0x17,0x94,0x2e,0xf4,0x86,0xef,0xda,0x2d,0x46,0x8f,0x79,0xb8,0xb9,0x93,0xbe,0x3f,0xbb,0xd4,0x8d,0x5a,0x70,0xab,0x73,0x3d,0x1f,0x66,0x82,0x24,0x89,0xca,0xd3,0x23,0xaa,0xeb,0x5b,0xa6,0xbc,0x2c,0xa9,0xdb,0xb5,0x67,0xfc,0xed,0x1a,0xb0,0xf8,0x4f,0xfb,0x6b,0xc8,0xc2,0x75,0xe6,0x9f,0x9d,0x90,0x96,0xae,0xf2,0x40,0x4e,0x51,0x49,0x45,0x59,0xc0,0xf7,0x5d,0x33,0x2,0x19,0x55,0xe5,0xcc,0x44,0x99,0xf5,0x36,0xf1,0x11,0xa4,0x2a,0xa8,0x37,0x20,0x35,0xd0,0xb2,0x15,0xd9,0x47,0x80,0xcf,0x85,0x14,0xa1,0xd,0x4,0xfe,0xc5,0x97,0x6,0xc3,0xd7,0xea,0x43,0x27,0x3,0xe3,0x61,0xdf,0x32,0xce,0x12,0x69,0x83,0xf9,0x58,0xb,0x8c,0x7e,0x78,0xfd,0x6a,0xb1,0x3b,0x28,0x1e,0x5c,0x29,0x92,0x68,0x9,0x60,0x81,0xe4,0xd1,0x1b,0xb6,0x1d,0x91,0x63,0xbd,0x72,0xaf,0xa0,0xc7,0xa,0x84,0x8e,0x13,0xe8,0xcd,0x22,0xe0,0xc1,0xdd,0xe2,0xc9,0x98,0x7f,0x71,0xb7,0x1,0xcb,0x77,0x4d,0x30,0xe,0x62,0x9a,0xad,0x9a,0x2a,0xd7,0xcd,0xbb,0xa2,0x52,0xdb,0x16,0x8d,0x9c,0x6b,0x5d,0xd8,0xaa,0xc4,0xa5,0xfc,0x2b,0x1,0xe2,0xcf,0x4e,0xca,0x17,0xf3,0x55,0xf8,0xda,0x2,0x4c,0x6e,0xe5,0x5f,0x85,0xf7,0x3b,0xf9,0x6d,0x66,0xfe,0x8,0xc9,0xc8,0x9e,0xab,0x5c,0x37,0x40,0xb,0x4d,0xb5,0x7d,0x33,0x25,0xf6,0x82,0xc5,0xdd,0x5e,0x76,0x22,0xfa,0x14,0x45,0xa,0x1f,0x67,0x71,0xa3,0x49,0x79,0xd6,0xd2,0x3a,0xa7,0x90,0x81,0x21,0xef,0x96,0xce,0xea,0xd,0x8b,0xa4,0x2e,0x74,0x39,0x26,0x4b,0xed,0x15,0x2f,0xa9,0xb7,0xd4,0x1c,0x54,0x7,0x4f,0x8e,0xaf,0x50,0x1e,0x27,0x30,0x5a,0xe4,0x87,0x7e,0x3d,0x69,0x61,0xcb,0xd3,0xc2,0x23,0x9f,0xc,0x1d,0x9d,0x98,0x48,0xad,0x5,0x57,0xfb,0xe,0x0,0xc6,0x70,0xac,0x93,0xb8,0xe9,0x7f,0x13,0xeb,0xdc,0xba,0x6,0x3c,0x41,0xde,0xd1,0xb6,0x7b,0xe0,0x12,0xcc,0x3,0xbc,0x53,0x91,0xb0,0xf5,0xff,0x62,0x99,0x2d,0x58,0xe3,0x19,0xc0,0x4a,0x59,0x6f,0xa0,0x6a,0xc7,0x6c,0x78,0x11,0xf0,0x95,0xbf,0x63,0x18,0xf2,0x92,0x10,0xae,0x43,0xf,0x9,0x8c,0x1b,0x88,0x29,0x7a,0xfd,0x7c,0x75,0x8f,0xb4,0xbe,0xf4,0x65,0xd0,0x9b,0x32,0x56,0x72,0xe6,0x77,0xb2,0xa6,0xd5,0x5b,0xd9,0x46,0x84,0x47,0x80,0x60,0x64,0xa8,0x36,0xf1,0x51,0x44,0xa1,0xc3,0x28,0xb1,0x86,0x2c,0x3f,0x20,0x38,0x34,0x94,0xbd,0x35,0xe8,0x42,0x73,0x68,0x24,0x1a,0xb9,0xb3,0x4,0xc1,0x89,0x3e,0x8a,0xe7,0xdf,0x83,0x31,0x97,0xee,0xec,0xe1,0x44,0x2e,0x39,0x0,0x23,0x60,0x99,0xfa,0x19,0x4a,0x2,0xca,0x4e,0xb1,0x90,0x51,0x56,0x86,0x83,0x3,0xe5,0x49,0x1b,0xb3,0xcd,0xd5,0x7f,0x77,0x12,0x81,0x3d,0xdc,0xb9,0x24,0xcc,0xc8,0xf1,0x3f,0x9f,0x8e,0x79,0x1,0x14,0x5b,0x67,0x57,0xbd,0x6f,0xf3,0x55,0x38,0x27,0xa9,0xb7,0x31,0xb,0x13,0xf4,0xd0,0x88,0x6a,0x30,0xba,0x95,0xd6,0xd7,0x16,0xe0,0x29,0x42,0xb5,0x80,0xe9,0x9b,0x41,0xfb,0x78,0x73,0xe7,0x25,0x40,0xc3,0xdb,0x9c,0xa,0xe4,0x3c,0x68,0xab,0x53,0x15,0x5e,0xe8,0x3b,0x2d,0x63,0x75,0x82,0x93,0x8,0xda,0xb4,0xc6,0x43,0xd3,0xc9,0x34,0x84,0xc5,0x4c,0xbc,0xa5,0xe6,0x4b,0xed,0x9,0x70,0x52,0x1c,0xc4,0x1f,0x35,0xe2,0xbb,0xd4,0x50,0xd1,0xfc,0xf6,0x2b,0xa3,0x8a,0x3a,0x76,0x6d,0x5c,0x32,0x98,0xaf,0x36,0x2a,0x26,0x3e,0x21,0x2f,0x9d,0xc1,0xf9,0xff,0xf2,0xf0,0x89,0x1a,0xad,0xa7,0x4,0x94,0x20,0x97,0xdf,0x6c,0x48,0x2c,0x85,0xb8,0xac,0x69,0xf8,0xaa,0x91,0x6b,0x62,0xce,0x7b,0xea,0xa0,0xef,0x28,0xb6,0x7a,0xdd,0xbf,0x5a,0x4f,0x58,0xc7,0x45,0xcb,0x7e,0x9e,0x59,0x9a,0x72,0xd9,0x74,0xbe,0x8b,0xee,0xf,0x66,0x7,0xfd,0x46,0x33,0x71,0x47,0x54,0xde,0x5,0x92,0x17,0x11,0xe3,0x64,0x37,0x96,0xec,0x6,0x7d,0xa1,0x5d,0xb0,0xe,0x8c,0xc2,0xf5,0xd,0x61,0x5f,0x22,0x18,0xa4,0x6e,0xd8,0x1e,0x10,0xf7,0xa6,0x8d,0xb2,0xae,0x8f,0x4d,0xa2,0x87,0x7c,0xe1,0xeb,0x65,0xa8,0xcf,0xc0,0x1d,0xd2,0xc,0xfe,0x96,0x4a,0x31,0xdb,0xbb,0x39,0x87,0x6a,0x26,0x20,0xa5,0x32,0xa1,0x0,0x53,0xd4,0x4,0x71,0xca,0x30,0xe9,0x63,0x70,0x46,0x89,0x43,0xee,0x45,0x51,0x38,0xd9,0xbc,0xf7,0xf8,0x9f,0x52,0xc9,0x3b,0xe5,0x2a,0x95,0x7a,0xb8,0x99,0xdc,0xd6,0x4b,0xb0,0x27,0x29,0xef,0x59,0x85,0xba,0x91,0xc0,0x56,0x3a,0xc2,0xf5,0x93,0x2f,0x15,0x68,0x33,0x90,0x9a,0x2d,0xe8,0xa0,0x17,0xa3,0xce,0xf6,0xaa,0x18,0xbe,0xc7,0xc5,0xc8,0x1,0x98,0xaf,0x5,0x16,0x9,0x11,0x1d,0xbd,0x94,0x1c,0xc1,0x6b,0x5a,0x41,0xd,0xfc,0x72,0xf0,0x6f,0xad,0x6e,0xa9,0x49,0x4d,0x81,0x1f,0xd8,0x78,0x6d,0x88,0xea,0x55,0x5c,0xa6,0x9d,0x97,0xdd,0x4c,0xf9,0xb2,0x1b,0x7f,0x5b,0xcf,0x5e,0x9b,0x8f,0x69,0x22,0x64,0x9c,0x54,0x1a,0xc,0xdf,0xab,0xec,0xf4,0x77,0x5f,0xb,0xd3,0x3d,0xcc,0x76,0xac,0xde,0x12,0xd0,0x44,0x4f,0xd7,0x21,0xe0,0xe1,0xb7,0x82,0x75,0x1e,0x8c,0xd5,0x2,0x28,0xcb,0xe6,0x67,0xe3,0x3e,0xda,0x7c,0xd1,0xf3,0x2b,0x65,0x47,0xb3,0x3,0xfe,0xe4,0x92,0x8b,0x7b,0xf2,0x3f,0xa4,0xb5,0x42,0x74,0xf1,0x83,0xed,0x40,0x48,0xe2,0xfa,0xeb,0xa,0xb6,0x25,0x34,0xb4,0xb1,0x61,0x84,0x2c,0x7e,0xd2,0xfd,0x35,0x7d,0x2e,0x66,0xa7,0x86,0x79,0x37,0xe,0x19,0x73,0xcd,0xae,0x57,0x14,0xbf,0xe7,0xc3,0x24,0xa2,0x8d,0x7,0x5d,0x10,0xf,0x62,0xc4,0x3c,0x6,0x80,0x9e,0x6c,0x23,0x36,0x4e,0x58,0x8a,0x60,0x50,0xff,0xfb,0x13,0x8e,0xb9,0xa8,0x8,0xc6,0xa9,0x80,0xfc,0x21,0x67,0x56,0x30,0x7c,0xa5,0x3c,0x38,0x92,0x34,0x2b,0x20,0x2c,0xcb,0xf3,0x25,0x97,0xfa,0x83,0xf5,0xf8,0xad,0xe,0x10,0xa7,0x9d,0xd5,0x9e,0x2a,0x26,0x8f,0x66,0x42,0x63,0xf2,0xb2,0xa6,0x61,0x68,0xa0,0x9b,0xe0,0xaa,0xc4,0x71,0xbc,0x70,0xe5,0x22,0x50,0x45,0xd7,0xb5,0x4f,0xc1,0x52,0xcd,0x53,0x90,0x74,0x94,0x7e,0xb4,0x78,0xd3,0x5,0x6c,0x81,0xe4,0x4c,0x39,0xd,0xf7,0x5e,0xd4,0x7b,0x4d,0x1d,0x1b,0xf,0x98,0x3d,0x9c,0xe9,0x6e,0x77,0xab,0xe6,0xc,0x4,0x86,0x57,0xba,0x7,0x6b,0xc8,0xff,0x12,0xae,0x55,0x28,0x14,0x1a,0x64,0xd2,0x87,0xb8,0xfd,0xac,0x47,0xa8,0xa4,0x85,0xeb,0xe1,0x8d,0x76,0xc5,0xca,0x6f,0xa2,0x6,0xf4,0x17,0xd8,0x33,0xa,0x4e,0x24,0x93,0xf0,0x29,0x6a,0x8,0xc0,0x13,0x40,0x9a,0x5b,0x44,0xbb,0x89,0x9,0x5c,0x8c,0x11,0xb9,0xef,0x43,0x75,0x7d,0xc7,0xdf,0x37,0xd6,0x18,0x8b,0xc6,0xc2,0xb3,0x2e,0x95,0x84,0xfb,0x35,0x1e,0x51,0x73,0xb,0xb7,0x65,0x6d,0x5d,0x32,0x2d,0xf9,0x5f,0x3b,0x1,0xa3,0xbd,0xda,0x82,0x19,0xfe,0xb0,0x9f,0x60,0x3a,0x1c,0xea,0xdc,0xdd,0xbf,0x8a,0x23,0x48,0x4b,0xf1,0xe3,0x91,0xed,0x2f,0x72,0x79,0xd1,0x96,0x4a,0xc9,0x36,0x62,0x0,0xee,0x1f,0x54,0xa1,0x59,0x27,0x69,0xe2,0x31,0x99,0x2,0x7f,0x88,0xcc,0x49,0xd0,0xbe,0x3e,0x8e,0xd9,0xc3,0xb6,0xaf,0xcf,0x46,0xe7,0x3,0xec,0x41,0x16,0xce,0x7a,0x58,0xe8,0xb1,0x15,0x3f,0xdb,0xf6,0xde,0x5a,0x7d,0x31,0x2a,0x1b,0xb1,0x6c,0xe4,0xcd,0x6d,0x61,0x79,0x66,0x75,0xdf,0xe8,0x71,0xb8,0xb5,0xb7,0xce,0x68,0xda,0x86,0xbe,0xd3,0x67,0xd0,0x98,0x5d,0xea,0xe0,0x43,0xff,0xeb,0x2e,0xbf,0x2b,0xf,0x6b,0xc2,0x89,0x3c,0xad,0xe7,0xed,0xd6,0x2c,0x25,0x9a,0xf8,0x1d,0x8,0xa8,0x6f,0xf1,0x3d,0x39,0xd9,0x1e,0xdd,0x1f,0x80,0x2,0x8c,0xcc,0xa9,0x48,0x21,0x35,0x9e,0x33,0xf9,0x36,0x0,0x13,0x99,0x40,0xba,0x1,0x74,0xa4,0x23,0x70,0xd1,0x42,0xd5,0x50,0x56,0x1a,0xf7,0x49,0xcb,0xab,0x41,0x3a,0xe6,0x18,0x65,0x5f,0xe3,0x85,0xb2,0x4a,0x26,0xb0,0xe1,0xca,0xf5,0x29,0x9f,0x59,0x57,0xc0,0x3b,0xa6,0xac,0xe9,0xc8,0xa,0xe5,0x5a,0x95,0x4b,0xb9,0x22,0xef,0x88,0x87,0x64,0x27,0xde,0xbd,0x3,0x69,0x7e,0x47,0x9,0xf6,0xd7,0x16,0x5e,0xd,0x45,0x8d,0xa2,0xe,0x5c,0xf4,0x11,0xc1,0xc4,0x44,0x55,0xc6,0x7a,0x9b,0x8a,0x92,0x38,0x30,0xb6,0x78,0xd8,0xc9,0xfe,0x63,0x8b,0x8f,0x20,0x10,0xfa,0x28,0x3e,0x46,0x53,0x1c,0xee,0xf0,0x76,0x4c,0xb4,0x12,0x7f,0x60,0x2d,0x77,0xfd,0xd2,0x54,0xb3,0x97,0xcf,0x6e,0x5,0xf2,0xc7,0x91,0x90,0x51,0xa7,0x3f,0x34,0xa0,0x62,0xae,0xdc,0x6,0xbc,0x4d,0xa3,0x7b,0x2f,0x7,0x84,0x9c,0xdb,0xaf,0x7c,0x6a,0x24,0xec,0x14,0x52,0x19,0x9d,0xf3,0x81,0x4,0x32,0xc5,0xd4,0x4f,0x82,0xb,0xfb,0xe2,0x94,0x8e,0x73,0xc3,0x37,0x15,0x5b,0x83,0xa1,0xc,0xaa,0x4e,0x93,0x17,0x96,0xbb,0x58,0x72,0xa5,0xfc,0x5b,0x97,0x9,0xce,0x6e,0x7b,0x9e,0xfc,0xea,0x64,0xe6,0x79,0xbb,0x78,0xbf,0x5f,0xa4,0xd,0x69,0x4d,0xd9,0x48,0x8d,0x99,0x43,0x4a,0xb0,0x8b,0x81,0xcb,0x5a,0xef,0xd8,0xe0,0xbc,0xe,0xa8,0xd1,0xd3,0xde,0x25,0x86,0x8c,0x3b,0xfe,0xb6,0x1,0xb5,0xab,0x82,0xa,0xd7,0x7d,0x4c,0x57,0x1b,0x17,0x8e,0xb9,0x13,0x0,0x1f,0x7,0xb,0x83,0x6c,0xae,0x8f,0xca,0xc0,0x5d,0xa6,0xe1,0xee,0x89,0x44,0xdf,0x2d,0xf3,0x3c,0x40,0x2c,0xd4,0xe3,0x85,0x39,0x3,0x7e,0x31,0x3f,0xf9,0x4f,0x93,0xac,0x87,0xd6,0x30,0x36,0xb3,0x24,0xb7,0x16,0x45,0xc2,0x80,0x5c,0x27,0xcd,0xad,0x2f,0x91,0x7c,0x9f,0x55,0xf8,0x53,0x47,0x2e,0xcf,0xaa,0x12,0x67,0xdc,0x26,0xff,0x75,0x66,0x50,0x6,0x19,0x74,0xd2,0x2a,0x10,0x96,0x88,0xa9,0xf1,0xd5,0x32,0xb4,0x9b,0x11,0x4b,0xe9,0xed,0x5,0x98,0xaf,0xbe,0x1e,0xd0,0x7a,0x35,0x20,0x58,0x4e,0x9c,0x76,0x46,0x22,0xa2,0xa7,0x77,0x92,0x3a,0x68,0xc4,0x56,0x5e,0xf4,0xec,0xfd,0x1c,0xa0,0x33,0x21,0x18,0xf,0x65,0xdb,0xb8,0x41,0x2,0xeb,0x23,0x6b,0x38,0x70,0xb1,0x90,0x6f,0x28,0xcc,0x6a,0xc7,0xe5,0x3d,0x73,0x51,0x9a,0xc3,0x14,0x3e,0xdd,0xf0,0x71,0xf5,0x29,0xb2,0xa3,0x54,0x62,0xe7,0x95,0xfb,0xa5,0x15,0xe8,0xf2,0x84,0x9d,0x6d,0xe4,0xbd,0xfa,0xe2,0x61,0x49,0x1d,0xc5,0x2b,0x7f,0x34,0x72,0x8a,0x42,0xc,0x1a,0xc9,0xc1,0x37,0xf6,0xf7,0xa1,0x94,0x63,0x8,0xda,0x60,0xba,0xc8,0x4,0xc6,0x52,0x59,0x42,0x2e,0x8d,0xba,0x57,0xeb,0x10,0x6d,0x51,0x5f,0x21,0x97,0xc2,0xfd,0xb8,0xe9,0x2,0xed,0xe1,0xc0,0xae,0xa4,0xc8,0x33,0x80,0x8f,0x2a,0xe7,0x43,0xb1,0x52,0x9d,0x3b,0xf1,0x3d,0x96,0x40,0x29,0xc4,0xa1,0x9,0x7c,0x48,0xb2,0x1b,0x91,0x3e,0x8,0x58,0x5e,0x4a,0xdd,0x78,0xd9,0xac,0x2b,0x32,0xee,0xa3,0x49,0x41,0xc3,0x12,0xff,0x63,0xca,0x23,0x7,0x26,0xb7,0xf7,0xe3,0x24,0x2d,0xe5,0xde,0xa5,0xef,0x81,0x34,0xf9,0x35,0xa0,0x67,0x15,0x0,0x92,0xf0,0xa,0x84,0x17,0x88,0x16,0xd5,0x31,0xd1,0xec,0xc5,0xb9,0x64,0x22,0x13,0x75,0x39,0xe0,0x79,0x7d,0xd7,0x71,0x6e,0x65,0x69,0x8e,0xb6,0x60,0xd2,0xbf,0xc6,0xb0,0xbd,0xe8,0x4b,0x55,0xe2,0xd8,0x90,0xdb,0x6f,0xdc,0x47,0x3a,0xcd,0x89,0xc,0x95,0xfb,0x7b,0xcb,0x9c,0x86,0xf3,0xea,0x8a,0x3,0xa2,0x46,0xa9,0x4,0x53,0x8b,0x3f,0x1d,0xad,0xf4,0x50,0x7a,0x9e,0xb3,0x9b,0x1f,0x59,0xaf,0x99,0x98,0xfa,0xcf,0x66,0xd,0xe,0xb4,0xa6,0xd4,0xa8,0x6a,0x37,0x3c,0x94,0xd3,0xf,0x8c,0x73,0x27,0x45,0xab,0x5a,0x11,0xe4,0x1c,0x62,0x2c,0xa7,0x74,0x83,0x87,0xf6,0x6b,0xd0,0xc1,0xbe,0x70,0x5b,0x14,0x36,0x4e,0xf2,0x20,0x28,0x18,0x77,0x68,0xbc,0x1a,0x7e,0x44,0xe6,0xf8,0x9f,0xc7,0x5c,0xbb,0xf5,0xda,0x25,0x7f,0x76,0x4f,0xb,0x61,0xd6,0xb5,0x6c,0x2f,0x4d,0x85,0x56,0x5,0xdf,0x1e,0x1,0xfe,0xcc,0x4c,0x19,0xc9,0x54,0xfc,0xaa,0x6,0x30,0x38,0x82,0x9a,0x72,0x93,0x5d,0xce,0x43,0x72,0x14,0x58,0x8d,0xa4,0xd8,0x5,0x10,0xf,0x4,0x8,0x81,0x18,0x1c,0xb6,0xde,0xa7,0xd1,0xdc,0xef,0xd7,0x1,0xb3,0xb9,0xf1,0xba,0xe,0x89,0x2a,0x34,0x83,0x47,0xd6,0x96,0x82,0x2,0xab,0x42,0x66,0xc4,0x8e,0xe0,0x55,0x45,0x4c,0x84,0xbf,0x74,0x61,0xf3,0x91,0x98,0x54,0xc1,0x6,0x77,0xb4,0x50,0xb0,0x6b,0xe5,0x76,0xe9,0x21,0x48,0xa5,0xc0,0x5a,0x90,0x5c,0xf7,0x7a,0xf0,0x5f,0x69,0x68,0x1d,0x29,0xd3,0x19,0xb8,0xcd,0x4a,0x39,0x3f,0x2b,0xbc,0x20,0xa2,0x73,0x9e,0x53,0x8f,0xc2,0x28,0x36,0x8a,0x71,0xc,0x23,0x4f,0xec,0xdb,0xa3,0x9c,0xd9,0x88,0x30,0x3e,0x40,0xf6,0xcf,0xc5,0xa9,0x52,0x63,0x8c,0x80,0xa1,0x22,0xd0,0x33,0xfc,0xe1,0xee,0x4b,0x86,0xb7,0xd4,0xd,0x4e,0x17,0x2e,0x6a,0x0,0xbe,0x7f,0x60,0x9f,0x2c,0xe4,0x37,0x64,0x35,0x9d,0xcb,0x67,0xad,0x2d,0x78,0xa8,0x13,0xf2,0x3c,0xaf,0x51,0x59,0xe3,0xfb,0xb1,0xa0,0xdf,0x11,0xe2,0xe6,0x97,0xa,0x93,0x41,0x49,0x79,0x3a,0x75,0x57,0x2f,0x1f,0x25,0x87,0x99,0x16,0x9,0xdd,0x7b,0x94,0xbb,0x44,0x1e,0xfe,0xa6,0x3d,0xda,0x9b,0xae,0x7,0x6c,0x38,0xce,0xf8,0xf9,0xc9,0xb,0x56,0x5d,0x6f,0xd5,0xc7,0xb5,0x12,0x46,0x24,0xca,0xf5,0xb2,0x6e,0xed,0x3,0x4d,0xc6,0x15,0x3b,0x70,0x85,0x7d,0xe8,0x6d,0xf4,0x9a,0xbd,0x26,0x5b,0xac,0x92,0x8b,0xeb,0x62,0x1a,0xaa,0xfd,0xe7,0x32,0xea,0x5e,0x7c,0xc3,0x27,0xc8,0x65,0xff,0xd2,0xfa,0x7e,0xcc,0x95,0x31,0x1b,0x88,0x17,0x84,0xa,0xd1,0x31,0xd5,0x16,0x67,0xa0,0x35,0xf9,0xf0,0x92,0x0,0x15,0xde,0xe5,0x2d,0x24,0x34,0x81,0xef,0xa5,0x7,0x23,0xca,0x63,0xe3,0xf7,0xb7,0x26,0xe2,0x55,0x4b,0xe8,0x6f,0xdb,0x90,0xd8,0xd2,0x60,0xb6,0x8e,0xbd,0xb0,0xc6,0xbf,0xd7,0x7d,0x79,0xe0,0x69,0x65,0x6e,0x71,0x64,0xb9,0xc5,0xec,0x39,0x75,0x13,0x22,0xe7,0x2a,0x8f,0x80,0x9d,0x52,0xb1,0x43,0xc0,0xe1,0xed,0x2,0x33,0xc8,0xa4,0xae,0x97,0x21,0x5f,0x51,0xe9,0xb8,0xfd,0xc2,0xba,0x8d,0x2e,0x42,0x6d,0x10,0xeb,0x57,0x49,0xa3,0xee,0x32,0xff,0x12,0xc3,0x41,0xdd,0x4a,0x5e,0x58,0x2b,0xac,0xd9,0x78,0xb2,0x48,0x7c,0x9,0x8,0x3e,0x91,0x1b,0x96,0x3d,0xf1,0x3b,0xa1,0xc4,0x29,0x40,0xbb,0x5c,0xc7,0x9f,0x7f,0x25,0xda,0xf5,0x1a,0xbc,0x68,0x77,0xf8,0xe6,0x44,0x7e,0x4e,0x36,0x14,0x5b,0x18,0x28,0x20,0xf2,0x6b,0xf6,0x87,0x83,0x70,0xbe,0xc1,0xd0,0x9a,0x82,0x38,0x30,0xce,0x5d,0x93,0x72,0xc9,0x19,0x4c,0xcc,0x6,0xaa,0xfc,0x54,0x5,0x56,0x85,0x4d,0xfe,0x1,0x1e,0xdf,0x61,0xb,0x4f,0x76,0x2f,0x6c,0xb5,0xd6,0x7a,0x50,0xf4,0xad,0x1f,0x9b,0xb3,0x9e,0x4,0xa9,0x46,0xa2,0x1d,0x3f,0x8b,0x53,0x86,0x9c,0xcb,0x7b,0x3,0x8a,0xea,0xf3,0xcd,0x3a,0x47,0xdc,0xfb,0x95,0xc,0x89,0x1c,0xe4,0x11,0x5a,0x74,0xa7,0x2c,0x62,0x8c,0xf,0xd3,0x94,0xab,0x45,0x27,0x73,0xd4,0xa6,0xb4,0xe,0x3c,0x37,0x6a,0xa8,0x98,0x99,0xaf,0x59,0xd,0x66,0xcf,0xfa,0xce,0x57,0x53,0xf9,0x5f,0x40,0x4b,0x47,0xc2,0xeb,0x97,0x4a,0xc,0x3d,0x5b,0x17,0xc6,0x65,0x7b,0xcc,0xf6,0xbe,0xf5,0x41,0xa0,0x98,0x4e,0xfc,0x91,0xe8,0x9e,0x93,0xa,0x3,0xcb,0xf0,0x8b,0xc1,0xaf,0x1a,0x4d,0xe4,0xd,0x29,0x8,0x99,0xd9,0xcd,0x24,0xaa,0x39,0xa6,0x38,0xfb,0x1f,0xff,0xd7,0x1b,0x8e,0x49,0x3b,0x2e,0xbc,0xde,0x27,0x52,0x66,0x9c,0x35,0xbf,0x10,0x26,0x15,0xdf,0x13,0xb8,0x6e,0x7,0xea,0x8f,0x1c,0xc0,0x8d,0x67,0x6f,0xed,0x3c,0xd1,0x76,0x70,0x64,0xf3,0x56,0xf7,0x82,0x5,0x7f,0x71,0xf,0xb9,0xec,0xd3,0x96,0xc7,0x6c,0x0,0xa3,0x94,0x79,0xc5,0x3e,0x43,0xae,0xa1,0x4,0xc9,0x6d,0x9f,0x7c,0xb3,0x2c,0xc3,0xcf,0xee,0x80,0x8a,0xe6,0x1d,0x63,0xab,0x78,0x2b,0xf1,0x30,0x2f,0xd0,0x58,0x61,0x25,0x4f,0xf8,0x9b,0x42,0x1,0x1e,0x16,0xac,0xb4,0x5c,0xbd,0x73,0xe0,0xe2,0x62,0x37,0xe7,0x7a,0xd2,0x84,0x28,0x75,0x3a,0x18,0x60,0xdc,0xe,0x6,0x36,0xad,0xa9,0xd8,0x45,0xfe,0xef,0x90,0x5e,0xb1,0xe9,0x72,0x95,0xdb,0xf4,0xb,0x51,0x59,0x46,0x92,0x34,0x50,0x6a,0xc8,0xd6,0x20,0x9a,0x88,0xfa,0x86,0x44,0x19,0x12,0x77,0x81,0xb7,0xb6,0xd4,0xe1,0x48,0x23,0x74,0x3f,0xca,0x32,0x4c,0x2,0x89,0x5a,0xba,0xfd,0x21,0xa2,0x5d,0x9,0x6b,0x85,0x55,0xe5,0xb2,0xa8,0xdd,0xc4,0xa4,0x2d,0xf2,0x69,0x14,0xe3,0xa7,0x22,0xbb,0xd5,0x83,0xda,0x7e,0x54,0xb0,0x9d,0xb5,0x31,0x8c,0x68,0x87,0x2a,0x7d,0xa5,0x11,0x33,0xc,0x6f,0x96,0xd5,0xf6,0xcf,0xd8,0xb2,0xa7,0x66,0x47,0xb8,0x3c,0xf4,0xbc,0xef,0x45,0xed,0xbf,0x13,0xf5,0x75,0x70,0xa0,0x2a,0xcb,0x77,0xe4,0x81,0x89,0x23,0x3b,0x78,0x69,0xc9,0x7,0x3e,0x3a,0xd2,0x4f,0x99,0x4b,0xa1,0x91,0xad,0xe2,0xf7,0x8f,0xfd,0xc7,0x41,0x5f,0xd1,0xce,0xa3,0x5,0x63,0x4c,0xc6,0x9c,0x7e,0x26,0x2,0xe5,0x76,0x43,0xb4,0xdf,0x16,0xe0,0x21,0x20,0xd3,0x11,0x85,0x8e,0xd,0xb7,0x6d,0x1f,0x9e,0xca,0x12,0xfc,0x6a,0x2d,0x35,0xb6,0x95,0xdb,0xcd,0x1e,0xa8,0xe3,0xa5,0x5d,0xb5,0x30,0x42,0x2c,0xfe,0x65,0x74,0x83,0x53,0x4a,0xba,0x33,0x72,0xc2,0x3f,0x25,0x32,0xea,0xa4,0x86,0xff,0x1b,0xbd,0x10,0xa,0x27,0xa6,0x22,0x4d,0x14,0xc3,0xe9,0xaa,0x9b,0x80,0xcc,0x7c,0x55,0xdd,0x0,0xd7,0xc8,0xd0,0xdc,0xc0,0x59,0x6e,0xc4,0x7f,0x6,0x4,0x9,0xf,0x37,0x6b,0xd9,0x29,0x61,0xd6,0x62,0xf2,0x51,0x5b,0xec,0xe,0x9f,0x5a,0x4e,0x73,0xda,0xbe,0x9a,0x56,0x1c,0x8d,0x38,0x94,0x9d,0x67,0x5c,0xb9,0xac,0x49,0x2b,0x8c,0x40,0xde,0x19,0x6c,0xaf,0x68,0x88,0x3d,0xb3,0x31,0xae,0x90,0xf9,0x18,0x7d,0x48,0x82,0x2f,0x84,0x28,0xa2,0xb1,0x87,0xc5,0xb0,0xb,0xf1,0x60,0xc1,0x92,0x15,0xe7,0xe1,0x64,0xf3,0x7a,0xf8,0x46,0xab,0x57,0x8b,0xf0,0x1a,0x52,0xee,0xd4,0xa9,0x97,0xfb,0x3,0x34,0x44,0x7b,0x50,0x1,0xe6,0xe8,0x2e,0x98,0x1d,0x17,0x8a,0x71,0x54,0xbb,0x79,0x58,0x8,0xfa,0x24,0xeb,0x36,0x39,0x5e,0x93,0x1,0x52,0x1a,0xd2,0x56,0xa9,0x88,0x49,0x5c,0x36,0x21,0x18,0x3b,0x78,0x81,0xe2,0xd5,0xcd,0x67,0x6f,0xa,0x99,0x25,0xc4,0x4e,0x9e,0x9b,0x1b,0xfd,0x51,0x3,0xab,0x61,0x19,0xc,0x43,0x7f,0x4f,0xa5,0x77,0xa1,0x3c,0xd4,0xd0,0xe9,0x27,0x87,0x96,0xb,0xec,0xc8,0x90,0x72,0x28,0xa2,0x8d,0xeb,0x4d,0x20,0x3f,0xb1,0xaf,0x29,0x13,0xf1,0x83,0x59,0xe3,0x60,0x6b,0xff,0x3d,0xce,0xcf,0xe,0xf8,0x31,0x5a,0xad,0x98,0xb3,0x4b,0xd,0x46,0xf0,0x23,0x35,0x7b,0x58,0xdb,0xc3,0x84,0x12,0xfc,0x24,0x70,0xcb,0xd1,0x2c,0x9c,0xdd,0x54,0xa4,0xbd,0x6d,0x9a,0x8b,0x10,0xc2,0xac,0xde,0x5b,0x7,0x2d,0xfa,0xa3,0xcc,0x48,0xc9,0xe4,0xfe,0x53,0xf5,0x11,0x68,0x4a,0x4,0xdc,0x2a,0x80,0xb7,0x2e,0x32,0x3e,0x26,0x39,0xee,0x33,0xbb,0x92,0x22,0x6e,0x75,0x44,0x2,0xb5,0xbf,0x1c,0x8c,0x38,0x8f,0xc7,0x37,0x85,0xd9,0xe1,0xe7,0xea,0xe8,0x91,0xb2,0x89,0x73,0x7a,0xd6,0x63,0xf2,0xb8,0x74,0x50,0x34,0x9d,0xa0,0xb4,0x71,0xe0,0x40,0xdf,0x5d,0xd3,0x66,0x86,0x41,0x82,0xf7,0x30,0xae,0x62,0xc5,0xa7,0x42,0x57,0x1f,0xe5,0x5e,0x2b,0x69,0x5f,0x4c,0xc6,0x6a,0xc1,0x6c,0xa6,0x93,0xf6,0x17,0x7e,0xf4,0x1e,0x65,0xb9,0x45,0xa8,0x16,0x94,0x1d,0x8a,0xf,0x9,0xfb,0x7c,0x2f,0x8e,0x76,0xc0,0x6,0x8,0xef,0xbe,0x95,0xaa,0xda,0xed,0x15,0x79,0x47,0x3a,0x0,0xbc,0x7d,0xb0,0xd7,0xd8,0x5,0xca,0x14,0xe6,0xb6,0x97,0x55,0xba,0x9f,0x64,0xf9,0xf3,0x52,0x53,0x65,0x93,0xc7,0xac,0x5,0x30,0x1e,0x6c,0x7e,0xc4,0xf6,0xfd,0xa0,0x62,0x46,0xc5,0x19,0x5e,0x61,0x8f,0xed,0xb9,0xd6,0x2e,0xdb,0x90,0xbe,0x6d,0xe6,0xa8,0x7,0xf0,0x8d,0x16,0x31,0x5f,0xc6,0x43,0x4c,0x56,0x1,0xb1,0xc9,0x40,0x20,0x39,0xce,0x63,0x8c,0x68,0xd7,0xf5,0x41,0x99,0xb0,0x9a,0x3e,0x67,0xd5,0x51,0x79,0x54,0xab,0xc1,0x85,0xbc,0xe5,0xa6,0x7f,0x1c,0xcf,0x9c,0x4f,0x87,0x34,0xcb,0xd4,0x15,0x3,0xd3,0x86,0x6,0xcc,0x60,0x36,0x9e,0x50,0x48,0xf2,0xfa,0x4,0x97,0x59,0xb8,0xa1,0x3c,0x4d,0x49,0xba,0x74,0xb,0x1a,0x84,0xfc,0xde,0x91,0xd2,0xe2,0xea,0x38,0xd0,0x76,0xa2,0xbd,0x32,0x2c,0x8e,0xb4,0x71,0x96,0xd,0x55,0xb5,0xef,0x10,0x3f,0x5c,0xf7,0x3b,0xf1,0x6b,0xe,0xe3,0x8a,0x78,0x82,0xb6,0xc3,0xc2,0xf4,0x5b,0xd1,0x17,0x80,0x94,0x92,0xe1,0x66,0x13,0xb2,0x83,0x69,0x24,0xf8,0x35,0xd8,0x9,0x8b,0x70,0x47,0xe4,0x88,0xa7,0xda,0x21,0x9d,0x5d,0xeb,0x95,0x9b,0x23,0x72,0x37,0x8,0xa,0x2b,0x27,0xc8,0xf9,0x2,0x6e,0x64,0x2d,0xe0,0x45,0x4a,0x57,0x98,0x7b,0x89,0xae,0x73,0xf,0x26,0xf3,0xbf,0xd9,0xe8,0x1d,0xb7,0xb3,0x2a,0xa3,0xaf,0xa4,0xbb,0x18,0xaa,0x7c,0x44,0x77,0x7a,0xc,0x75,0x28,0x9f,0x81,0x22,0xa5,0x11,0x5a,0x12,0xcd,0xe9,0x0,0xa9,0x29,0x3d,0x7d,0xec,0x14,0x2f,0xe7,0xee,0xfe,0x4b,0x25,0x6f,0xad,0x6a,0xff,0x33,0x3a,0x58,0xca,0xdf,0x42,0xdd,0x4e,0xc0,0x1b,0xfb,0x1f,0xdc,0xab,0x6,0xe9,0xd,0xb2,0x90,0x24,0xfc,0xd5,0xff,0x5b,0x2,0xb0,0x34,0x1c,0x31,0x62,0x95,0xe8,0x73,0x54,0x3a,0xa3,0x26,0x29,0x33,0x64,0xd4,0xac,0x25,0x45,0x5c,0x23,0xa0,0x7c,0x3b,0x4,0xea,0x88,0xdc,0xb3,0x4b,0xbe,0xf5,0xdb,0x8,0x83,0xcd,0x37,0x36,0x0,0xf6,0xa2,0xc9,0x60,0x55,0x7b,0x9,0x1b,0xa1,0x93,0x98,0xc5,0x7,0xb5,0x13,0xc7,0xd8,0x57,0x49,0xeb,0xd1,0x14,0xf3,0x68,0x30,0xd0,0x8a,0x75,0x5a,0xc4,0x59,0x28,0x2c,0xdf,0x11,0x6e,0x7f,0xe1,0x99,0xbb,0xf4,0xb7,0x87,0x8f,0x5d,0x66,0xb6,0xe3,0x63,0xa9,0x5,0x53,0xfb,0x35,0x2d,0x97,0x9f,0x61,0xf2,0x3c,0xdd,0xce,0xa4,0xe0,0xd9,0x80,0xc3,0x1a,0x79,0xaa,0xf9,0x2a,0xe2,0x51,0xae,0xb1,0x70,0x6f,0x4e,0x42,0xad,0x9c,0x67,0xb,0x1,0x48,0x85,0x20,0x2f,0x32,0xfd,0x1e,0xec,0x15,0x22,0x81,0xed,0xc2,0xbf,0x44,0xf8,0x38,0x8e,0xf0,0xfe,0x46,0x17,0x52,0x6d,0x72,0xe5,0xf1,0xf7,0x84,0x3,0x76,0xd7,0xe6,0xc,0x41,0x9d,0x50,0xbd,0x6c,0xee,0x39,0x92,0x5e,0x94,0xe,0x6b,0x86,0xef,0x1d,0xe7,0xd3,0xa6,0xa7,0x91,0x3e,0xb4,0xc8,0xf,0x9a,0x56,0x5f,0x3d,0xaf,0xba,0x27,0xb8,0x2b,0xa5,0x7e,0x9e,0x7a,0xb9,0xa8,0x8c,0x65,0xcc,0x4c,0x58,0x18,0x89,0x71,0x4a,0x82,0x8b,0x9b,0x2e,0x40,0xa,0x7d,0xcf,0x19,0x21,0x12,0x1f,0x69,0x10,0x4d,0xfa,0xe4,0x47,0xc0,0x74,0x3f,0x77,0xcb,0x16,0x6a,0x43,0x96,0xda,0xbc,0x8d,0x78,0xd2,0xd6,0x4f,0xc6,0xca,0xc1,0xde,0xe8,0xd3,0x1b,0x12,0x2,0xb7,0xd9,0x93,0x31,0x15,0xfc,0x55,0xd5,0xc1,0x81,0x10,0xbe,0x21,0xb2,0x3c,0xe7,0x7,0xe3,0x20,0x51,0x96,0x3,0xcf,0xc6,0xa4,0x36,0x23,0xe1,0x4b,0x4f,0xd6,0x5f,0x53,0x58,0x47,0x52,0x8f,0xf3,0xda,0xf,0x43,0x25,0x14,0xd4,0x63,0x7d,0xde,0x59,0xed,0xa6,0xee,0xe4,0x56,0x80,0xb8,0x8b,0x86,0xf0,0x89,0xa1,0x17,0x69,0x67,0xdf,0x8e,0xcb,0xf4,0x8c,0xbb,0x18,0x74,0x5b,0x26,0xdd,0x61,0xd1,0x1c,0xb9,0xb6,0xab,0x64,0x87,0x75,0xf6,0xd7,0xdb,0x34,0x5,0xfe,0x92,0x98,0x84,0x7e,0x4a,0x3f,0x3e,0x8,0xa7,0x2d,0xa0,0xb,0xc7,0xd,0x97,0xf2,0x1f,0x76,0x7f,0x95,0xd8,0x4,0xc9,0x24,0xf5,0x77,0xeb,0x7c,0x68,0x6e,0x1d,0x9a,0xef,0x4e,0x78,0x0,0x22,0x6d,0x2e,0x1e,0x16,0xc4,0x5d,0xc0,0xb1,0xb5,0x46,0x88,0xf7,0xe6,0x8d,0x6a,0xf1,0xa9,0x49,0x13,0xec,0xc3,0x2c,0x8a,0x5e,0x41,0xce,0xd0,0x72,0x48,0x33,0x60,0xb3,0x7b,0xc8,0x37,0x28,0xe9,0x57,0x3d,0x79,0x40,0x19,0x5a,0x83,0xe0,0xac,0xb4,0xe,0x6,0xf8,0x6b,0xa5,0x44,0xff,0x2f,0x7a,0xfa,0x30,0x9c,0xca,0x62,0xb0,0xaa,0xfd,0x4d,0x35,0xbc,0xdc,0xc5,0xfb,0xc,0x71,0xea,0xcd,0xa3,0x3a,0xbf,0x4c,0x66,0xc2,0x9b,0x29,0xad,0x85,0xa8,0x32,0x9f,0x70,0x94,0x2b,0x9,0xbd,0x65,0xe2,0x90,0x82,0x38,0xa,0x1,0x5c,0x9e,0xae,0xaf,0x99,0x6f,0x3b,0x50,0xf9,0xcc,0x2a,0xd2,0x27,0x6c,0x42,0x91,0x1a,0x54,0xba,0x39,0xe5,0xa2,0x9d,0x73,0x11,0x45,0xd8,0x96,0x1d,0xce,0xe0,0xab,0x5e,0xa6,0xc9,0x9d,0xff,0x11,0x2e,0x69,0xb5,0x36,0x12,0xd0,0x8d,0x86,0xb4,0xe,0x1c,0x6e,0x40,0x75,0xdc,0xb7,0xe3,0x15,0x23,0x22,0x24,0x9,0x21,0xa5,0x17,0x4e,0xea,0xc0,0xe9,0x31,0x85,0xa7,0x18,0xfc,0x13,0xbe,0x49,0x50,0x30,0xb9,0xc1,0x71,0x26,0x3c,0x33,0xb6,0x2f,0x41,0x66,0xfd,0x80,0x77,0xc8,0x29,0xe7,0x74,0x8a,0x82,0x38,0x20,0xee,0x46,0x10,0xbc,0x76,0xf6,0xa3,0x73,0x65,0xa4,0xbb,0x44,0xf7,0x3f,0xec,0xbf,0x6c,0xf,0xd6,0x95,0xcc,0xf5,0xb1,0xdb,0x4f,0x60,0x9f,0xc5,0x25,0x7d,0xe6,0x1,0xc4,0xfe,0x5c,0x42,0xcd,0xd2,0x6,0xa0,0x48,0x9a,0x92,0xa2,0xe1,0xae,0x8c,0xf4,0x6a,0x7b,0x4,0xca,0x39,0x3d,0x4c,0xd1,0xfb,0x79,0xa8,0x45,0x88,0x54,0x19,0xf3,0xc2,0x63,0x16,0x91,0xe2,0xe4,0xf0,0x67,0xa1,0x2b,0x84,0xb2,0xb3,0xc6,0xf2,0x8,0xfa,0x93,0x7e,0x1b,0x81,0x4b,0x87,0x2c,0xf9,0xb,0xe8,0x27,0x3a,0x35,0x90,0x5d,0x14,0x1e,0x72,0x89,0xb8,0x57,0x5b,0x7a,0x78,0x47,0x2,0x53,0xeb,0xe5,0x9b,0x2d,0xed,0x51,0xaa,0xd7,0xf8,0x94,0x37,0x0,0x62,0x2a,0x61,0xd5,0x52,0xf1,0xef,0x58,0x5,0x7c,0xa,0x7,0x34,0xc,0xda,0x68,0xcb,0xd4,0xdf,0xd3,0x5a,0xc3,0xc7,0x6d,0x98,0xa9,0xcf,0x83,0x56,0x7f,0x3,0xde,0xac,0x6f,0x8b,0x6b,0xb0,0x3e,0xad,0x32,0xaf,0xba,0x28,0x4a,0x43,0x8f,0x1a,0xdd,0x1f,0x55,0x3b,0x8e,0x9e,0x97,0x5f,0x64,0x9c,0xd,0x4d,0x59,0xd9,0x70,0x99,0xbd,0x26,0x7c,0xf6,0xd9,0x5f,0xb8,0x9c,0xc4,0xe5,0xfb,0x7d,0x47,0xbf,0x19,0x74,0x6b,0x2b,0x1b,0xf1,0x23,0x35,0x4d,0x58,0x17,0xbd,0x73,0xd3,0xc2,0xf5,0x68,0x80,0x84,0x5e,0xcd,0x71,0x90,0x81,0x99,0x33,0x3b,0xa9,0x5,0x57,0xff,0x1a,0xca,0xcf,0x4f,0x2,0xfd,0xdc,0x1d,0x55,0x6,0x4e,0x86,0x6f,0x2c,0xd5,0xb6,0x8,0x62,0x75,0x4c,0x98,0x1c,0x9d,0xb0,0x53,0x79,0xae,0xf7,0x3c,0x1e,0x50,0x88,0xaa,0x7,0xa1,0x45,0x89,0x0,0xf0,0xe9,0x9f,0x85,0x78,0xc8,0x96,0xf8,0x8a,0xf,0x39,0xce,0xdf,0x44,0xa4,0x77,0x61,0x2f,0xe7,0x1f,0x59,0x12,0x46,0xa8,0x70,0x24,0xc,0x8f,0x97,0xd0,0x34,0x3f,0xab,0x69,0xa5,0xd7,0xd,0xb7,0x65,0xe,0xf9,0xcc,0x9a,0x9b,0x5a,0xac,0x32,0xd2,0x15,0xd6,0x14,0x8b,0x9,0x87,0x91,0xf3,0x16,0x3,0xa3,0x64,0xfa,0x36,0x82,0x37,0xa6,0xec,0xe6,0xdd,0x27,0x2e,0xf4,0xe0,0x25,0xb4,0x20,0x4,0x60,0xc9,0xd8,0x6c,0xdb,0x93,0x56,0xe1,0xeb,0x48,0xb3,0xbe,0xbc,0xc5,0x63,0xd1,0x8d,0xb5,0x66,0x6a,0x72,0x6d,0x7e,0xd4,0xe3,0x7a,0x76,0x3a,0x21,0x10,0xba,0x67,0xef,0xc6,0x51,0x9e,0x40,0xb2,0x29,0xe4,0x83,0x8c,0xcb,0x30,0xad,0xa7,0xe2,0xc3,0x1,0xee,0xbb,0xea,0xc1,0xfe,0x22,0x94,0x52,0x5c,0x13,0x6e,0x54,0xe8,0x8e,0xb9,0x41,0x2d,0x11,0xfc,0x42,0xc0,0xa0,0x4a,0x31,0xed,0xaf,0x28,0x7b,0xda,0x49,0xde,0x5b,0x5d,0x3d,0xb,0x18,0x92,0x4b,0xb1,0xa,0x7f,0xc7,0xa2,0x43,0x2a,0x3e,0x95,0x38,0xf2,0xe9,0xe1,0x5b,0x43,0xab,0x4a,0x84,0x17,0x15,0x95,0xc0,0x10,0x8d,0x25,0x73,0xdf,0x94,0x5c,0x8f,0xdc,0x6,0xc7,0xd8,0x27,0xaf,0x96,0xd2,0xb8,0xf,0x6c,0xb5,0xf6,0x46,0x1e,0x85,0x62,0x2c,0x3,0xfc,0xa6,0xae,0xb1,0x65,0xc3,0xa7,0x9d,0x3f,0x21,0x82,0xcd,0xef,0x97,0x2b,0xf9,0xf1,0xc1,0x5a,0x5e,0x2f,0xb2,0x9,0x18,0x67,0xa9,0x83,0xc8,0x3d,0xc5,0xbb,0xf5,0x7e,0xad,0x4d,0xa,0xd6,0x55,0xaa,0xfe,0x9c,0x72,0xd7,0x6d,0x7f,0xd,0x71,0xb3,0xee,0xe5,0x80,0x76,0x40,0x41,0x23,0x16,0xbf,0xd4,0x74,0x2d,0x89,0xa3,0x47,0x6a,0x42,0xc6,0x7b,0x9f,0x70,0xdd,0x8a,0x52,0xe6,0xc4,0xa2,0x12,0x45,0x5f,0x2a,0x33,0x53,0xda,0x5,0x9e,0xe3,0x14,0x50,0xd5,0x4c,0x22,0x31,0x92,0x8c,0x3b,0x1,0x49,0x2,0xb6,0x57,0x6f,0xb9,0xb,0x66,0x1f,0x69,0x64,0x39,0xa0,0xa4,0xe,0xa8,0xb7,0xbc,0xb0,0x35,0x1c,0x60,0xbd,0xfb,0xca,0xac,0xe0,0xd3,0x5d,0xce,0x51,0xcf,0xc,0xe8,0x8,0x20,0xec,0x79,0xbe,0xcc,0xd9,0x4b,0x29,0xfd,0xf4,0x3c,0x7,0x7c,0x36,0x58,0xed,0xba,0x13,0xfa,0xde,0xff,0x6e,0x2e,0x3a,0xeb,0x37,0x7a,0x90,0x98,0x1a,0xcb,0x26,0x81,0x87,0x93,0x4,0xa1,0x0,0x75,0xf2,0xd0,0xa5,0x91,0x6b,0xc2,0x48,0xe7,0xd1,0xe2,0x28,0xe4,0x4f,0x99,0xf0,0x1d,0x78,0x59,0x56,0xf3,0x3e,0x9a,0x68,0x8b,0x44,0xdb,0x34,0x38,0x19,0x77,0x7d,0x11,0xea,0x88,0x86,0xf8,0x4e,0x1b,0x24,0x61,0x30,0x9b,0xf7,0x54,0x63,0x8e,0x32,0xc9,0xb4,0x41,0xb,0x65,0xd0,0xc0,0xc9,0x1,0x3a,0xc2,0x53,0x13,0x7,0x87,0x2e,0xc7,0xe3,0xf2,0x31,0xd5,0x35,0xee,0x60,0xf3,0x6c,0xf1,0xe4,0x76,0x14,0x1d,0xd1,0x44,0x83,0x95,0x8a,0x81,0x8d,0x4,0x9d,0x99,0x33,0xc6,0xf7,0x91,0xdd,0x8,0x21,0x5d,0x80,0x3c,0x74,0x3f,0x8b,0xc,0xaf,0xb1,0x6,0x5b,0x22,0x54,0x59,0x6a,0x52,0x84,0x36,0x26,0x19,0x5c,0xd,0xb5,0xbb,0xc5,0x73,0xb3,0xf,0xf4,0x89,0xa6,0xca,0x69,0x5e,0xa7,0x55,0xb6,0x79,0x64,0x6b,0xce,0x3,0x4a,0x40,0x2c,0xd7,0xe6,0x9,0x5,0x24,0xff,0x75,0xda,0xec,0xed,0x98,0xac,0x56,0xa4,0xcd,0x20,0x45,0xdf,0x15,0xd9,0x72,0xa5,0x27,0xf6,0x1b,0xd6,0xa,0x47,0xad,0x9c,0x3d,0x48,0xcf,0xbc,0xba,0xae,0x39,0x16,0xc4,0xcc,0xfc,0xbf,0xf0,0xd2,0xaa,0x34,0x25,0x5a,0x94,0x67,0x63,0x12,0x8f,0x11,0x3e,0xc1,0x9b,0x7b,0x23,0xb8,0x5f,0x9a,0xa0,0x2,0x1c,0x93,0x8c,0x58,0xfe,0x3b,0xfa,0xe5,0x1a,0xa9,0x61,0xb2,0xe1,0x32,0x51,0x88,0xcb,0x92,0xab,0xef,0x85,0x96,0x77,0xb9,0x2a,0xd4,0xdc,0x66,0x7e,0xb0,0x18,0x4e,0xe2,0x28,0xa8,0xfd,0x2d,0x17,0xe,0x6e,0xe7,0x9f,0x2f,0x78,0x62,0x6d,0xe8,0x71,0x1f,0x38,0xa3,0xde,0x29,0x7a,0x57,0x7f,0xfb,0x49,0x10,0xb4,0x9e,0xb7,0x6f,0xdb,0xf9,0x46,0xa2,0x4d,0xe0,0x4c,0x8e,0xd3,0xd8,0xea,0x50,0x42,0x30,0x1e,0x2b,0x82,0xe9,0xbd,0x4b,0x7d,0x7c,0x86,0xc8,0x43,0x90,0xbe,0xf5,0x0,0xf8,0x97,0xc3,0xa1,0x4f,0x70,0x37,0xeb,0x68,0xc2,0xab,0x46,0x23,0xb9,0x73,0xbf,0x14,0x99,0x13,0xbc,0x8a,0x8b,0xfe,0xca,0x30,0xfa,0x5b,0x2e,0xa9,0xda,0xdc,0xc8,0x5f,0xc3,0x41,0x90,0x7d,0xb0,0x6c,0x21,0xcb,0xd5,0x69,0x92,0xef,0xc0,0xac,0xf,0x38,0x40,0x7f,0x3a,0x6b,0xd3,0xdd,0xa3,0x15,0x2c,0x26,0x4a,0xb1,0x80,0x6f,0x63,0x42,0xc1,0x33,0xd0,0x1f,0x2,0xd,0xa8,0x65,0xa0,0x91,0xf7,0xbb,0x6e,0x47,0x3b,0xe6,0xf3,0xec,0xe7,0xeb,0x62,0xfb,0xff,0x55,0x3d,0x44,0x32,0x3f,0xc,0x34,0xe2,0x50,0x5a,0x12,0x59,0xed,0x6a,0xc9,0xd7,0x60,0xa4,0x35,0x75,0x61,0xe1,0x48,0xa1,0x85,0x27,0x6d,0x3,0xb6,0xa6,0xaf,0x67,0x5c,0x97,0x82,0x10,0x72,0x7b,0xb7,0x22,0xe5,0x94,0x57,0xb3,0x53,0x88,0x6,0x95,0xa,0x78,0x4d,0xe4,0x8f,0xdb,0x2d,0x1b,0x1a,0x2a,0xe8,0xb5,0xbe,0x8c,0x36,0x24,0x56,0xf1,0xa5,0xc7,0x29,0x16,0x51,0x8d,0xe,0xe0,0xae,0x25,0xf6,0xd8,0x93,0x66,0x9e,0xb,0x8e,0x17,0x79,0x5e,0xc5,0xb8,0x4f,0x71,0x68,0x8,0x81,0xf9,0x49,0x1e,0x4,0xd1,0x9,0xbd,0x9f,0x20,0xc4,0x2b,0x86,0x1c,0x31,0x19,0x9d,0x2f,0x76,0xd2,0xf8,0x54,0x37,0xee,0xad,0xf4,0xcd,0x89,0xe3,0x5d,0x9c,0x83,0x7c,0xcf,0x7,0xd4,0x87,0xd6,0x7e,0x28,0x84,0x4e,0xce,0x9b,0x4b,0xf0,0x11,0xdf,0x4c,0xb2,0xba,0x0,0x18,0x52,0x43,0x3c,0xf2,0x1,0x5,0x74,0xe9,0x70,0xa2,0xaa,0x9a,0xd9,0x96,0xb4,0xcc,0xfc,0xc6,0x64,0x7a,0xf5,0xea,0x3e,0x98,0x77,0x58,0xa7,0xfd,0x1d,0x45,0xde,0x39,0xa3,0xa9,0x34,0xcf,0xea,0x5,0xc7,0xe6,0xb6,0x44,0x9a,0x55,0x88,0x87,0xe0,0x2d,0xec,0x50,0x6a,0x17,0x29,0x45,0xbd,0x8a,0xfa,0xc5,0xee,0xbf,0x58,0x56,0x90,0x26,0xde,0x7f,0x2c,0xab,0x59,0x5f,0xda,0x4d,0xc4,0x46,0xf8,0x15,0xe9,0x35,0x4e,0xa4,0x2e,0x47,0xa6,0xc3,0xf6,0x3c,0x91,0x3a,0x96,0x1c,0xf,0x39,0x7b,0xe,0xb5,0x4f,0x7,0x12,0xf7,0x95,0x32,0xfe,0x60,0xa7,0xd2,0x11,0xd6,0x36,0x83,0xd,0x8f,0x10,0xb0,0x21,0xe4,0xf0,0xcd,0x64,0x0,0x24,0xe8,0xa2,0x33,0x86,0x2a,0x23,0xd9,0xe2,0xc1,0xb8,0xba,0xb7,0xb1,0x89,0xd5,0x67,0x97,0xdf,0x68,0xdc,0x4c,0xef,0xe5,0x52,0x14,0x25,0x3e,0x72,0xc2,0xeb,0x63,0xbe,0x69,0x76,0x6e,0x62,0x7e,0xe7,0xd0,0x7a,0x8c,0x54,0x1a,0x38,0x41,0xa5,0x3,0xae,0xb4,0x99,0x18,0x9c,0xf3,0xaa,0x7d,0x57,0xb,0x8e,0xfc,0x92,0x40,0xdb,0xca,0x3d,0xed,0xf4,0x4,0x8d,0xcc,0x7c,0x81,0x9b,0x20,0x74,0xac,0x42,0xd4,0x93,0x8b,0x8,0x2b,0x65,0x73,0xa0,0x16,0x5d,0x1b,0xe3,0xc8,0xfd,0xa,0x61,0xa8,0x5e,0x9f,0x9e,0x6d,0xaf,0x3b,0x30,0xb3,0x9,0xd3,0xa1,0x43,0x79,0xff,0xe1,0x6f,0x70,0x1d,0xbb,0xdd,0xf2,0x78,0x22,0xc0,0x98,0xbc,0x5b,0xc6,0xd7,0x77,0xb9,0x80,0x84,0x6c,0xf1,0x27,0xf5,0x1f,0x2f,0x13,0x5c,0x49,0x31,0xfb,0x53,0x1,0xad,0x4b,0xcb,0xce,0x1e,0x94,0x75,0xc9,0x5a,0x3f,0x37,0x9d,0x85,0xb2,0xd1,0x28,0x6b,0x48,0x71,0x66,0xc,0x19,0xd8,0xf9,0x6,0x82,0x4a,0x2,0x51,0xe8,0xcc,0x25,0x8c,0xc,0x18,0x58,0xc9,0x31,0xa,0xc2,0xcb,0xdb,0x6e,0x0,0x4a,0x88,0x4f,0xda,0x16,0x1f,0x7d,0xef,0xfa,0x67,0xf8,0x6b,0xe5,0x3e,0xde,0x3a,0xf9,0x8b,0x56,0x2a,0x3,0xd6,0x9a,0xfc,0xcd,0x38,0x92,0x96,0xf,0x86,0x8a,0x81,0x9e,0x3d,0x8f,0x59,0x61,0x52,0x5f,0x29,0x50,0xd,0xba,0xa4,0x7,0x80,0x34,0x7f,0x37,0x55,0x62,0xc1,0xad,0x82,0xff,0x4,0xb8,0x78,0xce,0xb0,0xbe,0x6,0x57,0x12,0x2d,0x2f,0xe,0x2,0xed,0xdc,0x27,0x4b,0x41,0x8,0xc5,0x60,0x6f,0x72,0xbd,0x5e,0xac,0x79,0xd2,0x1e,0xd4,0x4e,0x2b,0xc6,0xaf,0x5d,0xa7,0x93,0xe6,0xe7,0xd1,0x7e,0xf4,0x32,0xa5,0xb1,0xb7,0xc4,0x43,0x36,0x97,0xa6,0x4c,0x1,0xdd,0x10,0xfd,0x2c,0xae,0x84,0x19,0x68,0x6c,0x9f,0x51,0x2e,0x3f,0xa1,0xd9,0xfb,0xb4,0xf7,0xc7,0xcf,0x1d,0xf5,0x53,0x87,0x98,0x17,0x9,0xab,0x91,0x54,0xb3,0x28,0x70,0x90,0xca,0x35,0x1a,0x8e,0xe4,0xa0,0x99,0xc0,0x83,0x5a,0x39,0xea,0xb9,0x6a,0xa2,0x11,0xee,0xf1,0x30,0x26,0xf6,0xa3,0x23,0xe9,0x45,0x13,0xbb,0x75,0x6d,0xd7,0xdf,0x21,0xb2,0x7c,0x9d,0x22,0xd5,0xa8,0x33,0x14,0x7a,0xe3,0x66,0x69,0x73,0x24,0x94,0xec,0x65,0x5,0x1c,0xeb,0x46,0xa9,0x4d,0xf2,0xd0,0x64,0xbc,0x95,0xbf,0x1b,0x42,0xf0,0x74,0x5c,0x71,0x77,0x76,0x40,0xb6,0xe2,0x89,0x20,0x15,0x3b,0x49,0x5b,0xe1,0xd3,0xd8,0x85,0x47,0x63,0xe0,0x3c,0x7b,0x44,0xaa,0xc8,0x9c,0xf3,0xb,0xfe,0xb5,0x9b,0x48,0xc3,0x8d,0x66,0x2e,0x65,0xd1,0x56,0xf5,0xeb,0x5c,0x1,0x78,0xe,0x3,0x30,0x8,0xde,0x6c,0xcf,0xd0,0xdb,0xd7,0x5e,0xc7,0xc3,0x69,0x9c,0xad,0xcb,0x87,0x52,0x7b,0x7,0xda,0xa8,0x6b,0x8f,0x6f,0xb4,0x3a,0xa9,0x36,0xab,0xbe,0x2c,0x4e,0x47,0x8b,0x1e,0xd9,0x1b,0x51,0x3f,0x8a,0x9a,0x93,0x5b,0x60,0x98,0x9,0x49,0x5d,0xdd,0x74,0x9d,0xb9,0xff,0x7d,0xac,0x41,0x8c,0x50,0x1d,0xf7,0xc6,0x67,0x12,0x95,0xe6,0xe0,0xf4,0x63,0xa5,0x2f,0x80,0xb6,0xb7,0xc2,0xf6,0xc,0xfe,0x97,0x7a,0x1f,0x85,0x4f,0x83,0x28,0xfd,0xf,0xec,0x23,0x3e,0x31,0x94,0x59,0x10,0x1a,0x76,0x8d,0xbc,0x53,0x5f,0x7e,0x7c,0x43,0x6,0x57,0xef,0xe1,0x9f,0x29,0xe9,0x55,0xae,0xd3,0xfc,0x90,0x33,0x4,0xcc,0x2d,0xe3,0x70,0x8e,0x86,0x3c,0x24,0xea,0x42,0x14,0xb8,0x72,0xf2,0xa7,0x77,0x61,0xa0,0xbf,0x40,0xf3,0x3b,0xe8,0xbb,0x68,0xb,0xd2,0x91,0xc8,0xf1,0xb5,0xdf,0x4b,0x64,0x9b,0xc1,0x21,0x79,0xe2,0x5,0xc0,0xfa,0x58,0x46,0xc9,0xd6,0x2,0xa4,0x4c,0x9e,0x96,0xa6,0xe5,0xaa,0x88,0xf0,0x6e,0x7f,0x0,0xce,0x3d,0x39,0x48,0xd5,0xdc,0x92,0x19,0xca,0xe4,0xaf,0x5a,0xa2,0xcd,0x99,0xfb,0x15,0x2a,0x6d,0xb1,0x32,0x16,0xd4,0x89,0x82,0xb0,0xa,0x18,0x6a,0x44,0x71,0xd8,0xb3,0xe7,0x11,0x27,0x26,0x20,0xd,0x25,0xa1,0x13,0x4a,0xee,0xc4,0xed,0x35,0x81,0xa3,0x1c,0xf8,0x17,0xba,0x4d,0x54,0x34,0xbd,0xc5,0x75,0x22,0x38,0x37,0xb2,0x2b,0x45,0x62,0xf9,0x84,0x73,0xec,0x24,0x6c,0x3f,0x77,0xb6,0x97,0x68,0x26,0x1f,0x8,0x62,0xdc,0xbf,0x46,0x5,0x51,0x59,0xf3,0xeb,0xfa,0x1b,0xa7,0x34,0x25,0xa5,0xa0,0x70,0x95,0x3d,0x6f,0xc3,0x7d,0x32,0x27,0x5f,0x49,0x9b,0x71,0x41,0xee,0xea,0x2,0x9f,0xa8,0xb9,0x19,0xd7,0xae,0xf6,0xd2,0x35,0xb3,0x9c,0x16,0x4c,0x1,0x1e,0x73,0xd5,0x2d,0x17,0x91,0x8f,0xdd,0x67,0xbd,0xcf,0x3,0xc1,0x55,0x5e,0xc6,0x30,0xf1,0xf0,0xa6,0x93,0x64,0xf,0x78,0x33,0x75,0x8d,0x45,0xb,0x1d,0xce,0xba,0xfd,0xe5,0x66,0x4e,0x1a,0xc2,0x2c,0xa2,0x12,0xef,0xf5,0x83,0x9a,0x6a,0xe3,0x2e,0xb5,0xa4,0x53,0x65,0xe0,0x92,0xfc,0x9d,0xc4,0x13,0x39,0xda,0xf7,0x76,0xf2,0x2f,0xcb,0x6d,0xc0,0xe2,0x3a,0x74,0x56,0x10,0x89,0xbe,0x14,0x7,0x18,0x0,0xc,0xac,0x85,0xd,0xd0,0x7a,0x4b,0x50,0x1c,0x22,0x81,0x8b,0x3c,0xf9,0xb1,0x6,0xb2,0xdf,0xe7,0xbb,0x9,0xaf,0xd6,0xd4,0xd9,0x44,0x4d,0xb7,0x8c,0x86,0xcc,0x5d,0xe8,0xa3,0xa,0x6e,0x4a,0xde,0x4f,0x8a,0x9e,0xed,0x63,0xe1,0x7e,0xbc,0x7f,0xb8,0x58,0x5c,0x90,0xe,0xc9,0x69,0x7c,0x99,0xfb,0x15,0x60,0xdb,0x21,0xf8,0x72,0x61,0x57,0x98,0x52,0xff,0x54,0x40,0x29,0xc8,0xad,0x87,0x5b,0x20,0xca,0xaa,0x28,0x96,0x7b,0x37,0x31,0xb4,0x23,0xb0,0x11,0x42,0xc5,0x36,0x38,0xfe,0x48,0x94,0xab,0x80,0xd1,0x47,0x2b,0xd3,0xe4,0x82,0x3e,0x4,0x79,0xe6,0xe9,0x8e,0x43,0xd8,0x2a,0xf4,0x3b,0x84,0x6b,0xa9,0x88,0xcd,0xc7,0x5a,0xa1,0x42,0x90,0x98,0xa8,0xeb,0xa4,0x86,0xfe,0x60,0x71,0xe,0xc0,0x33,0x37,0x46,0xdb,0x45,0x6a,0x95,0xcf,0x2f,0x77,0xec,0xb,0xce,0xf4,0x56,0x48,0xc7,0xd8,0xc,0xaa,0x6f,0xae,0xb1,0x4e,0xfd,0x35,0xe6,0xb5,0x66,0x5,0xdc,0x9f,0xc6,0xff,0xbb,0xd1,0xc2,0x23,0xed,0x7e,0x80,0x88,0x32,0x2a,0xe4,0x4c,0x1a,0xb6,0x7c,0xfc,0xa9,0x79,0x43,0x5a,0x3a,0xb3,0xcb,0x7b,0x2c,0x36,0x39,0xbc,0x25,0x4b,0x6c,0xf7,0x8a,0x7d,0x2e,0x3,0x2b,0xaf,0x1d,0x44,0xe0,0xca,0xe3,0x3b,0x8f,0xad,0x12,0xf6,0x19,0xb4,0x18,0xda,0x87,0x8c,0xbe,0x4,0x16,0x64,0x4a,0x7f,0xd6,0xbd,0xe9,0x1f,0x29,0x28,0xd2,0x9c,0x17,0xc4,0xea,0xa1,0x54,0xac,0xc3,0x97,0xf5,0x1b,0x24,0x63,0xbf,0x3c,0x15,0x5f,0x31,0x84,0x94,0x9d,0x55,0x6e,0x96,0x7,0x47,0x53,0xd3,0x7a,0x93,0xb7,0xa6,0x65,0x81,0x61,0xba,0x34,0xa7,0x38,0xa5,0xb0,0x22,0x40,0x49,0x85,0x10,0xd7,0xc1,0xde,0xd5,0xd9,0x50,0xc9,0xcd,0x67,0x92,0xa3,0xc5,0x89,0x5c,0x75,0x9,0xd4,0x68,0x20,0x6b,0xdf,0x58,0xfb,0xe5,0x52,0xf,0x76,0x0,0xd,0x3e,0x6,0xd0,0x62,0x72,0x4d,0x8,0x59,0xe1,0xef,0x91,0x27,0xe7,0x5b,0xa0,0xdd,0xf2,0x9e,0x3d,0xa,0xf3,0x1,0xe2,0x2d,0x30,0x3f,0x9a,0x57,0x1e,0x14,0x78,0x83,0xb2,0x5d,0x51,0x70,0xab,0x21,0x8e,0xb8,0xb9,0xcc,0xf8,0x2,0xf0,0x99,0x74,0x11,0x8b,0x41,0x8d,0x26,0xf1,0x73,0xa2,0x4f,0x82,0x5e,0x13,0xf9,0xc8,0x69,0x1c,0x9b,0xe8,0xee,0xfa,0x6d,0x66,0x21,0xfd,0x7e,0x81,0xd5,0xb7,0x59,0xa8,0xe3,0x16,0xee,0x90,0xde,0x55,0x86,0xab,0x5d,0x6b,0x6a,0x8,0x3d,0x94,0xff,0xfc,0x46,0x54,0x26,0x5a,0x98,0xc5,0xce,0x50,0xb4,0x5b,0xf6,0xa1,0x79,0xcd,0xef,0x5f,0x6,0xa2,0x88,0x6c,0x41,0x69,0xed,0x2e,0xb5,0xc8,0x3f,0x7b,0xfe,0x67,0x9,0x89,0x39,0x6e,0x74,0x1,0x18,0x78,0xf1,0x3e,0xbe,0xeb,0x3b,0xa6,0xe,0x58,0xf4,0xc2,0xca,0x70,0x68,0x80,0x61,0xaf,0x3c,0x84,0xbd,0xf9,0x93,0x24,0x47,0x9e,0xdd,0xbf,0x77,0xa4,0xf7,0x2d,0xec,0xf3,0xc,0x85,0x9a,0x4e,0xe8,0x8c,0xb6,0x14,0xa,0x6d,0x35,0xae,0x49,0x7,0x28,0xd7,0x8d,0x71,0x75,0x4,0x99,0x22,0x33,0x4c,0x82,0xa9,0xe6,0xc4,0xbc,0x0,0xd2,0xda,0xea,0xaa,0xac,0xb8,0x2f,0x8a,0x2b,0x5e,0xd9,0xc0,0x1c,0x51,0xbb,0xb3,0x31,0xe0,0xd,0xc9,0x3,0xcf,0x64,0xb2,0xdb,0x36,0x53,0xfb,0x8e,0xba,0x40,0xe9,0x63,0xcc,0xfa,0xf0,0x1f,0x13,0x32,0x5c,0x56,0x3a,0xc1,0x72,0x7d,0xd8,0x15,0xb1,0x43,0xa0,0x6f,0xb0,0xdc,0x7f,0x48,0xa5,0x19,0xe2,0x9f,0xa3,0xad,0xd3,0x65,0x30,0xf,0x4a,0x1b,0x7c,0x44,0x92,0x20,0x4d,0x34,0x42,0x4f,0x1a,0xb9,0xa7,0x10,0x2a,0x62,0x29,0x9d,0x1e,0x37,0x4b,0x96,0xd0,0xe1,0x87,0xcb,0x12,0x8b,0x8f,0x25,0x83,0x9c,0x97,0x9b,0xb,0xc7,0x52,0x95,0xe7,0xf2,0x60,0x2,0xf8,0x76,0xe5,0x7a,0xe4,0x27,0xc3,0x23,0x91,0x38,0xd1,0xf5,0xd4,0x45,0x5,0x11,0xd6,0xdf,0x17,0x2c,0x57,0x1d,0x73,0xc6,0xc1,0x99,0xbd,0x5a,0xdc,0xf3,0x79,0x23,0x6e,0x71,0x1c,0xba,0x42,0x78,0xfe,0xe0,0x12,0x5d,0x48,0x30,0x26,0xf4,0x1e,0x2e,0x81,0x85,0x6d,0xf0,0xc7,0xd6,0x76,0xb8,0x3e,0x36,0x9c,0x84,0x95,0x74,0xc8,0x5b,0x4a,0xca,0xcf,0x1f,0xfa,0x52,0x0,0xac,0x83,0x4b,0x3,0x50,0x18,0xd9,0xf8,0x7,0x49,0x70,0x67,0xd,0xb3,0xd0,0x29,0x6a,0xf2,0xab,0x7c,0x56,0xb5,0x98,0x19,0x9d,0x40,0xa4,0x2,0xaf,0x8d,0x55,0x1b,0x39,0xcd,0x7d,0x80,0x9a,0xec,0xf5,0x5,0x8c,0x41,0xda,0xcb,0x3c,0xa,0x8f,0xfd,0x93,0x17,0x5c,0x1a,0xe2,0x2a,0x64,0x72,0xa1,0xd5,0x92,0x8a,0x9,0x21,0x75,0xad,0x43,0xb2,0x8,0xd2,0xa0,0x6c,0xae,0x3a,0x31,0xa9,0x5f,0x9e,0x9f,0xc9,0xfc,0xb,0x60,0x82,0xc,0x8e,0x11,0xd3,0x10,0xd7,0x37,0x33,0xff,0x61,0xa6,0x6,0x13,0xf6,0x94,0x2b,0x22,0xd8,0xe3,0xe9,0xa3,0x32,0x87,0xcc,0x65,0x1,0x25,0xb1,0x20,0xe5,0xf1,0x4d,0xee,0xe4,0x53,0x96,0xde,0x69,0xdd,0xb0,0x88,0xd4,0x66,0xc0,0xb9,0xbb,0xb6,0x7f,0xe6,0xd1,0x7b,0x68,0x77,0x6f,0x63,0xc3,0xea,0x62,0xbf,0x15,0x24,0x3f,0x73,0x89,0x86,0xe1,0x2c,0xb7,0x45,0x9b,0x54,0xeb,0x4,0xc6,0xe7,0xa2,0xa8,0x35,0xce,0x59,0x57,0x91,0x27,0xfb,0xc4,0xef,0xbe,0x28,0x44,0xbc,0x8b,0xed,0x51,0x6b,0x16,0xe8,0x34,0x4f,0xa5,0xc5,0x47,0xf9,0x14,0x58,0x5e,0xdb,0x4c,0xdf,0x7e,0x2d,0xaa,0x7a,0xf,0xb4,0x4e,0x97,0x1d,0xe,0x38,0xf7,0x3d,0x90,0x3b,0x2f,0x46,0xa7,0xc2,0x3,0xab,0xfd,0x51,0x9b,0x1b,0x4e,0x9e,0x25,0xc4,0xa,0x99,0x67,0x6f,0xd5,0xcd,0x81,0xe2,0x3b,0x78,0x21,0x18,0x5c,0x36,0x88,0x49,0x56,0xa9,0x1a,0xd2,0x1,0x52,0x29,0x13,0xb1,0xaf,0x20,0x3f,0xeb,0x4d,0xa2,0x8d,0x72,0x28,0xc8,0x90,0xb,0xec,0x87,0x96,0xe9,0x27,0xd4,0xd0,0xa1,0x3c,0xa5,0x77,0x7f,0x4f,0xc,0x43,0x61,0x19,0x24,0x70,0x12,0xfc,0xc3,0x84,0x58,0xdb,0x35,0x7b,0xf0,0x23,0xd,0x46,0xb3,0x4b,0xad,0x98,0x31,0x5a,0xe,0xf8,0xce,0xcf,0xff,0x3d,0x60,0x6b,0x59,0xe3,0xf1,0x83,0x4,0xdc,0x68,0x4a,0xf5,0x11,0xfe,0x53,0xc9,0xe4,0xcc,0x48,0xfa,0xa3,0x7,0x2d,0xde,0x5b,0xc2,0xac,0x8b,0x10,0x6d,0x9a,0xa4,0xbd,0xdd,0x54,0x2c,0x9c,0xcb,0xd1,0xe8,0x91,0xe7,0xea,0xd9,0xe1,0x37,0x85,0x8f,0xc7,0x8c,0x38,0xbf,0x1c,0x2,0xb5,0x75,0x44,0x22,0x6e,0xbb,0x92,0xee,0x33,0x26,0x39,0x32,0x3e,0xb7,0x2e,0x2a,0x80,0x42,0x57,0xc5,0xa7,0xae,0x62,0xf7,0x30,0x41,0x82,0x66,0x86,0x5d,0xd3,0x40,0xdf,0x71,0xe0,0xa0,0xb4,0x34,0x9d,0x74,0x50,0xf2,0xb8,0xd6,0x63,0x73,0x7a,0xb2,0x89,0x2f,0x8e,0xfb,0x7c,0xf,0x9,0x1d,0x8a,0x16,0x94,0x45,0xa8,0x65,0xb9,0xf4,0x1e,0x17,0x7e,0x93,0xf6,0x6c,0xa6,0x6a,0xc1,0x4c,0xc6,0x69,0x5f,0x5e,0x2b,0x1f,0xe5,0xf9,0xf3,0x9f,0x64,0x55,0xba,0xb6,0x97,0x14,0xe6,0x5,0xca,0xd7,0xd8,0x7d,0xb0,0x0,0xbc,0x47,0x3a,0x15,0x79,0xda,0xed,0x95,0xaa,0xef,0xbe,0x6,0x8,0x76,0xc0,0x8,0x5b,0x88,0x40,0xf3,0xc,0x13,0xd2,0x6c,0x6,0x42,0x7b,0x22,0x61,0xb8,0xdb,0x97,0x8f,0x35,0x3d,0xc3,0x50,0x9e,0x7f,0xc4,0x14,0x41,0xc1,0xb,0xa7,0xf1,0x59,0x43,0x3b,0x19,0x56,0x15,0x25,0x2d,0xff,0x66,0xfb,0x8a,0x8e,0x7d,0xb3,0xcc,0xdd,0xb6,0x51,0xca,0x92,0x72,0x28,0xd7,0xf8,0x17,0xb1,0x65,0x7a,0xf5,0xeb,0x49,0x73,0xd9,0xab,0xb9,0x3,0x31,0x3a,0x67,0xa5,0x95,0x94,0xa2,0x54,0x0,0x6b,0xc2,0xf7,0x11,0xe9,0x1c,0x57,0x79,0xaa,0x21,0x6f,0x81,0x2,0xde,0x99,0xa6,0x48,0x2a,0x7e,0x8b,0x91,0xc6,0x76,0xe,0x87,0xe7,0xfe,0xc0,0x37,0x4a,0xd1,0xf6,0x98,0x1,0x84,0x77,0x5d,0xf9,0xa0,0x12,0x96,0xbe,0x93,0x9,0xa4,0x4b,0xaf,0x10,0x32,0x86,0x5e,0xda,0x70,0x74,0xed,0x64,0x68,0x63,0x7c,0x69,0xb4,0xc8,0xe1,0x34,0x78,0x1e,0x2f,0xef,0x58,0x46,0xe5,0x62,0xd6,0x9d,0xd5,0xdf,0x6d,0xbb,0x83,0xb0,0xbd,0xcb,0xb2,0xd3,0xe8,0x20,0x29,0x39,0x8c,0xe2,0xa8,0xa,0x2e,0xc7,0x6e,0xee,0xfa,0xba,0x2b,0x85,0x1a,0x89,0x7,0xdc,0x3c,0xd8,0x1b,0x6a,0xad,0x38,0xf4,0xfd,0x9f,0xd,0x18,0xbf,0x45,0x71,0x4,0x5,0x33,0x9c,0x16,0x9b,0x30,0xfc,0x36,0xac,0xc9,0x24,0x4d,0x44,0xae,0xe3,0x3f,0xf2,0x1f,0xce,0x4c,0xd0,0x47,0x53,0x55,0x26,0xa1,0xd4,0x75,0x9a,0x2c,0x52,0x5c,0xe4,0xb5,0xf0,0xcf,0xb7,0x80,0x23,0x4f,0x60,0x1d,0xe6,0x5a,0xea,0x27,0x82,0x8d,0x90,0x5f,0xbc,0x4e,0xcd,0xec,0xe0,0xf,0x3e,0xc5,0xa9,0xa3,0x1,0xf6,0xe7,0x7c,0xae,0xc0,0xb2,0x37,0xa7,0xbd,0x40,0xf0,0xb1,0x38,0xc8,0xd1,0x92,0x3f,0x99,0x7d,0x4,0x26,0x68,0xb0,0x6b,0x41,0x96,0xcf,0xa0,0x24,0xa5,0x88,0xa2,0xa3,0x62,0x94,0x5d,0x36,0xc1,0xf4,0x9d,0xef,0x35,0x8f,0xc,0x7,0x93,0x51,0x34,0xb7,0xaf,0xe8,0x7e,0x90,0x48,0x1c,0xdf,0x27,0x61,0x2a,0x9c,0x4f,0x59,0x17,0xcd,0x50,0xb8,0xbc,0x85,0x4b,0xeb,0xfa,0xd,0x75,0x60,0x2f,0x13,0x23,0xc9,0x1b,0x87,0x21,0x4c,0x53,0xdd,0xc3,0x45,0x7f,0x67,0x80,0xa4,0xfc,0x1e,0x44,0xce,0xe1,0x30,0x5a,0x4d,0x74,0x57,0x14,0xed,0x8e,0x6d,0x3e,0x76,0xbe,0x3a,0xc5,0xe4,0x25,0x22,0xf2,0xf7,0x77,0x91,0x3d,0x6f,0xc7,0xb9,0xa1,0xb,0x3,0x66,0xf5,0x49,0xa8,0xb6,0x81,0x79,0x15,0x2b,0x56,0x6c,0xd0,0x1a,0xac,0x6a,0x64,0x83,0xd2,0xf9,0xc6,0xda,0xfb,0x39,0xd6,0xf3,0x8,0x95,0x9f,0x11,0xdc,0xbb,0xb4,0x69,0xa6,0x78,0x8a,0x6,0xad,0x0,0xca,0xff,0x9a,0x7b,0x12,0x73,0x89,0x32,0x47,0x5,0x33,0x20,0xaa,0x71,0xe6,0x63,0x65,0x97,0x10,0x43,0xe2,0x98,0x72,0x9,0xd5,0x29,0xc4,0x7a,0xf8,0x18,0x3c,0x58,0xf1,0xcc,0xd8,0x1d,0x8c,0xde,0xe5,0x1f,0x16,0xba,0xf,0x9e,0xd4,0x9b,0x5c,0xc2,0xe,0xa9,0xcb,0x2e,0x3b,0x2c,0xb3,0x31,0xbf,0xa,0xea,0x2d,0xee,0x82,0x5f,0xd7,0xfe,0x4e,0x2,0x19,0x28,0x46,0xec,0xdb,0x42,0x5e,0x52,0x4a,0x55,0x5b,0xe9,0xb5,0x8d,0x8b,0x86,0x84,0xfd,0x6e,0xd9,0xd3,0x70,0xe0,0x54,0xe3,0xab,0x2c,0x80,0xd2,0x7a,0x9f,0x4f,0x4a,0xca,0xdb,0x48,0xf4,0x15,0x4,0x1c,0xb6,0xbe,0xea,0xa9,0x50,0x33,0x8d,0xe7,0xf0,0xc9,0x87,0x78,0x59,0x98,0xd0,0x83,0xcb,0x3,0x60,0x7e,0xf8,0xc2,0x3a,0x9c,0xf1,0xee,0xa3,0xf9,0x73,0x5c,0xda,0x3d,0x19,0x41,0x38,0xf6,0x56,0x47,0x70,0xed,0x5,0x1,0xae,0x9e,0x74,0xa6,0xb0,0xc8,0xdd,0x92,0xc3,0x2d,0xf5,0xa1,0x89,0xa,0x12,0x55,0x21,0xf2,0xe4,0xaa,0x62,0x9a,0xdc,0x97,0xe0,0x8b,0x7c,0x49,0x1f,0x1e,0xdf,0x29,0xb1,0xba,0x2e,0xec,0x20,0x52,0x88,0x32,0xb9,0x9b,0xd5,0xd,0x2f,0x82,0x24,0xc0,0x1d,0x99,0x18,0x35,0xd6,0xfc,0x2b,0x72,0x13,0x7d,0xf,0x8a,0xbc,0x4b,0x5a,0xc1,0xc,0x85,0x75,0x6c,0x1a,0x0,0xfd,0x4d,0x36,0x3b,0x39,0x40,0xe6,0x54,0x8,0x30,0x5d,0xe9,0x5e,0x16,0xd3,0x64,0x6e,0xcd,0xf3,0xbf,0xa4,0x95,0x3f,0xe2,0x6a,0x43,0xe3,0xef,0xf7,0xe8,0xfb,0x51,0x66,0xff,0x14,0x76,0x93,0x86,0x26,0xe1,0x7f,0xb3,0xb7,0x57,0x90,0x53,0x91,0xe,0x8c,0x2,0x71,0x65,0xa0,0x31,0xa5,0x81,0xe5,0x4c,0x7,0xb2,0x23,0x69,0x63,0x58,0xa2,0xab,0x2a,0xad,0xfe,0x5f,0xcc,0x5b,0xde,0xd8,0x94,0x79,0xc7,0x45,0x25,0xcf,0xb4,0x68,0x42,0x27,0xc6,0xaf,0xbb,0x10,0xbd,0x77,0xb8,0x8e,0x9d,0x17,0xce,0x34,0x8f,0xfa,0x4e,0xb5,0x28,0x22,0x67,0x46,0x84,0x6b,0xd4,0x1b,0xc5,0x37,0xac,0x61,0x6,0x9,0x96,0xeb,0xd1,0x6d,0xb,0x3c,0xc4,0xa8,0x3e,0x6f,0x44,0x7b,0xa7,0x11,0xd7,0xd9,0x7a,0x41,0xbb,0xb2,0x1e,0xab,0x3a,0x70,0xbc,0x98,0xfc,0x55,0x68,0x7c,0xb9,0x28,0x88,0x17,0x95,0x1b,0xae,0x4e,0x89,0x4a,0x3f,0xf8,0x66,0xaa,0xd,0x6f,0x8a,0x9f,0xe2,0x48,0x7f,0xe6,0xfa,0xf6,0xee,0xf1,0x26,0xfb,0x73,0x5a,0xea,0xa6,0xbd,0x8c,0xca,0x7d,0x77,0xd4,0x44,0xf0,0x47,0xf,0xff,0x4d,0x11,0x29,0x2f,0x22,0x20,0x59,0xbe,0x8,0xce,0xc0,0x27,0x76,0x5d,0x62,0x12,0x25,0xdd,0xb1,0x8f,0xf2,0xc8,0x74,0xb5,0x78,0x1f,0x10,0xcd,0x2,0xdc,0x2e,0x7e,0x5f,0x9d,0x72,0x57,0xac,0x31,0x3b,0xd7,0x2d,0x96,0xe3,0xa1,0x97,0x84,0xe,0xa2,0x9,0xa4,0x6e,0x5b,0x3e,0xdf,0xb6,0x3c,0xd6,0xad,0x71,0x8d,0x60,0xde,0x5c,0xd5,0x42,0xc7,0xc1,0x33,0xb4,0xe7,0x46,0xa9,0xd1,0xc4,0x8b,0xb7,0x87,0x6d,0xbf,0x69,0xf4,0x1c,0x18,0x21,0xef,0x4f,0x5e,0xc3,0x24,0x0,0x58,0xba,0xe0,0x6a,0x45,0x23,0x85,0xe8,0xf7,0x79,0x67,0xe1,0xdb,0xc9,0x9a,0xd2,0x1a,0x9e,0x61,0x40,0x81,0x94,0xfe,0xe9,0xd0,0xf3,0xb0,0x49,0x2a,0x1d,0x5,0xaf,0xa7,0xc2,0x51,0xed,0xc,0x86,0x56,0x53,0xd3,0x35,0x99,0xcb,0x63,0x3,0x19,0xe4,0x54,0x15,0x9c,0x6c,0x75,0xa5,0x52,0x43,0xd8,0xa,0x64,0x16,0x93,0xcf,0xe5,0x32,0x6b,0x4,0x80,0x1,0x2c,0x36,0x9b,0x3d,0xd9,0xa0,0x82,0xcc,0x14,0x39,0x4b,0x91,0x2b,0xa8,0xa3,0x37,0xf5,0x6,0x7,0xc6,0x30,0xf9,0x92,0x65,0x50,0x7b,0x83,0xc5,0x8e,0x38,0xeb,0xfd,0xb3,0x90,0x13,0xb,0x4c,0xda,0x34,0xec,0xb8,0xb8,0xd1,0x30,0x55,0x60,0xaa,0x7,0xac,0x0,0x8a,0x99,0xaf,0xed,0x98,0x23,0xd9,0x48,0xe9,0xba,0x3d,0xcf,0xc9,0x4c,0xdb,0x52,0xd0,0x6e,0x83,0x7f,0xa3,0xd8,0x32,0x7a,0xc6,0xfc,0x81,0xbf,0xd3,0x2b,0x1c,0x6c,0x53,0x78,0x29,0xce,0xc0,0x6,0xb0,0x35,0x3f,0xa2,0x59,0x7c,0x93,0x51,0x70,0x20,0xd2,0xc,0xc3,0x1e,0x11,0x76,0xbb,0x82,0xb3,0xa8,0xe4,0x54,0x7d,0xf5,0x28,0xff,0xe0,0xf8,0xf4,0xe8,0x71,0x46,0xec,0x57,0x2e,0x2c,0x21,0x27,0x1f,0x43,0xf1,0x1,0x49,0xfe,0x4a,0xda,0x79,0x73,0xc4,0x26,0xb7,0x72,0x66,0x5b,0xf2,0x96,0xb2,0x7e,0x34,0xa5,0x10,0xbc,0xb5,0x4f,0x74,0x91,0x84,0x61,0x3,0xa4,0x68,0xf6,0x31,0x44,0x87,0x40,0xa0,0x15,0x9b,0x19,0x86,0x5e,0x6b,0x9c,0xf7,0x3e,0xc8,0x9,0x8,0xfb,0x39,0xad,0xa6,0x25,0x9f,0x45,0x37,0xb6,0xe2,0x3a,0xd4,0x42,0x5,0x1d,0x9e,0xbd,0xf3,0xe5,0x36,0x80,0xcb,0x8d,0x75,0x9d,0x18,0x6a,0x4,0xd6,0x4d,0x5c,0xab,0x7b,0x62,0x92,0x1b,0x5a,0xea,0x17,0xd,0x1a,0xc2,0x8c,0xae,0xd7,0x33,0x95,0x38,0x22,0xf,0x8e,0xa,0x65,0x3c,0xeb,0xc1,0x24,0x47,0xbe,0xfd,0xde,0xe7,0xf0,0x9a,0x8f,0x4e,0x6f,0x90,0x14,0xdc,0x94,0xc7,0x6d,0xc5,0x97,0x3b,0xdd,0x5d,0x58,0x88,0x2,0xe3,0x5f,0xcc,0xa9,0xa1,0xb,0x13,0x50,0x41,0xe1,0x2f,0x16,0x12,0xfa,0x67,0xb1,0x63,0x89,0xb9,0x85,0xca,0xdf,0xa7,0xd5,0xef,0x69,0x77,0xf9,0xe6,0x8b,0x2d,0x4b,0x64,0xee,0xb4,0x56,0xe,0x2a,0xcd}; + +unsigned char table_s3[] = {0xdd,0xaa,0x28,0xa0,0xc5,0xb4,0x9c,0xe8,0xcd,0xb7,0xde,0xe2,0x1f,0xef,0x73,0xbe,0x72,0xf5,0x1,0x22,0x50,0xa8,0x4a,0x9a,0xf2,0x84,0x69,0x29,0x3c,0x79,0x67,0xe3,0xb3,0x56,0xe4,0x2c,0x55,0x26,0x5a,0x0,0xb6,0x60,0xa9,0x98,0x83,0xc4,0xd0,0x7c,0xd9,0x90,0x78,0xdb,0x25,0x96,0xee,0x49,0x61,0xfa,0xd6,0x14,0xe,0xf8,0x41,0xce,0x9,0x37,0x53,0x12,0x93,0x3d,0xb1,0x4,0xf7,0x82,0x35,0x9f,0xb0,0xe9,0xf,0x1b,0xab,0xc7,0xa6,0x7e,0x77,0xd2,0x63,0xd1,0xd3,0xb8,0x8e,0x38,0xc,0x40,0xd4,0xe0,0xfe,0x21,0x2b,0x30,0x16,0xa7,0xd5,0xbc,0xbd,0xeb,0x5f,0x65,0xfc,0x4c,0x2e,0x64,0x6,0x7,0x5e,0x3b,0x2f,0xba,0x39,0x7d,0xd8,0x88,0xf3,0x58,0x15,0x23,0x86,0xae,0x74,0xca,0x8,0x66,0x43,0xa2,0xc8,0xda,0xd7,0x46,0x19,0xe5,0xc6,0xcb,0x3,0xf6,0x91,0xcc,0x3e,0x2d,0x8c,0xcf,0x71,0x7a,0x62,0xc9,0x59,0x11,0x1a,0xc3,0x45,0x75,0x8f,0x9e,0x97,0xdc,0x54,0x4d,0x6e,0x44,0x81,0x99,0xa5,0xb9,0x70,0x13,0x34,0x24,0x95,0x5,0x1d,0x6d,0x7f,0x5b,0x94,0xac,0x3f,0xad,0xbb,0x31,0x51,0xdf,0x4f,0xa1,0x6b,0x80,0xbf,0x92,0x18,0xec,0xa4,0x42,0x68,0xaf,0xc1,0xe7,0xed,0x7b,0xe1,0x10,0x5c,0xc2,0x27,0x85,0xa,0x87,0x8b,0x33,0x5d,0xfb,0x9d,0xb2,0xea,0xf4,0x6f,0xb,0x8a,0x8d,0xfd,0x47,0x20,0x2,0xd,0x17,0xf0,0x4b,0xb5,0x2a,0x36,0x4e,0x52,0xe6,0x6a,0x57,0x76,0x89,0x1e,0x32,0x48,0x3a,0xa3,0x1c,0x9b,0xc0,0x6c,0xf1,0xf9,0xff,0xd3,0xcd,0x2c,0x48,0xdc,0x7a,0x95,0xba,0xa0,0x2d,0x14,0xac,0xe5,0x7b,0xa2,0x0,0x5c,0xca,0x37,0xc6,0x88,0x4f,0xc0,0xe6,0xcb,0x3f,0x65,0x83,0xa7,0x4c,0xb5,0x98,0xd6,0x4b,0xd8,0xde,0x3b,0x84,0xe7,0xbc,0x15,0x39,0x1d,0x6f,0x70,0x4d,0xae,0x51,0x69,0x11,0xc1,0x75,0x6c,0xd7,0xd,0x92,0x25,0x7,0x30,0x2a,0xaa,0xad,0x60,0xda,0xe4,0x3d,0x52,0x62,0xee,0x45,0x36,0x7e,0xe8,0xab,0x5d,0x56,0xeb,0xb6,0xa,0x19,0xec,0xe1,0xd1,0x24,0x61,0xf0,0xc2,0x3e,0x85,0x64,0xfd,0xef,0xed,0x53,0x41,0x2f,0xf8,0x76,0x86,0x68,0x8a,0x18,0x16,0x9c,0x7c,0x58,0x8b,0xb3,0x22,0xb2,0x4a,0x3a,0x34,0x57,0x3,0x13,0xbe,0xa6,0x9e,0x82,0x6a,0x73,0x63,0x49,0xb9,0xa8,0xfb,0xb0,0x67,0x2b,0xc7,0xf3,0x9f,0xf4,0x1f,0xa9,0xf5,0x50,0xf6,0x44,0xe0,0x8c,0x59,0x81,0xce,0x97,0x3c,0x28,0xa5,0xd0,0xb8,0x12,0x1a,0xb4,0x23,0x96,0x10,0x2e,0x35,0x74,0x4,0x32,0x89,0xa1,0xaf,0xff,0x7f,0xd4,0x9d,0x8,0x5a,0x1e,0x20,0x21,0x1c,0x79,0x6b,0xdb,0x43,0x9,0xcc,0x9a,0x42,0x78,0x80,0x31,0x9b,0xf2,0x6,0xd9,0x17,0xc,0x5e,0x1b,0xc4,0x40,0xa3,0xd5,0xe,0x4e,0x8f,0x77,0xbd,0x6d,0xd2,0x55,0x5,0x26,0xc8,0x38,0x99,0x54,0x90,0xea,0xc5,0xf9,0x93,0xe2,0xcf,0xbb,0x8d,0xfa,0x87,0xf,0xdf,0x29,0xe9,0x66,0xdd,0x46,0x33,0xf1,0xb1,0x2,0x6e,0xc9,0xb7,0xfe,0xfc,0x5f,0xe3,0xa4,0x5b,0xf7,0x47,0x91,0xbf,0x8e,0x1,0x72,0x27,0x7d,0x71,0x94,0xb,0xc3,0xb8,0x2d,0x7f,0x3b,0x5,0x4,0x39,0x5c,0x21,0x17,0xac,0x84,0x8a,0xda,0x5a,0xf1,0xa5,0x14,0xbe,0xd7,0x23,0xfc,0x32,0x29,0x4e,0xfe,0x66,0x2c,0xe9,0xbf,0x67,0x5d,0xd0,0x75,0xd3,0x61,0xc5,0xa9,0x7c,0xa4,0x42,0xe,0xe2,0xd6,0xba,0xd1,0x3a,0x8c,0x3f,0x91,0x6,0xb3,0x35,0xb,0x10,0x51,0xeb,0xb2,0x19,0xd,0x80,0xf5,0x9d,0x37,0x94,0x27,0x4b,0xec,0x92,0xdb,0xd9,0x7a,0xfa,0xc,0xcc,0x43,0xf8,0x63,0x16,0xd4,0x24,0x57,0x2,0x58,0x54,0xb1,0x2e,0xe6,0xc6,0x81,0x7e,0xd2,0x62,0xb4,0x9a,0xab,0xaa,0x52,0x98,0x48,0xf7,0x70,0x20,0x3,0x7b,0x3e,0xe1,0x65,0x86,0xf0,0x2b,0x6b,0xb6,0xc7,0xea,0x9e,0xa8,0xdf,0xa2,0x2a,0xed,0x1d,0xbc,0x71,0xb5,0xcf,0xe0,0xdc,0x30,0x1c,0x38,0x4a,0x55,0x68,0x8b,0x74,0xf3,0x6e,0xfd,0xfb,0x1e,0xa1,0xc2,0x99,0x0,0x22,0x15,0xf,0x8f,0x88,0x45,0xff,0x4c,0x34,0xe4,0x50,0x49,0xf2,0x28,0xb7,0x85,0x8,0x31,0x89,0xc0,0x5e,0x87,0x25,0xf6,0xe8,0x9,0x6d,0xf9,0x5f,0xb0,0x9f,0xee,0x1a,0x40,0xa6,0x82,0x69,0x90,0xbd,0x79,0xef,0x12,0xe3,0xad,0x6a,0xe5,0xc3,0x59,0x7d,0xae,0x96,0x7,0x97,0x6f,0x1f,0xdd,0x53,0xa3,0x4d,0xaf,0x3d,0x33,0xb9,0x4f,0x56,0x46,0x6c,0x9c,0x8d,0xde,0x95,0x11,0x72,0x26,0x36,0x9b,0x83,0xbb,0xa7,0xcd,0x8e,0x78,0x73,0xce,0x93,0x2f,0x3c,0xc1,0x18,0x77,0x47,0xcb,0x60,0x13,0x5b,0xa0,0x41,0xd8,0xca,0xc8,0x76,0x64,0xa,0xc9,0xc4,0xf4,0x1,0x44,0xd5,0xe7,0x1b,0x3d,0xe5,0x84,0xe8,0x92,0x20,0x91,0x34,0x7b,0xcd,0xfb,0x90,0xa3,0x97,0x3,0x4f,0x51,0x10,0x74,0x4a,0x47,0xf2,0x7e,0xd0,0xdc,0x76,0xc1,0xb4,0x58,0x4c,0xaa,0xf3,0x78,0x1d,0x44,0x45,0x3e,0x7a,0xf9,0x6c,0x1b,0xb0,0xcb,0x9b,0xed,0xc5,0x60,0x56,0x73,0x68,0x62,0xbd,0xff,0x96,0xe4,0x55,0x26,0x1c,0xa8,0xfe,0x27,0x6d,0xf,0xbf,0x61,0x42,0xb6,0x31,0xd9,0x9,0xeb,0x13,0x6a,0x2a,0xc7,0xb1,0xa0,0x24,0x3a,0x7f,0xe3,0x6b,0xe9,0x9e,0xab,0xdf,0xf7,0x86,0xa1,0x9d,0xf4,0x8e,0xfd,0x30,0xac,0x5c,0x98,0x3b,0xd3,0x9a,0xa,0xad,0xd5,0x66,0x57,0x95,0xb9,0x22,0x8d,0x2,0xbb,0x4d,0x6f,0xa7,0x15,0xf0,0x43,0x19,0x65,0x16,0xdb,0xea,0x23,0xf5,0x3f,0x93,0x87,0xc0,0xc6,0x64,0x81,0x1f,0x70,0xc8,0xc4,0x49,0xf1,0xde,0xb8,0x1e,0x48,0x2c,0xb7,0xa9,0xd1,0xfc,0xc3,0x28,0x1,0xe7,0xaf,0x5b,0xa4,0x82,0xec,0x2b,0x53,0xa2,0x38,0xae,0xca,0x35,0x14,0x29,0x79,0xb,0x71,0x5d,0x83,0xd8,0x5f,0xe0,0xbc,0xba,0xb2,0x2f,0x4,0xbe,0xce,0xc9,0x54,0x4e,0x41,0x63,0x69,0xf6,0x8,0xb3,0xa5,0x11,0xd,0x75,0x6e,0x7d,0x8f,0xd2,0x39,0x32,0x8c,0xcf,0x52,0x1a,0x8a,0x21,0x36,0x6,0x80,0x59,0x25,0x4b,0x89,0x37,0x99,0x8b,0xe1,0x0,0xa6,0x5a,0x5,0x94,0xb5,0x40,0x88,0x85,0x2e,0x5e,0x46,0xd6,0xef,0xd7,0x18,0x3c,0x72,0xf8,0xee,0x7c,0xe2,0xc,0x9c,0x12,0x9f,0xd4,0xdd,0xcc,0x7,0x2d,0xe,0x17,0xfa,0xe6,0xda,0xc2,0x67,0x77,0x50,0x33,0x1f,0xd8,0xb6,0x90,0x9a,0xc,0x96,0x67,0x1c,0xf7,0xc8,0xe5,0x6f,0x9b,0xd3,0x35,0x2a,0x8c,0xea,0xc5,0x9d,0x83,0x18,0x7c,0x2b,0xb5,0x50,0xf2,0x7d,0xf0,0xfc,0x44,0x87,0x3c,0xc2,0x5d,0x41,0x39,0x25,0x91,0xfd,0xfa,0x8a,0x30,0x57,0x75,0x7a,0x60,0xd4,0x6b,0xec,0xb7,0x1b,0x86,0x8e,0x88,0x1d,0x20,0x1,0xfe,0x69,0x45,0x3f,0x4d,0xa0,0x31,0x6e,0x92,0xb1,0xbc,0x74,0x81,0x3,0xbd,0x7f,0x11,0x34,0xd5,0xbf,0xad,0x15,0xbe,0x2e,0x66,0x6d,0xb4,0x32,0x2,0xe6,0xbb,0x49,0x5a,0xfb,0xb8,0x6,0xd,0xf6,0xee,0xd2,0xce,0x7,0x64,0x43,0x53,0xf8,0xe9,0xe0,0xab,0x23,0x3a,0x19,0x33,0x48,0xda,0xcc,0x46,0x26,0xa8,0x38,0xd6,0xe2,0x72,0x6a,0x1a,0x8,0x2c,0xe3,0xdb,0x80,0xf5,0x42,0xe8,0xc7,0x9e,0x78,0x6c,0x7e,0x40,0x24,0x65,0xe4,0x4a,0xc6,0x73,0xa4,0xcf,0xf9,0x4f,0x7b,0x37,0xa3,0x97,0xdc,0xb0,0xd1,0x9,0x0,0xa5,0x14,0xa6,0xca,0x9c,0x28,0x12,0x8b,0x3b,0x59,0x13,0x89,0x56,0x5c,0x47,0x61,0xd0,0xa2,0xcb,0xaf,0xff,0x84,0x2f,0x62,0x54,0xf1,0xd9,0x71,0x70,0x29,0x4c,0x58,0xcd,0x4e,0xa,0xba,0xc0,0xa9,0x95,0x68,0x98,0x4,0xc9,0xaa,0xdd,0x5f,0xd7,0xb2,0xc3,0xeb,0x9f,0x85,0xf3,0x1e,0x5e,0x4b,0xe,0x10,0x94,0x5,0x82,0x76,0x55,0x27,0xdf,0x3d,0xed,0xc1,0x17,0xde,0xef,0xf4,0xb3,0xa7,0xb,0xc4,0x21,0x93,0x5b,0x22,0x51,0x2d,0x77,0x16,0x8d,0xa1,0x63,0x79,0x8f,0x36,0xb9,0xae,0xe7,0xf,0xac,0x52,0xe1,0x99,0x3e,0xdb,0x80,0xe3,0x5c,0xb9,0xbf,0x2c,0xb1,0x36,0xc9,0x2a,0x17,0x8,0x7a,0x5e,0x72,0xf5,0x6a,0xb0,0xb,0x12,0xa6,0x76,0xe,0xbd,0x7,0xca,0xcd,0x4d,0x57,0x60,0x42,0xdd,0xf2,0x1d,0xbb,0x2f,0x4b,0xaa,0xb4,0x67,0xc5,0x1c,0x82,0xcb,0x73,0x4a,0xc7,0x81,0xa7,0x28,0xef,0xa1,0x50,0xad,0x3b,0xff,0xd2,0x2b,0xc0,0xe4,0x2,0x58,0xac,0xfb,0x71,0x7f,0xed,0xf,0xe1,0x11,0x9f,0x5d,0x2d,0xd5,0x45,0xd4,0xec,0x3f,0x1b,0xe5,0xf9,0xc1,0xd9,0x74,0x64,0x30,0x53,0xd7,0x9c,0xcf,0xde,0x2e,0x4,0x14,0xd,0x19,0x51,0x22,0x89,0x5,0x35,0x5a,0x83,0x7e,0x6d,0xd1,0x8c,0x31,0x3a,0xcc,0x8f,0x59,0xa5,0x97,0x6,0x43,0xb6,0x86,0x8b,0x48,0x26,0x34,0x8a,0x88,0x9a,0x3,0xe2,0xb3,0x18,0x98,0xc8,0xc6,0xee,0x55,0x63,0x1e,0x7b,0x46,0x47,0x79,0x3d,0x6f,0xfa,0x1f,0x25,0xfd,0xab,0x6e,0x24,0xbc,0xc,0x6b,0x70,0xbe,0x61,0x95,0xfc,0x56,0xe7,0xce,0x78,0x93,0xf8,0x94,0xa0,0x4c,0x0,0xe6,0x3e,0xeb,0x87,0x23,0x91,0x37,0x92,0x75,0xdf,0xb7,0xc2,0x4f,0x5b,0xf0,0xa9,0x13,0x52,0x49,0x77,0xf1,0x44,0xd3,0x7d,0x96,0x54,0x21,0xba,0x1,0x8e,0x4e,0xb8,0x38,0x9b,0x99,0xd0,0xae,0x9,0x65,0xd6,0xe9,0xd8,0xf6,0x20,0x90,0x3c,0xc3,0x84,0xa4,0x6c,0xf3,0x16,0x1a,0x40,0x15,0x66,0x29,0x69,0xb2,0xc4,0x27,0xa3,0x7c,0x39,0x41,0x62,0x32,0xb5,0xa,0xda,0x10,0xe8,0x9e,0xa2,0x8d,0xf7,0x33,0xfe,0x5f,0xaf,0x68,0xe0,0x9d,0xea,0xdc,0xa8,0x85,0xf4,0xa4,0x66,0x4a,0xd1,0x7e,0xf1,0x48,0xbe,0x6b,0xc8,0x20,0x69,0xf9,0x5e,0x26,0x95,0x28,0x19,0xd0,0x6,0xcc,0x60,0x74,0x33,0x9c,0x54,0xe6,0x3,0xb0,0xea,0x96,0xe5,0x99,0xd9,0x34,0x42,0x53,0xd7,0xc9,0x8c,0x92,0xb1,0x45,0xc2,0x2a,0xfa,0x18,0xe0,0x52,0x6e,0x7,0x7d,0xe,0xc3,0x5f,0xaf,0x10,0x98,0x1a,0x6d,0x58,0x2c,0x4,0x75,0xe8,0x43,0x38,0x68,0x1e,0x36,0x93,0xa5,0x8b,0xee,0xb7,0xb6,0xcd,0x89,0xa,0x9f,0xd5,0xef,0x5b,0xd,0xd4,0x9e,0xfc,0x4c,0x80,0x9b,0x91,0x4e,0xc,0x65,0x17,0xa6,0x88,0x3e,0x8,0x63,0x50,0x64,0xf0,0xbc,0xce,0x16,0x77,0x1b,0x61,0xd3,0x62,0xc7,0x2f,0x85,0x32,0x47,0xab,0xbf,0x59,0x0,0xa2,0xe3,0x87,0xb9,0xb4,0x1,0x8d,0x23,0x81,0xb,0x1d,0x8f,0x11,0xff,0x6f,0xe1,0xdd,0xad,0xb5,0x25,0x1c,0x24,0xeb,0xcf,0x9,0x15,0x29,0x31,0x94,0x84,0xa3,0xc0,0x6c,0x27,0x2e,0x3f,0xf4,0xde,0xfd,0xe4,0xa1,0xe9,0x79,0xd2,0xc5,0xf5,0x73,0xaa,0x9d,0x8e,0x7c,0x21,0xca,0xc1,0x7f,0x3c,0x55,0xa9,0xf6,0x67,0x46,0xb3,0x7b,0x76,0xd6,0xb8,0x7a,0xc4,0x6a,0x78,0x12,0xf3,0x70,0x2b,0xac,0x13,0x4f,0x49,0x41,0xdc,0x39,0xc6,0xe7,0xda,0x8a,0xf8,0x82,0xae,0x9a,0x5,0xfb,0x40,0x56,0xe2,0xfe,0x86,0xf7,0x4d,0x3d,0x3a,0xa7,0xbd,0xb2,0x90,0x2,0x2d,0x4b,0xed,0xbb,0xdf,0x44,0x5a,0x35,0x97,0x72,0xec,0x83,0x3b,0x37,0xba,0x57,0x71,0x1f,0xd8,0xa0,0x51,0xcb,0x5d,0x22,0xf,0x30,0xdb,0xf2,0x14,0x5c,0xa8,0x5,0xe3,0xab,0x5f,0xd5,0xf8,0xc7,0x2c,0x57,0xa6,0x3c,0xaa,0xa0,0x86,0xe8,0x2f,0x74,0xcc,0xc0,0x4d,0xc2,0x60,0x85,0x1b,0x4c,0x28,0xb3,0xad,0xf5,0xda,0xbc,0x1a,0x50,0x4a,0x45,0x67,0x0,0xba,0xca,0xcd,0xa1,0x15,0x9,0x71,0x6d,0xf2,0xc,0xb7,0x7d,0xf,0x75,0x59,0xce,0x31,0x10,0x2d,0xb8,0xbe,0xb6,0x2b,0x87,0xdc,0x5b,0xe4,0x9d,0x8f,0xe5,0x4,0x21,0x4f,0x8d,0x33,0xb1,0x44,0x8c,0x81,0xa2,0x5e,0x1,0x90,0x3d,0x36,0x88,0xcb,0x6a,0x79,0x8b,0xd6,0x32,0x2,0x84,0x5d,0x56,0x1e,0x8e,0x25,0x3,0x29,0xa,0x13,0x9b,0xd0,0xd9,0xc8,0x63,0x73,0x54,0x37,0xfe,0xe2,0xde,0xc6,0xeb,0xd3,0x1c,0x38,0x2a,0x5a,0x42,0xd2,0xe6,0x8,0x98,0x16,0x76,0xfc,0xea,0x78,0x43,0xf6,0x7a,0xd4,0x55,0x14,0x70,0x4e,0x5c,0x48,0xae,0xf7,0xd8,0x72,0xc5,0xb0,0x96,0x24,0x95,0x30,0x39,0xe1,0x80,0xec,0xa7,0x93,0x7,0x4b,0x7f,0xc9,0xff,0x94,0xfb,0x92,0xe0,0x51,0x77,0x6c,0x66,0xb9,0x23,0x69,0xb,0xbb,0x22,0x18,0xac,0xfa,0x3a,0x7e,0xfd,0x68,0x7c,0x19,0x40,0x41,0xe9,0xc1,0x64,0x52,0x1f,0xb4,0xcf,0x9f,0xaf,0xdb,0xf3,0x82,0xe7,0x6f,0xed,0x9a,0xf9,0x34,0xa8,0x58,0xa5,0x99,0xf0,0x8a,0xdd,0xd,0xef,0x17,0x65,0x46,0xb2,0x35,0xa4,0x20,0x3e,0x7b,0x6e,0x2e,0xc3,0xb5,0x47,0x1d,0x61,0x12,0x6b,0xa3,0x11,0xf4,0x3b,0x97,0x83,0xc4,0xdf,0xee,0x27,0xf1,0xe,0xa9,0xd1,0x62,0x9c,0x3f,0xd7,0x9e,0x89,0x6,0xbf,0x49,0x53,0x91,0xbd,0x26,0x86,0xf3,0x44,0xee,0xc1,0x98,0x7e,0x6a,0x78,0x46,0x22,0x63,0xe2,0x4c,0xc0,0x75,0xa2,0xc9,0xff,0x49,0x7d,0x31,0xa5,0x91,0xda,0xb6,0xd7,0xf,0x6,0xa3,0x12,0xa0,0xcc,0x9a,0x2e,0x14,0x8d,0x3d,0x5f,0x15,0x8f,0x50,0x5a,0x41,0x67,0xd6,0xa4,0xcd,0xa9,0xf9,0x82,0x29,0x64,0x52,0xf7,0xdf,0x77,0x76,0x2f,0x4a,0x5e,0xcb,0x48,0xc,0xbc,0xc6,0xaf,0x93,0x6e,0x9e,0x2,0xcf,0xac,0xdb,0x59,0xd1,0xb4,0xc5,0xed,0x99,0x83,0xf5,0x18,0x58,0x4d,0x8,0x16,0x92,0x3,0x84,0x70,0x53,0x21,0xd9,0x3b,0xeb,0xc7,0x11,0xd8,0xe9,0xf2,0xb5,0xa1,0xd,0xc2,0x27,0x95,0x5d,0x24,0x57,0x2b,0x71,0x10,0x8b,0xa7,0x65,0x7f,0x89,0x30,0xbf,0xa8,0xe1,0x9,0xaa,0x54,0xe7,0x9f,0x38,0x19,0xde,0xb0,0x96,0x9c,0xa,0x90,0x61,0x1a,0xf1,0xce,0xe3,0x69,0x9d,0xd5,0x33,0x2c,0x8a,0xec,0xc3,0x9b,0x85,0x1e,0x7a,0x2d,0xb3,0x56,0xf4,0x7b,0xf6,0xfa,0x42,0x81,0x3a,0xc4,0x5b,0x47,0x3f,0x23,0x97,0xfb,0xfc,0x8c,0x36,0x51,0x73,0x7c,0x66,0xd2,0x6d,0xea,0xb1,0x1d,0x80,0x88,0x8e,0x1b,0x26,0x7,0xf8,0x6f,0x43,0x39,0x4b,0xa6,0x37,0x68,0x94,0xb7,0xba,0x72,0x87,0x5,0xbb,0x79,0x17,0x32,0xd3,0xb9,0xab,0x13,0xb8,0x28,0x60,0x6b,0xb2,0x34,0x4,0xe0,0xbd,0x4f,0x5c,0xfd,0xbe,0x0,0xb,0xf0,0xe8,0xd4,0xc8,0x1,0x62,0x45,0x55,0xfe,0xef,0xe6,0xad,0x25,0x3c,0x1f,0x35,0x4e,0xdc,0xca,0x40,0x20,0xae,0x3e,0xd0,0xe4,0x74,0x6c,0x1c,0xe,0x2a,0xe5,0xdd,0x20,0xa8,0xd5,0xa2,0x94,0xe0,0xcd,0xbc,0xd6,0xea,0xc5,0xbf,0x7b,0xb6,0x17,0xe7,0x9,0x2a,0x7a,0xfd,0x42,0x92,0x58,0xa0,0x61,0x21,0xfa,0x8c,0x6f,0xeb,0x34,0x71,0xec,0x24,0xbb,0x5e,0x52,0x8,0x5d,0x2e,0xa1,0x90,0xbe,0x68,0xd8,0x74,0x8b,0xcc,0x70,0xd3,0xd1,0x98,0xe6,0x41,0x2d,0x9e,0xde,0x1c,0x69,0xf2,0x49,0xc6,0x6,0xf0,0x5b,0x1a,0x1,0x3f,0xb9,0xc,0x9b,0x35,0x3d,0x97,0xff,0x8a,0x7,0x13,0xb8,0xe1,0xae,0x76,0xa3,0xcf,0x6b,0xd9,0x7f,0xda,0x86,0x30,0xdb,0xb0,0xdc,0xe8,0x4,0x48,0x23,0x38,0xf6,0x29,0xdd,0xb4,0x1e,0xaf,0x57,0x6d,0xb5,0xe3,0x26,0x6c,0xf4,0x44,0x56,0x33,0xe,0xf,0x31,0x75,0x27,0xb2,0xfb,0x50,0xd0,0x80,0x8e,0xa6,0x1d,0x2b,0x0,0x6e,0x7c,0xc2,0xc0,0xd2,0x4b,0xaa,0x11,0xed,0xdf,0x4e,0xb,0xfe,0xce,0xc3,0x36,0x25,0x99,0xc4,0x79,0x72,0x84,0xc7,0x51,0x19,0x6a,0xc1,0x4d,0x7d,0x12,0xcb,0x9f,0xd4,0x87,0x96,0x66,0x4c,0x5c,0x45,0xad,0xb1,0x89,0x91,0x3c,0x2c,0x78,0x1b,0x15,0x65,0x9d,0xd,0x9c,0xa4,0x77,0x53,0xb3,0x39,0x37,0xa5,0x47,0xa9,0x59,0xd7,0xb7,0x9a,0x63,0x88,0xac,0x4a,0x10,0xe4,0xc9,0xef,0x60,0xa7,0xe9,0x18,0xe5,0x73,0x2f,0x8d,0x54,0xca,0x83,0x3b,0x2,0x8f,0x95,0xba,0x55,0xf3,0x67,0x3,0xe2,0xfc,0xf5,0x4f,0x82,0x85,0x5,0x1f,0x28,0xa,0xbd,0x22,0xf8,0x43,0x5a,0xee,0x3e,0x46,0x7e,0x81,0x62,0x5f,0x40,0x32,0x16,0x3a,0x93,0xc8,0xab,0x14,0xf1,0xf7,0x64,0xf9,0x4f,0xd0,0xa,0xb1,0xa8,0x1c,0xcc,0xb4,0x7,0xbd,0x70,0x77,0xf7,0xed,0xda,0xf8,0x61,0x3a,0x59,0xe6,0x3,0x5,0x96,0xb,0x8c,0x73,0x90,0xad,0xb2,0xc0,0xe4,0xc8,0x3b,0x1d,0x92,0x55,0x1b,0xea,0x17,0x81,0x45,0x68,0x91,0x7a,0x5e,0xb8,0xe2,0x16,0x67,0x48,0xa7,0x1,0x95,0xf1,0x10,0xe,0xdd,0x7f,0xa6,0x38,0x71,0xc9,0xf0,0x7d,0x5f,0x43,0x7b,0x63,0xce,0xde,0x8a,0xe9,0x6d,0x26,0x75,0x64,0x94,0xbe,0xae,0xb7,0x41,0xcb,0xc5,0x57,0xb5,0x5b,0xab,0x25,0xe7,0x97,0x6f,0xff,0x6e,0x56,0x85,0xa1,0xe3,0x1f,0x2d,0xbc,0xf9,0xc,0x3c,0x31,0xf2,0x9c,0x8e,0x30,0x32,0x20,0xb9,0x58,0xa3,0xeb,0x98,0x33,0xbf,0x8f,0xe0,0x39,0xc4,0xd7,0x6b,0x36,0x8b,0x80,0x76,0x35,0xa5,0x9f,0x47,0x11,0xd4,0x9e,0x6,0xb6,0xd1,0xca,0x4,0xdb,0x2f,0x46,0xec,0x5d,0x9,0xa2,0x22,0x72,0x7c,0x54,0xef,0xd9,0xa4,0xc1,0xfc,0xfd,0xc3,0x87,0xd5,0x40,0xcf,0x65,0xd,0x78,0xf5,0xe1,0x4a,0x13,0xa9,0xe8,0xf3,0xcd,0x4b,0xfe,0x69,0xc7,0x74,0xc2,0x29,0x42,0x2e,0x1a,0xf6,0xba,0x5c,0x84,0x51,0x3d,0x99,0x2b,0x8d,0x28,0x53,0x62,0x4c,0x9a,0x2a,0x86,0x79,0x3e,0x1e,0xd6,0x49,0xac,0xa0,0xfa,0xaf,0xdc,0x2c,0xee,0x9b,0x0,0xbb,0x34,0xf4,0x2,0x82,0x21,0x23,0x6a,0x14,0xb3,0xdf,0x6c,0x24,0x18,0x37,0x4d,0x89,0x44,0xe5,0x15,0xd2,0x5a,0x27,0x50,0x66,0x12,0x3f,0x4e,0x93,0xd3,0x8,0x7e,0x9d,0x19,0xc6,0x83,0xfb,0xd8,0x88,0xf,0xb0,0x60,0xaa,0x52,0x8,0xb2,0xc2,0xc5,0x58,0x42,0x4d,0x6f,0x65,0xfa,0x4,0xbf,0xa9,0x1d,0x1,0x79,0xc6,0x39,0x18,0x25,0x75,0x7,0x7d,0x51,0x8f,0xd4,0x53,0xec,0xb0,0xb6,0xbe,0x23,0xdd,0xf0,0xcf,0x24,0xd,0xeb,0xa3,0x57,0xa8,0x8e,0xe0,0x27,0x5f,0xae,0x34,0xa2,0xca,0x68,0x8d,0x13,0x7c,0xc4,0xc8,0x45,0xfd,0xd2,0xb4,0x12,0x44,0x20,0xbb,0xa5,0x93,0xd8,0xd1,0xc0,0xb,0x21,0x2,0x1b,0xf6,0xea,0xd6,0xce,0x6b,0x7b,0x5c,0x3f,0x22,0x52,0x4a,0xda,0xe3,0xdb,0x14,0x30,0x7e,0xf4,0xe2,0x70,0xee,0x0,0x90,0x1e,0x29,0x47,0x85,0x3b,0x95,0x87,0xed,0xc,0xaa,0x56,0x9,0x98,0xb9,0x4c,0x84,0x89,0x62,0x71,0x83,0xde,0x35,0x3e,0x80,0xc3,0x5e,0x16,0x86,0x2d,0x3a,0xa,0x8c,0x55,0x7f,0x64,0x6e,0xb1,0xf3,0x9a,0xe8,0x59,0x2a,0x10,0xa4,0xf2,0x2b,0x61,0x3,0xb3,0x74,0x11,0x48,0x49,0x32,0x76,0xf5,0x60,0x17,0xbc,0xc7,0x97,0xe1,0xc9,0x6c,0x5a,0x5d,0x1c,0x78,0x46,0x4b,0xfe,0x72,0xdc,0xd0,0x7a,0xcd,0xb8,0x54,0x40,0xa6,0xff,0x31,0xe9,0x88,0xe4,0x9e,0x2c,0x9d,0x38,0x77,0xc1,0xf7,0x9c,0xaf,0x9b,0xf,0x43,0x63,0xab,0x19,0xfc,0x4f,0x15,0x69,0x1a,0xd7,0xe6,0x2f,0xf9,0x33,0x9f,0x8b,0xcc,0x94,0x37,0xdf,0x96,0x6,0xa1,0xd9,0x6a,0x5b,0x99,0xb5,0x2e,0x81,0xe,0xb7,0x41,0xef,0x67,0xe5,0x92,0xa7,0xd3,0xfb,0x8a,0xad,0x91,0xf8,0x82,0xf1,0x3c,0xa0,0x50,0x6d,0x4e,0xba,0x3d,0xd5,0x5,0xe7,0x1f,0x66,0x26,0xcb,0xbd,0xac,0x28,0x36,0x73,0x61,0xdb,0x16,0x11,0x91,0x8b,0xbc,0x9e,0x29,0xb6,0x6c,0xd7,0xce,0x7a,0xaa,0xd2,0xea,0x15,0xf6,0xcb,0xd4,0xa6,0x82,0xae,0x7,0x5c,0x3f,0x80,0x65,0x63,0xf0,0x6d,0x23,0xe,0xf7,0x1c,0x38,0xde,0x84,0x70,0x5d,0x7b,0xf4,0x33,0x7d,0x8c,0x71,0xe7,0xbb,0x19,0xc0,0x5e,0x17,0xaf,0x96,0x1b,0x1,0x2e,0xc1,0x67,0xf3,0x97,0x76,0x68,0xb,0x40,0x13,0x2,0xf2,0xd8,0xc8,0xd1,0x39,0x25,0x1d,0x5,0xa8,0xb8,0xec,0x8f,0x81,0xf1,0x9,0x99,0x8,0x30,0xe3,0xc7,0x27,0xad,0xa3,0x31,0xd3,0x3d,0xcd,0x43,0x94,0xfa,0xe8,0x56,0x54,0x46,0xdf,0x3e,0x85,0x79,0x4b,0xda,0x9f,0x6a,0x5a,0x57,0xa2,0xb1,0xd,0x50,0xed,0xe6,0x10,0x53,0xc5,0x8d,0xfe,0x55,0xd9,0xe9,0x86,0x5f,0xb7,0xac,0x62,0xbd,0x49,0x20,0x8a,0x3b,0xc3,0xf9,0x21,0x77,0xb2,0xf8,0x60,0xd0,0xc2,0xa7,0x9a,0x9b,0xa5,0xe1,0xb3,0x26,0x6f,0xc4,0x44,0x14,0x1a,0x32,0x89,0xbf,0xcf,0x8e,0x95,0xab,0x2d,0x98,0xf,0xa1,0xa9,0x3,0x6b,0x1e,0x93,0x87,0x2c,0x75,0x3a,0xe2,0x37,0x5b,0xff,0x4d,0xeb,0x4e,0x12,0xa4,0x4f,0x24,0x48,0x7c,0x90,0xdc,0x78,0xb0,0x2f,0xca,0xc6,0x9c,0xc9,0xba,0x35,0x4,0x2a,0xfc,0x4c,0xe0,0x1f,0x58,0xe4,0x47,0x45,0xc,0x72,0xd5,0xb9,0xa,0x4a,0x88,0xfd,0x66,0xdd,0x52,0x92,0x64,0xb4,0x3c,0x41,0x36,0x0,0x74,0x59,0x28,0x42,0x7e,0x51,0x2b,0xef,0x22,0x83,0x73,0x9d,0xbe,0xee,0x69,0xd6,0x6,0xcc,0x34,0xf5,0xb5,0x6e,0x18,0xfb,0x7f,0xa0,0xe5,0x68,0xc6,0x4a,0xff,0xf2,0xcc,0xa8,0xe9,0x4b,0x12,0xf4,0xe0,0xc,0x79,0xce,0x64,0x8c,0x29,0x98,0x2a,0x50,0x3c,0x5d,0x85,0xf7,0xbb,0x2f,0x1b,0x28,0x43,0x75,0xc3,0xed,0x5c,0x2e,0x47,0x5,0xda,0xd0,0xcb,0x7,0xb7,0xd5,0x9f,0x46,0x10,0xa4,0x9e,0xd4,0x41,0xc2,0x86,0xfd,0xfc,0xa5,0xc0,0xee,0xd8,0x7d,0x55,0x23,0x73,0x8,0xa3,0x3e,0x4f,0x67,0x13,0x26,0x51,0xd3,0x5b,0xe4,0x14,0x88,0x45,0x36,0x4c,0x25,0x19,0xab,0x53,0xb1,0x61,0x89,0xe,0xfa,0xd9,0xc7,0x82,0x9c,0x18,0x9,0x7f,0x92,0xd2,0xae,0xdd,0xa1,0xfb,0x48,0xad,0x1f,0xd7,0x78,0x3f,0x2b,0x87,0x4d,0x9b,0x52,0x63,0xde,0x6d,0x15,0xb2,0x22,0x6b,0x83,0x20,0xf5,0x3,0xba,0x35,0x9a,0x1,0x2d,0xef,0xe3,0x17,0x5f,0xb9,0x90,0x7b,0x44,0x69,0x16,0x80,0x1a,0xeb,0x93,0x54,0x3a,0x1c,0xf1,0x7c,0x70,0xc8,0xa7,0x39,0xdc,0x7e,0x11,0xf,0x94,0xf0,0xa6,0x0,0x66,0x49,0xdb,0xf9,0xf6,0xec,0x71,0x76,0x6,0xbc,0xcd,0xb5,0xa9,0x1d,0xb,0xb0,0x4e,0xd1,0xe5,0xc9,0xb3,0xc1,0x91,0xac,0x8d,0x72,0x97,0xa,0x2,0x4,0x58,0xe7,0x60,0x3b,0xb8,0x59,0x33,0x21,0x8f,0x31,0xf3,0x9d,0x3d,0x30,0xf8,0xd,0x2c,0xbd,0xe2,0x1e,0x77,0x34,0x8a,0x81,0x6a,0x37,0xc5,0xd6,0xe1,0x38,0xbe,0x8e,0x99,0x32,0xa2,0xea,0xaf,0xb6,0x95,0xbf,0x74,0x65,0x6c,0x27,0x8b,0xe8,0xcf,0xdf,0x7a,0x62,0x5e,0x42,0x84,0xa0,0x6f,0x57,0x6e,0xfe,0xe6,0x96,0xaa,0x24,0xb4,0x5a,0xc4,0x56,0x40,0xca,0x50,0xc5,0x46,0x2,0x79,0x78,0x21,0x44,0x6a,0x5c,0xf9,0xd1,0xa7,0xf7,0x8c,0x27,0x69,0xd8,0xaa,0xc3,0x81,0x5e,0x54,0x4f,0x83,0x33,0x51,0x1b,0xc2,0x94,0x20,0x1a,0x8,0xad,0x1c,0xae,0xd4,0xb8,0xd9,0x1,0x73,0x3f,0xab,0x9f,0xac,0xc7,0xf1,0x47,0xec,0x42,0xce,0x7b,0x76,0x48,0x2c,0x6d,0xcf,0x96,0x70,0x64,0x88,0xfd,0x4a,0xe0,0x5a,0xe9,0x91,0x36,0xa6,0xef,0x7,0xa4,0x71,0x87,0x3e,0xb1,0x1e,0x85,0xa9,0x6b,0x2a,0x59,0x25,0x7f,0xcc,0x29,0x9b,0x53,0xfc,0xbb,0xaf,0x3,0xc9,0x1f,0xd6,0xe7,0x2f,0xd7,0x35,0xe5,0xd,0x8a,0x7e,0x5d,0x43,0x6,0x18,0x9c,0x8d,0xfb,0x16,0x56,0xba,0xcb,0xe3,0x97,0xa2,0xd5,0x57,0xdf,0x60,0x90,0xc,0xc1,0xb2,0xc8,0xa1,0x9d,0x61,0x4d,0x37,0x45,0x15,0x28,0x9,0xf6,0x13,0x8e,0x86,0x80,0xdc,0x63,0xe4,0xbf,0x5f,0x7d,0x72,0x68,0xf5,0xf2,0x82,0x38,0x49,0x31,0x2d,0x99,0x8f,0x34,0xca,0x55,0x75,0xf8,0xf4,0x4c,0x23,0xbd,0x58,0xfa,0x95,0x8b,0x10,0x74,0x22,0x84,0xe2,0xcd,0x67,0x93,0xdb,0x3d,0x14,0xff,0xc0,0xed,0x92,0x4,0x9e,0x6f,0x17,0xd0,0xbe,0x98,0x0,0x24,0xeb,0xd3,0xea,0x7a,0x62,0x12,0x2e,0xa0,0x30,0xde,0x40,0xd2,0xc4,0x4e,0x2b,0x32,0x11,0x3b,0xf0,0xe1,0xe8,0xa3,0xf,0x6c,0x4b,0x5b,0xfe,0xe6,0xda,0xc6,0xf3,0xb0,0xe,0x5,0xee,0xb3,0x41,0x52,0x65,0xbc,0x3a,0xa,0x1d,0xb6,0x26,0x6e,0x3c,0xdd,0xb7,0xa5,0xb,0xb5,0x77,0x19,0xb9,0xb4,0x7c,0x89,0xa8,0x39,0x66,0x9a,0x55,0x44,0x4d,0x6,0x8e,0x97,0xb4,0x9e,0x5b,0x43,0x7f,0x63,0xaa,0xc9,0xee,0xfe,0x4f,0xdf,0xc7,0xb7,0xa5,0x81,0x4e,0x76,0xe5,0x77,0x61,0xeb,0x8b,0x5,0x95,0x7b,0xae,0x10,0xd2,0xbc,0x99,0x78,0x12,0x0,0xd,0x9c,0xc3,0x3f,0x1c,0x11,0xd9,0x2c,0x4b,0x16,0xe4,0xf7,0x56,0x15,0xab,0xa0,0xb8,0x13,0x83,0xcb,0xc0,0x19,0x9f,0xaf,0x50,0x57,0x27,0x9d,0xfa,0xd8,0xd7,0xcd,0x2a,0x91,0x6f,0xf0,0xec,0x94,0x88,0x3c,0xb0,0x8d,0xac,0x53,0xc4,0xe8,0x92,0xe0,0x79,0xc6,0x41,0x1a,0xb6,0x2b,0x23,0x25,0xb1,0x5a,0x65,0x48,0xc2,0x36,0x7e,0x98,0xb2,0x75,0x1b,0x3d,0x37,0xa1,0x3b,0xca,0x86,0x18,0xfd,0x5f,0xd0,0x5d,0x51,0xe9,0x87,0x21,0x47,0x68,0x30,0x2e,0xb5,0xd1,0x69,0x8c,0x3e,0xf6,0x8f,0xfc,0x80,0xda,0x6c,0xba,0x73,0x42,0x59,0x1e,0xa,0xa6,0x3,0x4a,0xa2,0x1,0xff,0x4c,0x34,0x93,0xbb,0x20,0xc,0xce,0xd4,0x22,0x9b,0x14,0x7,0x70,0xf2,0x7a,0x1f,0x6e,0x46,0x32,0x17,0x6d,0x4,0x38,0xc5,0x35,0xa9,0x64,0xa8,0x2f,0xdb,0xf8,0x8a,0x72,0x90,0x40,0x28,0x5e,0xb3,0xf3,0xe6,0xa3,0xbd,0x39,0x24,0xfb,0xf1,0xea,0xcc,0x7d,0xf,0x66,0x67,0x31,0x85,0xbf,0x26,0x96,0xf4,0xbe,0xdc,0xdd,0x84,0xe1,0xf5,0x60,0xe3,0xa7,0x2,0x52,0x29,0x82,0xcf,0xf9,0x5c,0x74,0xd3,0xed,0x89,0xc8,0x49,0xe7,0x6b,0xde,0x2d,0x58,0xef,0x45,0x6a,0x33,0xd5,0xc1,0x71,0x1d,0x7c,0xa4,0xad,0x8,0xb9,0xb,0x9,0x62,0x54,0xe2,0xd6,0x9a,0xe,0x3a}; + +unsigned char table_s4[] = {0x5b,0x9c,0x13,0x35,0x8f,0x19,0xe4,0x15,0x74,0x9f,0x66,0x4b,0x18,0xec,0xb6,0x50,0xf,0xa9,0x46,0x69,0x0,0x1e,0xff,0x9b,0x36,0xa8,0x71,0xd3,0x73,0xfe,0xc7,0x7f,0xbf,0x4,0xde,0x41,0xba,0xc2,0x12,0xa6,0x79,0x7e,0xb3,0x9,0xf6,0xd4,0xe3,0xf9,0xe8,0x57,0x34,0x6f,0x5,0x98,0xb,0xd,0xa3,0x9e,0x7d,0x82,0xc6,0xea,0xce,0xbc,0xb2,0x23,0x11,0xed,0x3f,0x32,0x2,0xf7,0x3e,0x80,0x92,0xfc,0x56,0xb7,0x2e,0x3c,0x3d,0x96,0xe5,0xad,0x37,0xee,0x81,0xb1,0x38,0x65,0xd9,0xca,0x3b,0x78,0x8e,0x85,0x6d,0x75,0x4d,0x51,0xe7,0x84,0xd0,0xc0,0x6a,0x7b,0x28,0x63,0xb9,0xa0,0xb0,0x9a,0x59,0xcb,0xc5,0x4f,0x2b,0xa5,0x55,0xbb,0xf1,0x61,0x99,0xe9,0xaf,0x8b,0x58,0x60,0x76,0x3,0x6b,0xc1,0x1d,0x44,0xef,0xfb,0xc3,0xfd,0xe6,0xa7,0xc9,0x67,0xf0,0x45,0x4c,0x27,0xcc,0x7a,0xb4,0xf8,0x14,0x20,0x33,0x5f,0x8a,0x52,0x26,0x83,0x25,0x97,0x1f,0x49,0x91,0xab,0xb8,0x8,0x90,0xda,0xd5,0xa,0xc4,0xdf,0x53,0xe2,0x48,0x21,0x7c,0x2c,0xac,0x7,0xd7,0xe1,0x5a,0x72,0xf3,0xf2,0xcf,0xaa,0x4e,0xdb,0x89,0xcd,0x43,0x39,0x16,0x2a,0x1b,0xeb,0x4a,0x87,0x5e,0x29,0x54,0xdc,0x40,0x31,0x1c,0x68,0x70,0x6,0xdd,0x9d,0x8d,0xc8,0x17,0x93,0x1,0x86,0xd6,0xf5,0x5c,0xa4,0x6e,0xbe,0x94,0x42,0x6c,0x5d,0x30,0x77,0x88,0x24,0xa2,0x47,0xd8,0x10,0xd2,0xa1,0xf4,0xae,0xe,0x95,0xe0,0x22,0xc,0xfa,0x3a,0xb5,0x64,0x2d,0x2f,0x8c,0x62,0xd1,0xbd,0x1a,0x91,0x37,0xd8,0xf7,0x9e,0x80,0x61,0x5,0xa8,0x36,0xef,0x4d,0xed,0x60,0x59,0xe1,0xc5,0x2,0x8d,0xab,0x11,0x87,0x7a,0x8b,0xea,0x1,0xf8,0xd5,0x86,0x72,0x28,0xce,0x76,0xc9,0xaa,0xf1,0x9b,0x6,0x95,0x93,0x3d,0x0,0xe3,0x1c,0x58,0x74,0x50,0x22,0x21,0x9a,0x40,0xdf,0x24,0x5c,0x8c,0x38,0xe7,0xe0,0x2d,0x97,0x68,0x4a,0x7d,0x67,0xa3,0x8,0x7b,0x33,0xa9,0x70,0x1f,0x2f,0xa6,0xfb,0x47,0x54,0xa5,0xe6,0x10,0x1b,0x2c,0xbd,0x8f,0x73,0xa1,0xac,0x9c,0x69,0xa0,0x1e,0xc,0x62,0xc8,0x29,0xb0,0xa2,0xc7,0x55,0x5b,0xd1,0xb5,0x3b,0xcb,0x25,0x6f,0xff,0x7,0x77,0x31,0x15,0xc6,0xfe,0xf3,0xeb,0xd3,0xcf,0x79,0x1a,0x4e,0x5e,0xf4,0xe5,0xb6,0xfd,0x27,0x3e,0x2e,0x4,0xd2,0xb9,0x52,0xe4,0x2a,0x66,0x8a,0xbe,0xad,0xc1,0x14,0xcc,0xb8,0x1d,0xbb,0x9,0xe8,0x9d,0xf5,0x5f,0x83,0xda,0x71,0x65,0x5d,0x63,0x78,0x39,0x57,0xf9,0x6e,0xdb,0xe2,0xb2,0x32,0x99,0x49,0x7f,0xc4,0xec,0x6d,0x6c,0x51,0x34,0xd0,0x45,0x17,0x53,0x81,0xd7,0xf,0x35,0x26,0x96,0xe,0x44,0x4b,0x94,0x5a,0x41,0xcd,0x7c,0xd6,0xbf,0xee,0x98,0x43,0x3,0x13,0x56,0x89,0xd,0x9f,0x18,0x48,0x6b,0xc2,0x3a,0xf0,0x20,0xdd,0xa7,0x88,0xb4,0x85,0x75,0xd4,0x19,0xc0,0xb7,0xca,0x42,0xde,0xaf,0x82,0xf6,0x90,0xb,0x7e,0xbc,0x92,0x64,0xa4,0x2b,0xfa,0xb3,0xb1,0x12,0xfc,0x4f,0x23,0x84,0xa,0xdc,0xf2,0xc3,0xae,0xe9,0x16,0xba,0x3c,0xd9,0x46,0x8e,0x4c,0x3f,0x6a,0x30,0xc4,0xe9,0x10,0xfb,0xdf,0x39,0x63,0x97,0xba,0x9c,0x13,0xd4,0x9a,0x6b,0x96,0x0,0x5c,0xfe,0x27,0xb9,0xf0,0x48,0x71,0xfc,0xe6,0xc9,0x26,0x80,0x14,0x70,0x91,0x8f,0x86,0x3c,0xf1,0xf6,0x76,0x6c,0x5b,0x79,0xce,0x51,0x8b,0x30,0x29,0x9d,0x4d,0x35,0xd,0xf2,0x11,0x2c,0x33,0x41,0x65,0x49,0xe0,0xbb,0xd8,0x67,0x82,0x84,0x17,0x8a,0x73,0x1d,0xf,0xb1,0xb3,0xa1,0x38,0xd9,0x62,0x9e,0xac,0x3d,0x78,0x8d,0xbd,0xb0,0x45,0x56,0xea,0xb7,0xa,0x1,0xf7,0xb4,0x22,0x6a,0x19,0xb2,0x3e,0xe,0x61,0xb8,0xec,0xa7,0xf4,0xe5,0x15,0x3f,0x2f,0x36,0xde,0xc2,0xfa,0xe2,0x4f,0x5f,0xb,0x68,0x66,0x16,0xee,0x7e,0xef,0xd7,0x4,0x20,0xc0,0x4a,0x44,0xd6,0x34,0xda,0x2a,0xa4,0x28,0x69,0x72,0x4c,0xca,0x7f,0xe8,0x46,0x4e,0xe4,0x8c,0xf9,0x74,0x60,0xcb,0x92,0xdd,0x5,0xd0,0xbc,0x18,0xaa,0xc,0xa9,0xf5,0x43,0xa8,0xc3,0xaf,0x9b,0x77,0x3b,0x50,0x4b,0x85,0x5a,0xae,0xc7,0x6d,0xdc,0x24,0x1e,0xc6,0x90,0x55,0x1f,0x87,0x37,0x25,0x40,0x7d,0x7c,0x42,0x6,0x54,0xc1,0x88,0x23,0xa3,0xf3,0xfd,0xd5,0x6e,0x58,0x53,0xdb,0xa6,0xd1,0xe7,0x93,0xbe,0xcf,0xa5,0x99,0xb6,0xcc,0x8,0xc5,0x64,0x94,0x7a,0x59,0x9,0x8e,0x31,0xe1,0x2b,0xd3,0x12,0x52,0x89,0xff,0x1c,0x98,0x47,0x2,0x9f,0x57,0xc8,0x2d,0x21,0x7b,0x2e,0x5d,0xd2,0xe3,0xcd,0x1b,0xab,0x7,0xf8,0xbf,0x3,0xa0,0xa2,0xeb,0x95,0x32,0x5e,0xed,0xad,0x6f,0x1a,0x81,0x3a,0xb5,0x75,0x83,0xbc,0xba,0xb2,0x2f,0x83,0xd8,0x5f,0xe0,0x79,0xb,0x71,0x5d,0xca,0x35,0x14,0x29,0xa5,0x11,0xd,0x75,0x69,0xf6,0x8,0xb3,0x54,0x4e,0x41,0x63,0x4,0xbe,0xce,0xc9,0x48,0x2c,0xb7,0xa9,0xf1,0xde,0xb8,0x1e,0x70,0xc8,0xc4,0x49,0xc6,0x64,0x81,0x1f,0x53,0xa2,0x38,0xae,0xa4,0x82,0xec,0x2b,0x1,0xe7,0xaf,0x5b,0xd1,0xfc,0xc3,0x28,0xe2,0xc,0x9c,0x12,0x72,0xf8,0xee,0x7c,0xef,0xd7,0x18,0x3c,0x2e,0x5e,0x46,0xd6,0x67,0x77,0x50,0x33,0xfa,0xe6,0xda,0xc2,0x7,0x2d,0xe,0x17,0x9f,0xd4,0xdd,0xcc,0x36,0x6,0x80,0x59,0x52,0x1a,0x8a,0x21,0x39,0x32,0x8c,0xcf,0x6e,0x7d,0x8f,0xd2,0xb5,0x40,0x88,0x85,0xa6,0x5a,0x5,0x94,0x99,0x8b,0xe1,0x0,0x25,0x4b,0x89,0x37,0xed,0xc5,0x60,0x56,0x1b,0xb0,0xcb,0x9b,0x3e,0x7a,0xf9,0x6c,0x78,0x1d,0x44,0x45,0x27,0x6d,0xf,0xbf,0x26,0x1c,0xa8,0xfe,0xff,0x96,0xe4,0x55,0x73,0x68,0x62,0xbd,0xa3,0x97,0x3,0x4f,0x7b,0xcd,0xfb,0x90,0x92,0x20,0x91,0x34,0x3d,0xe5,0x84,0xe8,0x58,0x4c,0xaa,0xf3,0xdc,0x76,0xc1,0xb4,0x47,0xf2,0x7e,0xd0,0x51,0x10,0x74,0x4a,0x8d,0x2,0xbb,0x4d,0x57,0x95,0xb9,0x22,0xa,0xad,0xd5,0x66,0x98,0x3b,0xd3,0x9a,0x3f,0x93,0x87,0xc0,0xdb,0xea,0x23,0xf5,0x43,0x19,0x65,0x16,0x6f,0xa7,0x15,0xf0,0xa0,0x24,0x3a,0x7f,0x6a,0x2a,0xc7,0xb1,0xd9,0x9,0xeb,0x13,0x61,0x42,0xb6,0x31,0xfd,0x30,0xac,0x5c,0xa1,0x9d,0xf4,0x8e,0xab,0xdf,0xf7,0x86,0xe3,0x6b,0xe9,0x9e,0x8b,0x4c,0xc3,0xe5,0x5f,0xc9,0x34,0xc5,0xa4,0x4f,0xb6,0x9b,0xc8,0x3c,0x66,0x80,0xdf,0x79,0x96,0xb9,0xd0,0xce,0x2f,0x4b,0xe6,0x78,0xa1,0x3,0xa3,0x2e,0x17,0xaf,0x6f,0xd4,0xe,0x91,0x6a,0x12,0xc2,0x76,0xa9,0xae,0x63,0xd9,0x26,0x4,0x33,0x29,0x38,0x87,0xe4,0xbf,0xd5,0x48,0xdb,0xdd,0x73,0x4e,0xad,0x52,0x16,0x3a,0x1e,0x6c,0x62,0xf3,0xc1,0x3d,0xef,0xe2,0xd2,0x27,0xee,0x50,0x42,0x2c,0x86,0x67,0xfe,0xec,0xed,0x46,0x35,0x7d,0xe7,0x3e,0x51,0x61,0xe8,0xb5,0x9,0x1a,0xeb,0xa8,0x5e,0x55,0xbd,0xa5,0x9d,0x81,0x37,0x54,0x0,0x10,0xba,0xab,0xf8,0xb3,0x69,0x70,0x60,0x4a,0x89,0x1b,0x15,0x9f,0xfb,0x75,0x85,0x6b,0x21,0xb1,0x49,0x39,0x7f,0x5b,0x88,0xb0,0xa6,0xd3,0xbb,0x11,0xcd,0x94,0x3f,0x2b,0x13,0x2d,0x36,0x77,0x19,0xb7,0x20,0x95,0x9c,0xf7,0x1c,0xaa,0x64,0x28,0xc4,0xf0,0xe3,0x8f,0x5a,0x82,0xf6,0x53,0xf5,0x47,0xcf,0x99,0x41,0x7b,0x68,0xd8,0x40,0xa,0x5,0xda,0x14,0xf,0x83,0x32,0x98,0xf1,0xac,0xfc,0x7c,0xd7,0x7,0x31,0x8a,0xa2,0x23,0x22,0x1f,0x7a,0x9e,0xb,0x59,0x1d,0x93,0xe9,0xc6,0xfa,0xcb,0x3b,0x9a,0x57,0x8e,0xf9,0x84,0xc,0x90,0xe1,0xcc,0xb8,0xa0,0xd6,0xd,0x4d,0x5d,0x18,0xc7,0x43,0xd1,0x56,0x6,0x25,0x8c,0x74,0xbe,0x6e,0x44,0x92,0xbc,0x8d,0xe0,0xa7,0x58,0xf4,0x72,0x97,0x8,0xc0,0x2,0x71,0x24,0x7e,0xde,0x45,0x30,0xf2,0xdc,0x2a,0xea,0x65,0xb4,0xfd,0xff,0x5c,0xb2,0x1,0x6d,0xca,0x41,0xe7,0x8,0x27,0x4e,0x50,0xb1,0xd5,0x78,0xe6,0x3f,0x9d,0x3d,0xb0,0x89,0x31,0x15,0xd2,0x5d,0x7b,0xc1,0x57,0xaa,0x5b,0x3a,0xd1,0x28,0x5,0x56,0xa2,0xf8,0x1e,0xa6,0x19,0x7a,0x21,0x4b,0xd6,0x45,0x43,0xed,0xd0,0x33,0xcc,0x88,0xa4,0x80,0xf2,0xf1,0x4a,0x90,0xf,0xf4,0x8c,0x5c,0xe8,0x37,0x30,0xfd,0x47,0xb8,0x9a,0xad,0xb7,0x73,0xd8,0xab,0xe3,0x79,0xa0,0xcf,0xff,0x76,0x2b,0x97,0x84,0x75,0x36,0xc0,0xcb,0xfc,0x6d,0x5f,0xa3,0x71,0x7c,0x4c,0xb9,0x70,0xce,0xdc,0xb2,0x18,0xf9,0x60,0x72,0x17,0x85,0x8b,0x1,0x65,0xeb,0x1b,0xf5,0xbf,0x2f,0xd7,0xa7,0xe1,0xc5,0x16,0x2e,0x23,0x3b,0x3,0x1f,0xa9,0xca,0x9e,0x8e,0x24,0x35,0x66,0x2d,0xf7,0xee,0xfe,0xd4,0x2,0x69,0x82,0x34,0xfa,0xb6,0x5a,0x6e,0x7d,0x11,0xc4,0x1c,0x68,0xcd,0x6b,0xd9,0x38,0x4d,0x25,0x8f,0x53,0xa,0xa1,0xb5,0x8d,0xb3,0xa8,0xe9,0x87,0x29,0xbe,0xb,0x32,0x62,0xe2,0x49,0x99,0xaf,0x14,0x3c,0xbd,0xbc,0x81,0xe4,0x0,0x95,0xc7,0x83,0x51,0x7,0xdf,0xe5,0xf6,0x46,0xde,0x94,0x9b,0x44,0x8a,0x91,0x1d,0xac,0x6,0x6f,0x3e,0x48,0x93,0xd3,0xc3,0x86,0x59,0xdd,0x4f,0xc8,0x98,0xbb,0x12,0xea,0x20,0xf0,0xd,0x77,0x58,0x64,0x55,0xa5,0x4,0xc9,0x10,0x67,0x1a,0x92,0xe,0x7f,0x52,0x26,0x40,0xdb,0xae,0x6c,0x42,0xb4,0x74,0xfb,0x2a,0x63,0x61,0xc2,0x2c,0x9f,0xf3,0x54,0xda,0xc,0x22,0x13,0x7e,0x39,0xc6,0x6a,0xec,0x9,0x96,0x5e,0x9c,0xef,0xba,0xe0,0xb,0x26,0xdf,0x34,0x10,0xf6,0xac,0x58,0x75,0x53,0xdc,0x1b,0x55,0xa4,0x59,0xcf,0x93,0x31,0xe8,0x76,0x3f,0x87,0xbe,0x33,0x29,0x6,0xe9,0x4f,0xdb,0xbf,0x5e,0x40,0x49,0xf3,0x3e,0x39,0xb9,0xa3,0x94,0xb6,0x1,0x9e,0x44,0xff,0xe6,0x52,0x82,0xfa,0xc2,0x3d,0xde,0xe3,0xfc,0x8e,0xaa,0x86,0x2f,0x74,0x17,0xa8,0x4d,0x4b,0xd8,0x45,0xbc,0xd2,0xc0,0x7e,0x7c,0x6e,0xf7,0x16,0xad,0x51,0x63,0xf2,0xb7,0x42,0x72,0x7f,0x8a,0x99,0x25,0x78,0xc5,0xce,0x38,0x7b,0xed,0xa5,0xd6,0x7d,0xf1,0xc1,0xae,0x77,0x23,0x68,0x3b,0x2a,0xda,0xf0,0xe0,0xf9,0x11,0xd,0x35,0x2d,0x80,0x90,0xc4,0xa7,0xa9,0xd9,0x21,0xb1,0x20,0x18,0xcb,0xef,0xf,0x85,0x8b,0x19,0xfb,0x15,0xe5,0x6b,0xe7,0xa6,0xbd,0x83,0x5,0xb0,0x27,0x89,0x81,0x2b,0x43,0x36,0xbb,0xaf,0x4,0x5d,0x12,0xca,0x1f,0x73,0xd7,0x65,0xc3,0x66,0x3a,0x8c,0x67,0xc,0x60,0x54,0xb8,0xf4,0x9f,0x84,0x4a,0x95,0x61,0x8,0xa2,0x13,0xeb,0xd1,0x9,0x5f,0x9a,0xd0,0x48,0xf8,0xea,0x8f,0xb2,0xb3,0x8d,0xc9,0x9b,0xe,0x47,0xec,0x6c,0x3c,0x32,0x1a,0xa1,0x97,0x9c,0x14,0x69,0x1e,0x28,0x5c,0x71,0x0,0x6a,0x56,0x79,0x3,0xc7,0xa,0xab,0x5b,0xb5,0x96,0xc6,0x41,0xfe,0x2e,0xe4,0x1c,0xdd,0x9d,0x46,0x30,0xd3,0x57,0x88,0xcd,0x50,0x98,0x7,0xe2,0xee,0xb4,0xe1,0x92,0x1d,0x2c,0x2,0xd4,0x64,0xc8,0x37,0x70,0xcc,0x6f,0x6d,0x24,0x5a,0xfd,0x91,0x22,0x62,0xa0,0xd5,0x4e,0xf5,0x7a,0xba,0x4c,0x3d,0x3b,0x33,0xae,0x2,0x59,0xde,0x61,0xf8,0x8a,0xf0,0xdc,0x4b,0xb4,0x95,0xa8,0x24,0x90,0x8c,0xf4,0xe8,0x77,0x89,0x32,0xd5,0xcf,0xc0,0xe2,0x85,0x3f,0x4f,0x48,0xc9,0xad,0x36,0x28,0x70,0x5f,0x39,0x9f,0xf1,0x49,0x45,0xc8,0x47,0xe5,0x0,0x9e,0xd2,0x23,0xb9,0x2f,0x25,0x3,0x6d,0xaa,0x80,0x66,0x2e,0xda,0x50,0x7d,0x42,0xa9,0x63,0x8d,0x1d,0x93,0xf3,0x79,0x6f,0xfd,0x6e,0x56,0x99,0xbd,0xaf,0xdf,0xc7,0x57,0xe6,0xf6,0xd1,0xb2,0x7b,0x67,0x5b,0x43,0x86,0xac,0x8f,0x96,0x1e,0x55,0x5c,0x4d,0xb7,0x87,0x1,0xd8,0xd3,0x9b,0xb,0xa0,0xb8,0xb3,0xd,0x4e,0xef,0xfc,0xe,0x53,0x34,0xc1,0x9,0x4,0x27,0xdb,0x84,0x15,0x18,0xa,0x60,0x81,0xa4,0xca,0x8,0xb6,0x6c,0x44,0xe1,0xd7,0x9a,0x31,0x4a,0x1a,0xbf,0xfb,0x78,0xed,0xf9,0x9c,0xc5,0xc4,0xa6,0xec,0x8e,0x3e,0xa7,0x9d,0x29,0x7f,0x7e,0x17,0x65,0xd4,0xf2,0xe9,0xe3,0x3c,0x22,0x16,0x82,0xce,0xfa,0x4c,0x7a,0x11,0x13,0xa1,0x10,0xb5,0xbc,0x64,0x5,0x69,0xd9,0xcd,0x2b,0x72,0x5d,0xf7,0x40,0x35,0xc6,0x73,0xff,0x51,0xd0,0x91,0xf5,0xcb,0xc,0x83,0x3a,0xcc,0xd6,0x14,0x38,0xa3,0x8b,0x2c,0x54,0xe7,0x19,0xba,0x52,0x1b,0xbe,0x12,0x6,0x41,0x5a,0x6b,0xa2,0x74,0xc2,0x98,0xe4,0x97,0xee,0x26,0x94,0x71,0x21,0xa5,0xbb,0xfe,0xeb,0xab,0x46,0x30,0x58,0x88,0x6a,0x92,0xe0,0xc3,0x37,0xb0,0x7c,0xb1,0x2d,0xdd,0x20,0x1c,0x75,0xf,0x2a,0x5e,0x76,0x7,0x62,0xea,0x68,0x1f,0x60,0xa7,0x28,0xe,0xb4,0x22,0xdf,0x2e,0x4f,0xa4,0x5d,0x70,0x23,0xd7,0x8d,0x6b,0x34,0x92,0x7d,0x52,0x3b,0x25,0xc4,0xa0,0xd,0x93,0x4a,0xe8,0x48,0xc5,0xfc,0x44,0x84,0x3f,0xe5,0x7a,0x81,0xf9,0x29,0x9d,0x42,0x45,0x88,0x32,0xcd,0xef,0xd8,0xc2,0xd3,0x6c,0xf,0x54,0x3e,0xa3,0x30,0x36,0x98,0xa5,0x46,0xb9,0xfd,0xd1,0xf5,0x87,0x89,0x18,0x2a,0xd6,0x4,0x9,0x39,0xcc,0x5,0xbb,0xa9,0xc7,0x6d,0x8c,0x15,0x7,0x6,0xad,0xde,0x96,0xc,0xd5,0xba,0x8a,0x3,0x5e,0xe2,0xf1,0x0,0x43,0xb5,0xbe,0x56,0x4e,0x76,0x6a,0xdc,0xbf,0xeb,0xfb,0x51,0x40,0x13,0x58,0x82,0x9b,0x8b,0xa1,0x62,0xf0,0xfe,0x74,0x10,0x9e,0x6e,0x80,0xca,0x5a,0xa2,0xd2,0x94,0xb0,0x63,0x5b,0x4d,0x38,0x50,0xfa,0x26,0x7f,0xd4,0xc0,0xf8,0xc6,0xdd,0x9c,0xf2,0x5c,0xcb,0x7e,0x77,0x1c,0xf7,0x41,0x8f,0xc3,0x2f,0x1b,0x8,0x64,0xb1,0x69,0x1d,0xb8,0x1e,0xac,0x24,0x72,0xaa,0x90,0x83,0x33,0xab,0xe1,0xee,0x31,0xff,0xe4,0x68,0xd9,0x73,0x1a,0x47,0x17,0x97,0x3c,0xec,0xda,0x61,0x49,0xc8,0xc9,0xf4,0x91,0x75,0xe0,0xb2,0xf6,0x78,0x2,0x2d,0x11,0x20,0xd0,0x71,0xbc,0x65,0x12,0x6f,0xe7,0x7b,0xa,0x27,0x53,0x4b,0x3d,0xe6,0xa6,0xb6,0xf3,0x2c,0xa8,0x3a,0xbd,0xed,0xce,0x67,0x9f,0x55,0x85,0xaf,0x79,0x57,0x66,0xb,0x4c,0xb3,0x1f,0x99,0x7c,0xe3,0x2b,0xe9,0x9a,0xcf,0x95,0x35,0xae,0xdb,0x19,0x37,0xc1,0x1,0x8e,0x5f,0x16,0x14,0xb7,0x59,0xea,0x86,0x21,0xaa,0xc,0xe3,0xcc,0xa5,0xbb,0x5a,0x3e,0x93,0xd,0xd4,0x76,0xd6,0x5b,0x62,0xda,0xfe,0x39,0xb6,0x90,0x2a,0xbc,0x41,0xb0,0xd1,0x3a,0xc3,0xee,0xbd,0x49,0x13,0xf5,0x4d,0xf2,0x91,0xca,0xa0,0x3d,0xae,0xa8,0x6,0x3b,0xd8,0x27,0x63,0x4f,0x6b,0x19,0x1a,0xa1,0x7b,0xe4,0x1f,0x67,0xb7,0x3,0xdc,0xdb,0x16,0xac,0x53,0x71,0x46,0x5c,0x98,0x33,0x40,0x8,0x92,0x4b,0x24,0x14,0x9d,0xc0,0x7c,0x6f,0x9e,0xdd,0x2b,0x20,0x17,0x86,0xb4,0x48,0x9a,0x97,0xa7,0x52,0x9b,0x25,0x37,0x59,0xf3,0x12,0x8b,0x99,0xfc,0x6e,0x60,0xea,0x8e,0x0,0xf0,0x1e,0x54,0xc4,0x3c,0x4c,0xa,0x2e,0xfd,0xc5,0xc8,0xd0,0xe8,0xf4,0x42,0x21,0x75,0x65,0xcf,0xde,0x8d,0xc6,0x1c,0x5,0x15,0x3f,0xe9,0x82,0x69,0xdf,0x11,0x5d,0xb1,0x85,0x96,0xfa,0x2f,0xf7,0x83,0x26,0x80,0x32,0xd3,0xa6,0xce,0x64,0xb8,0xe1,0x4a,0x5e,0x66,0x58,0x43,0x2,0x6c,0xc2,0x55,0xe0,0xd9,0x89,0x9,0xa2,0x72,0x44,0xff,0xd7,0x56,0x57,0x6a,0xf,0xeb,0x7e,0x2c,0x68,0xba,0xec,0x34,0xe,0x1d,0xad,0x35,0x7f,0x70,0xaf,0x61,0x7a,0xf6,0x47,0xed,0x84,0xd5,0xa3,0x78,0x38,0x28,0x6d,0xb2,0x36,0xa4,0x23,0x73,0x50,0xf9,0x1,0xcb,0x1b,0xe6,0x9c,0xb3,0x8f,0xbe,0x4e,0xef,0x22,0xfb,0x8c,0xf1,0x79,0xe5,0x94,0xb9,0xcd,0xab,0x30,0x45,0x87,0xa9,0x5f,0x9f,0x10,0xc1,0x88,0x8a,0x29,0xc7,0x74,0x18,0xbf,0x31,0xe7,0xc9,0xf8,0x95,0xd2,0x2d,0x81,0x7,0xe2,0x7d,0xb5,0x77,0x4,0x51,0xb,0xf3,0xde,0x27,0xcc,0xe8,0xe,0x54,0xa0,0x8d,0xab,0x24,0xe3,0xad,0x5c,0xa1,0x37,0x6b,0xc9,0x10,0x8e,0xc7,0x7f,0x46,0xcb,0xd1,0xfe,0x11,0xb7,0x23,0x47,0xa6,0xb8,0xb1,0xb,0xc6,0xc1,0x41,0x5b,0x6c,0x4e,0xf9,0x66,0xbc,0x7,0x1e,0xaa,0x7a,0x2,0x3a,0xc5,0x26,0x1b,0x4,0x76,0x52,0x7e,0xd7,0x8c,0xef,0x50,0xb5,0xb3,0x20,0xbd,0x44,0x2a,0x38,0x86,0x84,0x96,0xf,0xee,0x55,0xa9,0x9b,0xa,0x4f,0xba,0x8a,0x87,0x72,0x61,0xdd,0x80,0x3d,0x36,0xc0,0x83,0x15,0x5d,0x2e,0x85,0x9,0x39,0x56,0x8f,0xdb,0x90,0xc3,0xd2,0x22,0x8,0x18,0x1,0xe9,0xf5,0xcd,0xd5,0x78,0x68,0x3c,0x5f,0x51,0x21,0xd9,0x49,0xd8,0xe0,0x33,0x17,0xf7,0x7d,0x73,0xe1,0x3,0xed,0x1d,0x93,0x1f,0x5e,0x45,0x7b,0xfd,0x48,0xdf,0x71,0x79,0xd3,0xbb,0xce,0x43,0x57,0xfc,0xa5,0xea,0x32,0xe7,0x8b,0x2f,0x9d,0x3b,0x9e,0xc2,0x74,0x9f,0xf4,0x98,0xac,0x40,0xc,0x67,0x7c,0xb2,0x6d,0x99,0xf0,0x5a,0xeb,0x13,0x29,0xf1,0xa7,0x62,0x28,0xb0,0x0,0x12,0x77,0x4a,0x4b,0x75,0x31,0x63,0xf6,0xbf,0x14,0x94,0xc4,0xca,0xe2,0x59,0x6f,0x64,0xec,0x91,0xe6,0xd0,0xa4,0x89,0xf8,0x92,0xae,0x81,0xfb,0x3f,0xf2,0x53,0xa3,0x4d,0x6e,0x3e,0xb9,0x6,0xd6,0x1c,0xe4,0x25,0x65,0xbe,0xc8,0x2b,0xaf,0x70,0x35,0xa8,0x60,0xff,0x1a,0x16,0x4c,0x19,0x6a,0xe5,0xd4,0xfa,0x2c,0x9c,0x30,0xcf,0x88,0x34,0x97,0x95,0xdc,0xa2,0x5,0x69,0xda,0x9a,0x58,0x2d,0xb6,0xd,0x82,0x42,0xb4,0xb,0xd,0x5,0x98,0x34,0x6f,0xe8,0x57,0xce,0xbc,0xc6,0xea,0x7d,0x82,0xa3,0x9e,0x12,0xa6,0xba,0xc2,0xde,0x41,0xbf,0x4,0xe3,0xf9,0xf6,0xd4,0xb3,0x9,0x79,0x7e,0xff,0x9b,0x0,0x1e,0x46,0x69,0xf,0xa9,0xc7,0x7f,0x73,0xfe,0x71,0xd3,0x36,0xa8,0xe4,0x15,0x8f,0x19,0x13,0x35,0x5b,0x9c,0xb6,0x50,0x18,0xec,0x66,0x4b,0x74,0x9f,0x55,0xbb,0x2b,0xa5,0xc5,0x4f,0x59,0xcb,0x58,0x60,0xaf,0x8b,0x99,0xe9,0xf1,0x61,0xd0,0xc0,0xe7,0x84,0x4d,0x51,0x6d,0x75,0xb0,0x9a,0xb9,0xa0,0x28,0x63,0x6a,0x7b,0x81,0xb1,0x37,0xee,0xe5,0xad,0x3d,0x96,0x8e,0x85,0x3b,0x78,0xd9,0xca,0x38,0x65,0x2,0xf7,0x3f,0x32,0x11,0xed,0xb2,0x23,0x2e,0x3c,0x56,0xb7,0x92,0xfc,0x3e,0x80,0x5a,0x72,0xd7,0xe1,0xac,0x7,0x7c,0x2c,0x89,0xcd,0x4e,0xdb,0xcf,0xaa,0xf3,0xf2,0x90,0xda,0xb8,0x8,0x91,0xab,0x1f,0x49,0x48,0x21,0x53,0xe2,0xc4,0xdf,0xd5,0xa,0x14,0x20,0xb4,0xf8,0xcc,0x7a,0x4c,0x27,0x25,0x97,0x26,0x83,0x8a,0x52,0x33,0x5f,0xef,0xfb,0x1d,0x44,0x6b,0xc1,0x76,0x3,0xf0,0x45,0xc9,0x67,0xe6,0xa7,0xc3,0xfd,0x3a,0xb5,0xc,0xfa,0xe0,0x22,0xe,0x95,0xbd,0x1a,0x62,0xd1,0x2f,0x8c,0x64,0x2d,0x88,0x24,0x30,0x77,0x6c,0x5d,0x94,0x42,0xf4,0xae,0xd2,0xa1,0xd8,0x10,0xa2,0x47,0x17,0x93,0x8d,0xc8,0xdd,0x9d,0x70,0x6,0x6e,0xbe,0x5c,0xa4,0xd6,0xf5,0x1,0x86,0x4a,0x87,0x1b,0xeb,0x16,0x2a,0x43,0x39,0x1c,0x68,0x40,0x31,0x54,0xdc,0x5e,0x29,0x11,0xd6,0x59,0x7f,0xc5,0x53,0xae,0x5f,0x3e,0xd5,0x2c,0x1,0x52,0xa6,0xfc,0x1a,0x45,0xe3,0xc,0x23,0x4a,0x54,0xb5,0xd1,0x7c,0xe2,0x3b,0x99,0x39,0xb4,0x8d,0x35,0xf5,0x4e,0x94,0xb,0xf0,0x88,0x58,0xec,0x33,0x34,0xf9,0x43,0xbc,0x9e,0xa9,0xb3,0xa2,0x1d,0x7e,0x25,0x4f,0xd2,0x41,0x47,0xe9,0xd4,0x37,0xc8,0x8c,0xa0,0x84,0xf6,0xf8,0x69,0x5b,0xa7,0x75,0x78,0x48,0xbd,0x74,0xca,0xd8,0xb6,0x1c,0xfd,0x64,0x76,0x77,0xdc,0xaf,0xe7,0x7d,0xa4,0xcb,0xfb,0x72,0x2f,0x93,0x80,0x71,0x32,0xc4,0xcf,0x27,0x3f,0x7,0x1b,0xad,0xce,0x9a,0x8a,0x20,0x31,0x62,0x29,0xf3,0xea,0xfa,0xd0,0x13,0x81,0x8f,0x5,0x61,0xef,0x1f,0xf1,0xbb,0x2b,0xd3,0xa3,0xe5,0xc1,0x12,0x2a,0x3c,0x49,0x21,0x8b,0x57,0xe,0xa5,0xb1,0x89,0xb7,0xac,0xed,0x83,0x2d,0xba,0xf,0x6,0x6d,0x86,0x30,0xfe,0xb2,0x5e,0x6a,0x79,0x15,0xc0,0x18,0x6c,0xc9,0x6f,0xdd,0x55,0x3,0xdb,0xe1,0xf2,0x42,0xda,0x90,0x9f,0x40,0x8e,0x95,0x19,0xa8,0x2,0x6b,0x36,0x66,0xe6,0x4d,0x9d,0xab,0x10,0x38,0xb9,0xb8,0x85,0xe0,0x4,0x91,0xc3,0x87,0x9,0x73,0x5c,0x60,0x51,0xa1,0x0,0xcd,0x14,0x63,0x1e,0x96,0xa,0x7b,0x56,0x22,0x3a,0x4c,0x97,0xd7,0xc7,0x82,0x5d,0xd9,0x4b,0xcc,0x9c,0xbf,0x16,0xee,0x24,0xf4,0xde,0x8,0x26,0x17,0x7a,0x3d,0xc2,0x6e,0xe8,0xd,0x92,0x5a,0x98,0xeb,0xbe,0xe4,0x44,0xdf,0xaa,0x68,0x46,0xb0,0x70,0xff,0x2e,0x67,0x65,0xc6,0x28,0x9b,0xf7,0x50,0x2f,0x89,0x66,0x49,0x20,0x3e,0xdf,0xbb,0x16,0x88,0x51,0xf3,0x53,0xde,0xe7,0x5f,0x7b,0xbc,0x33,0x15,0xaf,0x39,0xc4,0x35,0x54,0xbf,0x46,0x6b,0x38,0xcc,0x96,0x70,0xc8,0x77,0x14,0x4f,0x25,0xb8,0x2b,0x2d,0x83,0xbe,0x5d,0xa2,0xe6,0xca,0xee,0x9c,0x9f,0x24,0xfe,0x61,0x9a,0xe2,0x32,0x86,0x59,0x5e,0x93,0x29,0xd6,0xf4,0xc3,0xd9,0x1d,0xb6,0xc5,0x8d,0x17,0xce,0xa1,0x91,0x18,0x45,0xf9,0xea,0x1b,0x58,0xae,0xa5,0x92,0x3,0x31,0xcd,0x1f,0x12,0x22,0xd7,0x1e,0xa0,0xb2,0xdc,0x76,0x97,0xe,0x1c,0x79,0xeb,0xe5,0x6f,0xb,0x85,0x75,0x9b,0xd1,0x41,0xb9,0xc9,0x8f,0xab,0x78,0x40,0x4d,0x55,0x6d,0x71,0xc7,0xa4,0xf0,0xe0,0x4a,0x5b,0x8,0x43,0x99,0x80,0x90,0xba,0x6c,0x7,0xec,0x5a,0x94,0xd8,0x34,0x0,0x13,0x7f,0xaa,0x72,0x6,0xa3,0x5,0xb7,0x56,0x23,0x4b,0xe1,0x3d,0x64,0xcf,0xdb,0xe3,0xdd,0xc6,0x87,0xe9,0x47,0xd0,0x65,0x5c,0xc,0x8c,0x27,0xf7,0xc1,0x7a,0x52,0xd3,0xd2,0xef,0x8a,0x6e,0xfb,0xa9,0xed,0x3f,0x69,0xb1,0x8b,0x98,0x28,0xb0,0xfa,0xf5,0x2a,0xe4,0xff,0x73,0xc2,0x68,0x1,0x50,0x26,0xfd,0xbd,0xad,0xe8,0x37,0xb3,0x21,0xa6,0xf6,0xd5,0x7c,0x84,0x4e,0x9e,0x63,0x19,0x36,0xa,0x3b,0xcb,0x6a,0xa7,0x7e,0x9,0x74,0xfc,0x60,0x11,0x3c,0x48,0x2e,0xb5,0xc0,0x2,0x2c,0xda,0x1a,0x95,0x44,0xd,0xf,0xac,0x42,0xf1,0x9d,0x3a,0xb4,0x62,0x4c,0x7d,0x10,0x57,0xa8,0x4,0x82,0x67,0xf8,0x30,0xf2,0x81,0xd4,0x8e,0x36,0x1b,0xe2,0x9,0x2d,0xcb,0x91,0x65,0x48,0x6e,0xe1,0x26,0x68,0x99,0x64,0xf2,0xae,0xc,0xd5,0x4b,0x2,0xba,0x83,0xe,0x14,0x3b,0xd4,0x72,0xe6,0x82,0x63,0x7d,0x74,0xce,0x3,0x4,0x84,0x9e,0xa9,0x8b,0x3c,0xa3,0x79,0xc2,0xdb,0x6f,0xbf,0xc7,0xff,0x0,0xe3,0xde,0xc1,0xb3,0x97,0xbb,0x12,0x49,0x2a,0x95,0x70,0x76,0xe5,0x78,0x81,0xef,0xfd,0x43,0x41,0x53,0xca,0x2b,0x90,0x6c,0x5e,0xcf,0x8a,0x7f,0x4f,0x42,0xb7,0xa4,0x18,0x45,0xf8,0xf3,0x5,0x46,0xd0,0x98,0xeb,0x40,0xcc,0xfc,0x93,0x4a,0x1e,0x55,0x6,0x17,0xe7,0xcd,0xdd,0xc4,0x2c,0x30,0x8,0x10,0xbd,0xad,0xf9,0x9a,0x94,0xe4,0x1c,0x8c,0x1d,0x25,0xf6,0xd2,0x32,0xb8,0xb6,0x24,0xc6,0x28,0xd8,0x56,0xda,0x9b,0x80,0xbe,0x38,0x8d,0x1a,0xb4,0xbc,0x16,0x7e,0xb,0x86,0x92,0x39,0x60,0x2f,0xf7,0x22,0x4e,0xea,0x58,0xfe,0x5b,0x7,0xb1,0x5a,0x31,0x5d,0x69,0x85,0xc9,0xa2,0xb9,0x77,0xa8,0x5c,0x35,0x9f,0x2e,0xd6,0xec,0x34,0x62,0xa7,0xed,0x75,0xc5,0xd7,0xb2,0x8f,0x8e,0xb0,0xf4,0xa6,0x33,0x7a,0xd1,0x51,0x1,0xf,0x27,0x9c,0xaa,0xa1,0x29,0x54,0x23,0x15,0x61,0x4c,0x3d,0x57,0x6b,0x44,0x3e,0xfa,0x37,0x96,0x66,0x88,0xab,0xfb,0x7c,0xc3,0x13,0xd9,0x21,0xe0,0xa0,0x7b,0xd,0xee,0x6a,0xb5,0xf0,0x6d,0xa5,0x3a,0xdf,0xd3,0x89,0xdc,0xaf,0x20,0x11,0x3f,0xe9,0x59,0xf5,0xa,0x4d,0xf1,0x52,0x50,0x19,0x67,0xc0,0xac,0x1f,0x5f,0x9d,0xe8,0x73,0xc8,0x47,0x87,0x71,0x85,0x83,0x8b,0x16,0xba,0xe1,0x66,0xd9,0x40,0x32,0x48,0x64,0xf3,0xc,0x2d,0x10,0x9c,0x28,0x34,0x4c,0x50,0xcf,0x31,0x8a,0x6d,0x77,0x78,0x5a,0x3d,0x87,0xf7,0xf0,0x71,0x15,0x8e,0x90,0xc8,0xe7,0x81,0x27,0x49,0xf1,0xfd,0x70,0xff,0x5d,0xb8,0x26,0x6a,0x9b,0x1,0x97,0x9d,0xbb,0xd5,0x12,0x38,0xde,0x96,0x62,0xe8,0xc5,0xfa,0x11,0xdb,0x35,0xa5,0x2b,0x4b,0xc1,0xd7,0x45,0xd6,0xee,0x21,0x5,0x17,0x67,0x7f,0xef,0x5e,0x4e,0x69,0xa,0xc3,0xdf,0xe3,0xfb,0x3e,0x14,0x37,0x2e,0xa6,0xed,0xe4,0xf5,0xf,0x3f,0xb9,0x60,0x6b,0x23,0xb3,0x18,0x0,0xb,0xb5,0xf6,0x57,0x44,0xb6,0xeb,0x8c,0x79,0xb1,0xbc,0x9f,0x63,0x3c,0xad,0xa0,0xb2,0xd8,0x39,0x1c,0x72,0xb0,0xe,0xd4,0xfc,0x59,0x6f,0x22,0x89,0xf2,0xa2,0x7,0x43,0xc0,0x55,0x41,0x24,0x7d,0x7c,0x1e,0x54,0x36,0x86,0x1f,0x25,0x91,0xc7,0xc6,0xaf,0xdd,0x6c,0x4a,0x51,0x5b,0x84,0x9a,0xae,0x3a,0x76,0x42,0xf4,0xc2,0xa9,0xab,0x19,0xa8,0xd,0x4,0xdc,0xbd,0xd1,0x61,0x75,0x93,0xca,0xe5,0x4f,0xf8,0x8d,0x7e,0xcb,0x47,0xe9,0x68,0x29,0x4d,0x73,0xb4,0x3b,0x82,0x74,0x6e,0xac,0x80,0x1b,0x33,0x94,0xec,0x5f,0xa1,0x2,0xea,0xa3,0x6,0xaa,0xbe,0xf9,0xe2,0xd3,0x1a,0xcc,0x7a,0x20,0x5c,0x2f,0x56,0x9e,0x2c,0xc9,0x99,0x1d,0x3,0x46,0x53,0x13,0xfe,0x88,0xe0,0x30,0xd2,0x2a,0x58,0x7b,0x8f,0x8,0xc4,0x9,0x95,0x65,0x98,0xa4,0xcd,0xb7,0x92,0xe6,0xce,0xbf,0xda,0x52,0xd0,0xa7,0x4f,0x88,0x7,0x21,0x9b,0xd,0xf0,0x1,0x60,0x8b,0x72,0x5f,0xc,0xf8,0xa2,0x44,0x1b,0xbd,0x52,0x7d,0x14,0xa,0xeb,0x8f,0x22,0xbc,0x65,0xc7,0x67,0xea,0xd3,0x6b,0xab,0x10,0xca,0x55,0xae,0xd6,0x6,0xb2,0x6d,0x6a,0xa7,0x1d,0xe2,0xc0,0xf7,0xed,0xfc,0x43,0x20,0x7b,0x11,0x8c,0x1f,0x19,0xb7,0x8a,0x69,0x96,0xd2,0xfe,0xda,0xa8,0xa6,0x37,0x5,0xf9,0x2b,0x26,0x16,0xe3,0x2a,0x94,0x86,0xe8,0x42,0xa3,0x3a,0x28,0x29,0x82,0xf1,0xb9,0x23,0xfa,0x95,0xa5,0x2c,0x71,0xcd,0xde,0x2f,0x6c,0x9a,0x91,0x79,0x61,0x59,0x45,0xf3,0x90,0xc4,0xd4,0x7e,0x6f,0x3c,0x77,0xad,0xb4,0xa4,0x8e,0x4d,0xdf,0xd1,0x5b,0x3f,0xb1,0x41,0xaf,0xe5,0x75,0x8d,0xfd,0xbb,0x9f,0x4c,0x74,0x62,0x17,0x7f,0xd5,0x9,0x50,0xfb,0xef,0xd7,0xe9,0xf2,0xb3,0xdd,0x73,0xe4,0x51,0x58,0x33,0xd8,0x6e,0xa0,0xec,0x0,0x34,0x27,0x4b,0x9e,0x46,0x32,0x97,0x31,0x83,0xb,0x5d,0x85,0xbf,0xac,0x1c,0x84,0xce,0xc1,0x1e,0xd0,0xcb,0x47,0xf6,0x5c,0x35,0x68,0x38,0xb8,0x13,0xc3,0xf5,0x4e,0x66,0xe7,0xe6,0xdb,0xbe,0x5a,0xcf,0x9d,0xd9,0x57,0x2d,0x2,0x3e,0xf,0xff,0x5e,0x93,0x4a,0x3d,0x40,0xc8,0x54,0x25,0x8,0x7c,0x64,0x12,0xc9,0x89,0x99,0xdc,0x3,0x87,0x15,0x92,0xc2,0xe1,0x48,0xb0,0x7a,0xaa,0x80,0x56,0x78,0x49,0x24,0x63,0x9c,0x30,0xb6,0x53,0xcc,0x4,0xc6,0xb5,0xe0,0xba,0x1a,0x81,0xf4,0x36,0x18,0xee,0x2e,0xa1,0x70,0x39,0x3b,0x98,0x76,0xc5,0xa9,0xe,0xe2,0x44,0xab,0x84,0xed,0xf3,0x12,0x76,0xdb,0x45,0x9c,0x3e,0x9e,0x13,0x2a,0x92,0xb6,0x71,0xfe,0xd8,0x62,0xf4,0x9,0xf8,0x99,0x72,0x8b,0xa6,0xf5,0x1,0x5b,0xbd,0x5,0xba,0xd9,0x82,0xe8,0x75,0xe6,0xe0,0x4e,0x73,0x90,0x6f,0x2b,0x7,0x23,0x51,0x52,0xe9,0x33,0xac,0x57,0x2f,0xff,0x4b,0x94,0x93,0x5e,0xe4,0x1b,0x39,0xe,0x14,0xd0,0x7b,0x8,0x40,0xda,0x3,0x6c,0x5c,0xd5,0x88,0x34,0x27,0xd6,0x95,0x63,0x68,0x5f,0xce,0xfc,0x0,0xd2,0xdf,0xef,0x1a,0xd3,0x6d,0x7f,0x11,0xbb,0x5a,0xc3,0xd1,0xb4,0x26,0x28,0xa2,0xc6,0x48,0xb8,0x56,0x1c,0x8c,0x74,0x4,0x42,0x66,0xb5,0x8d,0x80,0x98,0xa0,0xbc,0xa,0x69,0x3d,0x2d,0x87,0x96,0xc5,0x8e,0x54,0x4d,0x5d,0x77,0xa1,0xca,0x21,0x97,0x59,0x15,0xf9,0xcd,0xde,0xb2,0x67,0xbf,0xcb,0x6e,0xc8,0x7a,0x9b,0xee,0x86,0x2c,0xf0,0xa9,0x2,0x16,0x2e,0x10,0xb,0x4a,0x24,0x8a,0x1d,0xa8,0x91,0xc1,0x41,0xea,0x3a,0xc,0xb7,0x9f,0x1e,0x1f,0x22,0x47,0xa3,0x36,0x64,0x20,0xf2,0xa4,0x7c,0x46,0x55,0xe5,0x7d,0x37,0x38,0xe7,0x29,0x32,0xbe,0xf,0xa5,0xcc,0x9d,0xeb,0x30,0x70,0x60,0x25,0xfa,0x7e,0xec,0x6b,0x3b,0x18,0xb1,0x49,0x83,0x53,0xae,0xd4,0xfb,0xc7,0xf6,0x6,0xa7,0x6a,0xb3,0xc4,0xb9,0x31,0xad,0xdc,0xf1,0x85,0xe3,0x78,0xd,0xcf,0xe1,0x17,0xd7,0x58,0x89,0xc0,0xc2,0x61,0x8f,0x3c,0x50,0xf7,0x79,0xaf,0x81,0xb0,0xdd,0x9a,0x65,0xc9,0x4f,0xaa,0x35,0xfd,0x3f,0x4c,0x19,0x43,0xb9,0x94,0x6d,0x86,0xa2,0x44,0x1e,0xea,0xc7,0xe1,0x6e,0xa9,0xe7,0x16,0xeb,0x7d,0x21,0x83,0x5a,0xc4,0x8d,0x35,0xc,0x81,0x9b,0xb4,0x5b,0xfd,0x69,0xd,0xec,0xf2,0xfb,0x41,0x8c,0x8b,0xb,0x11,0x26,0x4,0xb3,0x2c,0xf6,0x4d,0x54,0xe0,0x30,0x48,0x70,0x8f,0x6c,0x51,0x4e,0x3c,0x18,0x34,0x9d,0xc6,0xa5,0x1a,0xff,0xf9,0x6a,0xf7,0xe,0x60,0x72,0xcc,0xce,0xdc,0x45,0xa4,0x1f,0xe3,0xd1,0x40,0x5,0xf0,0xc0,0xcd,0x38,0x2b,0x97,0xca,0x77,0x7c,0x8a,0xc9,0x5f,0x17,0x64,0xcf,0x43,0x73,0x1c,0xc5,0x91,0xda,0x89,0x98,0x68,0x42,0x52,0x4b,0xa3,0xbf,0x87,0x9f,0x32,0x22,0x76,0x15,0x1b,0x6b,0x93,0x3,0x92,0xaa,0x79,0x5d,0xbd,0x37,0x39,0xab,0x49,0xa7,0x57,0xd9,0x55,0x14,0xf,0x31,0xb7,0x2,0x95,0x3b,0x33,0x99,0xf1,0x84,0x9,0x1d,0xb6,0xef,0xa0,0x78,0xad,0xc1,0x65,0xd7,0x71,0xd4,0x88,0x3e,0xd5,0xbe,0xd2,0xe6,0xa,0x46,0x2d,0x36,0xf8,0x27,0xd3,0xba,0x10,0xa1,0x59,0x63,0xbb,0xed,0x28,0x62,0xfa,0x4a,0x58,0x3d,0x0,0x1,0x3f,0x7b,0x29,0xbc,0xf5,0x5e,0xde,0x8e,0x80,0xa8,0x13,0x25,0x2e,0xa6,0xdb,0xac,0x9a,0xee,0xc3,0xb2,0xd8,0xe4,0xcb,0xb1,0x75,0xb8,0x19,0xe9,0x7,0x24,0x74,0xf3,0x4c,0x9c,0x56,0xae,0x6f,0x2f,0xf4,0x82,0x61,0xe5,0x3a,0x7f,0xe2,0x2a,0xb5,0x50,0x5c,0x6,0x53,0x20,0xaf,0x9e,0xb0,0x66,0xd6,0x7a,0x85,0xc2,0x7e,0xdd,0xdf,0x96,0xe8,0x4f,0x23,0x90,0xd0,0x12,0x67,0xfc,0x47,0xc8,0x8,0xfe,0xb7,0xb1,0xb9,0x24,0x88,0xd3,0x54,0xeb,0x72,0x0,0x7a,0x56,0xc1,0x3e,0x1f,0x22,0xae,0x1a,0x6,0x7e,0x62,0xfd,0x3,0xb8,0x5f,0x45,0x4a,0x68,0xf,0xb5,0xc5,0xc2,0x43,0x27,0xbc,0xa2,0xfa,0xd5,0xb3,0x15,0x7b,0xc3,0xcf,0x42,0xcd,0x6f,0x8a,0x14,0x58,0xa9,0x33,0xa5,0xaf,0x89,0xe7,0x20,0xa,0xec,0xa4,0x50,0xda,0xf7,0xc8,0x23,0xe9,0x7,0x97,0x19,0x79,0xf3,0xe5,0x77,0xe4,0xdc,0x13,0x37,0x25,0x55,0x4d,0xdd,0x6c,0x7c,0x5b,0x38,0xf1,0xed,0xd1,0xc9,0xc,0x26,0x5,0x1c,0x94,0xdf,0xd6,0xc7,0x3d,0xd,0x8b,0x52,0x59,0x11,0x81,0x2a,0x32,0x39,0x87,0xc4,0x65,0x76,0x84,0xd9,0xbe,0x4b,0x83,0x8e,0xad,0x51,0xe,0x9f,0x92,0x80,0xea,0xb,0x2e,0x40,0x82,0x3c,0xe6,0xce,0x6b,0x5d,0x10,0xbb,0xc0,0x90,0x35,0x71,0xf2,0x67,0x73,0x16,0x4f,0x4e,0x2c,0x66,0x4,0xb4,0x2d,0x17,0xa3,0xf5,0xf4,0x9d,0xef,0x5e,0x78,0x63,0x69,0xb6,0xa8,0x9c,0x8,0x44,0x70,0xc6,0xf0,0x9b,0x99,0x2b,0x9a,0x3f,0x36,0xee,0x8f,0xe3,0x53,0x47,0xa1,0xf8,0xd7,0x7d,0xca,0xbf,0x4c,0xf9,0x75,0xdb,0x5a,0x1b,0x7f,0x41,0x86,0x9,0xb0,0x46,0x5c,0x9e,0xb2,0x29,0x1,0xa6,0xde,0x6d,0x93,0x30,0xd8,0x91,0x34,0x98,0x8c,0xcb,0xd0,0xe1,0x28,0xfe,0x48,0x12,0x6e,0x1d,0x64,0xac,0x1e,0xfb,0xab,0x2f,0x31,0x74,0x61,0x21,0xcc,0xba,0xd2,0x2,0xe0,0x18,0x6a,0x49,0xbd,0x3a,0xf6,0x3b,0xa7,0x57,0xaa,0x96,0xff,0x85,0xa0,0xd4,0xfc,0x8d,0xe8,0x60,0xe2,0x95,0x8d,0x4a,0xc5,0xe3,0x59,0xcf,0x32,0xc3,0xa2,0x49,0xb0,0x9d,0xce,0x3a,0x60,0x86,0xd9,0x7f,0x90,0xbf,0xd6,0xc8,0x29,0x4d,0xe0,0x7e,0xa7,0x5,0xa5,0x28,0x11,0xa9,0x69,0xd2,0x8,0x97,0x6c,0x14,0xc4,0x70,0xaf,0xa8,0x65,0xdf,0x20,0x2,0x35,0x2f,0x3e,0x81,0xe2,0xb9,0xd3,0x4e,0xdd,0xdb,0x75,0x48,0xab,0x54,0x10,0x3c,0x18,0x6a,0x64,0xf5,0xc7,0x3b,0xe9,0xe4,0xd4,0x21,0xe8,0x56,0x44,0x2a,0x80,0x61,0xf8,0xea,0xeb,0x40,0x33,0x7b,0xe1,0x38,0x57,0x67,0xee,0xb3,0xf,0x1c,0xed,0xae,0x58,0x53,0xbb,0xa3,0x9b,0x87,0x31,0x52,0x6,0x16,0xbc,0xad,0xfe,0xb5,0x6f,0x76,0x66,0x4c,0x8f,0x1d,0x13,0x99,0xfd,0x73,0x83,0x6d,0x27,0xb7,0x4f,0x3f,0x79,0x5d,0x8e,0xb6,0xa0,0xd5,0xbd,0x17,0xcb,0x92,0x39,0x2d,0x15,0x2b,0x30,0x71,0x1f,0xb1,0x26,0x93,0x9a,0xf1,0x1a,0xac,0x62,0x2e,0xc2,0xf6,0xe5,0x89,0x5c,0x84,0xf0,0x55,0xf3,0x41,0xc9,0x9f,0x47,0x7d,0x6e,0xde,0x46,0xc,0x3,0xdc,0x12,0x9,0x85,0x34,0x9e,0xf7,0xaa,0xfa,0x7a,0xd1,0x1,0x37,0x8c,0xa4,0x25,0x24,0x19,0x7c,0x98,0xd,0x5f,0x1b,0x95,0xef,0xc0,0xfc,0xcd,0x3d,0x9c,0x51,0x88,0xff,0x82,0xa,0x96,0xe7,0xca,0xbe,0xa6,0xd0,0xb,0x4b,0x5b,0x1e,0xc1,0x45,0xd7,0x50,0x0,0x23,0x8a,0x72,0xb8,0x68,0x42,0x94,0xba,0x8b,0xe6,0xa1,0x5e,0xf2,0x74,0x91,0xe,0xc6,0x4,0x77,0x22,0x78,0xd8,0x43,0x36,0xf4,0xda,0x2c,0xec,0x63,0xb2,0xfb,0xf9,0x5a,0xb4,0x7,0x6b,0xcc,0xb7,0x11,0xfe,0xd1,0xb8,0xa6,0x47,0x23,0x8e,0x10,0xc9,0x6b,0xcb,0x46,0x7f,0xc7,0xe3,0x24,0xab,0x8d,0x37,0xa1,0x5c,0xad,0xcc,0x27,0xde,0xf3,0xa0,0x54,0xe,0xe8,0x50,0xef,0x8c,0xd7,0xbd,0x20,0xb3,0xb5,0x1b,0x26,0xc5,0x3a,0x7e,0x52,0x76,0x4,0x7,0xbc,0x66,0xf9,0x2,0x7a,0xaa,0x1e,0xc1,0xc6,0xb,0xb1,0x4e,0x6c,0x5b,0x41,0x85,0x2e,0x5d,0x15,0x8f,0x56,0x39,0x9,0x80,0xdd,0x61,0x72,0x83,0xc0,0x36,0x3d,0xa,0x9b,0xa9,0x55,0x87,0x8a,0xba,0x4f,0x86,0x38,0x2a,0x44,0xee,0xf,0x96,0x84,0xe1,0x73,0x7d,0xf7,0x93,0x1d,0xed,0x3,0x49,0xd9,0x21,0x51,0x17,0x33,0xe0,0xd8,0xd5,0xcd,0xf5,0xe9,0x5f,0x3c,0x68,0x78,0xd2,0xc3,0x90,0xdb,0x1,0x18,0x8,0x22,0xf4,0x9f,0x74,0xc2,0xc,0x40,0xac,0x98,0x8b,0xe7,0x32,0xea,0x9e,0x3b,0x9d,0x2f,0xce,0xbb,0xd3,0x79,0xa5,0xfc,0x57,0x43,0x7b,0x45,0x5e,0x1f,0x71,0xdf,0x48,0xfd,0xc4,0x94,0x14,0xbf,0x6f,0x59,0xe2,0xca,0x4b,0x4a,0x77,0x12,0xf6,0x63,0x31,0x75,0xa7,0xf1,0x29,0x13,0x0,0xb0,0x28,0x62,0x6d,0xb2,0x7c,0x67,0xeb,0x5a,0xf0,0x99,0xc8,0xbe,0x65,0x25,0x35,0x70,0xaf,0x2b,0xb9,0x3e,0x6e,0x4d,0xe4,0x1c,0xd6,0x6,0xfb,0x81,0xae,0x92,0xa3,0x53,0xf2,0x3f,0xe6,0x91,0xec,0x64,0xf8,0x89,0xa4,0xd0,0xb6,0x2d,0x58,0x9a,0xb4,0x42,0x82,0xd,0xdc,0x95,0x97,0x34,0xda,0x69,0x5,0xa2,0x2c,0xfa,0xd4,0xe5,0x88,0xcf,0x30,0x9c,0x1a,0xff,0x60,0xa8,0x6a,0x19,0x4c,0x16,0x8e,0xa3,0x5a,0xb1,0x95,0x73,0x29,0xdd,0xf0,0xd6,0x59,0x9e,0xd0,0x21,0xdc,0x4a,0x16,0xb4,0x6d,0xf3,0xba,0x2,0x3b,0xb6,0xac,0x83,0x6c,0xca,0x5e,0x3a,0xdb,0xc5,0xcc,0x76,0xbb,0xbc,0x3c,0x26,0x11,0x33,0x84,0x1b,0xc1,0x7a,0x63,0xd7,0x7,0x7f,0x47,0xb8,0x5b,0x66,0x79,0xb,0x2f,0x3,0xaa,0xf1,0x92,0x2d,0xc8,0xce,0x5d,0xc0,0x39,0x57,0x45,0xfb,0xf9,0xeb,0x72,0x93,0x28,0xd4,0xe6,0x77,0x32,0xc7,0xf7,0xfa,0xf,0x1c,0xa0,0xfd,0x40,0x4b,0xbd,0xfe,0x68,0x20,0x53,0xf8,0x74,0x44,0x2b,0xf2,0xa6,0xed,0xbe,0xaf,0x5f,0x75,0x65,0x7c,0x94,0x88,0xb0,0xa8,0x5,0x15,0x41,0x22,0x2c,0x5c,0xa4,0x34,0xa5,0x9d,0x4e,0x6a,0x8a,0x0,0xe,0x9c,0x7e,0x90,0x60,0xee,0x62,0x23,0x38,0x6,0x80,0x35,0xa2,0xc,0x4,0xae,0xc6,0xb3,0x3e,0x2a,0x81,0xd8,0x97,0x4f,0x9a,0xf6,0x52,0xe0,0x46,0xe3,0xbf,0x9,0xe2,0x89,0xe5,0xd1,0x3d,0x71,0x1a,0x1,0xcf,0x10,0xe4,0x8d,0x27,0x96,0x6e,0x54,0x8c,0xda,0x1f,0x55,0xcd,0x7d,0x6f,0xa,0x37,0x36,0x8,0x4c,0x1e,0x8b,0xc2,0x69,0xe9,0xb9,0xb7,0x9f,0x24,0x12,0x19,0x91,0xec,0x9b,0xad,0xd9,0xf4,0x85,0xef,0xd3,0xfc,0x86,0x42,0x8f,0x2e,0xde,0x30,0x13,0x43,0xc4,0x7b,0xab,0x61,0x99,0x58,0x18,0xc3,0xb5,0x56,0xd2,0xd,0x48,0xd5,0x1d,0x82,0x67,0x6b,0x31,0x64,0x17,0x98,0xa9,0x87,0x51,0xe1,0x4d,0xb2,0xf5,0x49,0xea,0xe8,0xa1,0xdf,0x78,0x14,0xa7,0xe7,0x25,0x50,0xcb,0x70,0xff,0x3f,0xc9,0x75,0x73,0x7b,0xe6,0x4a,0x11,0x96,0x29,0xb0,0xc2,0xb8,0x94,0x3,0xfc,0xdd,0xe0,0x6c,0xd8,0xc4,0xbc,0xa0,0x3f,0xc1,0x7a,0x9d,0x87,0x88,0xaa,0xcd,0x77,0x7,0x0,0x81,0xe5,0x7e,0x60,0x38,0x17,0x71,0xd7,0xb9,0x1,0xd,0x80,0xf,0xad,0x48,0xd6,0x9a,0x6b,0xf1,0x67,0x6d,0x4b,0x25,0xe2,0xc8,0x2e,0x66,0x92,0x18,0x35,0xa,0xe1,0x2b,0xc5,0x55,0xdb,0xbb,0x31,0x27,0xb5,0x26,0x1e,0xd1,0xf5,0xe7,0x97,0x8f,0x1f,0xae,0xbe,0x99,0xfa,0x33,0x2f,0x13,0xb,0xce,0xe4,0xc7,0xde,0x56,0x1d,0x14,0x5,0xff,0xcf,0x49,0x90,0x9b,0xd3,0x43,0xe8,0xf0,0xfb,0x45,0x6,0xa7,0xb4,0x46,0x1b,0x7c,0x89,0x41,0x4c,0x6f,0x93,0xcc,0x5d,0x50,0x42,0x28,0xc9,0xec,0x82,0x40,0xfe,0x24,0xc,0xa9,0x9f,0xd2,0x79,0x2,0x52,0xf7,0xb3,0x30,0xa5,0xb1,0xd4,0x8d,0x8c,0xee,0xa4,0xc6,0x76,0xef,0xd5,0x61,0x37,0x36,0x5f,0x2d,0x9c,0xba,0xa1,0xab,0x74,0x6a,0x5e,0xca,0x86,0xb2,0x4,0x32,0x59,0x5b,0xe9,0x58,0xfd,0xf4,0x2c,0x4d,0x21,0x91,0x85,0x63,0x3a,0x15,0xbf,0x8,0x7d,0x8e,0x3b,0xb7,0x19,0x98,0xd9,0xbd,0x83,0x44,0xcb,0x72,0x84,0x9e,0x5c,0x70,0xeb,0xc3,0x64,0x1c,0xaf,0x51,0xf2,0x1a,0x53,0xf6,0x5a,0x4e,0x9,0x12,0x23,0xea,0x3c,0x8a,0xd0,0xac,0xdf,0xa6,0x6e,0xdc,0x39,0x69,0xed,0xf3,0xb6,0xa3,0xe3,0xe,0x78,0x10,0xc0,0x22,0xda,0xa8,0x8b,0x7f,0xf8,0x34,0xf9,0x65,0x95,0x68,0x54,0x3d,0x47,0x62,0x16,0x3e,0x4f,0x2a,0xa2,0x20,0x57,0x17,0xd0,0x5f,0x79,0xc3,0x55,0xa8,0x59,0x38,0xd3,0x2a,0x7,0x54,0xa0,0xfa,0x1c,0x43,0xe5,0xa,0x25,0x4c,0x52,0xb3,0xd7,0x7a,0xe4,0x3d,0x9f,0x3f,0xb2,0x8b,0x33,0xf3,0x48,0x92,0xd,0xf6,0x8e,0x5e,0xea,0x35,0x32,0xff,0x45,0xba,0x98,0xaf,0xb5,0xa4,0x1b,0x78,0x23,0x49,0xd4,0x47,0x41,0xef,0xd2,0x31,0xce,0x8a,0xa6,0x82,0xf0,0xfe,0x6f,0x5d,0xa1,0x73,0x7e,0x4e,0xbb,0x72,0xcc,0xde,0xb0,0x1a,0xfb,0x62,0x70,0x71,0xda,0xa9,0xe1,0x7b,0xa2,0xcd,0xfd,0x74,0x29,0x95,0x86,0x77,0x34,0xc2,0xc9,0x21,0x39,0x1,0x1d,0xab,0xc8,0x9c,0x8c,0x26,0x37,0x64,0x2f,0xf5,0xec,0xfc,0xd6,0x15,0x87,0x89,0x3,0x67,0xe9,0x19,0xf7,0xbd,0x2d,0xd5,0xa5,0xe3,0xc7,0x14,0x2c,0x3a,0x4f,0x27,0x8d,0x51,0x8,0xa3,0xb7,0x8f,0xb1,0xaa,0xeb,0x85,0x2b,0xbc,0x9,0x0,0x6b,0x80,0x36,0xf8,0xb4,0x58,0x6c,0x7f,0x13,0xc6,0x1e,0x6a,0xcf,0x69,0xdb,0x53,0x5,0xdd,0xe7,0xf4,0x44,0xdc,0x96,0x99,0x46,0x88,0x93,0x1f,0xae,0x4,0x6d,0x30,0x60,0xe0,0x4b,0x9b,0xad,0x16,0x3e,0xbf,0xbe,0x83,0xe6,0x2,0x97,0xc5,0x81,0xf,0x75,0x5a,0x66,0x57,0xa7,0x6,0xcb,0x12,0x65,0x18,0x90,0xc,0x7d,0x50,0x24,0x3c,0x4a,0x91,0xd1,0xc1,0x84,0x5b,0xdf,0x4d,0xca,0x9a,0xb9,0x10,0xe8,0x22,0xf2,0xd8,0xe,0x20,0x11,0x7c,0x3b,0xc4,0x68,0xee,0xb,0x94,0x5c,0x9e,0xed,0xb8,0xe2,0x42,0xd9,0xac,0x6e,0x40,0xb6,0x76,0xf9,0x28,0x61,0x63,0xc0,0x2e,0x9d,0xf1,0x56,0xb7,0x11,0xfe,0xd1,0xb8,0xa6,0x47,0x23,0x8e,0x10,0xc9,0x6b,0xcb,0x46,0x7f,0xc7,0xe3,0x24,0xab,0x8d,0x37,0xa1,0x5c,0xad,0xcc,0x27,0xde,0xf3,0xa0,0x54,0xe,0xe8,0x50,0xef,0x8c,0xd7,0xbd,0x20,0xb3,0xb5,0x1b,0x26,0xc5,0x3a,0x7e,0x52,0x76,0x4,0x7,0xbc,0x66,0xf9,0x2,0x7a,0xaa,0x1e,0xc1,0xc6,0xb,0xb1,0x4e,0x6c,0x5b,0x41,0x85,0x2e,0x5d,0x15,0x8f,0x56,0x39,0x9,0x80,0xdd,0x61,0x72,0x83,0xc0,0x36,0x3d,0xa,0x9b,0xa9,0x55,0x87,0x8a,0xba,0x4f,0x86,0x38,0x2a,0x44,0xee,0xf,0x96,0x84,0xe1,0x73,0x7d,0xf7,0x93,0x1d,0xed,0x3,0x49,0xd9,0x21,0x51,0x17,0x33,0xe0,0xd8,0xd5,0xcd,0xf5,0xe9,0x5f,0x3c,0x68,0x78,0xd2,0xc3,0x90,0xdb,0x1,0x18,0x8,0x22,0xf4,0x9f,0x74,0xc2,0xc,0x40,0xac,0x98,0x8b,0xe7,0x32,0xea,0x9e,0x3b,0x9d,0x2f,0xce,0xbb,0xd3,0x79,0xa5,0xfc,0x57,0x43,0x7b,0x45,0x5e,0x1f,0x71,0xdf,0x48,0xfd,0xc4,0x94,0x14,0xbf,0x6f,0x59,0xe2,0xca,0x4b,0x4a,0x77,0x12,0xf6,0x63,0x31,0x75,0xa7,0xf1,0x29,0x13,0x0,0xb0,0x28,0x62,0x6d,0xb2,0x7c,0x67,0xeb,0x5a,0xf0,0x99,0xc8,0xbe,0x65,0x25,0x35,0x70,0xaf,0x2b,0xb9,0x3e,0x6e,0x4d,0xe4,0x1c,0xd6,0x6,0xfb,0x81,0xae,0x92,0xa3,0x53,0xf2,0x3f,0xe6,0x91,0xec,0x64,0xf8,0x89,0xa4,0xd0,0xb6,0x2d,0x58,0x9a,0xb4,0x42,0x82,0xd,0xdc,0x95,0x97,0x34,0xda,0x69,0x5,0xa2,0x2c,0xfa,0xd4,0xe5,0x88,0xcf,0x30,0x9c,0x1a,0xff,0x60,0xa8,0x6a,0x19,0x4c,0x16,0xb3,0x9e,0x67,0x8c,0xa8,0x4e,0x14,0xe0,0xcd,0xeb,0x64,0xa3,0xed,0x1c,0xe1,0x77,0x2b,0x89,0x50,0xce,0x87,0x3f,0x6,0x8b,0x91,0xbe,0x51,0xf7,0x63,0x7,0xe6,0xf8,0xf1,0x4b,0x86,0x81,0x1,0x1b,0x2c,0xe,0xb9,0x26,0xfc,0x47,0x5e,0xea,0x3a,0x42,0x7a,0x85,0x66,0x5b,0x44,0x36,0x12,0x3e,0x97,0xcc,0xaf,0x10,0xf5,0xf3,0x60,0xfd,0x4,0x6a,0x78,0xc6,0xc4,0xd6,0x4f,0xae,0x15,0xe9,0xdb,0x4a,0xf,0xfa,0xca,0xc7,0x32,0x21,0x9d,0xc0,0x7d,0x76,0x80,0xc3,0x55,0x1d,0x6e,0xc5,0x49,0x79,0x16,0xcf,0x9b,0xd0,0x83,0x92,0x62,0x48,0x58,0x41,0xa9,0xb5,0x8d,0x95,0x38,0x28,0x7c,0x1f,0x11,0x61,0x99,0x9,0x98,0xa0,0x73,0x57,0xb7,0x3d,0x33,0xa1,0x43,0xad,0x5d,0xd3,0x5f,0x1e,0x5,0x3b,0xbd,0x8,0x9f,0x31,0x39,0x93,0xfb,0x8e,0x3,0x17,0xbc,0xe5,0xaa,0x72,0xa7,0xcb,0x6f,0xdd,0x7b,0xde,0x82,0x34,0xdf,0xb4,0xd8,0xec,0x0,0x4c,0x27,0x3c,0xf2,0x2d,0xd9,0xb0,0x1a,0xab,0x53,0x69,0xb1,0xe7,0x22,0x68,0xf0,0x40,0x52,0x37,0xa,0xb,0x35,0x71,0x23,0xb6,0xff,0x54,0xd4,0x84,0x8a,0xa2,0x19,0x2f,0x24,0xac,0xd1,0xa6,0x90,0xe4,0xc9,0xb8,0xd2,0xee,0xc1,0xbb,0x7f,0xb2,0x13,0xe3,0xd,0x2e,0x7e,0xf9,0x46,0x96,0x5c,0xa4,0x65,0x25,0xfe,0x88,0x6b,0xef,0x30,0x75,0xe8,0x20,0xbf,0x5a,0x56,0xc,0x59,0x2a,0xa5,0x94,0xba,0x6c,0xdc,0x70,0x8f,0xc8,0x74,0xd7,0xd5,0x9c,0xe2,0x45,0x29,0x9a,0xda,0x18,0x6d,0xf6,0x4d,0xc2,0x2,0xf4,0xb8,0xbe,0xb6,0x2b,0x87,0xdc,0x5b,0xe4,0x7d,0xf,0x75,0x59,0xce,0x31,0x10,0x2d,0xa1,0x15,0x9,0x71,0x6d,0xf2,0xc,0xb7,0x50,0x4a,0x45,0x67,0x0,0xba,0xca,0xcd,0x4c,0x28,0xb3,0xad,0xf5,0xda,0xbc,0x1a,0x74,0xcc,0xc0,0x4d,0xc2,0x60,0x85,0x1b,0x57,0xa6,0x3c,0xaa,0xa0,0x86,0xe8,0x2f,0x5,0xe3,0xab,0x5f,0xd5,0xf8,0xc7,0x2c,0xe6,0x8,0x98,0x16,0x76,0xfc,0xea,0x78,0xeb,0xd3,0x1c,0x38,0x2a,0x5a,0x42,0xd2,0x63,0x73,0x54,0x37,0xfe,0xe2,0xde,0xc6,0x3,0x29,0xa,0x13,0x9b,0xd0,0xd9,0xc8,0x32,0x2,0x84,0x5d,0x56,0x1e,0x8e,0x25,0x3d,0x36,0x88,0xcb,0x6a,0x79,0x8b,0xd6,0xb1,0x44,0x8c,0x81,0xa2,0x5e,0x1,0x90,0x9d,0x8f,0xe5,0x4,0x21,0x4f,0x8d,0x33,0xe9,0xc1,0x64,0x52,0x1f,0xb4,0xcf,0x9f,0x3a,0x7e,0xfd,0x68,0x7c,0x19,0x40,0x41,0x23,0x69,0xb,0xbb,0x22,0x18,0xac,0xfa,0xfb,0x92,0xe0,0x51,0x77,0x6c,0x66,0xb9,0xa7,0x93,0x7,0x4b,0x7f,0xc9,0xff,0x94,0x96,0x24,0x95,0x30,0x39,0xe1,0x80,0xec,0x5c,0x48,0xae,0xf7,0xd8,0x72,0xc5,0xb0,0x43,0xf6,0x7a,0xd4,0x55,0x14,0x70,0x4e,0x89,0x6,0xbf,0x49,0x53,0x91,0xbd,0x26,0xe,0xa9,0xd1,0x62,0x9c,0x3f,0xd7,0x9e,0x3b,0x97,0x83,0xc4,0xdf,0xee,0x27,0xf1,0x47,0x1d,0x61,0x12,0x6b,0xa3,0x11,0xf4,0xa4,0x20,0x3e,0x7b,0x6e,0x2e,0xc3,0xb5,0xdd,0xd,0xef,0x17,0x65,0x46,0xb2,0x35,0xf9,0x34,0xa8,0x58,0xa5,0x99,0xf0,0x8a,0xaf,0xdb,0xf3,0x82,0xe7,0x6f,0xed,0x9a,0x38,0xff,0x70,0x56,0xec,0x7a,0x87,0x76,0x17,0xfc,0x5,0x28,0x7b,0x8f,0xd5,0x33,0x6c,0xca,0x25,0xa,0x63,0x7d,0x9c,0xf8,0x55,0xcb,0x12,0xb0,0x10,0x9d,0xa4,0x1c,0xdc,0x67,0xbd,0x22,0xd9,0xa1,0x71,0xc5,0x1a,0x1d,0xd0,0x6a,0x95,0xb7,0x80,0x9a,0x8b,0x34,0x57,0xc,0x66,0xfb,0x68,0x6e,0xc0,0xfd,0x1e,0xe1,0xa5,0x89,0xad,0xdf,0xd1,0x40,0x72,0x8e,0x5c,0x51,0x61,0x94,0x5d,0xe3,0xf1,0x9f,0x35,0xd4,0x4d,0x5f,0x5e,0xf5,0x86,0xce,0x54,0x8d,0xe2,0xd2,0x5b,0x6,0xba,0xa9,0x58,0x1b,0xed,0xe6,0xe,0x16,0x2e,0x32,0x84,0xe7,0xb3,0xa3,0x9,0x18,0x4b,0x0,0xda,0xc3,0xd3,0xf9,0x3a,0xa8,0xa6,0x2c,0x48,0xc6,0x36,0xd8,0x92,0x2,0xfa,0x8a,0xcc,0xe8,0x3b,0x3,0x15,0x60,0x8,0xa2,0x7e,0x27,0x8c,0x98,0xa0,0x9e,0x85,0xc4,0xaa,0x4,0x93,0x26,0x2f,0x44,0xaf,0x19,0xd7,0x9b,0x77,0x43,0x50,0x3c,0xe9,0x31,0x45,0xe0,0x46,0xf4,0x7c,0x2a,0xf2,0xc8,0xdb,0x6b,0xf3,0xb9,0xb6,0x69,0xa7,0xbc,0x30,0x81,0x2b,0x42,0x1f,0x4f,0xcf,0x64,0xb4,0x82,0x39,0x11,0x90,0x91,0xac,0xc9,0x2d,0xb8,0xea,0xae,0x20,0x5a,0x75,0x49,0x78,0x88,0x29,0xe4,0x3d,0x4a,0x37,0xbf,0x23,0x52,0x7f,0xb,0x13,0x65,0xbe,0xfe,0xee,0xab,0x74,0xf0,0x62,0xe5,0xb5,0x96,0x3f,0xc7,0xd,0xdd,0xf7,0x21,0xf,0x3e,0x53,0x14,0xeb,0x47,0xc1,0x24,0xbb,0x73,0xb1,0xc2,0x97,0xcd,0x6d,0xf6,0x83,0x41,0x6f,0x99,0x59,0xd6,0x7,0x4e,0x4c,0xef,0x1,0xb2,0xde,0x79,0xff,0x59,0xb6,0x99,0xf0,0xee,0xf,0x6b,0xc6,0x58,0x81,0x23,0x83,0xe,0x37,0x8f,0xab,0x6c,0xe3,0xc5,0x7f,0xe9,0x14,0xe5,0x84,0x6f,0x96,0xbb,0xe8,0x1c,0x46,0xa0,0x18,0xa7,0xc4,0x9f,0xf5,0x68,0xfb,0xfd,0x53,0x6e,0x8d,0x72,0x36,0x1a,0x3e,0x4c,0x4f,0xf4,0x2e,0xb1,0x4a,0x32,0xe2,0x56,0x89,0x8e,0x43,0xf9,0x6,0x24,0x13,0x9,0xcd,0x66,0x15,0x5d,0xc7,0x1e,0x71,0x41,0xc8,0x95,0x29,0x3a,0xcb,0x88,0x7e,0x75,0x42,0xd3,0xe1,0x1d,0xcf,0xc2,0xf2,0x7,0xce,0x70,0x62,0xc,0xa6,0x47,0xde,0xcc,0xa9,0x3b,0x35,0xbf,0xdb,0x55,0xa5,0x4b,0x1,0x91,0x69,0x19,0x5f,0x7b,0xa8,0x90,0x9d,0x85,0xbd,0xa1,0x17,0x74,0x20,0x30,0x9a,0x8b,0xd8,0x93,0x49,0x50,0x40,0x6a,0xbc,0xd7,0x3c,0x8a,0x44,0x8,0xe4,0xd0,0xc3,0xaf,0x7a,0xa2,0xd6,0x73,0xd5,0x67,0x86,0xf3,0x9b,0x31,0xed,0xb4,0x1f,0xb,0x33,0xd,0x16,0x57,0x39,0x97,0x0,0xb5,0x8c,0xdc,0x5c,0xf7,0x27,0x11,0xaa,0x82,0x3,0x2,0x3f,0x5a,0xbe,0x2b,0x79,0x3d,0xef,0xb9,0x61,0x5b,0x48,0xf8,0x60,0x2a,0x25,0xfa,0x34,0x2f,0xa3,0x12,0xb8,0xd1,0x80,0xf6,0x2d,0x6d,0x7d,0x38,0xe7,0x63,0xf1,0x76,0x26,0x5,0xac,0x54,0x9e,0x4e,0xb3,0xc9,0xe6,0xda,0xeb,0x1b,0xba,0x77,0xae,0xd9,0xa4,0x2c,0xb0,0xc1,0xec,0x98,0xfe,0x65,0x10,0xd2,0xfc,0xa,0xca,0x45,0x94,0xdd,0xdf,0x7c,0x92,0x21,0x4d,0xea,0x64,0xb2,0x9c,0xad,0xc0,0x87,0x78,0xd4,0x52,0xb7,0x28,0xe0,0x22,0x51,0x4,0x5e,0x61,0x4c,0xb5,0x5e,0x7a,0x9c,0xc6,0x32,0x1f,0x39,0xb6,0x71,0x3f,0xce,0x33,0xa5,0xf9,0x5b,0x82,0x1c,0x55,0xed,0xd4,0x59,0x43,0x6c,0x83,0x25,0xb1,0xd5,0x34,0x2a,0x23,0x99,0x54,0x53,0xd3,0xc9,0xfe,0xdc,0x6b,0xf4,0x2e,0x95,0x8c,0x38,0xe8,0x90,0xa8,0x57,0xb4,0x89,0x96,0xe4,0xc0,0xec,0x45,0x1e,0x7d,0xc2,0x27,0x21,0xb2,0x2f,0xd6,0xb8,0xaa,0x14,0x16,0x4,0x9d,0x7c,0xc7,0x3b,0x9,0x98,0xdd,0x28,0x18,0x15,0xe0,0xf3,0x4f,0x12,0xaf,0xa4,0x52,0x11,0x87,0xcf,0xbc,0x17,0x9b,0xab,0xc4,0x1d,0x49,0x2,0x51,0x40,0xb0,0x9a,0x8a,0x93,0x7b,0x67,0x5f,0x47,0xea,0xfa,0xae,0xcd,0xc3,0xb3,0x4b,0xdb,0x4a,0x72,0xa1,0x85,0x65,0xef,0xe1,0x73,0x91,0x7f,0x8f,0x1,0x8d,0xcc,0xd7,0xe9,0x6f,0xda,0x4d,0xe3,0xeb,0x41,0x29,0x5c,0xd1,0xc5,0x6e,0x37,0x78,0xa0,0x75,0x19,0xbd,0xf,0xa9,0xc,0x50,0xe6,0xd,0x66,0xa,0x3e,0xd2,0x9e,0xf5,0xee,0x20,0xff,0xb,0x62,0xc8,0x79,0x81,0xbb,0x63,0x35,0xf0,0xba,0x22,0x92,0x80,0xe5,0xd8,0xd9,0xe7,0xa3,0xf1,0x64,0x2d,0x86,0x6,0x56,0x58,0x70,0xcb,0xfd,0xf6,0x7e,0x3,0x74,0x42,0x36,0x1b,0x6a,0x0,0x3c,0x13,0x69,0xad,0x60,0xc1,0x31,0xdf,0xfc,0xac,0x2b,0x94,0x44,0x8e,0x76,0xb7,0xf7,0x2c,0x5a,0xb9,0x3d,0xe2,0xa7,0x3a,0xf2,0x6d,0x88,0x84,0xde,0x8b,0xf8,0x77,0x46,0x68,0xbe,0xe,0xa2,0x5d,0x1a,0xa6,0x5,0x7,0x4e,0x30,0x97,0xfb,0x48,0x8,0xca,0xbf,0x24,0x9f,0x10,0xd0,0x26,0x4,0x2,0xa,0x97,0x3b,0x60,0xe7,0x58,0xc1,0xb3,0xc9,0xe5,0x72,0x8d,0xac,0x91,0x1d,0xa9,0xb5,0xcd,0xd1,0x4e,0xb0,0xb,0xec,0xf6,0xf9,0xdb,0xbc,0x6,0x76,0x71,0xf0,0x94,0xf,0x11,0x49,0x66,0x0,0xa6,0xc8,0x70,0x7c,0xf1,0x7e,0xdc,0x39,0xa7,0xeb,0x1a,0x80,0x16,0x1c,0x3a,0x54,0x93,0xb9,0x5f,0x17,0xe3,0x69,0x44,0x7b,0x90,0x5a,0xb4,0x24,0xaa,0xca,0x40,0x56,0xc4,0x57,0x6f,0xa0,0x84,0x96,0xe6,0xfe,0x6e,0xdf,0xcf,0xe8,0x8b,0x42,0x5e,0x62,0x7a,0xbf,0x95,0xb6,0xaf,0x27,0x6c,0x65,0x74,0x8e,0xbe,0x38,0xe1,0xea,0xa2,0x32,0x99,0x81,0x8a,0x34,0x77,0xd6,0xc5,0x37,0x6a,0xd,0xf8,0x30,0x3d,0x1e,0xe2,0xbd,0x2c,0x21,0x33,0x59,0xb8,0x9d,0xf3,0x31,0x8f,0x55,0x7d,0xd8,0xee,0xa3,0x8,0x73,0x23,0x86,0xc2,0x41,0xd4,0xc0,0xa5,0xfc,0xfd,0x9f,0xd5,0xb7,0x7,0x9e,0xa4,0x10,0x46,0x47,0x2e,0x5c,0xed,0xcb,0xd0,0xda,0x5,0x1b,0x2f,0xbb,0xf7,0xc3,0x75,0x43,0x28,0x2a,0x98,0x29,0x8c,0x85,0x5d,0x3c,0x50,0xe0,0xf4,0x12,0x4b,0x64,0xce,0x79,0xc,0xff,0x4a,0xc6,0x68,0xe9,0xa8,0xcc,0xf2,0x35,0xba,0x3,0xf5,0xef,0x2d,0x1,0x9a,0xb2,0x15,0x6d,0xde,0x20,0x83,0x6b,0x22,0x87,0x2b,0x3f,0x78,0x63,0x52,0x9b,0x4d,0xfb,0xa1,0xdd,0xae,0xd7,0x1f,0xad,0x48,0x18,0x9c,0x82,0xc7,0xd2,0x92,0x7f,0x9,0x61,0xb1,0x53,0xab,0xd9,0xfa,0xe,0x89,0x45,0x88,0x14,0xe4,0x19,0x25,0x4c,0x36,0x13,0x67,0x4f,0x3e,0x5b,0xd3,0x51,0x26,0xb2,0x75,0xfa,0xdc,0x66,0xf0,0xd,0xfc,0x9d,0x76,0x8f,0xa2,0xf1,0x5,0x5f,0xb9,0xe6,0x40,0xaf,0x80,0xe9,0xf7,0x16,0x72,0xdf,0x41,0x98,0x3a,0x9a,0x17,0x2e,0x96,0x56,0xed,0x37,0xa8,0x53,0x2b,0xfb,0x4f,0x90,0x97,0x5a,0xe0,0x1f,0x3d,0xa,0x10,0x1,0xbe,0xdd,0x86,0xec,0x71,0xe2,0xe4,0x4a,0x77,0x94,0x6b,0x2f,0x3,0x27,0x55,0x5b,0xca,0xf8,0x4,0xd6,0xdb,0xeb,0x1e,0xd7,0x69,0x7b,0x15,0xbf,0x5e,0xc7,0xd5,0xd4,0x7f,0xc,0x44,0xde,0x7,0x68,0x58,0xd1,0x8c,0x30,0x23,0xd2,0x91,0x67,0x6c,0x84,0x9c,0xa4,0xb8,0xe,0x6d,0x39,0x29,0x83,0x92,0xc1,0x8a,0x50,0x49,0x59,0x73,0xb0,0x22,0x2c,0xa6,0xc2,0x4c,0xbc,0x52,0x18,0x88,0x70,0x0,0x46,0x62,0xb1,0x89,0x9f,0xea,0x82,0x28,0xf4,0xad,0x6,0x12,0x2a,0x14,0xf,0x4e,0x20,0x8e,0x19,0xac,0xa5,0xce,0x25,0x93,0x5d,0x11,0xfd,0xc9,0xda,0xb6,0x63,0xbb,0xcf,0x6a,0xcc,0x7e,0xf6,0xa0,0x78,0x42,0x51,0xe1,0x79,0x33,0x3c,0xe3,0x2d,0x36,0xba,0xb,0xa1,0xc8,0x95,0xc5,0x45,0xee,0x3e,0x8,0xb3,0x9b,0x1a,0x1b,0x26,0x43,0xa7,0x32,0x60,0x24,0xaa,0xd0,0xff,0xc3,0xf2,0x2,0xa3,0x6e,0xb7,0xc0,0xbd,0x35,0xa9,0xd8,0xf5,0x81,0x99,0xef,0x34,0x74,0x64,0x21,0xfe,0x7a,0xe8,0x6f,0x3f,0x1c,0xb5,0x4d,0x87,0x57,0x7d,0xab,0x85,0xb4,0xd9,0x9e,0x61,0xcd,0x4b,0xae,0x31,0xf9,0x3b,0x48,0x1d,0x47,0xe7,0x7c,0x9,0xcb,0xe5,0x13,0xd3,0x5c,0x8d,0xc4,0xc6,0x65,0x8b,0x38,0x54,0xf3,0x67,0xc1,0x2e,0x1,0x68,0x76,0x97,0xf3,0x5e,0xc0,0x19,0xbb,0x1b,0x96,0xaf,0x17,0x33,0xf4,0x7b,0x5d,0xe7,0x71,0x8c,0x7d,0x1c,0xf7,0xe,0x23,0x70,0x84,0xde,0x38,0x80,0x3f,0x5c,0x7,0x6d,0xf0,0x63,0x65,0xcb,0xf6,0x15,0xea,0xae,0x82,0xa6,0xd4,0xd7,0x6c,0xb6,0x29,0xd2,0xaa,0x7a,0xce,0x11,0x16,0xdb,0x61,0x9e,0xbc,0x8b,0x91,0x55,0xfe,0x8d,0xc5,0x5f,0x86,0xe9,0xd9,0x50,0xd,0xb1,0xa2,0x53,0x10,0xe6,0xed,0xda,0x4b,0x79,0x85,0x57,0x5a,0x6a,0x9f,0x56,0xe8,0xfa,0x94,0x3e,0xdf,0x46,0x54,0x31,0xa3,0xad,0x27,0x43,0xcd,0x3d,0xd3,0x99,0x9,0xf1,0x81,0xc7,0xe3,0x30,0x8,0x5,0x1d,0x25,0x39,0x8f,0xec,0xb8,0xa8,0x2,0x13,0x40,0xb,0xd1,0xc8,0xd8,0xf2,0x24,0x4f,0xa4,0x12,0xdc,0x90,0x7c,0x48,0x5b,0x37,0xe2,0x3a,0x4e,0xeb,0x4d,0xff,0x1e,0x6b,0x3,0xa9,0x75,0x2c,0x87,0x93,0xab,0x95,0x8e,0xcf,0xa1,0xf,0x98,0x2d,0x14,0x44,0xc4,0x6f,0xbf,0x89,0x32,0x1a,0x9b,0x9a,0xa7,0xc2,0x26,0xb3,0xe1,0xa5,0x77,0x21,0xf9,0xc3,0xd0,0x60,0xf8,0xb2,0xbd,0x62,0xac,0xb7,0x3b,0x8a,0x20,0x49,0x18,0x6e,0xb5,0xf5,0xe5,0xa0,0x7f,0xfb,0x69,0xee,0xbe,0x9d,0x34,0xcc,0x6,0xd6,0x2b,0x51,0x7e,0x42,0x73,0x83,0x22,0xef,0x36,0x41,0x3c,0xb4,0x28,0x59,0x74,0x0,0x66,0xfd,0x88,0x4a,0x64,0x92,0x52,0xdd,0xc,0x45,0x47,0xe4,0xa,0xb9,0xd5,0x72,0xfc,0x2a,0x4,0x35,0x58,0x1f,0xe0,0x4c,0xca,0x2f,0xb0,0x78,0xba,0xc9,0x9c,0xc6,0x41,0x6c,0x95,0x7e,0x5a,0xbc,0xe6,0x12,0x3f,0x19,0x96,0x51,0x1f,0xee,0x13,0x85,0xd9,0x7b,0xa2,0x3c,0x75,0xcd,0xf4,0x79,0x63,0x4c,0xa3,0x5,0x91,0xf5,0x14,0xa,0x3,0xb9,0x74,0x73,0xf3,0xe9,0xde,0xfc,0x4b,0xd4,0xe,0xb5,0xac,0x18,0xc8,0xb0,0x88,0x77,0x94,0xa9,0xb6,0xc4,0xe0,0xcc,0x65,0x3e,0x5d,0xe2,0x7,0x1,0x92,0xf,0xf6,0x98,0x8a,0x34,0x36,0x24,0xbd,0x5c,0xe7,0x1b,0x29,0xb8,0xfd,0x8,0x38,0x35,0xc0,0xd3,0x6f,0x32,0x8f,0x84,0x72,0x31,0xa7,0xef,0x9c,0x37,0xbb,0x8b,0xe4,0x3d,0x69,0x22,0x71,0x60,0x90,0xba,0xaa,0xb3,0x5b,0x47,0x7f,0x67,0xca,0xda,0x8e,0xed,0xe3,0x93,0x6b,0xfb,0x6a,0x52,0x81,0xa5,0x45,0xcf,0xc1,0x53,0xb1,0x5f,0xaf,0x21,0xad,0xec,0xf7,0xc9,0x4f,0xfa,0x6d,0xc3,0xcb,0x61,0x9,0x7c,0xf1,0xe5,0x4e,0x17,0x58,0x80,0x55,0x39,0x9d,0x2f,0x89,0x2c,0x70,0xc6,0x2d,0x46,0x2a,0x1e,0xf2,0xbe,0xd5,0xce,0x0,0xdf,0x2b,0x42,0xe8,0x59,0xa1,0x9b,0x43,0x15,0xd0,0x9a,0x2,0xb2,0xa0,0xc5,0xf8,0xf9,0xc7,0x83,0xd1,0x44,0xd,0xa6,0x26,0x76,0x78,0x50,0xeb,0xdd,0xd6,0x5e,0x23,0x54,0x62,0x16,0x3b,0x4a,0x20,0x1c,0x33,0x49,0x8d,0x40,0xe1,0x11,0xff,0xdc,0x8c,0xb,0xb4,0x64,0xae,0x56,0x97,0xd7,0xc,0x7a,0x99,0x1d,0xc2,0x87,0x1a,0xd2,0x4d,0xa8,0xa4,0xfe,0xab,0xd8,0x57,0x66,0x48,0x9e,0x2e,0x82,0x7d,0x3a,0x86,0x25,0x27,0x6e,0x10,0xb7,0xdb,0x68,0x28,0xea,0x9f,0x4,0xbf,0x30,0xf0,0x6,0xf4,0xf2,0xfa,0x67,0xcb,0x90,0x17,0xa8,0x31,0x43,0x39,0x15,0x82,0x7d,0x5c,0x61,0xed,0x59,0x45,0x3d,0x21,0xbe,0x40,0xfb,0x1c,0x6,0x9,0x2b,0x4c,0xf6,0x86,0x81,0x0,0x64,0xff,0xe1,0xb9,0x96,0xf0,0x56,0x38,0x80,0x8c,0x1,0x8e,0x2c,0xc9,0x57,0x1b,0xea,0x70,0xe6,0xec,0xca,0xa4,0x63,0x49,0xaf,0xe7,0x13,0x99,0xb4,0x8b,0x60,0xaa,0x44,0xd4,0x5a,0x3a,0xb0,0xa6,0x34,0xa7,0x9f,0x50,0x74,0x66,0x16,0xe,0x9e,0x2f,0x3f,0x18,0x7b,0xb2,0xae,0x92,0x8a,0x4f,0x65,0x46,0x5f,0xd7,0x9c,0x95,0x84,0x7e,0x4e,0xc8,0x11,0x1a,0x52,0xc2,0x69,0x71,0x7a,0xc4,0x87,0x26,0x35,0xc7,0x9a,0xfd,0x8,0xc0,0xcd,0xee,0x12,0x4d,0xdc,0xd1,0xc3,0xa9,0x48,0x6d,0x3,0xc1,0x7f,0xa5,0x8d,0x28,0x1e,0x53,0xf8,0x83,0xd3,0x76,0x32,0xb1,0x24,0x30,0x55,0xc,0xd,0x6f,0x25,0x47,0xf7,0x6e,0x54,0xe0,0xb6,0xb7,0xde,0xac,0x1d,0x3b,0x20,0x2a,0xf5,0xeb,0xdf,0x4b,0x7,0x33,0x85,0xb3,0xd8,0xda,0x68,0xd9,0x7c,0x75,0xad,0xcc,0xa0,0x10,0x4,0xe2,0xbb,0x94,0x3e,0x89,0xfc,0xf,0xba,0x36,0x98,0x19,0x58,0x3c,0x2,0xc5,0x4a,0xf3,0x5,0x1f,0xdd,0xf1,0x6a,0x42,0xe5,0x9d,0x2e,0xd0,0x73,0x9b,0xd2,0x77,0xdb,0xcf,0x88,0x93,0xa2,0x6b,0xbd,0xb,0x51,0x2d,0x5e,0x27,0xef,0x5d,0xb8,0xe8,0x6c,0x72,0x37,0x22,0x62,0x8f,0xf9,0x91,0x41,0xa3,0x5b,0x29,0xa,0xfe,0x79,0xb5,0x78,0xe4,0x14,0xe9,0xd5,0xbc,0xc6,0xe3,0x97,0xbf,0xce,0xab,0x23,0xa1,0xd6,0xfc,0x3b,0xb4,0x92,0x28,0xbe,0x43,0xb2,0xd3,0x38,0xc1,0xec,0xbf,0x4b,0x11,0xf7,0xa8,0xe,0xe1,0xce,0xa7,0xb9,0x58,0x3c,0x91,0xf,0xd6,0x74,0xd4,0x59,0x60,0xd8,0x18,0xa3,0x79,0xe6,0x1d,0x65,0xb5,0x1,0xde,0xd9,0x14,0xae,0x51,0x73,0x44,0x5e,0x4f,0xf0,0x93,0xc8,0xa2,0x3f,0xac,0xaa,0x4,0x39,0xda,0x25,0x61,0x4d,0x69,0x1b,0x15,0x84,0xb6,0x4a,0x98,0x95,0xa5,0x50,0x99,0x27,0x35,0x5b,0xf1,0x10,0x89,0x9b,0x9a,0x31,0x42,0xa,0x90,0x49,0x26,0x16,0x9f,0xc2,0x7e,0x6d,0x9c,0xdf,0x29,0x22,0xca,0xd2,0xea,0xf6,0x40,0x23,0x77,0x67,0xcd,0xdc,0x8f,0xc4,0x1e,0x7,0x17,0x3d,0xfe,0x6c,0x62,0xe8,0x8c,0x2,0xf2,0x1c,0x56,0xc6,0x3e,0x4e,0x8,0x2c,0xff,0xc7,0xd1,0xa4,0xcc,0x66,0xba,0xe3,0x48,0x5c,0x64,0x5a,0x41,0x0,0x6e,0xc0,0x57,0xe2,0xeb,0x80,0x6b,0xdd,0x13,0x5f,0xb3,0x87,0x94,0xf8,0x2d,0xf5,0x81,0x24,0x82,0x30,0xb8,0xee,0x36,0xc,0x1f,0xaf,0x37,0x7d,0x72,0xad,0x63,0x78,0xf4,0x45,0xef,0x86,0xdb,0x8b,0xb,0xa0,0x70,0x46,0xfd,0xd5,0x54,0x55,0x68,0xd,0xe9,0x7c,0x2e,0x6a,0xe4,0x9e,0xb1,0x8d,0xbc,0x4c,0xed,0x20,0xf9,0x8e,0xf3,0x7b,0xe7,0x96,0xbb,0xcf,0xd7,0xa1,0x7a,0x3a,0x2a,0x6f,0xb0,0x34,0xa6,0x21,0x71,0x52,0xfb,0x3,0xc9,0x19,0x33,0xe5,0xcb,0xfa,0x97,0xd0,0x2f,0x83,0x5,0xe0,0x7f,0xb7,0x75,0x6,0x53,0x9,0xa9,0x32,0x47,0x85,0xab,0x5d,0x9d,0x12,0xc3,0x8a,0x88,0x2b,0xc5,0x76,0x1a,0xbd,0x93,0x35,0xda,0xf5,0x9c,0x82,0x63,0x7,0xaa,0x34,0xed,0x4f,0xef,0x62,0x5b,0xe3,0xc7,0x0,0x8f,0xa9,0x13,0x85,0x78,0x89,0xe8,0x3,0xfa,0xd7,0x84,0x70,0x2a,0xcc,0x74,0xcb,0xa8,0xf3,0x99,0x4,0x97,0x91,0x3f,0x2,0xe1,0x1e,0x5a,0x76,0x52,0x20,0x23,0x98,0x42,0xdd,0x26,0x5e,0x8e,0x3a,0xe5,0xe2,0x2f,0x95,0x6a,0x48,0x7f,0x65,0xa1,0xa,0x79,0x31,0xab,0x72,0x1d,0x2d,0xa4,0xf9,0x45,0x56,0xa7,0xe4,0x12,0x19,0x2e,0xbf,0x8d,0x71,0xa3,0xae,0x9e,0x6b,0xa2,0x1c,0xe,0x60,0xca,0x2b,0xb2,0xa0,0xc5,0x57,0x59,0xd3,0xb7,0x39,0xc9,0x27,0x6d,0xfd,0x5,0x75,0x33,0x17,0xc4,0xfc,0xf1,0xe9,0xd1,0xcd,0x7b,0x18,0x4c,0x5c,0xf6,0xe7,0xb4,0xff,0x25,0x3c,0x2c,0x6,0xd0,0xbb,0x50,0xe6,0x28,0x64,0x88,0xbc,0xaf,0xc3,0x16,0xce,0xba,0x1f,0xb9,0xb,0xea,0x9f,0xf7,0x5d,0x81,0xd8,0x73,0x67,0x5f,0x61,0x7a,0x3b,0x55,0xfb,0x6c,0xd9,0xe0,0xb0,0x30,0x9b,0x4b,0x7d,0xc6,0xee,0x6f,0x6e,0x53,0x36,0xd2,0x47,0x15,0x51,0x83,0xd5,0xd,0x37,0x24,0x94,0xc,0x46,0x49,0x96,0x58,0x43,0xcf,0x7e,0xd4,0xbd,0xec,0x9a,0x41,0x1,0x11,0x54,0x8b,0xf,0x9d,0x1a,0x4a,0x69,0xc0,0x38,0xf2,0x22,0xdf,0xa5,0x8a,0xb6,0x87,0x77,0xd6,0x1b,0xc2,0xb5,0xc8,0x40,0xdc,0xad,0x80,0xf4,0x92,0x9,0x7c,0xbe,0x90,0x66,0xa6,0x29,0xf8,0xb1,0xb3,0x10,0xfe,0x4d,0x21,0x86,0x8,0xde,0xf0,0xc1,0xac,0xeb,0x14,0xb8,0x3e,0xdb,0x44,0x8c,0x4e,0x3d,0x68,0x32,0x4b,0x66,0x9f,0x74,0x50,0xb6,0xec,0x18,0x35,0x13,0x9c,0x5b,0x15,0xe4,0x19,0x8f,0xd3,0x71,0xa8,0x36,0x7f,0xc7,0xfe,0x73,0x69,0x46,0xa9,0xf,0x9b,0xff,0x1e,0x0,0x9,0xb3,0x7e,0x79,0xf9,0xe3,0xd4,0xf6,0x41,0xde,0x4,0xbf,0xa6,0x12,0xc2,0xba,0x82,0x7d,0x9e,0xa3,0xbc,0xce,0xea,0xc6,0x6f,0x34,0x57,0xe8,0xd,0xb,0x98,0x5,0xfc,0x92,0x80,0x3e,0x3c,0x2e,0xb7,0x56,0xed,0x11,0x23,0xb2,0xf7,0x2,0x32,0x3f,0xca,0xd9,0x65,0x38,0x85,0x8e,0x78,0x3b,0xad,0xe5,0x96,0x3d,0xb1,0x81,0xee,0x37,0x63,0x28,0x7b,0x6a,0x9a,0xb0,0xa0,0xb9,0x51,0x4d,0x75,0x6d,0xc0,0xd0,0x84,0xe7,0xe9,0x99,0x61,0xf1,0x60,0x58,0x8b,0xaf,0x4f,0xc5,0xcb,0x59,0xbb,0x55,0xa5,0x2b,0xa7,0xe6,0xfd,0xc3,0x45,0xf0,0x67,0xc9,0xc1,0x6b,0x3,0x76,0xfb,0xef,0x44,0x1d,0x52,0x8a,0x5f,0x33,0x97,0x25,0x83,0x26,0x7a,0xcc,0x27,0x4c,0x20,0x14,0xf8,0xb4,0xdf,0xc4,0xa,0xd5,0x21,0x48,0xe2,0x53,0xab,0x91,0x49,0x1f,0xda,0x90,0x8,0xb8,0xaa,0xcf,0xf2,0xf3,0xcd,0x89,0xdb,0x4e,0x7,0xac,0x2c,0x7c,0x72,0x5a,0xe1,0xd7,0xdc,0x54,0x29,0x5e,0x68,0x1c,0x31,0x40,0x2a,0x16,0x39,0x43,0x87,0x4a,0xeb,0x1b,0xf5,0xd6,0x86,0x1,0xbe,0x6e,0xa4,0x5c,0x9d,0xdd,0x6,0x70,0x93,0x17,0xc8,0x8d,0x10,0xd8,0x47,0xa2,0xae,0xf4,0xa1,0xd2,0x5d,0x6c,0x42,0x94,0x24,0x88,0x77,0x30,0x8c,0x2f,0x2d,0x64,0x1a,0xbd,0xd1,0x62,0x22,0xe0,0x95,0xe,0xb5,0x3a,0xfa,0xc,0xf6,0xf0,0xf8,0x65,0xc9,0x92,0x15,0xaa,0x33,0x41,0x3b,0x17,0x80,0x7f,0x5e,0x63,0xef,0x5b,0x47,0x3f,0x23,0xbc,0x42,0xf9,0x1e,0x4,0xb,0x29,0x4e,0xf4,0x84,0x83,0x2,0x66,0xfd,0xe3,0xbb,0x94,0xf2,0x54,0x3a,0x82,0x8e,0x3,0x8c,0x2e,0xcb,0x55,0x19,0xe8,0x72,0xe4,0xee,0xc8,0xa6,0x61,0x4b,0xad,0xe5,0x11,0x9b,0xb6,0x89,0x62,0xa8,0x46,0xd6,0x58,0x38,0xb2,0xa4,0x36,0xa5,0x9d,0x52,0x76,0x64,0x14,0xc,0x9c,0x2d,0x3d,0x1a,0x79,0xb0,0xac,0x90,0x88,0x4d,0x67,0x44,0x5d,0xd5,0x9e,0x97,0x86,0x7c,0x4c,0xca,0x13,0x18,0x50,0xc0,0x6b,0x73,0x78,0xc6,0x85,0x24,0x37,0xc5,0x98,0xff,0xa,0xc2,0xcf,0xec,0x10,0x4f,0xde,0xd3,0xc1,0xab,0x4a,0x6f,0x1,0xc3,0x7d,0xa7,0x8f,0x2a,0x1c,0x51,0xfa,0x81,0xd1,0x74,0x30,0xb3,0x26,0x32,0x57,0xe,0xf,0x6d,0x27,0x45,0xf5,0x6c,0x56,0xe2,0xb4,0xb5,0xdc,0xae,0x1f,0x39,0x22,0x28,0xf7,0xe9,0xdd,0x49,0x5,0x31,0x87,0xb1,0xda,0xd8,0x6a,0xdb,0x7e,0x77,0xaf,0xce,0xa2,0x12,0x6,0xe0,0xb9,0x96,0x3c,0x8b,0xfe,0xd,0xb8,0x34,0x9a,0x1b,0x5a,0x3e,0x0,0xc7,0x48,0xf1,0x7,0x1d,0xdf,0xf3,0x68,0x40,0xe7,0x9f,0x2c,0xd2,0x71,0x99,0xd0,0x75,0xd9,0xcd,0x8a,0x91,0xa0,0x69,0xbf,0x9,0x53,0x2f,0x5c,0x25,0xed,0x5f,0xba,0xea,0x6e,0x70,0x35,0x20,0x60,0x8d,0xfb,0x93,0x43,0xa1,0x59,0x2b,0x8,0xfc,0x7b,0xb7,0x7a,0xe6,0x16,0xeb,0xd7,0xbe,0xc4,0xe1,0x95,0xbd,0xcc,0xa9,0x21,0xa3,0xd4,0x49,0x8e,0x1,0x27,0x9d,0xb,0xf6,0x7,0x66,0x8d,0x74,0x59,0xa,0xfe,0xa4,0x42,0x1d,0xbb,0x54,0x7b,0x12,0xc,0xed,0x89,0x24,0xba,0x63,0xc1,0x61,0xec,0xd5,0x6d,0xad,0x16,0xcc,0x53,0xa8,0xd0,0x0,0xb4,0x6b,0x6c,0xa1,0x1b,0xe4,0xc6,0xf1,0xeb,0xfa,0x45,0x26,0x7d,0x17,0x8a,0x19,0x1f,0xb1,0x8c,0x6f,0x90,0xd4,0xf8,0xdc,0xae,0xa0,0x31,0x3,0xff,0x2d,0x20,0x10,0xe5,0x2c,0x92,0x80,0xee,0x44,0xa5,0x3c,0x2e,0x2f,0x84,0xf7,0xbf,0x25,0xfc,0x93,0xa3,0x2a,0x77,0xcb,0xd8,0x29,0x6a,0x9c,0x97,0x7f,0x67,0x5f,0x43,0xf5,0x96,0xc2,0xd2,0x78,0x69,0x3a,0x71,0xab,0xb2,0xa2,0x88,0x4b,0xd9,0xd7,0x5d,0x39,0xb7,0x47,0xa9,0xe3,0x73,0x8b,0xfb,0xbd,0x99,0x4a,0x72,0x64,0x11,0x79,0xd3,0xf,0x56,0xfd,0xe9,0xd1,0xef,0xf4,0xb5,0xdb,0x75,0xe2,0x57,0x5e,0x35,0xde,0x68,0xa6,0xea,0x6,0x32,0x21,0x4d,0x98,0x40,0x34,0x91,0x37,0x85,0xd,0x5b,0x83,0xb9,0xaa,0x1a,0x82,0xc8,0xc7,0x18,0xd6,0xcd,0x41,0xf0,0x5a,0x33,0x6e,0x3e,0xbe,0x15,0xc5,0xf3,0x48,0x60,0xe1,0xe0,0xdd,0xb8,0x5c,0xc9,0x9b,0xdf,0x51,0x2b,0x4,0x38,0x9,0xf9,0x58,0x95,0x4c,0x3b,0x46,0xce,0x52,0x23,0xe,0x7a,0x62,0x14,0xcf,0x8f,0x9f,0xda,0x5,0x81,0x13,0x94,0xc4,0xe7,0x4e,0xb6,0x7c,0xac,0x86,0x50,0x7e,0x4f,0x22,0x65,0x9a,0x36,0xb0,0x55,0xca,0x2,0xc0,0xb3,0xe6,0xbc,0x1c,0x87,0xf2,0x30,0x1e,0xe8,0x28,0xa7,0x76,0x3f,0x3d,0x9e,0x70,0xc3,0xaf,0x8,0x7a,0xdc,0x33,0x1c,0x75,0x6b,0x8a,0xee,0x43,0xdd,0x4,0xa6,0x6,0x8b,0xb2,0xa,0x2e,0xe9,0x66,0x40,0xfa,0x6c,0x91,0x60,0x1,0xea,0x13,0x3e,0x6d,0x99,0xc3,0x25,0x9d,0x22,0x41,0x1a,0x70,0xed,0x7e,0x78,0xd6,0xeb,0x8,0xf7,0xb3,0x9f,0xbb,0xc9,0xca,0x71,0xab,0x34,0xcf,0xb7,0x67,0xd3,0xc,0xb,0xc6,0x7c,0x83,0xa1,0x96,0x8c,0x48,0xe3,0x90,0xd8,0x42,0x9b,0xf4,0xc4,0x4d,0x10,0xac,0xbf,0x4e,0xd,0xfb,0xf0,0xc7,0x56,0x64,0x98,0x4a,0x47,0x77,0x82,0x4b,0xf5,0xe7,0x89,0x23,0xc2,0x5b,0x49,0x2c,0xbe,0xb0,0x3a,0x5e,0xd0,0x20,0xce,0x84,0x14,0xec,0x9c,0xda,0xfe,0x2d,0x15,0x18,0x0,0x38,0x24,0x92,0xf1,0xa5,0xb5,0x1f,0xe,0x5d,0x16,0xcc,0xd5,0xc5,0xef,0x39,0x52,0xb9,0xf,0xc1,0x8d,0x61,0x55,0x46,0x2a,0xff,0x27,0x53,0xf6,0x50,0xe2,0x3,0x76,0x1e,0xb4,0x68,0x31,0x9a,0x8e,0xb6,0x88,0x93,0xd2,0xbc,0x12,0x85,0x30,0x9,0x59,0xd9,0x72,0xa2,0x94,0x2f,0x7,0x86,0x87,0xba,0xdf,0x3b,0xae,0xfc,0xb8,0x6a,0x3c,0xe4,0xde,0xcd,0x7d,0xe5,0xaf,0xa0,0x7f,0xb1,0xaa,0x26,0x97,0x3d,0x54,0x5,0x73,0xa8,0xe8,0xf8,0xbd,0x62,0xe6,0x74,0xf3,0xa3,0x80,0x29,0xd1,0x1b,0xcb,0x36,0x4c,0x63,0x5f,0x6e,0x9e,0x3f,0xf2,0x2b,0x5c,0x21,0xa9,0x35,0x44,0x69,0x1d,0x7b,0xe0,0x95,0x57,0x79,0x8f,0x4f,0xc0,0x11,0x58,0x5a,0xf9,0x17,0xa4,0xc8,0x6f,0xe1,0x37,0x19,0x28,0x45,0x2,0xfd,0x51,0xd7,0x32,0xad,0x65,0xa7,0xd4,0x81,0xdb,0xa4,0x89,0x70,0x9b,0xbf,0x59,0x3,0xf7,0xda,0xfc,0x73,0xb4,0xfa,0xb,0xf6,0x60,0x3c,0x9e,0x47,0xd9,0x90,0x28,0x11,0x9c,0x86,0xa9,0x46,0xe0,0x74,0x10,0xf1,0xef,0xe6,0x5c,0x91,0x96,0x16,0xc,0x3b,0x19,0xae,0x31,0xeb,0x50,0x49,0xfd,0x2d,0x55,0x6d,0x92,0x71,0x4c,0x53,0x21,0x5,0x29,0x80,0xdb,0xb8,0x7,0xe2,0xe4,0x77,0xea,0x13,0x7d,0x6f,0xd1,0xd3,0xc1,0x58,0xb9,0x2,0xfe,0xcc,0x5d,0x18,0xed,0xdd,0xd0,0x25,0x36,0x8a,0xd7,0x6a,0x61,0x97,0xd4,0x42,0xa,0x79,0xd2,0x5e,0x6e,0x1,0xd8,0x8c,0xc7,0x94,0x85,0x75,0x5f,0x4f,0x56,0xbe,0xa2,0x9a,0x82,0x2f,0x3f,0x6b,0x8,0x6,0x76,0x8e,0x1e,0x8f,0xb7,0x64,0x40,0xa0,0x2a,0x24,0xb6,0x54,0xba,0x4a,0xc4,0x48,0x9,0x12,0x2c,0xaa,0x1f,0x88,0x26,0x2e,0x84,0xec,0x99,0x14,0x0,0xab,0xf2,0xbd,0x65,0xb0,0xdc,0x78,0xca,0x6c,0xc9,0x95,0x23,0xc8,0xa3,0xcf,0xfb,0x17,0x5b,0x30,0x2b,0xe5,0x3a,0xce,0xa7,0xd,0xbc,0x44,0x7e,0xa6,0xf0,0x35,0x7f,0xe7,0x57,0x45,0x20,0x1d,0x1c,0x22,0x66,0x34,0xa1,0xe8,0x43,0xc3,0x93,0x9d,0xb5,0xe,0x38,0x33,0xbb,0xc6,0xb1,0x87,0xf3,0xde,0xaf,0xc5,0xf9,0xd6,0xac,0x68,0xa5,0x4,0xf4,0x1a,0x39,0x69,0xee,0x51,0x81,0x4b,0xb3,0x72,0x32,0xe9,0x9f,0x7c,0xf8,0x27,0x62,0xff,0x37,0xa8,0x4d,0x41,0x1b,0x4e,0x3d,0xb2,0x83,0xad,0x7b,0xcb,0x67,0x98,0xdf,0x63,0xc0,0xc2,0x8b,0xf5,0x52,0x3e,0x8d,0xcd,0xf,0x7a,0xe1,0x5a,0xd5,0x15,0xe3,0x8a,0x8c,0x84,0x19,0xb5,0xee,0x69,0xd6,0x4f,0x3d,0x47,0x6b,0xfc,0x3,0x22,0x1f,0x93,0x27,0x3b,0x43,0x5f,0xc0,0x3e,0x85,0x62,0x78,0x77,0x55,0x32,0x88,0xf8,0xff,0x7e,0x1a,0x81,0x9f,0xc7,0xe8,0x8e,0x28,0x46,0xfe,0xf2,0x7f,0xf0,0x52,0xb7,0x29,0x65,0x94,0xe,0x98,0x92,0xb4,0xda,0x1d,0x37,0xd1,0x99,0x6d,0xe7,0xca,0xf5,0x1e,0xd4,0x3a,0xaa,0x24,0x44,0xce,0xd8,0x4a,0xd9,0xe1,0x2e,0xa,0x18,0x68,0x70,0xe0,0x51,0x41,0x66,0x5,0xcc,0xd0,0xec,0xf4,0x31,0x1b,0x38,0x21,0xa9,0xe2,0xeb,0xfa,0x0,0x30,0xb6,0x6f,0x64,0x2c,0xbc,0x17,0xf,0x4,0xba,0xf9,0x58,0x4b,0xb9,0xe4,0x83,0x76,0xbe,0xb3,0x90,0x6c,0x33,0xa2,0xaf,0xbd,0xd7,0x36,0x13,0x7d,0xbf,0x1,0xdb,0xf3,0x56,0x60,0x2d,0x86,0xfd,0xad,0x8,0x4c,0xcf,0x5a,0x4e,0x2b,0x72,0x73,0x11,0x5b,0x39,0x89,0x10,0x2a,0x9e,0xc8,0xc9,0xa0,0xd2,0x63,0x45,0x5e,0x54,0x8b,0x95,0xa1,0x35,0x79,0x4d,0xfb,0xcd,0xa6,0xa4,0x16,0xa7,0x2,0xb,0xd3,0xb2,0xde,0x6e,0x7a,0x9c,0xc5,0xea,0x40,0xf7,0x82,0x71,0xc4,0x48,0xe6,0x67,0x26,0x42,0x7c,0xbb,0x34,0x8d,0x7b,0x61,0xa3,0x8f,0x14,0x3c,0x9b,0xe3,0x50,0xae,0xd,0xe5,0xac,0x9,0xa5,0xb1,0xf6,0xed,0xdc,0x15,0xc3,0x75,0x2f,0x53,0x20,0x59,0x91,0x23,0xc6,0x96,0x12,0xc,0x49,0x5c,0x1c,0xf1,0x87,0xef,0x3f,0xdd,0x25,0x57,0x74,0x80,0x7,0xcb,0x6,0x9a,0x6a,0x97,0xab,0xc2,0xb8,0x9d,0xe9,0xc1,0xb0,0xd5,0x5d,0xdf,0xa8,0xec,0x2b,0xa4,0x82,0x38,0xae,0x53,0xa2,0xc3,0x28,0xd1,0xfc,0xaf,0x5b,0x1,0xe7,0xb8,0x1e,0xf1,0xde,0xb7,0xa9,0x48,0x2c,0x81,0x1f,0xc6,0x64,0xc4,0x49,0x70,0xc8,0x8,0xb3,0x69,0xf6,0xd,0x75,0xa5,0x11,0xce,0xc9,0x4,0xbe,0x41,0x63,0x54,0x4e,0x5f,0xe0,0x83,0xd8,0xb2,0x2f,0xbc,0xba,0x14,0x29,0xca,0x35,0x71,0x5d,0x79,0xb,0x5,0x94,0xa6,0x5a,0x88,0x85,0xb5,0x40,0x89,0x37,0x25,0x4b,0xe1,0x0,0x99,0x8b,0x8a,0x21,0x52,0x1a,0x80,0x59,0x36,0x6,0x8f,0xd2,0x6e,0x7d,0x8c,0xcf,0x39,0x32,0xda,0xc2,0xfa,0xe6,0x50,0x33,0x67,0x77,0xdd,0xcc,0x9f,0xd4,0xe,0x17,0x7,0x2d,0xee,0x7c,0x72,0xf8,0x9c,0x12,0xe2,0xc,0x46,0xd6,0x2e,0x5e,0x18,0x3c,0xef,0xd7,0xc1,0xb4,0xdc,0x76,0xaa,0xf3,0x58,0x4c,0x74,0x4a,0x51,0x10,0x7e,0xd0,0x47,0xf2,0xfb,0x90,0x7b,0xcd,0x3,0x4f,0xa3,0x97,0x84,0xe8,0x3d,0xe5,0x91,0x34,0x92,0x20,0xa8,0xfe,0x26,0x1c,0xf,0xbf,0x27,0x6d,0x62,0xbd,0x73,0x68,0xe4,0x55,0xff,0x96,0xcb,0x9b,0x1b,0xb0,0x60,0x56,0xed,0xc5,0x44,0x45,0x78,0x1d,0xf9,0x6c,0x3e,0x7a,0xf4,0x8e,0xa1,0x9d,0xac,0x5c,0xfd,0x30,0xe9,0x9e,0xe3,0x6b,0xf7,0x86,0xab,0xdf,0xc7,0xb1,0x6a,0x2a,0x3a,0x7f,0xa0,0x24,0xb6,0x31,0x61,0x42,0xeb,0x13,0xd9,0x9,0x23,0xf5,0xdb,0xea,0x87,0xc0,0x3f,0x93,0x15,0xf0,0x6f,0xa7,0x65,0x16,0x43,0x19,0xb9,0x22,0x57,0x95,0xbb,0x4d,0x8d,0x2,0xd3,0x9a,0x98,0x3b,0xd5,0x66,0xa,0xad,0xaa,0xc,0xe3,0xcc,0xa5,0xbb,0x5a,0x3e,0x93,0xd,0xd4,0x76,0xd6,0x5b,0x62,0xda,0xfe,0x39,0xb6,0x90,0x2a,0xbc,0x41,0xb0,0xd1,0x3a,0xc3,0xee,0xbd,0x49,0x13,0xf5,0x4d,0xf2,0x91,0xca,0xa0,0x3d,0xae,0xa8,0x6,0x3b,0xd8,0x27,0x63,0x4f,0x6b,0x19,0x1a,0xa1,0x7b,0xe4,0x1f,0x67,0xb7,0x3,0xdc,0xdb,0x16,0xac,0x53,0x71,0x46,0x5c,0x98,0x33,0x40,0x8,0x92,0x4b,0x24,0x14,0x9d,0xc0,0x7c,0x6f,0x9e,0xdd,0x2b,0x20,0x17,0x86,0xb4,0x48,0x9a,0x97,0xa7,0x52,0x9b,0x25,0x37,0x59,0xf3,0x12,0x8b,0x99,0xfc,0x6e,0x60,0xea,0x8e,0x0,0xf0,0x1e,0x54,0xc4,0x3c,0x4c,0xa,0x2e,0xfd,0xc5,0xc8,0xd0,0xe8,0xf4,0x42,0x21,0x75,0x65,0xcf,0xde,0x8d,0xc6,0x1c,0x5,0x15,0x3f,0xe9,0x82,0x69,0xdf,0x11,0x5d,0xb1,0x85,0x96,0xfa,0x2f,0xf7,0x83,0x26,0x80,0x32,0xd3,0xa6,0xce,0x64,0xb8,0xe1,0x4a,0x5e,0x66,0x58,0x43,0x2,0x6c,0xc2,0x55,0xe0,0xd9,0x89,0x9,0xa2,0x72,0x44,0xff,0xd7,0x56,0x57,0x6a,0xf,0xeb,0x7e,0x2c,0x68,0xba,0xec,0x34,0xe,0x1d,0xad,0x35,0x7f,0x70,0xaf,0x61,0x7a,0xf6,0x47,0xed,0x84,0xd5,0xa3,0x78,0x38,0x28,0x6d,0xb2,0x36,0xa4,0x23,0x73,0x50,0xf9,0x1,0xcb,0x1b,0xe6,0x9c,0xb3,0x8f,0xbe,0x4e,0xef,0x22,0xfb,0x8c,0xf1,0x79,0xe5,0x94,0xb9,0xcd,0xab,0x30,0x45,0x87,0xa9,0x5f,0x9f,0x10,0xc1,0x88,0x8a,0x29,0xc7,0x74,0x18,0xbf,0x31,0xe7,0xc9,0xf8,0x95,0xd2,0x2d,0x81,0x7,0xe2,0x7d,0xb5,0x77,0x4,0x51,0xb,0x53,0x7e,0x87,0x6c,0x48,0xae,0xf4,0x0,0x2d,0xb,0x84,0x43,0xd,0xfc,0x1,0x97,0xcb,0x69,0xb0,0x2e,0x67,0xdf,0xe6,0x6b,0x71,0x5e,0xb1,0x17,0x83,0xe7,0x6,0x18,0x11,0xab,0x66,0x61,0xe1,0xfb,0xcc,0xee,0x59,0xc6,0x1c,0xa7,0xbe,0xa,0xda,0xa2,0x9a,0x65,0x86,0xbb,0xa4,0xd6,0xf2,0xde,0x77,0x2c,0x4f,0xf0,0x15,0x13,0x80,0x1d,0xe4,0x8a,0x98,0x26,0x24,0x36,0xaf,0x4e,0xf5,0x9,0x3b,0xaa,0xef,0x1a,0x2a,0x27,0xd2,0xc1,0x7d,0x20,0x9d,0x96,0x60,0x23,0xb5,0xfd,0x8e,0x25,0xa9,0x99,0xf6,0x2f,0x7b,0x30,0x63,0x72,0x82,0xa8,0xb8,0xa1,0x49,0x55,0x6d,0x75,0xd8,0xc8,0x9c,0xff,0xf1,0x81,0x79,0xe9,0x78,0x40,0x93,0xb7,0x57,0xdd,0xd3,0x41,0xa3,0x4d,0xbd,0x33,0xbf,0xfe,0xe5,0xdb,0x5d,0xe8,0x7f,0xd1,0xd9,0x73,0x1b,0x6e,0xe3,0xf7,0x5c,0x5,0x4a,0x92,0x47,0x2b,0x8f,0x3d,0x9b,0x3e,0x62,0xd4,0x3f,0x54,0x38,0xc,0xe0,0xac,0xc7,0xdc,0x12,0xcd,0x39,0x50,0xfa,0x4b,0xb3,0x89,0x51,0x7,0xc2,0x88,0x10,0xa0,0xb2,0xd7,0xea,0xeb,0xd5,0x91,0xc3,0x56,0x1f,0xb4,0x34,0x64,0x6a,0x42,0xf9,0xcf,0xc4,0x4c,0x31,0x46,0x70,0x4,0x29,0x58,0x32,0xe,0x21,0x5b,0x9f,0x52,0xf3,0x3,0xed,0xce,0x9e,0x19,0xa6,0x76,0xbc,0x44,0x85,0xc5,0x1e,0x68,0x8b,0xf,0xd0,0x95,0x8,0xc0,0x5f,0xba,0xb6,0xec,0xb9,0xca,0x45,0x74,0x5a,0x8c,0x3c,0x90,0x6f,0x28,0x94,0x37,0x35,0x7c,0x2,0xa5,0xc9,0x7a,0x3a,0xf8,0x8d,0x16,0xad,0x22,0xe2,0x14,0xc6,0xc0,0xc8,0x55,0xf9,0xa2,0x25,0x9a,0x3,0x71,0xb,0x27,0xb0,0x4f,0x6e,0x53,0xdf,0x6b,0x77,0xf,0x13,0x8c,0x72,0xc9,0x2e,0x34,0x3b,0x19,0x7e,0xc4,0xb4,0xb3,0x32,0x56,0xcd,0xd3,0x8b,0xa4,0xc2,0x64,0xa,0xb2,0xbe,0x33,0xbc,0x1e,0xfb,0x65,0x29,0xd8,0x42,0xd4,0xde,0xf8,0x96,0x51,0x7b,0x9d,0xd5,0x21,0xab,0x86,0xb9,0x52,0x98,0x76,0xe6,0x68,0x8,0x82,0x94,0x6,0x95,0xad,0x62,0x46,0x54,0x24,0x3c,0xac,0x1d,0xd,0x2a,0x49,0x80,0x9c,0xa0,0xb8,0x7d,0x57,0x74,0x6d,0xe5,0xae,0xa7,0xb6,0x4c,0x7c,0xfa,0x23,0x28,0x60,0xf0,0x5b,0x43,0x48,0xf6,0xb5,0x14,0x7,0xf5,0xa8,0xcf,0x3a,0xf2,0xff,0xdc,0x20,0x7f,0xee,0xe3,0xf1,0x9b,0x7a,0x5f,0x31,0xf3,0x4d,0x97,0xbf,0x1a,0x2c,0x61,0xca,0xb1,0xe1,0x44,0x0,0x83,0x16,0x2,0x67,0x3e,0x3f,0x5d,0x17,0x75,0xc5,0x5c,0x66,0xd2,0x84,0x85,0xec,0x9e,0x2f,0x9,0x12,0x18,0xc7,0xd9,0xed,0x79,0x35,0x1,0xb7,0x81,0xea,0xe8,0x5a,0xeb,0x4e,0x47,0x9f,0xfe,0x92,0x22,0x36,0xd0,0x89,0xa6,0xc,0xbb,0xce,0x3d,0x88,0x4,0xaa,0x2b,0x6a,0xe,0x30,0xf7,0x78,0xc1,0x37,0x2d,0xef,0xc3,0x58,0x70,0xd7,0xaf,0x1c,0xe2,0x41,0xa9,0xe0,0x45,0xe9,0xfd,0xba,0xa1,0x90,0x59,0x8f,0x39,0x63,0x1f,0x6c,0x15,0xdd,0x6f,0x8a,0xda,0x5e,0x40,0x5,0x10,0x50,0xbd,0xcb,0xa3,0x73,0x91,0x69,0x1b,0x38,0xcc,0x4b,0x87,0x4a,0xd6,0x26,0xdb,0xe7,0x8e,0xf4,0xd1,0xa5,0x8d,0xfc,0x99,0x11,0x93,0xe4,0x79,0xbe,0x31,0x17,0xad,0x3b,0xc6,0x37,0x56,0xbd,0x44,0x69,0x3a,0xce,0x94,0x72,0x2d,0x8b,0x64,0x4b,0x22,0x3c,0xdd,0xb9,0x14,0x8a,0x53,0xf1,0x51,0xdc,0xe5,0x5d,0x9d,0x26,0xfc,0x63,0x98,0xe0,0x30,0x84,0x5b,0x5c,0x91,0x2b,0xd4,0xf6,0xc1,0xdb,0xca,0x75,0x16,0x4d,0x27,0xba,0x29,0x2f,0x81,0xbc,0x5f,0xa0,0xe4,0xc8,0xec,0x9e,0x90,0x1,0x33,0xcf,0x1d,0x10,0x20,0xd5,0x1c,0xa2,0xb0,0xde,0x74,0x95,0xc,0x1e,0x1f,0xb4,0xc7,0x8f,0x15,0xcc,0xa3,0x93,0x1a,0x47,0xfb,0xe8,0x19,0x5a,0xac,0xa7,0x4f,0x57,0x6f,0x73,0xc5,0xa6,0xf2,0xe2,0x48,0x59,0xa,0x41,0x9b,0x82,0x92,0xb8,0x7b,0xe9,0xe7,0x6d,0x9,0x87,0x77,0x99,0xd3,0x43,0xbb,0xcb,0x8d,0xa9,0x7a,0x42,0x54,0x21,0x49,0xe3,0x3f,0x66,0xcd,0xd9,0xe1,0xdf,0xc4,0x85,0xeb,0x45,0xd2,0x67,0x6e,0x5,0xee,0x58,0x96,0xda,0x36,0x2,0x11,0x7d,0xa8,0x70,0x4,0xa1,0x7,0xb5,0x3d,0x6b,0xb3,0x89,0x9a,0x2a,0xb2,0xf8,0xf7,0x28,0xe6,0xfd,0x71,0xc0,0x6a,0x3,0x5e,0xe,0x8e,0x25,0xf5,0xc3,0x78,0x50,0xd1,0xd0,0xed,0x88,0x6c,0xf9,0xab,0xef,0x61,0x1b,0x34,0x8,0x39,0xc9,0x68,0xa5,0x7c,0xb,0x76,0xfe,0x62,0x13,0x3e,0x4a,0x52,0x24,0xff,0xbf,0xaf,0xea,0x35,0xb1,0x23,0xa4,0xf4,0xd7,0x7e,0x86,0x4c,0x9c,0xb6,0x60,0x4e,0x7f,0x12,0x55,0xaa,0x6,0x80,0x65,0xfa,0x32,0xf0,0x83,0xd6,0x8c,0x2c,0xb7,0xc2,0x0,0x2e,0xd8,0x18,0x97,0x46,0xf,0xd,0xae,0x40,0xf3,0x9f,0x38,0xc6,0x60,0x8f,0xa0,0xc9,0xd7,0x36,0x52,0xff,0x61,0xb8,0x1a,0xba,0x37,0xe,0xb6,0x92,0x55,0xda,0xfc,0x46,0xd0,0x2d,0xdc,0xbd,0x56,0xaf,0x82,0xd1,0x25,0x7f,0x99,0x21,0x9e,0xfd,0xa6,0xcc,0x51,0xc2,0xc4,0x6a,0x57,0xb4,0x4b,0xf,0x23,0x7,0x75,0x76,0xcd,0x17,0x88,0x73,0xb,0xdb,0x6f,0xb0,0xb7,0x7a,0xc0,0x3f,0x1d,0x2a,0x30,0xf4,0x5f,0x2c,0x64,0xfe,0x27,0x48,0x78,0xf1,0xac,0x10,0x3,0xf2,0xb1,0x47,0x4c,0x7b,0xea,0xd8,0x24,0xf6,0xfb,0xcb,0x3e,0xf7,0x49,0x5b,0x35,0x9f,0x7e,0xe7,0xf5,0x90,0x2,0xc,0x86,0xe2,0x6c,0x9c,0x72,0x38,0xa8,0x50,0x20,0x66,0x42,0x91,0xa9,0xa4,0xbc,0x84,0x98,0x2e,0x4d,0x19,0x9,0xa3,0xb2,0xe1,0xaa,0x70,0x69,0x79,0x53,0x85,0xee,0x5,0xb3,0x7d,0x31,0xdd,0xe9,0xfa,0x96,0x43,0x9b,0xef,0x4a,0xec,0x5e,0xbf,0xca,0xa2,0x8,0xd4,0x8d,0x26,0x32,0xa,0x34,0x2f,0x6e,0x0,0xae,0x39,0x8c,0xb5,0xe5,0x65,0xce,0x1e,0x28,0x93,0xbb,0x3a,0x3b,0x6,0x63,0x87,0x12,0x40,0x4,0xd6,0x80,0x58,0x62,0x71,0xc1,0x59,0x13,0x1c,0xc3,0xd,0x16,0x9a,0x2b,0x81,0xe8,0xb9,0xcf,0x14,0x54,0x44,0x1,0xde,0x5a,0xc8,0x4f,0x1f,0x3c,0x95,0x6d,0xa7,0x77,0x8a,0xf0,0xdf,0xe3,0xd2,0x22,0x83,0x4e,0x97,0xe0,0x9d,0x15,0x89,0xf8,0xd5,0xa1,0xc7,0x5c,0x29,0xeb,0xc5,0x33,0xf3,0x7c,0xad,0xe4,0xe6,0x45,0xab,0x18,0x74,0xd3,0x5d,0x8b,0xa5,0x94,0xf9,0xbe,0x41,0xed,0x6b,0x8e,0x11,0xd9,0x1b,0x68,0x3d,0x67,0x7c,0x51,0xa8,0x43,0x67,0x81,0xdb,0x2f,0x2,0x24,0xab,0x6c,0x22,0xd3,0x2e,0xb8,0xe4,0x46,0x9f,0x1,0x48,0xf0,0xc9,0x44,0x5e,0x71,0x9e,0x38,0xac,0xc8,0x29,0x37,0x3e,0x84,0x49,0x4e,0xce,0xd4,0xe3,0xc1,0x76,0xe9,0x33,0x88,0x91,0x25,0xf5,0x8d,0xb5,0x4a,0xa9,0x94,0x8b,0xf9,0xdd,0xf1,0x58,0x3,0x60,0xdf,0x3a,0x3c,0xaf,0x32,0xcb,0xa5,0xb7,0x9,0xb,0x19,0x80,0x61,0xda,0x26,0x14,0x85,0xc0,0x35,0x5,0x8,0xfd,0xee,0x52,0xf,0xb2,0xb9,0x4f,0xc,0x9a,0xd2,0xa1,0xa,0x86,0xb6,0xd9,0x0,0x54,0x1f,0x4c,0x5d,0xad,0x87,0x97,0x8e,0x66,0x7a,0x42,0x5a,0xf7,0xe7,0xb3,0xd0,0xde,0xae,0x56,0xc6,0x57,0x6f,0xbc,0x98,0x78,0xf2,0xfc,0x6e,0x8c,0x62,0x92,0x1c,0x90,0xd1,0xca,0xf4,0x72,0xc7,0x50,0xfe,0xf6,0x5c,0x34,0x41,0xcc,0xd8,0x73,0x2a,0x65,0xbd,0x68,0x4,0xa0,0x12,0xb4,0x11,0x4d,0xfb,0x10,0x7b,0x17,0x23,0xcf,0x83,0xe8,0xf3,0x3d,0xe2,0x16,0x7f,0xd5,0x64,0x9c,0xa6,0x7e,0x28,0xed,0xa7,0x3f,0x8f,0x9d,0xf8,0xc5,0xc4,0xfa,0xbe,0xec,0x79,0x30,0x9b,0x1b,0x4b,0x45,0x6d,0xd6,0xe0,0xeb,0x63,0x1e,0x69,0x5f,0x2b,0x6,0x77,0x1d,0x21,0xe,0x74,0xb0,0x7d,0xdc,0x2c,0xc2,0xe1,0xb1,0x36,0x89,0x59,0x93,0x6b,0xaa,0xea,0x31,0x47,0xa4,0x20,0xff,0xba,0x27,0xef,0x70,0x95,0x99,0xc3,0x96,0xe5,0x6a,0x5b,0x75,0xa3,0x13,0xbf,0x40,0x7,0xbb,0x18,0x1a,0x53,0x2d,0x8a,0xe6,0x55,0x15,0xd7,0xa2,0x39,0x82,0xd,0xcd,0x3b,0x34,0x32,0x3a,0xa7,0xb,0x50,0xd7,0x68,0xf1,0x83,0xf9,0xd5,0x42,0xbd,0x9c,0xa1,0x2d,0x99,0x85,0xfd,0xe1,0x7e,0x80,0x3b,0xdc,0xc6,0xc9,0xeb,0x8c,0x36,0x46,0x41,0xc0,0xa4,0x3f,0x21,0x79,0x56,0x30,0x96,0xf8,0x40,0x4c,0xc1,0x4e,0xec,0x9,0x97,0xdb,0x2a,0xb0,0x26,0x2c,0xa,0x64,0xa3,0x89,0x6f,0x27,0xd3,0x59,0x74,0x4b,0xa0,0x6a,0x84,0x14,0x9a,0xfa,0x70,0x66,0xf4,0x67,0x5f,0x90,0xb4,0xa6,0xd6,0xce,0x5e,0xef,0xff,0xd8,0xbb,0x72,0x6e,0x52,0x4a,0x8f,0xa5,0x86,0x9f,0x17,0x5c,0x55,0x44,0xbe,0x8e,0x8,0xd1,0xda,0x92,0x2,0xa9,0xb1,0xba,0x4,0x47,0xe6,0xf5,0x7,0x5a,0x3d,0xc8,0x0,0xd,0x2e,0xd2,0x8d,0x1c,0x11,0x3,0x69,0x88,0xad,0xc3,0x1,0xbf,0x65,0x4d,0xe8,0xde,0x93,0x38,0x43,0x13,0xb6,0xf2,0x71,0xe4,0xf0,0x95,0xcc,0xcd,0xaf,0xe5,0x87,0x37,0xae,0x94,0x20,0x76,0x77,0x1e,0x6c,0xdd,0xfb,0xe0,0xea,0x35,0x2b,0x1f,0x8b,0xc7,0xf3,0x45,0x73,0x18,0x1a,0xa8,0x19,0xbc,0xb5,0x6d,0xc,0x60,0xd0,0xc4,0x22,0x7b,0x54,0xfe,0x49,0x3c,0xcf,0x7a,0xf6,0x58,0xd9,0x98,0xfc,0xc2,0x5,0x8a,0x33,0xc5,0xdf,0x1d,0x31,0xaa,0x82,0x25,0x5d,0xee,0x10,0xb3,0x5b,0x12,0xb7,0x1b,0xf,0x48,0x53,0x62,0xab,0x7d,0xcb,0x91,0xed,0x9e,0xe7,0x2f,0x9d,0x78,0x28,0xac,0xb2,0xf7,0xe2,0xa2,0x4f,0x39,0x51,0x81,0x63,0x9b,0xe9,0xca,0x3e,0xb9,0x75,0xb8,0x24,0xd4,0x29,0x15,0x7c,0x6,0x23,0x57,0x7f,0xe,0x6b,0xe3,0x61,0x16,0xd3,0x14,0x9b,0xbd,0x7,0x91,0x6c,0x9d,0xfc,0x17,0xee,0xc3,0x90,0x64,0x3e,0xd8,0x87,0x21,0xce,0xe1,0x88,0x96,0x77,0x13,0xbe,0x20,0xf9,0x5b,0xfb,0x76,0x4f,0xf7,0x37,0x8c,0x56,0xc9,0x32,0x4a,0x9a,0x2e,0xf1,0xf6,0x3b,0x81,0x7e,0x5c,0x6b,0x71,0x60,0xdf,0xbc,0xe7,0x8d,0x10,0x83,0x85,0x2b,0x16,0xf5,0xa,0x4e,0x62,0x46,0x34,0x3a,0xab,0x99,0x65,0xb7,0xba,0x8a,0x7f,0xb6,0x8,0x1a,0x74,0xde,0x3f,0xa6,0xb4,0xb5,0x1e,0x6d,0x25,0xbf,0x66,0x9,0x39,0xb0,0xed,0x51,0x42,0xb3,0xf0,0x6,0xd,0xe5,0xfd,0xc5,0xd9,0x6f,0xc,0x58,0x48,0xe2,0xf3,0xa0,0xeb,0x31,0x28,0x38,0x12,0xd1,0x43,0x4d,0xc7,0xa3,0x2d,0xdd,0x33,0x79,0xe9,0x11,0x61,0x27,0x3,0xd0,0xe8,0xfe,0x8b,0xe3,0x49,0x95,0xcc,0x67,0x73,0x4b,0x75,0x6e,0x2f,0x41,0xef,0x78,0xcd,0xc4,0xaf,0x44,0xf2,0x3c,0x70,0x9c,0xa8,0xbb,0xd7,0x2,0xda,0xae,0xb,0xad,0x1f,0x97,0xc1,0x19,0x23,0x30,0x80,0x18,0x52,0x5d,0x82,0x4c,0x57,0xdb,0x6a,0xc0,0xa9,0xf4,0xa4,0x24,0x8f,0x5f,0x69,0xd2,0xfa,0x7b,0x7a,0x47,0x22,0xc6,0x53,0x1,0x45,0xcb,0xb1,0x9e,0xa2,0x93,0x63,0xc2,0xf,0xd6,0xa1,0xdc,0x54,0xc8,0xb9,0x94,0xe0,0xf8,0x8e,0x55,0x15,0x5,0x40,0x9f,0x1b,0x89,0xe,0x5e,0x7d,0xd4,0x2c,0xe6,0x36,0x1c,0xca,0xe4,0xd5,0xb8,0xff,0x0,0xac,0x2a,0xcf,0x50,0x98,0x5a,0x29,0x7c,0x26,0x86,0x1d,0x68,0xaa,0x84,0x72,0xb2,0x3d,0xec,0xa5,0xa7,0x4,0xea,0x59,0x35,0x92,0x38,0x9e,0x71,0x5e,0x37,0x29,0xc8,0xac,0x1,0x9f,0x46,0xe4,0x44,0xc9,0xf0,0x48,0x6c,0xab,0x24,0x2,0xb8,0x2e,0xd3,0x22,0x43,0xa8,0x51,0x7c,0x2f,0xdb,0x81,0x67,0xdf,0x60,0x3,0x58,0x32,0xaf,0x3c,0x3a,0x94,0xa9,0x4a,0xb5,0xf1,0xdd,0xf9,0x8b,0x88,0x33,0xe9,0x76,0x8d,0xf5,0x25,0x91,0x4e,0x49,0x84,0x3e,0xc1,0xe3,0xd4,0xce,0xa,0xa1,0xd2,0x9a,0x0,0xd9,0xb6,0x86,0xf,0x52,0xee,0xfd,0xc,0x4f,0xb9,0xb2,0x85,0x14,0x26,0xda,0x8,0x5,0x35,0xc0,0x9,0xb7,0xa5,0xcb,0x61,0x80,0x19,0xb,0x6e,0xfc,0xf2,0x78,0x1c,0x92,0x62,0x8c,0xc6,0x56,0xae,0xde,0x98,0xbc,0x6f,0x57,0x5a,0x42,0x7a,0x66,0xd0,0xb3,0xe7,0xf7,0x5d,0x4c,0x1f,0x54,0x8e,0x97,0x87,0xad,0x7b,0x10,0xfb,0x4d,0x83,0xcf,0x23,0x17,0x4,0x68,0xbd,0x65,0x11,0xb4,0x12,0xa0,0x41,0x34,0x5c,0xf6,0x2a,0x73,0xd8,0xcc,0xf4,0xca,0xd1,0x90,0xfe,0x50,0xc7,0x72,0x4b,0x1b,0x9b,0x30,0xe0,0xd6,0x6d,0x45,0xc4,0xc5,0xf8,0x9d,0x79,0xec,0xbe,0xfa,0x28,0x7e,0xa6,0x9c,0x8f,0x3f,0xa7,0xed,0xe2,0x3d,0xf3,0xe8,0x64,0xd5,0x7f,0x16,0x47,0x31,0xea,0xaa,0xba,0xff,0x20,0xa4,0x36,0xb1,0xe1,0xc2,0x6b,0x93,0x59,0x89,0x74,0xe,0x21,0x1d,0x2c,0xdc,0x7d,0xb0,0x69,0x1e,0x63,0xeb,0x77,0x6,0x2b,0x5f,0x39,0xa2,0xd7,0x15,0x3b,0xcd,0xd,0x82,0x53,0x1a,0x18,0xbb,0x55,0xe6,0x8a,0x2d,0xa3,0x75,0x5b,0x6a,0x7,0x40,0xbf,0x13,0x95,0x70,0xef,0x27,0xe5,0x96,0xc3,0x99,0x99,0xb4,0x4d,0xa6,0x82,0x64,0x3e,0xca,0xe7,0xc1,0x4e,0x89,0xc7,0x36,0xcb,0x5d,0x1,0xa3,0x7a,0xe4,0xad,0x15,0x2c,0xa1,0xbb,0x94,0x7b,0xdd,0x49,0x2d,0xcc,0xd2,0xdb,0x61,0xac,0xab,0x2b,0x31,0x6,0x24,0x93,0xc,0xd6,0x6d,0x74,0xc0,0x10,0x68,0x50,0xaf,0x4c,0x71,0x6e,0x1c,0x38,0x14,0xbd,0xe6,0x85,0x3a,0xdf,0xd9,0x4a,0xd7,0x2e,0x40,0x52,0xec,0xee,0xfc,0x65,0x84,0x3f,0xc3,0xf1,0x60,0x25,0xd0,0xe0,0xed,0x18,0xb,0xb7,0xea,0x57,0x5c,0xaa,0xe9,0x7f,0x37,0x44,0xef,0x63,0x53,0x3c,0xe5,0xb1,0xfa,0xa9,0xb8,0x48,0x62,0x72,0x6b,0x83,0x9f,0xa7,0xbf,0x12,0x2,0x56,0x35,0x3b,0x4b,0xb3,0x23,0xb2,0x8a,0x59,0x7d,0x9d,0x17,0x19,0x8b,0x69,0x87,0x77,0xf9,0x75,0x34,0x2f,0x11,0x97,0x22,0xb5,0x1b,0x13,0xb9,0xd1,0xa4,0x29,0x3d,0x96,0xcf,0x80,0x58,0x8d,0xe1,0x45,0xf7,0x51,0xf4,0xa8,0x1e,0xf5,0x9e,0xf2,0xc6,0x2a,0x66,0xd,0x16,0xd8,0x7,0xf3,0x9a,0x30,0x81,0x79,0x43,0x9b,0xcd,0x8,0x42,0xda,0x6a,0x78,0x1d,0x20,0x21,0x1f,0x5b,0x9,0x9c,0xd5,0x7e,0xfe,0xae,0xa0,0x88,0x33,0x5,0xe,0x86,0xfb,0x8c,0xba,0xce,0xe3,0x92,0xf8,0xc4,0xeb,0x91,0x55,0x98,0x39,0xc9,0x27,0x4,0x54,0xd3,0x6c,0xbc,0x76,0x8e,0x4f,0xf,0xd4,0xa2,0x41,0xc5,0x1a,0x5f,0xc2,0xa,0x95,0x70,0x7c,0x26,0x73,0x0,0x8f,0xbe,0x90,0x46,0xf6,0x5a,0xa5,0xe2,0x5e,0xfd,0xff,0xb6,0xc8,0x6f,0x3,0xb0,0xf0,0x32,0x47,0xdc,0x67,0xe8,0x28,0xde,0xe9,0xef,0xe7,0x7a,0xd6,0x8d,0xa,0xb5,0x2c,0x5e,0x24,0x8,0x9f,0x60,0x41,0x7c,0xf0,0x44,0x58,0x20,0x3c,0xa3,0x5d,0xe6,0x1,0x1b,0x14,0x36,0x51,0xeb,0x9b,0x9c,0x1d,0x79,0xe2,0xfc,0xa4,0x8b,0xed,0x4b,0x25,0x9d,0x91,0x1c,0x93,0x31,0xd4,0x4a,0x6,0xf7,0x6d,0xfb,0xf1,0xd7,0xb9,0x7e,0x54,0xb2,0xfa,0xe,0x84,0xa9,0x96,0x7d,0xb7,0x59,0xc9,0x47,0x27,0xad,0xbb,0x29,0xba,0x82,0x4d,0x69,0x7b,0xb,0x13,0x83,0x32,0x22,0x5,0x66,0xaf,0xb3,0x8f,0x97,0x52,0x78,0x5b,0x42,0xca,0x81,0x88,0x99,0x63,0x53,0xd5,0xc,0x7,0x4f,0xdf,0x74,0x6c,0x67,0xd9,0x9a,0x3b,0x28,0xda,0x87,0xe0,0x15,0xdd,0xd0,0xf3,0xf,0x50,0xc1,0xcc,0xde,0xb4,0x55,0x70,0x1e,0xdc,0x62,0xb8,0x90,0x35,0x3,0x4e,0xe5,0x9e,0xce,0x6b,0x2f,0xac,0x39,0x2d,0x48,0x11,0x10,0x72,0x38,0x5a,0xea,0x73,0x49,0xfd,0xab,0xaa,0xc3,0xb1,0x0,0x26,0x3d,0x37,0xe8,0xf6,0xc2,0x56,0x1a,0x2e,0x98,0xae,0xc5,0xc7,0x75,0xc4,0x61,0x68,0xb0,0xd1,0xbd,0xd,0x19,0xff,0xa6,0x89,0x23,0x94,0xe1,0x12,0xa7,0x2b,0x85,0x4,0x45,0x21,0x1f,0xd8,0x57,0xee,0x18,0x2,0xc0,0xec,0x77,0x5f,0xf8,0x80,0x33,0xcd,0x6e,0x86,0xcf,0x6a,0xc6,0xd2,0x95,0x8e,0xbf,0x76,0xa0,0x16,0x4c,0x30,0x43,0x3a,0xf2,0x40,0xa5,0xf5,0x71,0x6f,0x2a,0x3f,0x7f,0x92,0xe4,0x8c,0x5c,0xbe,0x46,0x34,0x17,0xe3,0x64,0xa8,0x65,0xf9,0x9,0xf4,0xc8,0xa1,0xdb,0xfe,0x8a,0xa2,0xd3,0xb6,0x3e,0xbc,0xcb,0xc3,0x4,0x8b,0xad,0x17,0x81,0x7c,0x8d,0xec,0x7,0xfe,0xd3,0x80,0x74,0x2e,0xc8,0x97,0x31,0xde,0xf1,0x98,0x86,0x67,0x3,0xae,0x30,0xe9,0x4b,0xeb,0x66,0x5f,0xe7,0x27,0x9c,0x46,0xd9,0x22,0x5a,0x8a,0x3e,0xe1,0xe6,0x2b,0x91,0x6e,0x4c,0x7b,0x61,0x70,0xcf,0xac,0xf7,0x9d,0x0,0x93,0x95,0x3b,0x6,0xe5,0x1a,0x5e,0x72,0x56,0x24,0x2a,0xbb,0x89,0x75,0xa7,0xaa,0x9a,0x6f,0xa6,0x18,0xa,0x64,0xce,0x2f,0xb6,0xa4,0xa5,0xe,0x7d,0x35,0xaf,0x76,0x19,0x29,0xa0,0xfd,0x41,0x52,0xa3,0xe0,0x16,0x1d,0xf5,0xed,0xd5,0xc9,0x7f,0x1c,0x48,0x58,0xf2,0xe3,0xb0,0xfb,0x21,0x38,0x28,0x2,0xc1,0x53,0x5d,0xd7,0xb3,0x3d,0xcd,0x23,0x69,0xf9,0x1,0x71,0x37,0x13,0xc0,0xf8,0xee,0x9b,0xf3,0x59,0x85,0xdc,0x77,0x63,0x5b,0x65,0x7e,0x3f,0x51,0xff,0x68,0xdd,0xd4,0xbf,0x54,0xe2,0x2c,0x60,0x8c,0xb8,0xab,0xc7,0x12,0xca,0xbe,0x1b,0xbd,0xf,0x87,0xd1,0x9,0x33,0x20,0x90,0x8,0x42,0x4d,0x92,0x5c,0x47,0xcb,0x7a,0xd0,0xb9,0xe4,0xb4,0x34,0x9f,0x4f,0x79,0xc2,0xea,0x6b,0x6a,0x57,0x32,0xd6,0x43,0x11,0x55,0xdb,0xa1,0x8e,0xb2,0x83,0x73,0xd2,0x1f,0xc6,0xb1,0xcc,0x44,0xd8,0xa9,0x84,0xf0,0xe8,0x9e,0x45,0x5,0x15,0x50,0x8f,0xb,0x99,0x1e,0x4e,0x6d,0xc4,0x3c,0xf6,0x26,0xc,0xda,0xf4,0xc5,0xa8,0xef,0x10,0xbc,0x3a,0xdf,0x40,0x88,0x4a,0x39,0x6c,0x36,0x96,0xd,0x78,0xba,0x94,0x62,0xa2,0x2d,0xfc,0xb5,0xb7,0x14,0xfa,0x49,0x25,0x82,0x59,0xff,0x10,0x3f,0x56,0x48,0xa9,0xcd,0x60,0xfe,0x27,0x85,0x25,0xa8,0x91,0x29,0xd,0xca,0x45,0x63,0xd9,0x4f,0xb2,0x43,0x22,0xc9,0x30,0x1d,0x4e,0xba,0xe0,0x6,0xbe,0x1,0x62,0x39,0x53,0xce,0x5d,0x5b,0xf5,0xc8,0x2b,0xd4,0x90,0xbc,0x98,0xea,0xe9,0x52,0x88,0x17,0xec,0x94,0x44,0xf0,0x2f,0x28,0xe5,0x5f,0xa0,0x82,0xb5,0xaf,0x6b,0xc0,0xb3,0xfb,0x61,0xb8,0xd7,0xe7,0x6e,0x33,0x8f,0x9c,0x6d,0x2e,0xd8,0xd3,0xe4,0x75,0x47,0xbb,0x69,0x64,0x54,0xa1,0x68,0xd6,0xc4,0xaa,0x0,0xe1,0x78,0x6a,0xf,0x9d,0x93,0x19,0x7d,0xf3,0x3,0xed,0xa7,0x37,0xcf,0xbf,0xf9,0xdd,0xe,0x36,0x3b,0x23,0x1b,0x7,0xb1,0xd2,0x86,0x96,0x3c,0x2d,0x7e,0x35,0xef,0xf6,0xe6,0xcc,0x1a,0x71,0x9a,0x2c,0xe2,0xae,0x42,0x76,0x65,0x9,0xdc,0x4,0x70,0xd5,0x73,0xc1,0x20,0x55,0x3d,0x97,0x4b,0x12,0xb9,0xad,0x95,0xab,0xb0,0xf1,0x9f,0x31,0xa6,0x13,0x2a,0x7a,0xfa,0x51,0x81,0xb7,0xc,0x24,0xa5,0xa4,0x99,0xfc,0x18,0x8d,0xdf,0x9b,0x49,0x1f,0xc7,0xfd,0xee,0x5e,0xc6,0x8c,0x83,0x5c,0x92,0x89,0x5,0xb4,0x1e,0x77,0x26,0x50,0x8b,0xcb,0xdb,0x9e,0x41,0xc5,0x57,0xd0,0x80,0xa3,0xa,0xf2,0x38,0xe8,0x15,0x6f,0x40,0x7c,0x4d,0xbd,0x1c,0xd1,0x8,0x7f,0x2,0x8a,0x16,0x67,0x4a,0x3e,0x58,0xc3,0xb6,0x74,0x5a,0xac,0x6c,0xe3,0x32,0x7b,0x79,0xda,0x34,0x87,0xeb,0x4c,0xc2,0x14,0x3a,0xb,0x66,0x21,0xde,0x72,0xf4,0x11,0x8e,0x46,0x84,0xf7,0xa2,0xf8,0x81,0xac,0x55,0xbe,0x9a,0x7c,0x26,0xd2,0xff,0xd9,0x56,0x91,0xdf,0x2e,0xd3,0x45,0x19,0xbb,0x62,0xfc,0xb5,0xd,0x34,0xb9,0xa3,0x8c,0x63,0xc5,0x51,0x35,0xd4,0xca,0xc3,0x79,0xb4,0xb3,0x33,0x29,0x1e,0x3c,0x8b,0x14,0xce,0x75,0x6c,0xd8,0x8,0x70,0x48,0xb7,0x54,0x69,0x76,0x4,0x20,0xc,0xa5,0xfe,0x9d,0x22,0xc7,0xc1,0x52,0xcf,0x36,0x58,0x4a,0xf4,0xf6,0xe4,0x7d,0x9c,0x27,0xdb,0xe9,0x78,0x3d,0xc8,0xf8,0xf5,0x0,0x13,0xaf,0xf2,0x4f,0x44,0xb2,0xf1,0x67,0x2f,0x5c,0xf7,0x7b,0x4b,0x24,0xfd,0xa9,0xe2,0xb1,0xa0,0x50,0x7a,0x6a,0x73,0x9b,0x87,0xbf,0xa7,0xa,0x1a,0x4e,0x2d,0x23,0x53,0xab,0x3b,0xaa,0x92,0x41,0x65,0x85,0xf,0x1,0x93,0x71,0x9f,0x6f,0xe1,0x6d,0x2c,0x37,0x9,0x8f,0x3a,0xad,0x3,0xb,0xa1,0xc9,0xbc,0x31,0x25,0x8e,0xd7,0x98,0x40,0x95,0xf9,0x5d,0xef,0x49,0xec,0xb0,0x6,0xed,0x86,0xea,0xde,0x32,0x7e,0x15,0xe,0xc0,0x1f,0xeb,0x82,0x28,0x99,0x61,0x5b,0x83,0xd5,0x10,0x5a,0xc2,0x72,0x60,0x5,0x38,0x39,0x7,0x43,0x11,0x84,0xcd,0x66,0xe6,0xb6,0xb8,0x90,0x2b,0x1d,0x16,0x9e,0xe3,0x94,0xa2,0xd6,0xfb,0x8a,0xe0,0xdc,0xf3,0x89,0x4d,0x80,0x21,0xd1,0x3f,0x1c,0x4c,0xcb,0x74,0xa4,0x6e,0x96,0x57,0x17,0xcc,0xba,0x59,0xdd,0x2,0x47,0xda,0x12,0x8d,0x68,0x64,0x3e,0x6b,0x18,0x97,0xa6,0x88,0x5e,0xee,0x42,0xbd,0xfa,0x46,0xe5,0xe7,0xae,0xd0,0x77,0x1b,0xa8,0xe8,0x2a,0x5f,0xc4,0x7f,0xf0,0x30,0xc6,0x2e,0x28,0x20,0xbd,0x11,0x4a,0xcd,0x72,0xeb,0x99,0xe3,0xcf,0x58,0xa7,0x86,0xbb,0x37,0x83,0x9f,0xe7,0xfb,0x64,0x9a,0x21,0xc6,0xdc,0xd3,0xf1,0x96,0x2c,0x5c,0x5b,0xda,0xbe,0x25,0x3b,0x63,0x4c,0x2a,0x8c,0xe2,0x5a,0x56,0xdb,0x54,0xf6,0x13,0x8d,0xc1,0x30,0xaa,0x3c,0x36,0x10,0x7e,0xb9,0x93,0x75,0x3d,0xc9,0x43,0x6e,0x51,0xba,0x70,0x9e,0xe,0x80,0xe0,0x6a,0x7c,0xee,0x7d,0x45,0x8a,0xae,0xbc,0xcc,0xd4,0x44,0xf5,0xe5,0xc2,0xa1,0x68,0x74,0x48,0x50,0x95,0xbf,0x9c,0x85,0xd,0x46,0x4f,0x5e,0xa4,0x94,0x12,0xcb,0xc0,0x88,0x18,0xb3,0xab,0xa0,0x1e,0x5d,0xfc,0xef,0x1d,0x40,0x27,0xd2,0x1a,0x17,0x34,0xc8,0x97,0x6,0xb,0x19,0x73,0x92,0xb7,0xd9,0x1b,0xa5,0x7f,0x57,0xf2,0xc4,0x89,0x22,0x59,0x9,0xac,0xe8,0x6b,0xfe,0xea,0x8f,0xd6,0xd7,0xb5,0xff,0x9d,0x2d,0xb4,0x8e,0x3a,0x6c,0x6d,0x4,0x76,0xc7,0xe1,0xfa,0xf0,0x2f,0x31,0x5,0x91,0xdd,0xe9,0x5f,0x69,0x2,0x0,0xb2,0x3,0xa6,0xaf,0x77,0x16,0x7a,0xca,0xde,0x38,0x61,0x4e,0xe4,0x53,0x26,0xd5,0x60,0xec,0x42,0xc3,0x82,0xe6,0xd8,0x1f,0x90,0x29,0xdf,0xc5,0x7,0x2b,0xb0,0x98,0x3f,0x47,0xf4,0xa,0xa9,0x41,0x8,0xad,0x1,0x15,0x52,0x49,0x78,0xb1,0x67,0xd1,0x8b,0xf7,0x84,0xfd,0x35,0x87,0x62,0x32,0xb6,0xa8,0xed,0xf8,0xb8,0x55,0x23,0x4b,0x9b,0x79,0x81,0xf3,0xd0,0x24,0xa3,0x6f,0xa2,0x3e,0xce,0x33,0xf,0x66,0x1c,0x39,0x4d,0x65,0x14,0x71,0xf9,0x7b,0xc,0xf3,0x34,0xbb,0x9d,0x27,0xb1,0x4c,0xbd,0xdc,0x37,0xce,0xe3,0xb0,0x44,0x1e,0xf8,0xa7,0x1,0xee,0xc1,0xa8,0xb6,0x57,0x33,0x9e,0x0,0xd9,0x7b,0xdb,0x56,0x6f,0xd7,0x17,0xac,0x76,0xe9,0x12,0x6a,0xba,0xe,0xd1,0xd6,0x1b,0xa1,0x5e,0x7c,0x4b,0x51,0x40,0xff,0x9c,0xc7,0xad,0x30,0xa3,0xa5,0xb,0x36,0xd5,0x2a,0x6e,0x42,0x66,0x14,0x1a,0x8b,0xb9,0x45,0x97,0x9a,0xaa,0x5f,0x96,0x28,0x3a,0x54,0xfe,0x1f,0x86,0x94,0x95,0x3e,0x4d,0x5,0x9f,0x46,0x29,0x19,0x90,0xcd,0x71,0x62,0x93,0xd0,0x26,0x2d,0xc5,0xdd,0xe5,0xf9,0x4f,0x2c,0x78,0x68,0xc2,0xd3,0x80,0xcb,0x11,0x8,0x18,0x32,0xf1,0x63,0x6d,0xe7,0x83,0xd,0xfd,0x13,0x59,0xc9,0x31,0x41,0x7,0x23,0xf0,0xc8,0xde,0xab,0xc3,0x69,0xb5,0xec,0x47,0x53,0x6b,0x55,0x4e,0xf,0x61,0xcf,0x58,0xed,0xe4,0x8f,0x64,0xd2,0x1c,0x50,0xbc,0x88,0x9b,0xf7,0x22,0xfa,0x8e,0x2b,0x8d,0x3f,0xb7,0xe1,0x39,0x3,0x10,0xa0,0x38,0x72,0x7d,0xa2,0x6c,0x77,0xfb,0x4a,0xe0,0x89,0xd4,0x84,0x4,0xaf,0x7f,0x49,0xf2,0xda,0x5b,0x5a,0x67,0x2,0xe6,0x73,0x21,0x65,0xeb,0x91,0xbe,0x82,0xb3,0x43,0xe2,0x2f,0xf6,0x81,0xfc,0x74,0xe8,0x99,0xb4,0xc0,0xd8,0xae,0x75,0x35,0x25,0x60,0xbf,0x3b,0xa9,0x2e,0x7e,0x5d,0xf4,0xc,0xc6,0x16,0x3c,0xea,0xc4,0xf5,0x98,0xdf,0x20,0x8c,0xa,0xef,0x70,0xb8,0x7a,0x9,0x5c,0x6,0xa6,0x3d,0x48,0x8a,0xa4,0x52,0x92,0x1d,0xcc,0x85,0x87,0x24,0xca,0x79,0x15,0xb2,0xc8,0x6e,0x81,0xae,0xc7,0xd9,0x38,0x5c,0xf1,0x6f,0xb6,0x14,0xb4,0x39,0x0,0xb8,0x9c,0x5b,0xd4,0xf2,0x48,0xde,0x23,0xd2,0xb3,0x58,0xa1,0x8c,0xdf,0x2b,0x71,0x97,0x2f,0x90,0xf3,0xa8,0xc2,0x5f,0xcc,0xca,0x64,0x59,0xba,0x45,0x1,0x2d,0x9,0x7b,0x78,0xc3,0x19,0x86,0x7d,0x5,0xd5,0x61,0xbe,0xb9,0x74,0xce,0x31,0x13,0x24,0x3e,0xfa,0x51,0x22,0x6a,0xf0,0x29,0x46,0x76,0xff,0xa2,0x1e,0xd,0xfc,0xbf,0x49,0x42,0x75,0xe4,0xd6,0x2a,0xf8,0xf5,0xc5,0x30,0xf9,0x47,0x55,0x3b,0x91,0x70,0xe9,0xfb,0x9e,0xc,0x2,0x88,0xec,0x62,0x92,0x7c,0x36,0xa6,0x5e,0x2e,0x68,0x4c,0x9f,0xa7,0xaa,0xb2,0x8a,0x96,0x20,0x43,0x17,0x7,0xad,0xbc,0xef,0xa4,0x7e,0x67,0x77,0x5d,0x8b,0xe0,0xb,0xbd,0x73,0x3f,0xd3,0xe7,0xf4,0x98,0x4d,0x95,0xe1,0x44,0xe2,0x50,0xb1,0xc4,0xac,0x6,0xda,0x83,0x28,0x3c,0x4,0x3a,0x21,0x60,0xe,0xa0,0x37,0x82,0xbb,0xeb,0x6b,0xc0,0x10,0x26,0x9d,0xb5,0x34,0x35,0x8,0x6d,0x89,0x1c,0x4e,0xa,0xd8,0x8e,0x56,0x6c,0x7f,0xcf,0x57,0x1d,0x12,0xcd,0x3,0x18,0x94,0x25,0x8f,0xe6,0xb7,0xc1,0x1a,0x5a,0x4a,0xf,0xd0,0x54,0xc6,0x41,0x11,0x32,0x9b,0x63,0xa9,0x79,0x84,0xfe,0xd1,0xed,0xdc,0x2c,0x8d,0x40,0x99,0xee,0x93,0x1b,0x87,0xf6,0xdb,0xaf,0xc9,0x52,0x27,0xe5,0xcb,0x3d,0xfd,0x72,0xa3,0xea,0xe8,0x4b,0xa5,0x16,0x7a,0xdd,0x53,0x85,0xab,0x9a,0xf7,0xb0,0x4f,0xe3,0x65,0x80,0x1f,0xd7,0x15,0x66,0x33,0x69,0x2d,0x0,0xf9,0x12,0x36,0xd0,0x8a,0x7e,0x53,0x75,0xfa,0x3d,0x73,0x82,0x7f,0xe9,0xb5,0x17,0xce,0x50,0x19,0xa1,0x98,0x15,0xf,0x20,0xcf,0x69,0xfd,0x99,0x78,0x66,0x6f,0xd5,0x18,0x1f,0x9f,0x85,0xb2,0x90,0x27,0xb8,0x62,0xd9,0xc0,0x74,0xa4,0xdc,0xe4,0x1b,0xf8,0xc5,0xda,0xa8,0x8c,0xa0,0x9,0x52,0x31,0x8e,0x6b,0x6d,0xfe,0x63,0x9a,0xf4,0xe6,0x58,0x5a,0x48,0xd1,0x30,0x8b,0x77,0x45,0xd4,0x91,0x64,0x54,0x59,0xac,0xbf,0x3,0x5e,0xe3,0xe8,0x1e,0x5d,0xcb,0x83,0xf0,0x5b,0xd7,0xe7,0x88,0x51,0x5,0x4e,0x1d,0xc,0xfc,0xd6,0xc6,0xdf,0x37,0x2b,0x13,0xb,0xa6,0xb6,0xe2,0x81,0x8f,0xff,0x7,0x97,0x6,0x3e,0xed,0xc9,0x29,0xa3,0xad,0x3f,0xdd,0x33,0xc3,0x4d,0xc1,0x80,0x9b,0xa5,0x23,0x96,0x1,0xaf,0xa7,0xd,0x65,0x10,0x9d,0x89,0x22,0x7b,0x34,0xec,0x39,0x55,0xf1,0x43,0xe5,0x40,0x1c,0xaa,0x41,0x2a,0x46,0x72,0x9e,0xd2,0xb9,0xa2,0x6c,0xb3,0x47,0x2e,0x84,0x35,0xcd,0xf7,0x2f,0x79,0xbc,0xf6,0x6e,0xde,0xcc,0xa9,0x94,0x95,0xab,0xef,0xbd,0x28,0x61,0xca,0x4a,0x1a,0x14,0x3c,0x87,0xb1,0xba,0x32,0x4f,0x38,0xe,0x7a,0x57,0x26,0x4c,0x70,0x5f,0x25,0xe1,0x2c,0x8d,0x7d,0x93,0xb0,0xe0,0x67,0xd8,0x8,0xc2,0x3a,0xfb,0xbb,0x60,0x16,0xf5,0x71,0xae,0xeb,0x76,0xbe,0x21,0xc4,0xc8,0x92,0xc7,0xb4,0x3b,0xa,0x24,0xf2,0x42,0xee,0x11,0x56,0xea,0x49,0x4b,0x2,0x7c,0xdb,0xb7,0x4,0x44,0x86,0xf3,0x68,0xd3,0x5c,0x9c,0x6a,0x43,0x45,0x4d,0xd0,0x7c,0x27,0xa0,0x1f,0x86,0xf4,0x8e,0xa2,0x35,0xca,0xeb,0xd6,0x5a,0xee,0xf2,0x8a,0x96,0x9,0xf7,0x4c,0xab,0xb1,0xbe,0x9c,0xfb,0x41,0x31,0x36,0xb7,0xd3,0x48,0x56,0xe,0x21,0x47,0xe1,0x8f,0x37,0x3b,0xb6,0x39,0x9b,0x7e,0xe0,0xac,0x5d,0xc7,0x51,0x5b,0x7d,0x13,0xd4,0xfe,0x18,0x50,0xa4,0x2e,0x3,0x3c,0xd7,0x1d,0xf3,0x63,0xed,0x8d,0x7,0x11,0x83,0x10,0x28,0xe7,0xc3,0xd1,0xa1,0xb9,0x29,0x98,0x88,0xaf,0xcc,0x5,0x19,0x25,0x3d,0xf8,0xd2,0xf1,0xe8,0x60,0x2b,0x22,0x33,0xc9,0xf9,0x7f,0xa6,0xad,0xe5,0x75,0xde,0xc6,0xcd,0x73,0x30,0x91,0x82,0x70,0x2d,0x4a,0xbf,0x77,0x7a,0x59,0xa5,0xfa,0x6b,0x66,0x74,0x1e,0xff,0xda,0xb4,0x76,0xc8,0x12,0x3a,0x9f,0xa9,0xe4,0x4f,0x34,0x64,0xc1,0x85,0x6,0x93,0x87,0xe2,0xbb,0xba,0xd8,0x92,0xf0,0x40,0xd9,0xe3,0x57,0x1,0x0,0x69,0x1b,0xaa,0x8c,0x97,0x9d,0x42,0x5c,0x68,0xfc,0xb0,0x84,0x32,0x4,0x6f,0x6d,0xdf,0x6e,0xcb,0xc2,0x1a,0x7b,0x17,0xa7,0xb3,0x55,0xc,0x23,0x89,0x3e,0x4b,0xb8,0xd,0x81,0x2f,0xae,0xef,0x8b,0xb5,0x72,0xfd,0x44,0xb2,0xa8,0x6a,0x46,0xdd,0xf5,0x52,0x2a,0x99,0x67,0xc4,0x2c,0x65,0xc0,0x6c,0x78,0x3f,0x24,0x15,0xdc,0xa,0xbc,0xe6,0x9a,0xe9,0x90,0x58,0xea,0xf,0x5f,0xdb,0xc5,0x80,0x95,0xd5,0x38,0x4e,0x26,0xf6,0x14,0xec,0x9e,0xbd,0x49,0xce,0x2,0xcf,0x53,0xa3,0x5e,0x62,0xb,0x71,0x54,0x20,0x8,0x79,0x1c,0x94,0x16,0x61,0xc4,0x3,0x8c,0xaa,0x10,0x86,0x7b,0x8a,0xeb,0x0,0xf9,0xd4,0x87,0x73,0x29,0xcf,0x90,0x36,0xd9,0xf6,0x9f,0x81,0x60,0x4,0xa9,0x37,0xee,0x4c,0xec,0x61,0x58,0xe0,0x20,0x9b,0x41,0xde,0x25,0x5d,0x8d,0x39,0xe6,0xe1,0x2c,0x96,0x69,0x4b,0x7c,0x66,0x77,0xc8,0xab,0xf0,0x9a,0x7,0x94,0x92,0x3c,0x1,0xe2,0x1d,0x59,0x75,0x51,0x23,0x2d,0xbc,0x8e,0x72,0xa0,0xad,0x9d,0x68,0xa1,0x1f,0xd,0x63,0xc9,0x28,0xb1,0xa3,0xa2,0x9,0x7a,0x32,0xa8,0x71,0x1e,0x2e,0xa7,0xfa,0x46,0x55,0xa4,0xe7,0x11,0x1a,0xf2,0xea,0xd2,0xce,0x78,0x1b,0x4f,0x5f,0xf5,0xe4,0xb7,0xfc,0x26,0x3f,0x2f,0x5,0xc6,0x54,0x5a,0xd0,0xb4,0x3a,0xca,0x24,0x6e,0xfe,0x6,0x76,0x30,0x14,0xc7,0xff,0xe9,0x9c,0xf4,0x5e,0x82,0xdb,0x70,0x64,0x5c,0x62,0x79,0x38,0x56,0xf8,0x6f,0xda,0xd3,0xb8,0x53,0xe5,0x2b,0x67,0x8b,0xbf,0xac,0xc0,0x15,0xcd,0xb9,0x1c,0xba,0x8,0x80,0xd6,0xe,0x34,0x27,0x97,0xf,0x45,0x4a,0x95,0x5b,0x40,0xcc,0x7d,0xd7,0xbe,0xe3,0xb3,0x33,0x98,0x48,0x7e,0xc5,0xed,0x6c,0x6d,0x50,0x35,0xd1,0x44,0x16,0x52,0xdc,0xa6,0x89,0xb5,0x84,0x74,0xd5,0x18,0xc1,0xb6,0xcb,0x43,0xdf,0xae,0x83,0xf7,0xef,0x99,0x42,0x2,0x12,0x57,0x88,0xc,0x9e,0x19,0x49,0x6a,0xc3,0x3b,0xf1,0x21,0xb,0xdd,0xf3,0xc2,0xaf,0xe8,0x17,0xbb,0x3d,0xd8,0x47,0x8f,0x4d,0x3e,0x6b,0x31,0x91,0xa,0x7f,0xbd,0x93,0x65,0xa5,0x2a,0xfb,0xb2,0xb0,0x13,0xfd,0x4e,0x22,0x85,0x45,0xe3,0xc,0x23,0x4a,0x54,0xb5,0xd1,0x7c,0xe2,0x3b,0x99,0x39,0xb4,0x8d,0x35,0x11,0xd6,0x59,0x7f,0xc5,0x53,0xae,0x5f,0x3e,0xd5,0x2c,0x1,0x52,0xa6,0xfc,0x1a,0xa2,0x1d,0x7e,0x25,0x4f,0xd2,0x41,0x47,0xe9,0xd4,0x37,0xc8,0x8c,0xa0,0x84,0xf6,0xf5,0x4e,0x94,0xb,0xf0,0x88,0x58,0xec,0x33,0x34,0xf9,0x43,0xbc,0x9e,0xa9,0xb3,0x77,0xdc,0xaf,0xe7,0x7d,0xa4,0xcb,0xfb,0x72,0x2f,0x93,0x80,0x71,0x32,0xc4,0xcf,0xf8,0x69,0x5b,0xa7,0x75,0x78,0x48,0xbd,0x74,0xca,0xd8,0xb6,0x1c,0xfd,0x64,0x76,0x13,0x81,0x8f,0x5,0x61,0xef,0x1f,0xf1,0xbb,0x2b,0xd3,0xa3,0xe5,0xc1,0x12,0x2a,0x27,0x3f,0x7,0x1b,0xad,0xce,0x9a,0x8a,0x20,0x31,0x62,0x29,0xf3,0xea,0xfa,0xd0,0x6,0x6d,0x86,0x30,0xfe,0xb2,0x5e,0x6a,0x79,0x15,0xc0,0x18,0x6c,0xc9,0x6f,0xdd,0x3c,0x49,0x21,0x8b,0x57,0xe,0xa5,0xb1,0x89,0xb7,0xac,0xed,0x83,0x2d,0xba,0xf,0x36,0x66,0xe6,0x4d,0x9d,0xab,0x10,0x38,0xb9,0xb8,0x85,0xe0,0x4,0x91,0xc3,0x87,0x55,0x3,0xdb,0xe1,0xf2,0x42,0xda,0x90,0x9f,0x40,0x8e,0x95,0x19,0xa8,0x2,0x6b,0x3a,0x4c,0x97,0xd7,0xc7,0x82,0x5d,0xd9,0x4b,0xcc,0x9c,0xbf,0x16,0xee,0x24,0xf4,0x9,0x73,0x5c,0x60,0x51,0xa1,0x0,0xcd,0x14,0x63,0x1e,0x96,0xa,0x7b,0x56,0x22,0x44,0xdf,0xaa,0x68,0x46,0xb0,0x70,0xff,0x2e,0x67,0x65,0xc6,0x28,0x9b,0xf7,0x50,0xde,0x8,0x26,0x17,0x7a,0x3d,0xc2,0x6e,0xe8,0xd,0x92,0x5a,0x98,0xeb,0xbe,0xe4,0x93,0xbe,0x47,0xac,0x88,0x6e,0x34,0xc0,0xed,0xcb,0x44,0x83,0xcd,0x3c,0xc1,0x57,0xb,0xa9,0x70,0xee,0xa7,0x1f,0x26,0xab,0xb1,0x9e,0x71,0xd7,0x43,0x27,0xc6,0xd8,0xd1,0x6b,0xa6,0xa1,0x21,0x3b,0xc,0x2e,0x99,0x6,0xdc,0x67,0x7e,0xca,0x1a,0x62,0x5a,0xa5,0x46,0x7b,0x64,0x16,0x32,0x1e,0xb7,0xec,0x8f,0x30,0xd5,0xd3,0x40,0xdd,0x24,0x4a,0x58,0xe6,0xe4,0xf6,0x6f,0x8e,0x35,0xc9,0xfb,0x6a,0x2f,0xda,0xea,0xe7,0x12,0x1,0xbd,0xe0,0x5d,0x56,0xa0,0xe3,0x75,0x3d,0x4e,0xe5,0x69,0x59,0x36,0xef,0xbb,0xf0,0xa3,0xb2,0x42,0x68,0x78,0x61,0x89,0x95,0xad,0xb5,0x18,0x8,0x5c,0x3f,0x31,0x41,0xb9,0x29,0xb8,0x80,0x53,0x77,0x97,0x1d,0x13,0x81,0x63,0x8d,0x7d,0xf3,0x7f,0x3e,0x25,0x1b,0x9d,0x28,0xbf,0x11,0x19,0xb3,0xdb,0xae,0x23,0x37,0x9c,0xc5,0x8a,0x52,0x87,0xeb,0x4f,0xfd,0x5b,0xfe,0xa2,0x14,0xff,0x94,0xf8,0xcc,0x20,0x6c,0x7,0x1c,0xd2,0xd,0xf9,0x90,0x3a,0x8b,0x73,0x49,0x91,0xc7,0x2,0x48,0xd0,0x60,0x72,0x17,0x2a,0x2b,0x15,0x51,0x3,0x96,0xdf,0x74,0xf4,0xa4,0xaa,0x82,0x39,0xf,0x4,0x8c,0xf1,0x86,0xb0,0xc4,0xe9,0x98,0xf2,0xce,0xe1,0x9b,0x5f,0x92,0x33,0xc3,0x2d,0xe,0x5e,0xd9,0x66,0xb6,0x7c,0x84,0x45,0x5,0xde,0xa8,0x4b,0xcf,0x10,0x55,0xc8,0x0,0x9f,0x7a,0x76,0x2c,0x79,0xa,0x85,0xb4,0x9a,0x4c,0xfc,0x50,0xaf,0xe8,0x54,0xf7,0xf5,0xbc,0xc2,0x65,0x9,0xba,0xfa,0x38,0x4d,0xd6,0x6d,0xe2,0x22,0xd4,0x52,0x54,0x5c,0xc1,0x6d,0x36,0xb1,0xe,0x97,0xe5,0x9f,0xb3,0x24,0xdb,0xfa,0xc7,0x4b,0xff,0xe3,0x9b,0x87,0x18,0xe6,0x5d,0xba,0xa0,0xaf,0x8d,0xea,0x50,0x20,0x27,0xa6,0xc2,0x59,0x47,0x1f,0x30,0x56,0xf0,0x9e,0x26,0x2a,0xa7,0x28,0x8a,0x6f,0xf1,0xbd,0x4c,0xd6,0x40,0x4a,0x6c,0x2,0xc5,0xef,0x9,0x41,0xb5,0x3f,0x12,0x2d,0xc6,0xc,0xe2,0x72,0xfc,0x9c,0x16,0x0,0x92,0x1,0x39,0xf6,0xd2,0xc0,0xb0,0xa8,0x38,0x89,0x99,0xbe,0xdd,0x14,0x8,0x34,0x2c,0xe9,0xc3,0xe0,0xf9,0x71,0x3a,0x33,0x22,0xd8,0xe8,0x6e,0xb7,0xbc,0xf4,0x64,0xcf,0xd7,0xdc,0x62,0x21,0x80,0x93,0x61,0x3c,0x5b,0xae,0x66,0x6b,0x48,0xb4,0xeb,0x7a,0x77,0x65,0xf,0xee,0xcb,0xa5,0x67,0xd9,0x3,0x2b,0x8e,0xb8,0xf5,0x5e,0x25,0x75,0xd0,0x94,0x17,0x82,0x96,0xf3,0xaa,0xab,0xc9,0x83,0xe1,0x51,0xc8,0xf2,0x46,0x10,0x11,0x78,0xa,0xbb,0x9d,0x86,0x8c,0x53,0x4d,0x79,0xed,0xa1,0x95,0x23,0x15,0x7e,0x7c,0xce,0x7f,0xda,0xd3,0xb,0x6a,0x6,0xb6,0xa2,0x44,0x1d,0x32,0x98,0x2f,0x5a,0xa9,0x1c,0x90,0x3e,0xbf,0xfe,0x9a,0xa4,0x63,0xec,0x55,0xa3,0xb9,0x7b,0x57,0xcc,0xe4,0x43,0x3b,0x88,0x76,0xd5,0x3d,0x74,0xd1,0x7d,0x69,0x2e,0x35,0x4,0xcd,0x1b,0xad,0xf7,0x8b,0xf8,0x81,0x49,0xfb,0x1e,0x4e,0xca,0xd4,0x91,0x84,0xc4,0x29,0x5f,0x37,0xe7,0x5,0xfd,0x8f,0xac,0x58,0xdf,0x13,0xde,0x42,0xb2,0x4f,0x73,0x1a,0x60,0x45,0x31,0x19,0x68,0xd,0x85,0x7,0x70,0x76,0xb1,0x3e,0x18,0xa2,0x34,0xc9,0x38,0x59,0xb2,0x4b,0x66,0x35,0xc1,0x9b,0x7d,0x22,0x84,0x6b,0x44,0x2d,0x33,0xd2,0xb6,0x1b,0x85,0x5c,0xfe,0x5e,0xd3,0xea,0x52,0x92,0x29,0xf3,0x6c,0x97,0xef,0x3f,0x8b,0x54,0x53,0x9e,0x24,0xdb,0xf9,0xce,0xd4,0xc5,0x7a,0x19,0x42,0x28,0xb5,0x26,0x20,0x8e,0xb3,0x50,0xaf,0xeb,0xc7,0xe3,0x91,0x9f,0xe,0x3c,0xc0,0x12,0x1f,0x2f,0xda,0x13,0xad,0xbf,0xd1,0x7b,0x9a,0x3,0x11,0x10,0xbb,0xc8,0x80,0x1a,0xc3,0xac,0x9c,0x15,0x48,0xf4,0xe7,0x16,0x55,0xa3,0xa8,0x40,0x58,0x60,0x7c,0xca,0xa9,0xfd,0xed,0x47,0x56,0x5,0x4e,0x94,0x8d,0x9d,0xb7,0x74,0xe6,0xe8,0x62,0x6,0x88,0x78,0x96,0xdc,0x4c,0xb4,0xc4,0x82,0xa6,0x75,0x4d,0x5b,0x2e,0x46,0xec,0x30,0x69,0xc2,0xd6,0xee,0xd0,0xcb,0x8a,0xe4,0x4a,0xdd,0x68,0x61,0xa,0xe1,0x57,0x99,0xd5,0x39,0xd,0x1e,0x72,0xa7,0x7f,0xb,0xae,0x8,0xba,0x32,0x64,0xbc,0x86,0x95,0x25,0xbd,0xf7,0xf8,0x27,0xe9,0xf2,0x7e,0xcf,0x65,0xc,0x51,0x1,0x81,0x2a,0xfa,0xcc,0x77,0x5f,0xde,0xdf,0xe2,0x87,0x63,0xf6,0xa4,0xe0,0x6e,0x14,0x3b,0x7,0x36,0xc6,0x67,0xaa,0x73,0x4,0x79,0xf1,0x6d,0x1c,0x31,0x45,0x5d,0x2b,0xf0,0xb0,0xa0,0xe5,0x3a,0xbe,0x2c,0xab,0xfb,0xd8,0x71,0x89,0x43,0x93,0xb9,0x6f,0x41,0x70,0x1d,0x5a,0xa5,0x9,0x8f,0x6a,0xf5,0x3d,0xff,0x8c,0xd9,0x83,0x23,0xb8,0xcd,0xf,0x21,0xd7,0x17,0x98,0x49,0x0,0x2,0xa1,0x4f,0xfc,0x90,0x37,0x86,0x20,0xcf,0xe0,0x89,0x97,0x76,0x12,0xbf,0x21,0xf8,0x5a,0xfa,0x77,0x4e,0xf6,0xd2,0x15,0x9a,0xbc,0x6,0x90,0x6d,0x9c,0xfd,0x16,0xef,0xc2,0x91,0x65,0x3f,0xd9,0x61,0xde,0xbd,0xe6,0x8c,0x11,0x82,0x84,0x2a,0x17,0xf4,0xb,0x4f,0x63,0x47,0x35,0x36,0x8d,0x57,0xc8,0x33,0x4b,0x9b,0x2f,0xf0,0xf7,0x3a,0x80,0x7f,0x5d,0x6a,0x70,0xb4,0x1f,0x6c,0x24,0xbe,0x67,0x8,0x38,0xb1,0xec,0x50,0x43,0xb2,0xf1,0x7,0xc,0x3b,0xaa,0x98,0x64,0xb6,0xbb,0x8b,0x7e,0xb7,0x9,0x1b,0x75,0xdf,0x3e,0xa7,0xb5,0xd0,0x42,0x4c,0xc6,0xa2,0x2c,0xdc,0x32,0x78,0xe8,0x10,0x60,0x26,0x2,0xd1,0xe9,0xe4,0xfc,0xc4,0xd8,0x6e,0xd,0x59,0x49,0xe3,0xf2,0xa1,0xea,0x30,0x29,0x39,0x13,0xc5,0xae,0x45,0xf3,0x3d,0x71,0x9d,0xa9,0xba,0xd6,0x3,0xdb,0xaf,0xa,0xac,0x1e,0xff,0x8a,0xe2,0x48,0x94,0xcd,0x66,0x72,0x4a,0x74,0x6f,0x2e,0x40,0xee,0x79,0xcc,0xf5,0xa5,0x25,0x8e,0x5e,0x68,0xd3,0xfb,0x7a,0x7b,0x46,0x23,0xc7,0x52,0x0,0x44,0x96,0xc0,0x18,0x22,0x31,0x81,0x19,0x53,0x5c,0x83,0x4d,0x56,0xda,0x6b,0xc1,0xa8,0xf9,0x8f,0x54,0x14,0x4,0x41,0x9e,0x1a,0x88,0xf,0x5f,0x7c,0xd5,0x2d,0xe7,0x37,0xca,0xb0,0x9f,0xa3,0x92,0x62,0xc3,0xe,0xd7,0xa0,0xdd,0x55,0xc9,0xb8,0x95,0xe1,0x87,0x1c,0x69,0xab,0x85,0x73,0xb3,0x3c,0xed,0xa4,0xa6,0x5,0xeb,0x58,0x34,0x93,0x1d,0xcb,0xe5,0xd4,0xb9,0xfe,0x1,0xad,0x2b,0xce,0x51,0x99,0x5b,0x28,0x7d,0x27,0x6e,0x43,0xba,0x51,0x75,0x93,0xc9,0x3d,0x10,0x36,0xb9,0x7e,0x30,0xc1,0x3c,0xaa,0xf6,0x54,0x8d,0x13,0x5a,0xe2,0xdb,0x56,0x4c,0x63,0x8c,0x2a,0xbe,0xda,0x3b,0x25,0x2c,0x96,0x5b,0x5c,0xdc,0xc6,0xf1,0xd3,0x64,0xfb,0x21,0x9a,0x83,0x37,0xe7,0x9f,0xa7,0x58,0xbb,0x86,0x99,0xeb,0xcf,0xe3,0x4a,0x11,0x72,0xcd,0x28,0x2e,0xbd,0x20,0xd9,0xb7,0xa5,0x1b,0x19,0xb,0x92,0x73,0xc8,0x34,0x6,0x97,0xd2,0x27,0x17,0x1a,0xef,0xfc,0x40,0x1d,0xa0,0xab,0x5d,0x1e,0x88,0xc0,0xb3,0x18,0x94,0xa4,0xcb,0x12,0x46,0xd,0x5e,0x4f,0xbf,0x95,0x85,0x9c,0x74,0x68,0x50,0x48,0xe5,0xf5,0xa1,0xc2,0xcc,0xbc,0x44,0xd4,0x45,0x7d,0xae,0x8a,0x6a,0xe0,0xee,0x7c,0x9e,0x70,0x80,0xe,0x82,0xc3,0xd8,0xe6,0x60,0xd5,0x42,0xec,0xe4,0x4e,0x26,0x53,0xde,0xca,0x61,0x38,0x77,0xaf,0x7a,0x16,0xb2,0x0,0xa6,0x3,0x5f,0xe9,0x2,0x69,0x5,0x31,0xdd,0x91,0xfa,0xe1,0x2f,0xf0,0x4,0x6d,0xc7,0x76,0x8e,0xb4,0x6c,0x3a,0xff,0xb5,0x2d,0x9d,0x8f,0xea,0xd7,0xd6,0xe8,0xac,0xfe,0x6b,0x22,0x89,0x9,0x59,0x57,0x7f,0xc4,0xf2,0xf9,0x71,0xc,0x7b,0x4d,0x39,0x14,0x65,0xf,0x33,0x1c,0x66,0xa2,0x6f,0xce,0x3e,0xd0,0xf3,0xa3,0x24,0x9b,0x4b,0x81,0x79,0xb8,0xf8,0x23,0x55,0xb6,0x32,0xed,0xa8,0x35,0xfd,0x62,0x87,0x8b,0xd1,0x84,0xf7,0x78,0x49,0x67,0xb1,0x1,0xad,0x52,0x15,0xa9,0xa,0x8,0x41,0x3f,0x98,0xf4,0x47,0x7,0xc5,0xb0,0x2b,0x90,0x1f,0xdf,0x29,0x95,0x93,0x9b,0x6,0xaa,0xf1,0x76,0xc9,0x50,0x22,0x58,0x74,0xe3,0x1c,0x3d,0x0,0x8c,0x38,0x24,0x5c,0x40,0xdf,0x21,0x9a,0x7d,0x67,0x68,0x4a,0x2d,0x97,0xe7,0xe0,0x61,0x5,0x9e,0x80,0xd8,0xf7,0x91,0x37,0x59,0xe1,0xed,0x60,0xef,0x4d,0xa8,0x36,0x7a,0x8b,0x11,0x87,0x8d,0xab,0xc5,0x2,0x28,0xce,0x86,0x72,0xf8,0xd5,0xea,0x1,0xcb,0x25,0xb5,0x3b,0x5b,0xd1,0xc7,0x55,0xc6,0xfe,0x31,0x15,0x7,0x77,0x6f,0xff,0x4e,0x5e,0x79,0x1a,0xd3,0xcf,0xf3,0xeb,0x2e,0x4,0x27,0x3e,0xb6,0xfd,0xf4,0xe5,0x1f,0x2f,0xa9,0x70,0x7b,0x33,0xa3,0x8,0x10,0x1b,0xa5,0xe6,0x47,0x54,0xa6,0xfb,0x9c,0x69,0xa1,0xac,0x8f,0x73,0x2c,0xbd,0xb0,0xa2,0xc8,0x29,0xc,0x62,0xa0,0x1e,0xc4,0xec,0x49,0x7f,0x32,0x99,0xe2,0xb2,0x17,0x53,0xd0,0x45,0x51,0x34,0x6d,0x6c,0xe,0x44,0x26,0x96,0xf,0x35,0x81,0xd7,0xd6,0xbf,0xcd,0x7c,0x5a,0x41,0x4b,0x94,0x8a,0xbe,0x2a,0x66,0x52,0xe4,0xd2,0xb9,0xbb,0x9,0xb8,0x1d,0x14,0xcc,0xad,0xc1,0x71,0x65,0x83,0xda,0xf5,0x5f,0xe8,0x9d,0x6e,0xdb,0x57,0xf9,0x78,0x39,0x5d,0x63,0xa4,0x2b,0x92,0x64,0x7e,0xbc,0x90,0xb,0x23,0x84,0xfc,0x4f,0xb1,0x12,0xfa,0xb3,0x16,0xba,0xae,0xe9,0xf2,0xc3,0xa,0xdc,0x6a,0x30,0x4c,0x3f,0x46,0x8e,0x3c,0xd9,0x89,0xd,0x13,0x56,0x43,0x3,0xee,0x98,0xf0,0x20,0xc2,0x3a,0x48,0x6b,0x9f,0x18,0xd4,0x19,0x85,0x75,0x88,0xb4,0xdd,0xa7,0x82,0xf6,0xde,0xaf,0xca,0x42,0xc0,0xb7,0x56,0x91,0x1e,0x38,0x82,0x14,0xe9,0x18,0x79,0x92,0x6b,0x46,0x15,0xe1,0xbb,0x5d,0x2,0xa4,0x4b,0x64,0xd,0x13,0xf2,0x96,0x3b,0xa5,0x7c,0xde,0x7e,0xf3,0xca,0x72,0xb2,0x9,0xd3,0x4c,0xb7,0xcf,0x1f,0xab,0x74,0x73,0xbe,0x4,0xfb,0xd9,0xee,0xf4,0xe5,0x5a,0x39,0x62,0x8,0x95,0x6,0x0,0xae,0x93,0x70,0x8f,0xcb,0xe7,0xc3,0xb1,0xbf,0x2e,0x1c,0xe0,0x32,0x3f,0xf,0xfa,0x33,0x8d,0x9f,0xf1,0x5b,0xba,0x23,0x31,0x30,0x9b,0xe8,0xa0,0x3a,0xe3,0x8c,0xbc,0x35,0x68,0xd4,0xc7,0x36,0x75,0x83,0x88,0x60,0x78,0x40,0x5c,0xea,0x89,0xdd,0xcd,0x67,0x76,0x25,0x6e,0xb4,0xad,0xbd,0x97,0x54,0xc6,0xc8,0x42,0x26,0xa8,0x58,0xb6,0xfc,0x6c,0x94,0xe4,0xa2,0x86,0x55,0x6d,0x7b,0xe,0x66,0xcc,0x10,0x49,0xe2,0xf6,0xce,0xf0,0xeb,0xaa,0xc4,0x6a,0xfd,0x48,0x41,0x2a,0xc1,0x77,0xb9,0xf5,0x19,0x2d,0x3e,0x52,0x87,0x5f,0x2b,0x8e,0x28,0x9a,0x12,0x44,0x9c,0xa6,0xb5,0x5,0x9d,0xd7,0xd8,0x7,0xc9,0xd2,0x5e,0xef,0x45,0x2c,0x71,0x21,0xa1,0xa,0xda,0xec,0x57,0x7f,0xfe,0xff,0xc2,0xa7,0x43,0xd6,0x84,0xc0,0x4e,0x34,0x1b,0x27,0x16,0xe6,0x47,0x8a,0x53,0x24,0x59,0xd1,0x4d,0x3c,0x11,0x65,0x7d,0xb,0xd0,0x90,0x80,0xc5,0x1a,0x9e,0xc,0x8b,0xdb,0xf8,0x51,0xa9,0x63,0xb3,0x99,0x4f,0x61,0x50,0x3d,0x7a,0x85,0x29,0xaf,0x4a,0xd5,0x1d,0xdf,0xac,0xf9,0xa3,0x3,0x98,0xed,0x2f,0x1,0xf7,0x37,0xb8,0x69,0x20,0x22,0x81,0x6f,0xdc,0xb0,0x17,0x3a,0x9c,0x73,0x5c,0x35,0x2b,0xca,0xae,0x3,0x9d,0x44,0xe6,0x46,0xcb,0xf2,0x4a,0x6e,0xa9,0x26,0x0,0xba,0x2c,0xd1,0x20,0x41,0xaa,0x53,0x7e,0x2d,0xd9,0x83,0x65,0xdd,0x62,0x1,0x5a,0x30,0xad,0x3e,0x38,0x96,0xab,0x48,0xb7,0xf3,0xdf,0xfb,0x89,0x8a,0x31,0xeb,0x74,0x8f,0xf7,0x27,0x93,0x4c,0x4b,0x86,0x3c,0xc3,0xe1,0xd6,0xcc,0x8,0xa3,0xd0,0x98,0x2,0xdb,0xb4,0x84,0xd,0x50,0xec,0xff,0xe,0x4d,0xbb,0xb0,0x87,0x16,0x24,0xd8,0xa,0x7,0x37,0xc2,0xb,0xb5,0xa7,0xc9,0x63,0x82,0x1b,0x9,0x6c,0xfe,0xf0,0x7a,0x1e,0x90,0x60,0x8e,0xc4,0x54,0xac,0xdc,0x9a,0xbe,0x6d,0x55,0x58,0x40,0x78,0x64,0xd2,0xb1,0xe5,0xf5,0x5f,0x4e,0x1d,0x56,0x8c,0x95,0x85,0xaf,0x79,0x12,0xf9,0x4f,0x81,0xcd,0x21,0x15,0x6,0x6a,0xbf,0x67,0x13,0xb6,0x10,0xa2,0x43,0x36,0x5e,0xf4,0x28,0x71,0xda,0xce,0xf6,0xc8,0xd3,0x92,0xfc,0x52,0xc5,0x70,0x49,0x19,0x99,0x32,0xe2,0xd4,0x6f,0x47,0xc6,0xc7,0xfa,0x9f,0x7b,0xee,0xbc,0xf8,0x2a,0x7c,0xa4,0x9e,0x8d,0x3d,0xa5,0xef,0xe0,0x3f,0xf1,0xea,0x66,0xd7,0x7d,0x14,0x45,0x33,0xe8,0xa8,0xb8,0xfd,0x22,0xa6,0x34,0xb3,0xe3,0xc0,0x69,0x91,0x5b,0x8b,0x76,0xc,0x23,0x1f,0x2e,0xde,0x7f,0xb2,0x6b,0x1c,0x61,0xe9,0x75,0x4,0x29,0x5d,0x3b,0xa0,0xd5,0x17,0x39,0xcf,0xf,0x80,0x51,0x18,0x1a,0xb9,0x57,0xe4,0x88,0x2f,0xa1,0x77,0x59,0x68,0x5,0x42,0xbd,0x11,0x97,0x72,0xed,0x25,0xe7,0x94,0xc1,0x9b,0xda,0xf7,0xe,0xe5,0xc1,0x27,0x7d,0x89,0xa4,0x82,0xd,0xca,0x84,0x75,0x88,0x1e,0x42,0xe0,0x39,0xa7,0xee,0x56,0x6f,0xe2,0xf8,0xd7,0x38,0x9e,0xa,0x6e,0x8f,0x91,0x98,0x22,0xef,0xe8,0x68,0x72,0x45,0x67,0xd0,0x4f,0x95,0x2e,0x37,0x83,0x53,0x2b,0x13,0xec,0xf,0x32,0x2d,0x5f,0x7b,0x57,0xfe,0xa5,0xc6,0x79,0x9c,0x9a,0x9,0x94,0x6d,0x3,0x11,0xaf,0xad,0xbf,0x26,0xc7,0x7c,0x80,0xb2,0x23,0x66,0x93,0xa3,0xae,0x5b,0x48,0xf4,0xa9,0x14,0x1f,0xe9,0xaa,0x3c,0x74,0x7,0xac,0x20,0x10,0x7f,0xa6,0xf2,0xb9,0xea,0xfb,0xb,0x21,0x31,0x28,0xc0,0xdc,0xe4,0xfc,0x51,0x41,0x15,0x76,0x78,0x8,0xf0,0x60,0xf1,0xc9,0x1a,0x3e,0xde,0x54,0x5a,0xc8,0x2a,0xc4,0x34,0xba,0x36,0x77,0x6c,0x52,0xd4,0x61,0xf6,0x58,0x50,0xfa,0x92,0xe7,0x6a,0x7e,0xd5,0x8c,0xc3,0x1b,0xce,0xa2,0x6,0xb4,0x12,0xb7,0xeb,0x5d,0xb6,0xdd,0xb1,0x85,0x69,0x25,0x4e,0x55,0x9b,0x44,0xb0,0xd9,0x73,0xc2,0x3a,0x0,0xd8,0x8e,0x4b,0x1,0x99,0x29,0x3b,0x5e,0x63,0x62,0x5c,0x18,0x4a,0xdf,0x96,0x3d,0xbd,0xed,0xe3,0xcb,0x70,0x46,0x4d,0xc5,0xb8,0xcf,0xf9,0x8d,0xa0,0xd1,0xbb,0x87,0xa8,0xd2,0x16,0xdb,0x7a,0x8a,0x64,0x47,0x17,0x90,0x2f,0xff,0x35,0xcd,0xc,0x4c,0x97,0xe1,0x2,0x86,0x59,0x1c,0x81,0x49,0xd6,0x33,0x3f,0x65,0x30,0x43,0xcc,0xfd,0xd3,0x5,0xb5,0x19,0xe6,0xa1,0x1d,0xbe,0xbc,0xf5,0x8b,0x2c,0x40,0xf3,0xb3,0x71,0x4,0x9f,0x24,0xab,0x6b,0x9d,0xea,0xec,0xe4,0x79,0xd5,0x8e,0x9,0xb6,0x2f,0x5d,0x27,0xb,0x9c,0x63,0x42,0x7f,0xf3,0x47,0x5b,0x23,0x3f,0xa0,0x5e,0xe5,0x2,0x18,0x17,0x35,0x52,0xe8,0x98,0x9f,0x1e,0x7a,0xe1,0xff,0xa7,0x88,0xee,0x48,0x26,0x9e,0x92,0x1f,0x90,0x32,0xd7,0x49,0x5,0xf4,0x6e,0xf8,0xf2,0xd4,0xba,0x7d,0x57,0xb1,0xf9,0xd,0x87,0xaa,0x95,0x7e,0xb4,0x5a,0xca,0x44,0x24,0xae,0xb8,0x2a,0xb9,0x81,0x4e,0x6a,0x78,0x8,0x10,0x80,0x31,0x21,0x6,0x65,0xac,0xb0,0x8c,0x94,0x51,0x7b,0x58,0x41,0xc9,0x82,0x8b,0x9a,0x60,0x50,0xd6,0xf,0x4,0x4c,0xdc,0x77,0x6f,0x64,0xda,0x99,0x38,0x2b,0xd9,0x84,0xe3,0x16,0xde,0xd3,0xf0,0xc,0x53,0xc2,0xcf,0xdd,0xb7,0x56,0x73,0x1d,0xdf,0x61,0xbb,0x93,0x36,0x0,0x4d,0xe6,0x9d,0xcd,0x68,0x2c,0xaf,0x3a,0x2e,0x4b,0x12,0x13,0x71,0x3b,0x59,0xe9,0x70,0x4a,0xfe,0xa8,0xa9,0xc0,0xb2,0x3,0x25,0x3e,0x34,0xeb,0xf5,0xc1,0x55,0x19,0x2d,0x9b,0xad,0xc6,0xc4,0x76,0xc7,0x62,0x6b,0xb3,0xd2,0xbe,0xe,0x1a,0xfc,0xa5,0x8a,0x20,0x97,0xe2,0x11,0xa4,0x28,0x86,0x7,0x46,0x22,0x1c,0xdb,0x54,0xed,0x1b,0x1,0xc3,0xef,0x74,0x5c,0xfb,0x83,0x30,0xce,0x6d,0x85,0xcc,0x69,0xc5,0xd1,0x96,0x8d,0xbc,0x75,0xa3,0x15,0x4f,0x33,0x40,0x39,0xf1,0x43,0xa6,0xf6,0x72,0x6c,0x29,0x3c,0x7c,0x91,0xe7,0x8f,0x5f,0xbd,0x45,0x37,0x14,0xe0,0x67,0xab,0x66,0xfa,0xa,0xf7,0xcb,0xa2,0xd8,0xfd,0x89,0xa1,0xd0,0xb5,0x3d,0xbf,0xc8,0x51,0x96,0x19,0x3f,0x85,0x13,0xee,0x1f,0x7e,0x95,0x6c,0x41,0x12,0xe6,0xbc,0x5a,0x5,0xa3,0x4c,0x63,0xa,0x14,0xf5,0x91,0x3c,0xa2,0x7b,0xd9,0x79,0xf4,0xcd,0x75,0xb5,0xe,0xd4,0x4b,0xb0,0xc8,0x18,0xac,0x73,0x74,0xb9,0x3,0xfc,0xde,0xe9,0xf3,0xe2,0x5d,0x3e,0x65,0xf,0x92,0x1,0x7,0xa9,0x94,0x77,0x88,0xcc,0xe0,0xc4,0xb6,0xb8,0x29,0x1b,0xe7,0x35,0x38,0x8,0xfd,0x34,0x8a,0x98,0xf6,0x5c,0xbd,0x24,0x36,0x37,0x9c,0xef,0xa7,0x3d,0xe4,0x8b,0xbb,0x32,0x6f,0xd3,0xc0,0x31,0x72,0x84,0x8f,0x67,0x7f,0x47,0x5b,0xed,0x8e,0xda,0xca,0x60,0x71,0x22,0x69,0xb3,0xaa,0xba,0x90,0x53,0xc1,0xcf,0x45,0x21,0xaf,0x5f,0xb1,0xfb,0x6b,0x93,0xe3,0xa5,0x81,0x52,0x6a,0x7c,0x9,0x61,0xcb,0x17,0x4e,0xe5,0xf1,0xc9,0xf7,0xec,0xad,0xc3,0x6d,0xfa,0x4f,0x46,0x2d,0xc6,0x70,0xbe,0xf2,0x1e,0x2a,0x39,0x55,0x80,0x58,0x2c,0x89,0x2f,0x9d,0x15,0x43,0x9b,0xa1,0xb2,0x2,0x9a,0xd0,0xdf,0x0,0xce,0xd5,0x59,0xe8,0x42,0x2b,0x76,0x26,0xa6,0xd,0xdd,0xeb,0x50,0x78,0xf9,0xf8,0xc5,0xa0,0x44,0xd1,0x83,0xc7,0x49,0x33,0x1c,0x20,0x11,0xe1,0x40,0x8d,0x54,0x23,0x5e,0xd6,0x4a,0x3b,0x16,0x62,0x7a,0xc,0xd7,0x97,0x87,0xc2,0x1d,0x99,0xb,0x8c,0xdc,0xff,0x56,0xae,0x64,0xb4,0x9e,0x48,0x66,0x57,0x3a,0x7d,0x82,0x2e,0xa8,0x4d,0xd2,0x1a,0xd8,0xab,0xfe,0xa4,0x4,0x9f,0xea,0x28,0x6,0xf0,0x30,0xbf,0x6e,0x27,0x25,0x86,0x68,0xdb,0xb7,0x10,0x36,0x90,0x7f,0x50,0x39,0x27,0xc6,0xa2,0xf,0x91,0x48,0xea,0x4a,0xc7,0xfe,0x46,0x62,0xa5,0x2a,0xc,0xb6,0x20,0xdd,0x2c,0x4d,0xa6,0x5f,0x72,0x21,0xd5,0x8f,0x69,0xd1,0x6e,0xd,0x56,0x3c,0xa1,0x32,0x34,0x9a,0xa7,0x44,0xbb,0xff,0xd3,0xf7,0x85,0x86,0x3d,0xe7,0x78,0x83,0xfb,0x2b,0x9f,0x40,0x47,0x8a,0x30,0xcf,0xed,0xda,0xc0,0x4,0xaf,0xdc,0x94,0xe,0xd7,0xb8,0x88,0x1,0x5c,0xe0,0xf3,0x2,0x41,0xb7,0xbc,0x8b,0x1a,0x28,0xd4,0x6,0xb,0x3b,0xce,0x7,0xb9,0xab,0xc5,0x6f,0x8e,0x17,0x5,0x60,0xf2,0xfc,0x76,0x12,0x9c,0x6c,0x82,0xc8,0x58,0xa0,0xd0,0x96,0xb2,0x61,0x59,0x54,0x4c,0x74,0x68,0xde,0xbd,0xe9,0xf9,0x53,0x42,0x11,0x5a,0x80,0x99,0x89,0xa3,0x75,0x1e,0xf5,0x43,0x8d,0xc1,0x2d,0x19,0xa,0x66,0xb3,0x6b,0x1f,0xba,0x1c,0xae,0x4f,0x3a,0x52,0xf8,0x24,0x7d,0xd6,0xc2,0xfa,0xc4,0xdf,0x9e,0xf0,0x5e,0xc9,0x7c,0x45,0x15,0x95,0x3e,0xee,0xd8,0x63,0x4b,0xca,0xcb,0xf6,0x93,0x77,0xe2,0xb0,0xf4,0x26,0x70,0xa8,0x92,0x81,0x31,0xa9,0xe3,0xec,0x33,0xfd,0xe6,0x6a,0xdb,0x71,0x18,0x49,0x3f,0xe4,0xa4,0xb4,0xf1,0x2e,0xaa,0x38,0xbf,0xef,0xcc,0x65,0x9d,0x57,0x87,0x7a,0x0,0x2f,0x13,0x22,0xd2,0x73,0xbe,0x67,0x10,0x6d,0xe5,0x79,0x8,0x25,0x51,0x37,0xac,0xd9,0x1b,0x35,0xc3,0x3,0x8c,0x5d,0x14,0x16,0xb5,0x5b,0xe8,0x84,0x23,0xad,0x7b,0x55,0x64,0x9,0x4e,0xb1,0x1d,0x9b,0x7e,0xe1,0x29,0xeb,0x98,0xcd,0x97,0xa0,0x8d,0x74,0x9f,0xbb,0x5d,0x7,0xf3,0xde,0xf8,0x77,0xb0,0xfe,0xf,0xf2,0x64,0x38,0x9a,0x43,0xdd,0x94,0x2c,0x15,0x98,0x82,0xad,0x42,0xe4,0x70,0x14,0xf5,0xeb,0xe2,0x58,0x95,0x92,0x12,0x8,0x3f,0x1d,0xaa,0x35,0xef,0x54,0x4d,0xf9,0x29,0x51,0x69,0x96,0x75,0x48,0x57,0x25,0x1,0x2d,0x84,0xdf,0xbc,0x3,0xe6,0xe0,0x73,0xee,0x17,0x79,0x6b,0xd5,0xd7,0xc5,0x5c,0xbd,0x6,0xfa,0xc8,0x59,0x1c,0xe9,0xd9,0xd4,0x21,0x32,0x8e,0xd3,0x6e,0x65,0x93,0xd0,0x46,0xe,0x7d,0xd6,0x5a,0x6a,0x5,0xdc,0x88,0xc3,0x90,0x81,0x71,0x5b,0x4b,0x52,0xba,0xa6,0x9e,0x86,0x2b,0x3b,0x6f,0xc,0x2,0x72,0x8a,0x1a,0x8b,0xb3,0x60,0x44,0xa4,0x2e,0x20,0xb2,0x50,0xbe,0x4e,0xc0,0x4c,0xd,0x16,0x28,0xae,0x1b,0x8c,0x22,0x2a,0x80,0xe8,0x9d,0x10,0x4,0xaf,0xf6,0xb9,0x61,0xb4,0xd8,0x7c,0xce,0x68,0xcd,0x91,0x27,0xcc,0xa7,0xcb,0xff,0x13,0x5f,0x34,0x2f,0xe1,0x3e,0xca,0xa3,0x9,0xb8,0x40,0x7a,0xa2,0xf4,0x31,0x7b,0xe3,0x53,0x41,0x24,0x19,0x18,0x26,0x62,0x30,0xa5,0xec,0x47,0xc7,0x97,0x99,0xb1,0xa,0x3c,0x37,0xbf,0xc2,0xb5,0x83,0xf7,0xda,0xab,0xc1,0xfd,0xd2,0xa8,0x6c,0xa1,0x0,0xf0,0x1e,0x3d,0x6d,0xea,0x55,0x85,0x4f,0xb7,0x76,0x36,0xed,0x9b,0x78,0xfc,0x23,0x66,0xfb,0x33,0xac,0x49,0x45,0x1f,0x4a,0x39,0xb6,0x87,0xa9,0x7f,0xcf,0x63,0x9c,0xdb,0x67,0xc4,0xc6,0x8f,0xf1,0x56,0x3a,0x89,0xc9,0xb,0x7e,0xe5,0x5e,0xd1,0x11,0xe7,0xc5,0xc3,0xcb,0x56,0xfa,0xa1,0x26,0x99,0x0,0x72,0x8,0x24,0xb3,0x4c,0x6d,0x50,0xdc,0x68,0x74,0xc,0x10,0x8f,0x71,0xca,0x2d,0x37,0x38,0x1a,0x7d,0xc7,0xb7,0xb0,0x31,0x55,0xce,0xd0,0x88,0xa7,0xc1,0x67,0x9,0xb1,0xbd,0x30,0xbf,0x1d,0xf8,0x66,0x2a,0xdb,0x41,0xd7,0xdd,0xfb,0x95,0x52,0x78,0x9e,0xd6,0x22,0xa8,0x85,0xba,0x51,0x9b,0x75,0xe5,0x6b,0xb,0x81,0x97,0x5,0x96,0xae,0x61,0x45,0x57,0x27,0x3f,0xaf,0x1e,0xe,0x29,0x4a,0x83,0x9f,0xa3,0xbb,0x7e,0x54,0x77,0x6e,0xe6,0xad,0xa4,0xb5,0x4f,0x7f,0xf9,0x20,0x2b,0x63,0xf3,0x58,0x40,0x4b,0xf5,0xb6,0x17,0x4,0xf6,0xab,0xcc,0x39,0xf1,0xfc,0xdf,0x23,0x7c,0xed,0xe0,0xf2,0x98,0x79,0x5c,0x32,0xf0,0x4e,0x94,0xbc,0x19,0x2f,0x62,0xc9,0xb2,0xe2,0x47,0x3,0x80,0x15,0x1,0x64,0x3d,0x3c,0x5e,0x14,0x76,0xc6,0x5f,0x65,0xd1,0x87,0x86,0xef,0x9d,0x2c,0xa,0x11,0x1b,0xc4,0xda,0xee,0x7a,0x36,0x2,0xb4,0x82,0xe9,0xeb,0x59,0xe8,0x4d,0x44,0x9c,0xfd,0x91,0x21,0x35,0xd3,0x8a,0xa5,0xf,0xb8,0xcd,0x3e,0x8b,0x7,0xa9,0x28,0x69,0xd,0x33,0xf4,0x7b,0xc2,0x34,0x2e,0xec,0xc0,0x5b,0x73,0xd4,0xac,0x1f,0xe1,0x42,0xaa,0xe3,0x46,0xea,0xfe,0xb9,0xa2,0x93,0x5a,0x8c,0x3a,0x60,0x1c,0x6f,0x16,0xde,0x6c,0x89,0xd9,0x5d,0x43,0x6,0x13,0x53,0xbe,0xc8,0xa0,0x70,0x92,0x6a,0x18,0x3b,0xcf,0x48,0x84,0x49,0xd5,0x25,0xd8,0xe4,0x8d,0xf7,0xd2,0xa6,0x8e,0xff,0x9a,0x12,0x90,0xe7,0xf8,0x3f,0xb0,0x96,0x2c,0xba,0x47,0xb6,0xd7,0x3c,0xc5,0xe8,0xbb,0x4f,0x15,0xf3,0xac,0xa,0xe5,0xca,0xa3,0xbd,0x5c,0x38,0x95,0xb,0xd2,0x70,0xd0,0x5d,0x64,0xdc,0x1c,0xa7,0x7d,0xe2,0x19,0x61,0xb1,0x5,0xda,0xdd,0x10,0xaa,0x55,0x77,0x40,0x5a,0x4b,0xf4,0x97,0xcc,0xa6,0x3b,0xa8,0xae,0x0,0x3d,0xde,0x21,0x65,0x49,0x6d,0x1f,0x11,0x80,0xb2,0x4e,0x9c,0x91,0xa1,0x54,0x9d,0x23,0x31,0x5f,0xf5,0x14,0x8d,0x9f,0x9e,0x35,0x46,0xe,0x94,0x4d,0x22,0x12,0x9b,0xc6,0x7a,0x69,0x98,0xdb,0x2d,0x26,0xce,0xd6,0xee,0xf2,0x44,0x27,0x73,0x63,0xc9,0xd8,0x8b,0xc0,0x1a,0x3,0x13,0x39,0xfa,0x68,0x66,0xec,0x88,0x6,0xf6,0x18,0x52,0xc2,0x3a,0x4a,0xc,0x28,0xfb,0xc3,0xd5,0xa0,0xc8,0x62,0xbe,0xe7,0x4c,0x58,0x60,0x5e,0x45,0x4,0x6a,0xc4,0x53,0xe6,0xef,0x84,0x6f,0xd9,0x17,0x5b,0xb7,0x83,0x90,0xfc,0x29,0xf1,0x85,0x20,0x86,0x34,0xbc,0xea,0x32,0x8,0x1b,0xab,0x33,0x79,0x76,0xa9,0x67,0x7c,0xf0,0x41,0xeb,0x82,0xdf,0x8f,0xf,0xa4,0x74,0x42,0xf9,0xd1,0x50,0x51,0x6c,0x9,0xed,0x78,0x2a,0x6e,0xe0,0x9a,0xb5,0x89,0xb8,0x48,0xe9,0x24,0xfd,0x8a,0xf7,0x7f,0xe3,0x92,0xbf,0xcb,0xd3,0xa5,0x7e,0x3e,0x2e,0x6b,0xb4,0x30,0xa2,0x25,0x75,0x56,0xff,0x7,0xcd,0x1d,0x37,0xe1,0xcf,0xfe,0x93,0xd4,0x2b,0x87,0x1,0xe4,0x7b,0xb3,0x71,0x2,0x57,0xd,0xad,0x36,0x43,0x81,0xaf,0x59,0x99,0x16,0xc7,0x8e,0x8c,0x2f,0xc1,0x72,0x1e,0xb9,0xab,0xd,0xe2,0xcd,0xa4,0xba,0x5b,0x3f,0x92,0xc,0xd5,0x77,0xd7,0x5a,0x63,0xdb,0xff,0x38,0xb7,0x91,0x2b,0xbd,0x40,0xb1,0xd0,0x3b,0xc2,0xef,0xbc,0x48,0x12,0xf4,0x4c,0xf3,0x90,0xcb,0xa1,0x3c,0xaf,0xa9,0x7,0x3a,0xd9,0x26,0x62,0x4e,0x6a,0x18,0x1b,0xa0,0x7a,0xe5,0x1e,0x66,0xb6,0x2,0xdd,0xda,0x17,0xad,0x52,0x70,0x47,0x5d,0x99,0x32,0x41,0x9,0x93,0x4a,0x25,0x15,0x9c,0xc1,0x7d,0x6e,0x9f,0xdc,0x2a,0x21,0x16,0x87,0xb5,0x49,0x9b,0x96,0xa6,0x53,0x9a,0x24,0x36,0x58,0xf2,0x13,0x8a,0x98,0xfd,0x6f,0x61,0xeb,0x8f,0x1,0xf1,0x1f,0x55,0xc5,0x3d,0x4d,0xb,0x2f,0xfc,0xc4,0xc9,0xd1,0xe9,0xf5,0x43,0x20,0x74,0x64,0xce,0xdf,0x8c,0xc7,0x1d,0x4,0x14,0x3e,0xe8,0x83,0x68,0xde,0x10,0x5c,0xb0,0x84,0x97,0xfb,0x2e,0xf6,0x82,0x27,0x81,0x33,0xd2,0xa7,0xcf,0x65,0xb9,0xe0,0x4b,0x5f,0x67,0x59,0x42,0x3,0x6d,0xc3,0x54,0xe1,0xd8,0x88,0x8,0xa3,0x73,0x45,0xfe,0xd6,0x57,0x56,0x6b,0xe,0xea,0x7f,0x2d,0x69,0xbb,0xed,0x35,0xf,0x1c,0xac,0x34,0x7e,0x71,0xae,0x60,0x7b,0xf7,0x46,0xec,0x85,0xd4,0xa2,0x79,0x39,0x29,0x6c,0xb3,0x37,0xa5,0x22,0x72,0x51,0xf8,0x0,0xca,0x1a,0xe7,0x9d,0xb2,0x8e,0xbf,0x4f,0xee,0x23,0xfa,0x8d,0xf0,0x78,0xe4,0x95,0xb8,0xcc,0xaa,0x31,0x44,0x86,0xa8,0x5e,0x9e,0x11,0xc0,0x89,0x8b,0x28,0xc6,0x75,0x19,0xbe,0x30,0xe6,0xc8,0xf9,0x94,0xd3,0x2c,0x80,0x6,0xe3,0x7c,0xb4,0x76,0x5,0x50,0xa,0x8b,0xa6,0x5f,0xb4,0x90,0x76,0x2c,0xd8,0xf5,0xd3,0x5c,0x9b,0xd5,0x24,0xd9,0x4f,0x13,0xb1,0x68,0xf6,0xbf,0x7,0x3e,0xb3,0xa9,0x86,0x69,0xcf,0x5b,0x3f,0xde,0xc0,0xc9,0x73,0xbe,0xb9,0x39,0x23,0x14,0x36,0x81,0x1e,0xc4,0x7f,0x66,0xd2,0x2,0x7a,0x42,0xbd,0x5e,0x63,0x7c,0xe,0x2a,0x6,0xaf,0xf4,0x97,0x28,0xcd,0xcb,0x58,0xc5,0x3c,0x52,0x40,0xfe,0xfc,0xee,0x77,0x96,0x2d,0xd1,0xe3,0x72,0x37,0xc2,0xf2,0xff,0xa,0x19,0xa5,0xf8,0x45,0x4e,0xb8,0xfb,0x6d,0x25,0x56,0xfd,0x71,0x41,0x2e,0xf7,0xa3,0xe8,0xbb,0xaa,0x5a,0x70,0x60,0x79,0x91,0x8d,0xb5,0xad,0x0,0x10,0x44,0x27,0x29,0x59,0xa1,0x31,0xa0,0x98,0x4b,0x6f,0x8f,0x5,0xb,0x99,0x7b,0x95,0x65,0xeb,0x67,0x26,0x3d,0x3,0x85,0x30,0xa7,0x9,0x1,0xab,0xc3,0xb6,0x3b,0x2f,0x84,0xdd,0x92,0x4a,0x9f,0xf3,0x57,0xe5,0x43,0xe6,0xba,0xc,0xe7,0x8c,0xe0,0xd4,0x38,0x74,0x1f,0x4,0xca,0x15,0xe1,0x88,0x22,0x93,0x6b,0x51,0x89,0xdf,0x1a,0x50,0xc8,0x78,0x6a,0xf,0x32,0x33,0xd,0x49,0x1b,0x8e,0xc7,0x6c,0xec,0xbc,0xb2,0x9a,0x21,0x17,0x1c,0x94,0xe9,0x9e,0xa8,0xdc,0xf1,0x80,0xea,0xd6,0xf9,0x83,0x47,0x8a,0x2b,0xdb,0x35,0x16,0x46,0xc1,0x7e,0xae,0x64,0x9c,0x5d,0x1d,0xc6,0xb0,0x53,0xd7,0x8,0x4d,0xd0,0x18,0x87,0x62,0x6e,0x34,0x61,0x12,0x9d,0xac,0x82,0x54,0xe4,0x48,0xb7,0xf0,0x4c,0xef,0xed,0xa4,0xda,0x7d,0x11,0xa2,0xe2,0x20,0x55,0xce,0x75,0xfa,0x3a,0xcc,0x7e,0x78,0x70,0xed,0x41,0x1a,0x9d,0x22,0xbb,0xc9,0xb3,0x9f,0x8,0xf7,0xd6,0xeb,0x67,0xd3,0xcf,0xb7,0xab,0x34,0xca,0x71,0x96,0x8c,0x83,0xa1,0xc6,0x7c,0xc,0xb,0x8a,0xee,0x75,0x6b,0x33,0x1c,0x7a,0xdc,0xb2,0xa,0x6,0x8b,0x4,0xa6,0x43,0xdd,0x91,0x60,0xfa,0x6c,0x66,0x40,0x2e,0xe9,0xc3,0x25,0x6d,0x99,0x13,0x3e,0x1,0xea,0x20,0xce,0x5e,0xd0,0xb0,0x3a,0x2c,0xbe,0x2d,0x15,0xda,0xfe,0xec,0x9c,0x84,0x14,0xa5,0xb5,0x92,0xf1,0x38,0x24,0x18,0x0,0xc5,0xef,0xcc,0xd5,0x5d,0x16,0x1f,0xe,0xf4,0xc4,0x42,0x9b,0x90,0xd8,0x48,0xe3,0xfb,0xf0,0x4e,0xd,0xac,0xbf,0x4d,0x10,0x77,0x82,0x4a,0x47,0x64,0x98,0xc7,0x56,0x5b,0x49,0x23,0xc2,0xe7,0x89,0x4b,0xf5,0x2f,0x7,0xa2,0x94,0xd9,0x72,0x9,0x59,0xfc,0xb8,0x3b,0xae,0xba,0xdf,0x86,0x87,0xe5,0xaf,0xcd,0x7d,0xe4,0xde,0x6a,0x3c,0x3d,0x54,0x26,0x97,0xb1,0xaa,0xa0,0x7f,0x61,0x55,0xc1,0x8d,0xb9,0xf,0x39,0x52,0x50,0xe2,0x53,0xf6,0xff,0x27,0x46,0x2a,0x9a,0x8e,0x68,0x31,0x1e,0xb4,0x3,0x76,0x85,0x30,0xbc,0x12,0x93,0xd2,0xb6,0x88,0x4f,0xc0,0x79,0x8f,0x95,0x57,0x7b,0xe0,0xc8,0x6f,0x17,0xa4,0x5a,0xf9,0x11,0x58,0xfd,0x51,0x45,0x2,0x19,0x28,0xe1,0x37,0x81,0xdb,0xa7,0xd4,0xad,0x65,0xd7,0x32,0x62,0xe6,0xf8,0xbd,0xa8,0xe8,0x5,0x73,0x1b,0xcb,0x29,0xd1,0xa3,0x80,0x74,0xf3,0x3f,0xf2,0x6e,0x9e,0x63,0x5f,0x36,0x4c,0x69,0x1d,0x35,0x44,0x21,0xa9,0x2b,0x5c,0x46,0x81,0xe,0x28,0x92,0x4,0xf9,0x8,0x69,0x82,0x7b,0x56,0x5,0xf1,0xab,0x4d,0x12,0xb4,0x5b,0x74,0x1d,0x3,0xe2,0x86,0x2b,0xb5,0x6c,0xce,0x6e,0xe3,0xda,0x62,0xa2,0x19,0xc3,0x5c,0xa7,0xdf,0xf,0xbb,0x64,0x63,0xae,0x14,0xeb,0xc9,0xfe,0xe4,0xf5,0x4a,0x29,0x72,0x18,0x85,0x16,0x10,0xbe,0x83,0x60,0x9f,0xdb,0xf7,0xd3,0xa1,0xaf,0x3e,0xc,0xf0,0x22,0x2f,0x1f,0xea,0x23,0x9d,0x8f,0xe1,0x4b,0xaa,0x33,0x21,0x20,0x8b,0xf8,0xb0,0x2a,0xf3,0x9c,0xac,0x25,0x78,0xc4,0xd7,0x26,0x65,0x93,0x98,0x70,0x68,0x50,0x4c,0xfa,0x99,0xcd,0xdd,0x77,0x66,0x35,0x7e,0xa4,0xbd,0xad,0x87,0x44,0xd6,0xd8,0x52,0x36,0xb8,0x48,0xa6,0xec,0x7c,0x84,0xf4,0xb2,0x96,0x45,0x7d,0x6b,0x1e,0x76,0xdc,0x0,0x59,0xf2,0xe6,0xde,0xe0,0xfb,0xba,0xd4,0x7a,0xed,0x58,0x51,0x3a,0xd1,0x67,0xa9,0xe5,0x9,0x3d,0x2e,0x42,0x97,0x4f,0x3b,0x9e,0x38,0x8a,0x2,0x54,0x8c,0xb6,0xa5,0x15,0x8d,0xc7,0xc8,0x17,0xd9,0xc2,0x4e,0xff,0x55,0x3c,0x61,0x31,0xb1,0x1a,0xca,0xfc,0x47,0x6f,0xee,0xef,0xd2,0xb7,0x53,0xc6,0x94,0xd0,0x5e,0x24,0xb,0x37,0x6,0xf6,0x57,0x9a,0x43,0x34,0x49,0xc1,0x5d,0x2c,0x1,0x75,0x6d,0x1b,0xc0,0x80,0x90,0xd5,0xa,0x8e,0x1c,0x9b,0xcb,0xe8,0x41,0xb9,0x73,0xa3,0x89,0x5f,0x71,0x40,0x2d,0x6a,0x95,0x39,0xbf,0x5a,0xc5,0xd,0xcf,0xbc,0xe9,0xb3,0x13,0x88,0xfd,0x3f,0x11,0xe7,0x27,0xa8,0x79,0x30,0x32,0x91,0x7f,0xcc,0xa0,0x7,0x43,0xe5,0xa,0x25,0x4c,0x52,0xb3,0xd7,0x7a,0xe4,0x3d,0x9f,0x3f,0xb2,0x8b,0x33,0x17,0xd0,0x5f,0x79,0xc3,0x55,0xa8,0x59,0x38,0xd3,0x2a,0x7,0x54,0xa0,0xfa,0x1c,0xa4,0x1b,0x78,0x23,0x49,0xd4,0x47,0x41,0xef,0xd2,0x31,0xce,0x8a,0xa6,0x82,0xf0,0xf3,0x48,0x92,0xd,0xf6,0x8e,0x5e,0xea,0x35,0x32,0xff,0x45,0xba,0x98,0xaf,0xb5,0x71,0xda,0xa9,0xe1,0x7b,0xa2,0xcd,0xfd,0x74,0x29,0x95,0x86,0x77,0x34,0xc2,0xc9,0xfe,0x6f,0x5d,0xa1,0x73,0x7e,0x4e,0xbb,0x72,0xcc,0xde,0xb0,0x1a,0xfb,0x62,0x70,0x15,0x87,0x89,0x3,0x67,0xe9,0x19,0xf7,0xbd,0x2d,0xd5,0xa5,0xe3,0xc7,0x14,0x2c,0x21,0x39,0x1,0x1d,0xab,0xc8,0x9c,0x8c,0x26,0x37,0x64,0x2f,0xf5,0xec,0xfc,0xd6,0x0,0x6b,0x80,0x36,0xf8,0xb4,0x58,0x6c,0x7f,0x13,0xc6,0x1e,0x6a,0xcf,0x69,0xdb,0x3a,0x4f,0x27,0x8d,0x51,0x8,0xa3,0xb7,0x8f,0xb1,0xaa,0xeb,0x85,0x2b,0xbc,0x9,0x30,0x60,0xe0,0x4b,0x9b,0xad,0x16,0x3e,0xbf,0xbe,0x83,0xe6,0x2,0x97,0xc5,0x81,0x53,0x5,0xdd,0xe7,0xf4,0x44,0xdc,0x96,0x99,0x46,0x88,0x93,0x1f,0xae,0x4,0x6d,0x3c,0x4a,0x91,0xd1,0xc1,0x84,0x5b,0xdf,0x4d,0xca,0x9a,0xb9,0x10,0xe8,0x22,0xf2,0xf,0x75,0x5a,0x66,0x57,0xa7,0x6,0xcb,0x12,0x65,0x18,0x90,0xc,0x7d,0x50,0x24,0x42,0xd9,0xac,0x6e,0x40,0xb6,0x76,0xf9,0x28,0x61,0x63,0xc0,0x2e,0x9d,0xf1,0x56,0xd8,0xe,0x20,0x11,0x7c,0x3b,0xc4,0x68,0xee,0xb,0x94,0x5c,0x9e,0xed,0xb8,0xe2,0xc2,0xef,0x16,0xfd,0xd9,0x3f,0x65,0x91,0xbc,0x9a,0x15,0xd2,0x9c,0x6d,0x90,0x6,0x5a,0xf8,0x21,0xbf,0xf6,0x4e,0x77,0xfa,0xe0,0xcf,0x20,0x86,0x12,0x76,0x97,0x89,0x80,0x3a,0xf7,0xf0,0x70,0x6a,0x5d,0x7f,0xc8,0x57,0x8d,0x36,0x2f,0x9b,0x4b,0x33,0xb,0xf4,0x17,0x2a,0x35,0x47,0x63,0x4f,0xe6,0xbd,0xde,0x61,0x84,0x82,0x11,0x8c,0x75,0x1b,0x9,0xb7,0xb5,0xa7,0x3e,0xdf,0x64,0x98,0xaa,0x3b,0x7e,0x8b,0xbb,0xb6,0x43,0x50,0xec,0xb1,0xc,0x7,0xf1,0xb2,0x24,0x6c,0x1f,0xb4,0x38,0x8,0x67,0xbe,0xea,0xa1,0xf2,0xe3,0x13,0x39,0x29,0x30,0xd8,0xc4,0xfc,0xe4,0x49,0x59,0xd,0x6e,0x60,0x10,0xe8,0x78,0xe9,0xd1,0x2,0x26,0xc6,0x4c,0x42,0xd0,0x32,0xdc,0x2c,0xa2,0x2e,0x6f,0x74,0x4a,0xcc,0x79,0xee,0x40,0x48,0xe2,0x8a,0xff,0x72,0x66,0xcd,0x94,0xdb,0x3,0xd6,0xba,0x1e,0xac,0xa,0xaf,0xf3,0x45,0xae,0xc5,0xa9,0x9d,0x71,0x3d,0x56,0x4d,0x83,0x5c,0xa8,0xc1,0x6b,0xda,0x22,0x18,0xc0,0x96,0x53,0x19,0x81,0x31,0x23,0x46,0x7b,0x7a,0x44,0x0,0x52,0xc7,0x8e,0x25,0xa5,0xf5,0xfb,0xd3,0x68,0x5e,0x55,0xdd,0xa0,0xd7,0xe1,0x95,0xb8,0xc9,0xa3,0x9f,0xb0,0xca,0xe,0xc3,0x62,0x92,0x7c,0x5f,0xf,0x88,0x37,0xe7,0x2d,0xd5,0x14,0x54,0x8f,0xf9,0x1a,0x9e,0x41,0x4,0x99,0x51,0xce,0x2b,0x27,0x7d,0x28,0x5b,0xd4,0xe5,0xcb,0x1d,0xad,0x1,0xfe,0xb9,0x5,0xa6,0xa4,0xed,0x93,0x34,0x58,0xeb,0xab,0x69,0x1c,0x87,0x3c,0xb3,0x73,0x85,0xae,0xa8,0xa0,0x3d,0x91,0xca,0x4d,0xf2,0x6b,0x19,0x63,0x4f,0xd8,0x27,0x6,0x3b,0xb7,0x3,0x1f,0x67,0x7b,0xe4,0x1a,0xa1,0x46,0x5c,0x53,0x71,0x16,0xac,0xdc,0xdb,0x5a,0x3e,0xa5,0xbb,0xe3,0xcc,0xaa,0xc,0x62,0xda,0xd6,0x5b,0xd4,0x76,0x93,0xd,0x41,0xb0,0x2a,0xbc,0xb6,0x90,0xfe,0x39,0x13,0xf5,0xbd,0x49,0xc3,0xee,0xd1,0x3a,0xf0,0x1e,0x8e,0x0,0x60,0xea,0xfc,0x6e,0xfd,0xc5,0xa,0x2e,0x3c,0x4c,0x54,0xc4,0x75,0x65,0x42,0x21,0xe8,0xf4,0xc8,0xd0,0x15,0x3f,0x1c,0x5,0x8d,0xc6,0xcf,0xde,0x24,0x14,0x92,0x4b,0x40,0x8,0x98,0x33,0x2b,0x20,0x9e,0xdd,0x7c,0x6f,0x9d,0xc0,0xa7,0x52,0x9a,0x97,0xb4,0x48,0x17,0x86,0x8b,0x99,0xf3,0x12,0x37,0x59,0x9b,0x25,0xff,0xd7,0x72,0x44,0x9,0xa2,0xd9,0x89,0x2c,0x68,0xeb,0x7e,0x6a,0xf,0x56,0x57,0x35,0x7f,0x1d,0xad,0x34,0xe,0xba,0xec,0xed,0x84,0xf6,0x47,0x61,0x7a,0x70,0xaf,0xb1,0x85,0x11,0x5d,0x69,0xdf,0xe9,0x82,0x80,0x32,0x83,0x26,0x2f,0xf7,0x96,0xfa,0x4a,0x5e,0xb8,0xe1,0xce,0x64,0xd3,0xa6,0x55,0xe0,0x6c,0xc2,0x43,0x2,0x66,0x58,0x9f,0x10,0xa9,0x5f,0x45,0x87,0xab,0x30,0x18,0xbf,0xc7,0x74,0x8a,0x29,0xc1,0x88,0x2d,0x81,0x95,0xd2,0xc9,0xf8,0x31,0xe7,0x51,0xb,0x77,0x4,0x7d,0xb5,0x7,0xe2,0xb2,0x36,0x28,0x6d,0x78,0x38,0xd5,0xa3,0xcb,0x1b,0xf9,0x1,0x73,0x50,0xa4,0x23,0xef,0x22,0xbe,0x4e,0xb3,0x8f,0xe6,0x9c,0xb9,0xcd,0xe5,0x94,0xf1,0x79,0xfb,0x8c,0x61,0xa6,0x29,0xf,0xb5,0x23,0xde,0x2f,0x4e,0xa5,0x5c,0x71,0x22,0xd6,0x8c,0x6a,0x35,0x93,0x7c,0x53,0x3a,0x24,0xc5,0xa1,0xc,0x92,0x4b,0xe9,0x49,0xc4,0xfd,0x45,0x85,0x3e,0xe4,0x7b,0x80,0xf8,0x28,0x9c,0x43,0x44,0x89,0x33,0xcc,0xee,0xd9,0xc3,0xd2,0x6d,0xe,0x55,0x3f,0xa2,0x31,0x37,0x99,0xa4,0x47,0xb8,0xfc,0xd0,0xf4,0x86,0x88,0x19,0x2b,0xd7,0x5,0x8,0x38,0xcd,0x4,0xba,0xa8,0xc6,0x6c,0x8d,0x14,0x6,0x7,0xac,0xdf,0x97,0xd,0xd4,0xbb,0x8b,0x2,0x5f,0xe3,0xf0,0x1,0x42,0xb4,0xbf,0x57,0x4f,0x77,0x6b,0xdd,0xbe,0xea,0xfa,0x50,0x41,0x12,0x59,0x83,0x9a,0x8a,0xa0,0x63,0xf1,0xff,0x75,0x11,0x9f,0x6f,0x81,0xcb,0x5b,0xa3,0xd3,0x95,0xb1,0x62,0x5a,0x4c,0x39,0x51,0xfb,0x27,0x7e,0xd5,0xc1,0xf9,0xc7,0xdc,0x9d,0xf3,0x5d,0xca,0x7f,0x76,0x1d,0xf6,0x40,0x8e,0xc2,0x2e,0x1a,0x9,0x65,0xb0,0x68,0x1c,0xb9,0x1f,0xad,0x25,0x73,0xab,0x91,0x82,0x32,0xaa,0xe0,0xef,0x30,0xfe,0xe5,0x69,0xd8,0x72,0x1b,0x46,0x16,0x96,0x3d,0xed,0xdb,0x60,0x48,0xc9,0xc8,0xf5,0x90,0x74,0xe1,0xb3,0xf7,0x79,0x3,0x2c,0x10,0x21,0xd1,0x70,0xbd,0x64,0x13,0x6e,0xe6,0x7a,0xb,0x26,0x52,0x4a,0x3c,0xe7,0xa7,0xb7,0xf2,0x2d,0xa9,0x3b,0xbc,0xec,0xcf,0x66,0x9e,0x54,0x84,0xae,0x78,0x56,0x67,0xa,0x4d,0xb2,0x1e,0x98,0x7d,0xe2,0x2a,0xe8,0x9b,0xce,0x94,0x34,0xaf,0xda,0x18,0x36,0xc0,0x0,0x8f,0x5e,0x17,0x15,0xb6,0x58,0xeb,0x87,0x20,0x3e,0x98,0x77,0x58,0x31,0x2f,0xce,0xaa,0x7,0x99,0x40,0xe2,0x42,0xcf,0xf6,0x4e,0x6a,0xad,0x22,0x4,0xbe,0x28,0xd5,0x24,0x45,0xae,0x57,0x7a,0x29,0xdd,0x87,0x61,0xd9,0x66,0x5,0x5e,0x34,0xa9,0x3a,0x3c,0x92,0xaf,0x4c,0xb3,0xf7,0xdb,0xff,0x8d,0x8e,0x35,0xef,0x70,0x8b,0xf3,0x23,0x97,0x48,0x4f,0x82,0x38,0xc7,0xe5,0xd2,0xc8,0xc,0xa7,0xd4,0x9c,0x6,0xdf,0xb0,0x80,0x9,0x54,0xe8,0xfb,0xa,0x49,0xbf,0xb4,0x83,0x12,0x20,0xdc,0xe,0x3,0x33,0xc6,0xf,0xb1,0xa3,0xcd,0x67,0x86,0x1f,0xd,0x68,0xfa,0xf4,0x7e,0x1a,0x94,0x64,0x8a,0xc0,0x50,0xa8,0xd8,0x9e,0xba,0x69,0x51,0x5c,0x44,0x7c,0x60,0xd6,0xb5,0xe1,0xf1,0x5b,0x4a,0x19,0x52,0x88,0x91,0x81,0xab,0x7d,0x16,0xfd,0x4b,0x85,0xc9,0x25,0x11,0x2,0x6e,0xbb,0x63,0x17,0xb2,0x14,0xa6,0x47,0x32,0x5a,0xf0,0x2c,0x75,0xde,0xca,0xf2,0xcc,0xd7,0x96,0xf8,0x56,0xc1,0x74,0x4d,0x1d,0x9d,0x36,0xe6,0xd0,0x6b,0x43,0xc2,0xc3,0xfe,0x9b,0x7f,0xea,0xb8,0xfc,0x2e,0x78,0xa0,0x9a,0x89,0x39,0xa1,0xeb,0xe4,0x3b,0xf5,0xee,0x62,0xd3,0x79,0x10,0x41,0x37,0xec,0xac,0xbc,0xf9,0x26,0xa2,0x30,0xb7,0xe7,0xc4,0x6d,0x95,0x5f,0x8f,0x72,0x8,0x27,0x1b,0x2a,0xda,0x7b,0xb6,0x6f,0x18,0x65,0xed,0x71,0x0,0x2d,0x59,0x3f,0xa4,0xd1,0x13,0x3d,0xcb,0xb,0x84,0x55,0x1c,0x1e,0xbd,0x53,0xe0,0x8c,0x2b,0xa5,0x73,0x5d,0x6c,0x1,0x46,0xb9,0x15,0x93,0x76,0xe9,0x21,0xe3,0x90,0xc5,0x9f,0xc,0x21,0xd8,0x33,0x17,0xf1,0xab,0x5f,0x72,0x54,0xdb,0x1c,0x52,0xa3,0x5e,0xc8,0x94,0x36,0xef,0x71,0x38,0x80,0xb9,0x34,0x2e,0x1,0xee,0x48,0xdc,0xb8,0x59,0x47,0x4e,0xf4,0x39,0x3e,0xbe,0xa4,0x93,0xb1,0x6,0x99,0x43,0xf8,0xe1,0x55,0x85,0xfd,0xc5,0x3a,0xd9,0xe4,0xfb,0x89,0xad,0x81,0x28,0x73,0x10,0xaf,0x4a,0x4c,0xdf,0x42,0xbb,0xd5,0xc7,0x79,0x7b,0x69,0xf0,0x11,0xaa,0x56,0x64,0xf5,0xb0,0x45,0x75,0x78,0x8d,0x9e,0x22,0x7f,0xc2,0xc9,0x3f,0x7c,0xea,0xa2,0xd1,0x7a,0xf6,0xc6,0xa9,0x70,0x24,0x6f,0x3c,0x2d,0xdd,0xf7,0xe7,0xfe,0x16,0xa,0x32,0x2a,0x87,0x97,0xc3,0xa0,0xae,0xde,0x26,0xb6,0x27,0x1f,0xcc,0xe8,0x8,0x82,0x8c,0x1e,0xfc,0x12,0xe2,0x6c,0xe0,0xa1,0xba,0x84,0x2,0xb7,0x20,0x8e,0x86,0x2c,0x44,0x31,0xbc,0xa8,0x3,0x5a,0x15,0xcd,0x18,0x74,0xd0,0x62,0xc4,0x61,0x3d,0x8b,0x60,0xb,0x67,0x53,0xbf,0xf3,0x98,0x83,0x4d,0x92,0x66,0xf,0xa5,0x14,0xec,0xd6,0xe,0x58,0x9d,0xd7,0x4f,0xff,0xed,0x88,0xb5,0xb4,0x8a,0xce,0x9c,0x9,0x40,0xeb,0x6b,0x3b,0x35,0x1d,0xa6,0x90,0x9b,0x13,0x6e,0x19,0x2f,0x5b,0x76,0x7,0x6d,0x51,0x7e,0x4,0xc0,0xd,0xac,0x5c,0xb2,0x91,0xc1,0x46,0xf9,0x29,0xe3,0x1b,0xda,0x9a,0x41,0x37,0xd4,0x50,0x8f,0xca,0x57,0x9f,0x0,0xe5,0xe9,0xb3,0xe6,0x95,0x1a,0x2b,0x5,0xd3,0x63,0xcf,0x30,0x77,0xcb,0x68,0x6a,0x23,0x5d,0xfa,0x96,0x25,0x65,0xa7,0xd2,0x49,0xf2,0x7d,0xbd,0x4b,0x19,0x1f,0x17,0x8a,0x26,0x7d,0xfa,0x45,0xdc,0xae,0xd4,0xf8,0x6f,0x90,0xb1,0x8c,0x0,0xb4,0xa8,0xd0,0xcc,0x53,0xad,0x16,0xf1,0xeb,0xe4,0xc6,0xa1,0x1b,0x6b,0x6c,0xed,0x89,0x12,0xc,0x54,0x7b,0x1d,0xbb,0xd5,0x6d,0x61,0xec,0x63,0xc1,0x24,0xba,0xf6,0x7,0x9d,0xb,0x1,0x27,0x49,0x8e,0xa4,0x42,0xa,0xfe,0x74,0x59,0x66,0x8d,0x47,0xa9,0x39,0xb7,0xd7,0x5d,0x4b,0xd9,0x4a,0x72,0xbd,0x99,0x8b,0xfb,0xe3,0x73,0xc2,0xd2,0xf5,0x96,0x5f,0x43,0x7f,0x67,0xa2,0x88,0xab,0xb2,0x3a,0x71,0x78,0x69,0x93,0xa3,0x25,0xfc,0xf7,0xbf,0x2f,0x84,0x9c,0x97,0x29,0x6a,0xcb,0xd8,0x2a,0x77,0x10,0xe5,0x2d,0x20,0x3,0xff,0xa0,0x31,0x3c,0x2e,0x44,0xa5,0x80,0xee,0x2c,0x92,0x48,0x60,0xc5,0xf3,0xbe,0x15,0x6e,0x3e,0x9b,0xdf,0x5c,0xc9,0xdd,0xb8,0xe1,0xe0,0x82,0xc8,0xaa,0x1a,0x83,0xb9,0xd,0x5b,0x5a,0x33,0x41,0xf0,0xd6,0xcd,0xc7,0x18,0x6,0x32,0xa6,0xea,0xde,0x68,0x5e,0x35,0x37,0x85,0x34,0x91,0x98,0x40,0x21,0x4d,0xfd,0xe9,0xf,0x56,0x79,0xd3,0x64,0x11,0xe2,0x57,0xdb,0x75,0xf4,0xb5,0xd1,0xef,0x28,0xa7,0x1e,0xe8,0xf2,0x30,0x1c,0x87,0xaf,0x8,0x70,0xc3,0x3d,0x9e,0x76,0x3f,0x9a,0x36,0x22,0x65,0x7e,0x4f,0x86,0x50,0xe6,0xbc,0xc0,0xb3,0xca,0x2,0xb0,0x55,0x5,0x81,0x9f,0xda,0xcf,0x8f,0x62,0x14,0x7c,0xac,0x4e,0xb6,0xc4,0xe7,0x13,0x94,0x58,0x95,0x9,0xf9,0x4,0x38,0x51,0x2b,0xe,0x7a,0x52,0x23,0x46,0xce,0x4c,0x3b,0xcf,0x8,0x87,0xa1,0x1b,0x8d,0x70,0x81,0xe0,0xb,0xf2,0xdf,0x8c,0x78,0x22,0xc4,0x9b,0x3d,0xd2,0xfd,0x94,0x8a,0x6b,0xf,0xa2,0x3c,0xe5,0x47,0xe7,0x6a,0x53,0xeb,0x2b,0x90,0x4a,0xd5,0x2e,0x56,0x86,0x32,0xed,0xea,0x27,0x9d,0x62,0x40,0x77,0x6d,0x7c,0xc3,0xa0,0xfb,0x91,0xc,0x9f,0x99,0x37,0xa,0xe9,0x16,0x52,0x7e,0x5a,0x28,0x26,0xb7,0x85,0x79,0xab,0xa6,0x96,0x63,0xaa,0x14,0x6,0x68,0xc2,0x23,0xba,0xa8,0xa9,0x2,0x71,0x39,0xa3,0x7a,0x15,0x25,0xac,0xf1,0x4d,0x5e,0xaf,0xec,0x1a,0x11,0xf9,0xe1,0xd9,0xc5,0x73,0x10,0x44,0x54,0xfe,0xef,0xbc,0xf7,0x2d,0x34,0x24,0xe,0xcd,0x5f,0x51,0xdb,0xbf,0x31,0xc1,0x2f,0x65,0xf5,0xd,0x7d,0x3b,0x1f,0xcc,0xf4,0xe2,0x97,0xff,0x55,0x89,0xd0,0x7b,0x6f,0x57,0x69,0x72,0x33,0x5d,0xf3,0x64,0xd1,0xd8,0xb3,0x58,0xee,0x20,0x6c,0x80,0xb4,0xa7,0xcb,0x1e,0xc6,0xb2,0x17,0xb1,0x3,0x8b,0xdd,0x5,0x3f,0x2c,0x9c,0x4,0x4e,0x41,0x9e,0x50,0x4b,0xc7,0x76,0xdc,0xb5,0xe8,0xb8,0x38,0x93,0x43,0x75,0xce,0xe6,0x67,0x66,0x5b,0x3e,0xda,0x4f,0x1d,0x59,0xd7,0xad,0x82,0xbe,0x8f,0x7f,0xde,0x13,0xca,0xbd,0xc0,0x48,0xd4,0xa5,0x88,0xfc,0xe4,0x92,0x49,0x9,0x19,0x5c,0x83,0x7,0x95,0x12,0x42,0x61,0xc8,0x30,0xfa,0x2a,0x0,0xd6,0xf8,0xc9,0xa4,0xe3,0x1c,0xb0,0x36,0xd3,0x4c,0x84,0x46,0x35,0x60,0x3a,0x9a,0x1,0x74,0xb6,0x98,0x6e,0xae,0x21,0xf0,0xb9,0xbb,0x18,0xf6,0x45,0x29,0x8e,0xaf,0x9,0xe6,0xc9,0xa0,0xbe,0x5f,0x3b,0x96,0x8,0xd1,0x73,0xd3,0x5e,0x67,0xdf,0xfb,0x3c,0xb3,0x95,0x2f,0xb9,0x44,0xb5,0xd4,0x3f,0xc6,0xeb,0xb8,0x4c,0x16,0xf0,0x48,0xf7,0x94,0xcf,0xa5,0x38,0xab,0xad,0x3,0x3e,0xdd,0x22,0x66,0x4a,0x6e,0x1c,0x1f,0xa4,0x7e,0xe1,0x1a,0x62,0xb2,0x6,0xd9,0xde,0x13,0xa9,0x56,0x74,0x43,0x59,0x9d,0x36,0x45,0xd,0x97,0x4e,0x21,0x11,0x98,0xc5,0x79,0x6a,0x9b,0xd8,0x2e,0x25,0x12,0x83,0xb1,0x4d,0x9f,0x92,0xa2,0x57,0x9e,0x20,0x32,0x5c,0xf6,0x17,0x8e,0x9c,0xf9,0x6b,0x65,0xef,0x8b,0x5,0xf5,0x1b,0x51,0xc1,0x39,0x49,0xf,0x2b,0xf8,0xc0,0xcd,0xd5,0xed,0xf1,0x47,0x24,0x70,0x60,0xca,0xdb,0x88,0xc3,0x19,0x0,0x10,0x3a,0xec,0x87,0x6c,0xda,0x14,0x58,0xb4,0x80,0x93,0xff,0x2a,0xf2,0x86,0x23,0x85,0x37,0xd6,0xa3,0xcb,0x61,0xbd,0xe4,0x4f,0x5b,0x63,0x5d,0x46,0x7,0x69,0xc7,0x50,0xe5,0xdc,0x8c,0xc,0xa7,0x77,0x41,0xfa,0xd2,0x53,0x52,0x6f,0xa,0xee,0x7b,0x29,0x6d,0xbf,0xe9,0x31,0xb,0x18,0xa8,0x30,0x7a,0x75,0xaa,0x64,0x7f,0xf3,0x42,0xe8,0x81,0xd0,0xa6,0x7d,0x3d,0x2d,0x68,0xb7,0x33,0xa1,0x26,0x76,0x55,0xfc,0x4,0xce,0x1e,0xe3,0x99,0xb6,0x8a,0xbb,0x4b,0xea,0x27,0xfe,0x89,0xf4,0x7c,0xe0,0x91,0xbc,0xc8,0xae,0x35,0x40,0x82,0xac,0x5a,0x9a,0x15,0xc4,0x8d,0x8f,0x2c,0xc2,0x71,0x1d,0xba,0x34,0xe2,0xcc,0xfd,0x90,0xd7,0x28,0x84,0x2,0xe7,0x78,0xb0,0x72,0x1,0x54,0xe,0xe5,0xc8,0x31,0xda,0xfe,0x18,0x42,0xb6,0x9b,0xbd,0x32,0xf5,0xbb,0x4a,0xb7,0x21,0x7d,0xdf,0x6,0x98,0xd1,0x69,0x50,0xdd,0xc7,0xe8,0x7,0xa1,0x35,0x51,0xb0,0xae,0xa7,0x1d,0xd0,0xd7,0x57,0x4d,0x7a,0x58,0xef,0x70,0xaa,0x11,0x8,0xbc,0x6c,0x14,0x2c,0xd3,0x30,0xd,0x12,0x60,0x44,0x68,0xc1,0x9a,0xf9,0x46,0xa3,0xa5,0x36,0xab,0x52,0x3c,0x2e,0x90,0x92,0x80,0x19,0xf8,0x43,0xbf,0x8d,0x1c,0x59,0xac,0x9c,0x91,0x64,0x77,0xcb,0x96,0x2b,0x20,0xd6,0x95,0x3,0x4b,0x38,0x93,0x1f,0x2f,0x40,0x99,0xcd,0x86,0xd5,0xc4,0x34,0x1e,0xe,0x17,0xff,0xe3,0xdb,0xc3,0x6e,0x7e,0x2a,0x49,0x47,0x37,0xcf,0x5f,0xce,0xf6,0x25,0x1,0xe1,0x6b,0x65,0xf7,0x15,0xfb,0xb,0x85,0x9,0x48,0x53,0x6d,0xeb,0x5e,0xc9,0x67,0x6f,0xc5,0xad,0xd8,0x55,0x41,0xea,0xb3,0xfc,0x24,0xf1,0x9d,0x39,0x8b,0x2d,0x88,0xd4,0x62,0x89,0xe2,0x8e,0xba,0x56,0x1a,0x71,0x6a,0xa4,0x7b,0x8f,0xe6,0x4c,0xfd,0x5,0x3f,0xe7,0xb1,0x74,0x3e,0xa6,0x16,0x4,0x61,0x5c,0x5d,0x63,0x27,0x75,0xe0,0xa9,0x2,0x82,0xd2,0xdc,0xf4,0x4f,0x79,0x72,0xfa,0x87,0xf0,0xc6,0xb2,0x9f,0xee,0x84,0xb8,0x97,0xed,0x29,0xe4,0x45,0xb5,0x5b,0x78,0x28,0xaf,0x10,0xc0,0xa,0xf2,0x33,0x73,0xa8,0xde,0x3d,0xb9,0x66,0x23,0xbe,0x76,0xe9,0xc,0x0,0x5a,0xf,0x7c,0xf3,0xc2,0xec,0x3a,0x8a,0x26,0xd9,0x9e,0x22,0x81,0x83,0xca,0xb4,0x13,0x7f,0xcc,0x8c,0x4e,0x3b,0xa0,0x1b,0x94,0x54,0xa2,0x8d,0x8b,0x83,0x1e,0xb2,0xe9,0x6e,0xd1,0x48,0x3a,0x40,0x6c,0xfb,0x4,0x25,0x18,0x94,0x20,0x3c,0x44,0x58,0xc7,0x39,0x82,0x65,0x7f,0x70,0x52,0x35,0x8f,0xff,0xf8,0x79,0x1d,0x86,0x98,0xc0,0xef,0x89,0x2f,0x41,0xf9,0xf5,0x78,0xf7,0x55,0xb0,0x2e,0x62,0x93,0x9,0x9f,0x95,0xb3,0xdd,0x1a,0x30,0xd6,0x9e,0x6a,0xe0,0xcd,0xf2,0x19,0xd3,0x3d,0xad,0x23,0x43,0xc9,0xdf,0x4d,0xde,0xe6,0x29,0xd,0x1f,0x6f,0x77,0xe7,0x56,0x46,0x61,0x2,0xcb,0xd7,0xeb,0xf3,0x36,0x1c,0x3f,0x26,0xae,0xe5,0xec,0xfd,0x7,0x37,0xb1,0x68,0x63,0x2b,0xbb,0x10,0x8,0x3,0xbd,0xfe,0x5f,0x4c,0xbe,0xe3,0x84,0x71,0xb9,0xb4,0x97,0x6b,0x34,0xa5,0xa8,0xba,0xd0,0x31,0x14,0x7a,0xb8,0x6,0xdc,0xf4,0x51,0x67,0x2a,0x81,0xfa,0xaa,0xf,0x4b,0xc8,0x5d,0x49,0x2c,0x75,0x74,0x16,0x5c,0x3e,0x8e,0x17,0x2d,0x99,0xcf,0xce,0xa7,0xd5,0x64,0x42,0x59,0x53,0x8c,0x92,0xa6,0x32,0x7e,0x4a,0xfc,0xca,0xa1,0xa3,0x11,0xa0,0x5,0xc,0xd4,0xb5,0xd9,0x69,0x7d,0x9b,0xc2,0xed,0x47,0xf0,0x85,0x76,0xc3,0x4f,0xe1,0x60,0x21,0x45,0x7b,0xbc,0x33,0x8a,0x7c,0x66,0xa4,0x88,0x13,0x3b,0x9c,0xe4,0x57,0xa9,0xa,0xe2,0xab,0xe,0xa2,0xb6,0xf1,0xea,0xdb,0x12,0xc4,0x72,0x28,0x54,0x27,0x5e,0x96,0x24,0xc1,0x91,0x15,0xb,0x4e,0x5b,0x1b,0xf6,0x80,0xe8,0x38,0xda,0x22,0x50,0x73,0x87,0x0,0xcc,0x1,0x9d,0x6d,0x90,0xac,0xc5,0xbf,0x9a,0xee,0xc6,0xb7,0xd2,0x5a,0xd8,0xaf,0x84,0x43,0xcc,0xea,0x50,0xc6,0x3b,0xca,0xab,0x40,0xb9,0x94,0xc7,0x33,0x69,0x8f,0xd0,0x76,0x99,0xb6,0xdf,0xc1,0x20,0x44,0xe9,0x77,0xae,0xc,0xac,0x21,0x18,0xa0,0x60,0xdb,0x1,0x9e,0x65,0x1d,0xcd,0x79,0xa6,0xa1,0x6c,0xd6,0x29,0xb,0x3c,0x26,0x37,0x88,0xeb,0xb0,0xda,0x47,0xd4,0xd2,0x7c,0x41,0xa2,0x5d,0x19,0x35,0x11,0x63,0x6d,0xfc,0xce,0x32,0xe0,0xed,0xdd,0x28,0xe1,0x5f,0x4d,0x23,0x89,0x68,0xf1,0xe3,0xe2,0x49,0x3a,0x72,0xe8,0x31,0x5e,0x6e,0xe7,0xba,0x6,0x15,0xe4,0xa7,0x51,0x5a,0xb2,0xaa,0x92,0x8e,0x38,0x5b,0xf,0x1f,0xb5,0xa4,0xf7,0xbc,0x66,0x7f,0x6f,0x45,0x86,0x14,0x1a,0x90,0xf4,0x7a,0x8a,0x64,0x2e,0xbe,0x46,0x36,0x70,0x54,0x87,0xbf,0xa9,0xdc,0xb4,0x1e,0xc2,0x9b,0x30,0x24,0x1c,0x22,0x39,0x78,0x16,0xb8,0x2f,0x9a,0x93,0xf8,0x13,0xa5,0x6b,0x27,0xcb,0xff,0xec,0x80,0x55,0x8d,0xf9,0x5c,0xfa,0x48,0xc0,0x96,0x4e,0x74,0x67,0xd7,0x4f,0x5,0xa,0xd5,0x1b,0x0,0x8c,0x3d,0x97,0xfe,0xa3,0xf3,0x73,0xd8,0x8,0x3e,0x85,0xad,0x2c,0x2d,0x10,0x75,0x91,0x4,0x56,0x12,0x9c,0xe6,0xc9,0xf5,0xc4,0x34,0x95,0x58,0x81,0xf6,0x8b,0x3,0x9f,0xee,0xc3,0xb7,0xaf,0xd9,0x2,0x42,0x52,0x17,0xc8,0x4c,0xde,0x59,0x9,0x2a,0x83,0x7b,0xb1,0x61,0x4b,0x9d,0xb3,0x82,0xef,0xa8,0x57,0xfb,0x7d,0x98,0x7,0xcf,0xd,0x7e,0x2b,0x71,0xd1,0x4a,0x3f,0xfd,0xd3,0x25,0xe5,0x6a,0xbb,0xf2,0xf0,0x53,0xbd,0xe,0x62,0xc5,0xda,0x7c,0x93,0xbc,0xd5,0xcb,0x2a,0x4e,0xe3,0x7d,0xa4,0x6,0xa6,0x2b,0x12,0xaa,0x8e,0x49,0xc6,0xe0,0x5a,0xcc,0x31,0xc0,0xa1,0x4a,0xb3,0x9e,0xcd,0x39,0x63,0x85,0x3d,0x82,0xe1,0xba,0xd0,0x4d,0xde,0xd8,0x76,0x4b,0xa8,0x57,0x13,0x3f,0x1b,0x69,0x6a,0xd1,0xb,0x94,0x6f,0x17,0xc7,0x73,0xac,0xab,0x66,0xdc,0x23,0x1,0x36,0x2c,0xe8,0x43,0x30,0x78,0xe2,0x3b,0x54,0x64,0xed,0xb0,0xc,0x1f,0xee,0xad,0x5b,0x50,0x67,0xf6,0xc4,0x38,0xea,0xe7,0xd7,0x22,0xeb,0x55,0x47,0x29,0x83,0x62,0xfb,0xe9,0x8c,0x1e,0x10,0x9a,0xfe,0x70,0x80,0x6e,0x24,0xb4,0x4c,0x3c,0x7a,0x5e,0x8d,0xb5,0xb8,0xa0,0x98,0x84,0x32,0x51,0x5,0x15,0xbf,0xae,0xfd,0xb6,0x6c,0x75,0x65,0x4f,0x99,0xf2,0x19,0xaf,0x61,0x2d,0xc1,0xf5,0xe6,0x8a,0x5f,0x87,0xf3,0x56,0xf0,0x42,0xa3,0xd6,0xbe,0x14,0xc8,0x91,0x3a,0x2e,0x16,0x28,0x33,0x72,0x1c,0xb2,0x25,0x90,0xa9,0xf9,0x79,0xd2,0x2,0x34,0x8f,0xa7,0x26,0x27,0x1a,0x7f,0x9b,0xe,0x5c,0x18,0xca,0x9c,0x44,0x7e,0x6d,0xdd,0x45,0xf,0x0,0xdf,0x11,0xa,0x86,0x37,0x9d,0xf4,0xa5,0xd3,0x8,0x48,0x58,0x1d,0xc2,0x46,0xd4,0x53,0x3,0x20,0x89,0x71,0xbb,0x6b,0x96,0xec,0xc3,0xff,0xce,0x3e,0x9f,0x52,0x8b,0xfc,0x81,0x9,0x95,0xe4,0xc9,0xbd,0xdb,0x40,0x35,0xf7,0xd9,0x2f,0xef,0x60,0xb1,0xf8,0xfa,0x59,0xb7,0x4,0x68,0xcf,0x41,0x97,0xb9,0x88,0xe5,0xa2,0x5d,0xf1,0x77,0x92,0xd,0xc5,0x7,0x74,0x21,0x7b,0x3f,0x12,0xeb,0x0,0x24,0xc2,0x98,0x6c,0x41,0x67,0xe8,0x2f,0x61,0x90,0x6d,0xfb,0xa7,0x5,0xdc,0x42,0xb,0xb3,0x8a,0x7,0x1d,0x32,0xdd,0x7b,0xef,0x8b,0x6a,0x74,0x7d,0xc7,0xa,0xd,0x8d,0x97,0xa0,0x82,0x35,0xaa,0x70,0xcb,0xd2,0x66,0xb6,0xce,0xf6,0x9,0xea,0xd7,0xc8,0xba,0x9e,0xb2,0x1b,0x40,0x23,0x9c,0x79,0x7f,0xec,0x71,0x88,0xe6,0xf4,0x4a,0x48,0x5a,0xc3,0x22,0x99,0x65,0x57,0xc6,0x83,0x76,0x46,0x4b,0xbe,0xad,0x11,0x4c,0xf1,0xfa,0xc,0x4f,0xd9,0x91,0xe2,0x49,0xc5,0xf5,0x9a,0x43,0x17,0x5c,0xf,0x1e,0xee,0xc4,0xd4,0xcd,0x25,0x39,0x1,0x19,0xb4,0xa4,0xf0,0x93,0x9d,0xed,0x15,0x85,0x14,0x2c,0xff,0xdb,0x3b,0xb1,0xbf,0x2d,0xcf,0x21,0xd1,0x5f,0xd3,0x92,0x89,0xb7,0x31,0x84,0x13,0xbd,0xb5,0x1f,0x77,0x2,0x8f,0x9b,0x30,0x69,0x26,0xfe,0x2b,0x47,0xe3,0x51,0xf7,0x52,0xe,0xb8,0x53,0x38,0x54,0x60,0x8c,0xc0,0xab,0xb0,0x7e,0xa1,0x55,0x3c,0x96,0x27,0xdf,0xe5,0x3d,0x6b,0xae,0xe4,0x7c,0xcc,0xde,0xbb,0x86,0x87,0xb9,0xfd,0xaf,0x3a,0x73,0xd8,0x58,0x8,0x6,0x2e,0x95,0xa3,0xa8,0x20,0x5d,0x2a,0x1c,0x68,0x45,0x34,0x5e,0x62,0x4d,0x37,0xf3,0x3e,0x9f,0x6f,0x81,0xa2,0xf2,0x75,0xca,0x1a,0xd0,0x28,0xe9,0xa9,0x72,0x4,0xe7,0x63,0xbc,0xf9,0x64,0xac,0x33,0xd6,0xda,0x80,0xd5,0xa6,0x29,0x18,0x36,0xe0,0x50,0xfc,0x3,0x44,0xf8,0x5b,0x59,0x10,0x6e,0xc9,0xa5,0x16,0x56,0x94,0xe1,0x7a,0xc1,0x4e,0x8e,0x78,0xe6,0xe0,0xe8,0x75,0xd9,0x82,0x5,0xba,0x23,0x51,0x2b,0x7,0x90,0x6f,0x4e,0x73,0xff,0x4b,0x57,0x2f,0x33,0xac,0x52,0xe9,0xe,0x14,0x1b,0x39,0x5e,0xe4,0x94,0x93,0x12,0x76,0xed,0xf3,0xab,0x84,0xe2,0x44,0x2a,0x92,0x9e,0x13,0x9c,0x3e,0xdb,0x45,0x9,0xf8,0x62,0xf4,0xfe,0xd8,0xb6,0x71,0x5b,0xbd,0xf5,0x1,0x8b,0xa6,0x99,0x72,0xb8,0x56,0xc6,0x48,0x28,0xa2,0xb4,0x26,0xb5,0x8d,0x42,0x66,0x74,0x4,0x1c,0x8c,0x3d,0x2d,0xa,0x69,0xa0,0xbc,0x80,0x98,0x5d,0x77,0x54,0x4d,0xc5,0x8e,0x87,0x96,0x6c,0x5c,0xda,0x3,0x8,0x40,0xd0,0x7b,0x63,0x68,0xd6,0x95,0x34,0x27,0xd5,0x88,0xef,0x1a,0xd2,0xdf,0xfc,0x0,0x5f,0xce,0xc3,0xd1,0xbb,0x5a,0x7f,0x11,0xd3,0x6d,0xb7,0x9f,0x3a,0xc,0x41,0xea,0x91,0xc1,0x64,0x20,0xa3,0x36,0x22,0x47,0x1e,0x1f,0x7d,0x37,0x55,0xe5,0x7c,0x46,0xf2,0xa4,0xa5,0xcc,0xbe,0xf,0x29,0x32,0x38,0xe7,0xf9,0xcd,0x59,0x15,0x21,0x97,0xa1,0xca,0xc8,0x7a,0xcb,0x6e,0x67,0xbf,0xde,0xb2,0x2,0x16,0xf0,0xa9,0x86,0x2c,0x9b,0xee,0x1d,0xa8,0x24,0x8a,0xb,0x4a,0x2e,0x10,0xd7,0x58,0xe1,0x17,0xd,0xcf,0xe3,0x78,0x50,0xf7,0x8f,0x3c,0xc2,0x61,0x89,0xc0,0x65,0xc9,0xdd,0x9a,0x81,0xb0,0x79,0xaf,0x19,0x43,0x3f,0x4c,0x35,0xfd,0x4f,0xaa,0xfa,0x7e,0x60,0x25,0x30,0x70,0x9d,0xeb,0x83,0x53,0xb1,0x49,0x3b,0x18,0xec,0x6b,0xa7,0x6a,0xf6,0x6,0xfb,0xc7,0xae,0xd4,0xf1,0x85,0xad,0xdc,0xb9,0x31,0xb3,0xc4,0x41,0x86,0x9,0x2f,0x95,0x3,0xfe,0xf,0x6e,0x85,0x7c,0x51,0x2,0xf6,0xac,0x4a,0x15,0xb3,0x5c,0x73,0x1a,0x4,0xe5,0x81,0x2c,0xb2,0x6b,0xc9,0x69,0xe4,0xdd,0x65,0xa5,0x1e,0xc4,0x5b,0xa0,0xd8,0x8,0xbc,0x63,0x64,0xa9,0x13,0xec,0xce,0xf9,0xe3,0xf2,0x4d,0x2e,0x75,0x1f,0x82,0x11,0x17,0xb9,0x84,0x67,0x98,0xdc,0xf0,0xd4,0xa6,0xa8,0x39,0xb,0xf7,0x25,0x28,0x18,0xed,0x24,0x9a,0x88,0xe6,0x4c,0xad,0x34,0x26,0x27,0x8c,0xff,0xb7,0x2d,0xf4,0x9b,0xab,0x22,0x7f,0xc3,0xd0,0x21,0x62,0x94,0x9f,0x77,0x6f,0x57,0x4b,0xfd,0x9e,0xca,0xda,0x70,0x61,0x32,0x79,0xa3,0xba,0xaa,0x80,0x43,0xd1,0xdf,0x55,0x31,0xbf,0x4f,0xa1,0xeb,0x7b,0x83,0xf3,0xb5,0x91,0x42,0x7a,0x6c,0x19,0x71,0xdb,0x7,0x5e,0xf5,0xe1,0xd9,0xe7,0xfc,0xbd,0xd3,0x7d,0xea,0x5f,0x56,0x3d,0xd6,0x60,0xae,0xe2,0xe,0x3a,0x29,0x45,0x90,0x48,0x3c,0x99,0x3f,0x8d,0x5,0x53,0x8b,0xb1,0xa2,0x12,0x8a,0xc0,0xcf,0x10,0xde,0xc5,0x49,0xf8,0x52,0x3b,0x66,0x36,0xb6,0x1d,0xcd,0xfb,0x40,0x68,0xe9,0xe8,0xd5,0xb0,0x54,0xc1,0x93,0xd7,0x59,0x23,0xc,0x30,0x1,0xf1,0x50,0x9d,0x44,0x33,0x4e,0xc6,0x5a,0x2b,0x6,0x72,0x6a,0x1c,0xc7,0x87,0x97,0xd2,0xd,0x89,0x1b,0x9c,0xcc,0xef,0x46,0xbe,0x74,0xa4,0x8e,0x58,0x76,0x47,0x2a,0x6d,0x92,0x3e,0xb8,0x5d,0xc2,0xa,0xc8,0xbb,0xee,0xb4,0x14,0x8f,0xfa,0x38,0x16,0xe0,0x20,0xaf,0x7e,0x37,0x35,0x96,0x78,0xcb,0xa7,0x0,0x6d,0xcb,0x24,0xb,0x62,0x7c,0x9d,0xf9,0x54,0xca,0x13,0xb1,0x11,0x9c,0xa5,0x1d,0x39,0xfe,0x71,0x57,0xed,0x7b,0x86,0x77,0x16,0xfd,0x4,0x29,0x7a,0x8e,0xd4,0x32,0x8a,0x35,0x56,0xd,0x67,0xfa,0x69,0x6f,0xc1,0xfc,0x1f,0xe0,0xa4,0x88,0xac,0xde,0xdd,0x66,0xbc,0x23,0xd8,0xa0,0x70,0xc4,0x1b,0x1c,0xd1,0x6b,0x94,0xb6,0x81,0x9b,0x5f,0xf4,0x87,0xcf,0x55,0x8c,0xe3,0xd3,0x5a,0x7,0xbb,0xa8,0x59,0x1a,0xec,0xe7,0xd0,0x41,0x73,0x8f,0x5d,0x50,0x60,0x95,0x5c,0xe2,0xf0,0x9e,0x34,0xd5,0x4c,0x5e,0x3b,0xa9,0xa7,0x2d,0x49,0xc7,0x37,0xd9,0x93,0x3,0xfb,0x8b,0xcd,0xe9,0x3a,0x2,0xf,0x17,0x2f,0x33,0x85,0xe6,0xb2,0xa2,0x8,0x19,0x4a,0x1,0xdb,0xc2,0xd2,0xf8,0x2e,0x45,0xae,0x18,0xd6,0x9a,0x76,0x42,0x51,0x3d,0xe8,0x30,0x44,0xe1,0x47,0xf5,0x14,0x61,0x9,0xa3,0x7f,0x26,0x8d,0x99,0xa1,0x9f,0x84,0xc5,0xab,0x5,0x92,0x27,0x1e,0x4e,0xce,0x65,0xb5,0x83,0x38,0x10,0x91,0x90,0xad,0xc8,0x2c,0xb9,0xeb,0xaf,0x7d,0x2b,0xf3,0xc9,0xda,0x6a,0xf2,0xb8,0xb7,0x68,0xa6,0xbd,0x31,0x80,0x2a,0x43,0x12,0x64,0xbf,0xff,0xef,0xaa,0x75,0xf1,0x63,0xe4,0xb4,0x97,0x3e,0xc6,0xc,0xdc,0x21,0x5b,0x74,0x48,0x79,0x89,0x28,0xe5,0x3c,0x4b,0x36,0xbe,0x22,0x53,0x7e,0xa,0x6c,0xf7,0x82,0x40,0x6e,0x98,0x58,0xd7,0x6,0x4f,0x4d,0xee,0x0,0xb3,0xdf,0x78,0xf6,0x20,0xe,0x3f,0x52,0x15,0xea,0x46,0xc0,0x25,0xba,0x72,0xb0,0xc3,0x96,0xcc,0xb8,0x95,0x6c,0x87,0xa3,0x45,0x1f,0xeb,0xc6,0xe0,0x6f,0xa8,0xe6,0x17,0xea,0x7c,0x20,0x82,0x5b,0xc5,0x8c,0x34,0xd,0x80,0x9a,0xb5,0x5a,0xfc,0x68,0xc,0xed,0xf3,0xfa,0x40,0x8d,0x8a,0xa,0x10,0x27,0x5,0xb2,0x2d,0xf7,0x4c,0x55,0xe1,0x31,0x49,0x71,0x8e,0x6d,0x50,0x4f,0x3d,0x19,0x35,0x9c,0xc7,0xa4,0x1b,0xfe,0xf8,0x6b,0xf6,0xf,0x61,0x73,0xcd,0xcf,0xdd,0x44,0xa5,0x1e,0xe2,0xd0,0x41,0x4,0xf1,0xc1,0xcc,0x39,0x2a,0x96,0xcb,0x76,0x7d,0x8b,0xc8,0x5e,0x16,0x65,0xce,0x42,0x72,0x1d,0xc4,0x90,0xdb,0x88,0x99,0x69,0x43,0x53,0x4a,0xa2,0xbe,0x86,0x9e,0x33,0x23,0x77,0x14,0x1a,0x6a,0x92,0x2,0x93,0xab,0x78,0x5c,0xbc,0x36,0x38,0xaa,0x48,0xa6,0x56,0xd8,0x54,0x15,0xe,0x30,0xb6,0x3,0x94,0x3a,0x32,0x98,0xf0,0x85,0x8,0x1c,0xb7,0xee,0xa1,0x79,0xac,0xc0,0x64,0xd6,0x70,0xd5,0x89,0x3f,0xd4,0xbf,0xd3,0xe7,0xb,0x47,0x2c,0x37,0xf9,0x26,0xd2,0xbb,0x11,0xa0,0x58,0x62,0xba,0xec,0x29,0x63,0xfb,0x4b,0x59,0x3c,0x1,0x0,0x3e,0x7a,0x28,0xbd,0xf4,0x5f,0xdf,0x8f,0x81,0xa9,0x12,0x24,0x2f,0xa7,0xda,0xad,0x9b,0xef,0xc2,0xb3,0xd9,0xe5,0xca,0xb0,0x74,0xb9,0x18,0xe8,0x6,0x25,0x75,0xf2,0x4d,0x9d,0x57,0xaf,0x6e,0x2e,0xf5,0x83,0x60,0xe4,0x3b,0x7e,0xe3,0x2b,0xb4,0x51,0x5d,0x7,0x52,0x21,0xae,0x9f,0xb1,0x67,0xd7,0x7b,0x84,0xc3,0x7f,0xdc,0xde,0x97,0xe9,0x4e,0x22,0x91,0xd1,0x13,0x66,0xfd,0x46,0xc9,0x9,0xff,0x76,0x70,0x78,0xe5,0x49,0x12,0x95,0x2a,0xb3,0xc1,0xbb,0x97,0x0,0xff,0xde,0xe3,0x6f,0xdb,0xc7,0xbf,0xa3,0x3c,0xc2,0x79,0x9e,0x84,0x8b,0xa9,0xce,0x74,0x4,0x3,0x82,0xe6,0x7d,0x63,0x3b,0x14,0x72,0xd4,0xba,0x2,0xe,0x83,0xc,0xae,0x4b,0xd5,0x99,0x68,0xf2,0x64,0x6e,0x48,0x26,0xe1,0xcb,0x2d,0x65,0x91,0x1b,0x36,0x9,0xe2,0x28,0xc6,0x56,0xd8,0xb8,0x32,0x24,0xb6,0x25,0x1d,0xd2,0xf6,0xe4,0x94,0x8c,0x1c,0xad,0xbd,0x9a,0xf9,0x30,0x2c,0x10,0x8,0xcd,0xe7,0xc4,0xdd,0x55,0x1e,0x17,0x6,0xfc,0xcc,0x4a,0x93,0x98,0xd0,0x40,0xeb,0xf3,0xf8,0x46,0x5,0xa4,0xb7,0x45,0x18,0x7f,0x8a,0x42,0x4f,0x6c,0x90,0xcf,0x5e,0x53,0x41,0x2b,0xca,0xef,0x81,0x43,0xfd,0x27,0xf,0xaa,0x9c,0xd1,0x7a,0x1,0x51,0xf4,0xb0,0x33,0xa6,0xb2,0xd7,0x8e,0x8f,0xed,0xa7,0xc5,0x75,0xec,0xd6,0x62,0x34,0x35,0x5c,0x2e,0x9f,0xb9,0xa2,0xa8,0x77,0x69,0x5d,0xc9,0x85,0xb1,0x7,0x31,0x5a,0x58,0xea,0x5b,0xfe,0xf7,0x2f,0x4e,0x22,0x92,0x86,0x60,0x39,0x16,0xbc,0xb,0x7e,0x8d,0x38,0xb4,0x1a,0x9b,0xda,0xbe,0x80,0x47,0xc8,0x71,0x87,0x9d,0x5f,0x73,0xe8,0xc0,0x67,0x1f,0xac,0x52,0xf1,0x19,0x50,0xf5,0x59,0x4d,0xa,0x11,0x20,0xe9,0x3f,0x89,0xd3,0xaf,0xdc,0xa5,0x6d,0xdf,0x3a,0x6a,0xee,0xf0,0xb5,0xa0,0xe0,0xd,0x7b,0x13,0xc3,0x21,0xd9,0xab,0x88,0x7c,0xfb,0x37,0xfa,0x66,0x96,0x6b,0x57,0x3e,0x44,0x61,0x15,0x3d,0x4c,0x29,0xa1,0x23,0x54,0xc8,0xf,0x80,0xa6,0x1c,0x8a,0x77,0x86,0xe7,0xc,0xf5,0xd8,0x8b,0x7f,0x25,0xc3,0x9c,0x3a,0xd5,0xfa,0x93,0x8d,0x6c,0x8,0xa5,0x3b,0xe2,0x40,0xe0,0x6d,0x54,0xec,0x2c,0x97,0x4d,0xd2,0x29,0x51,0x81,0x35,0xea,0xed,0x20,0x9a,0x65,0x47,0x70,0x6a,0x7b,0xc4,0xa7,0xfc,0x96,0xb,0x98,0x9e,0x30,0xd,0xee,0x11,0x55,0x79,0x5d,0x2f,0x21,0xb0,0x82,0x7e,0xac,0xa1,0x91,0x64,0xad,0x13,0x1,0x6f,0xc5,0x24,0xbd,0xaf,0xae,0x5,0x76,0x3e,0xa4,0x7d,0x12,0x22,0xab,0xf6,0x4a,0x59,0xa8,0xeb,0x1d,0x16,0xfe,0xe6,0xde,0xc2,0x74,0x17,0x43,0x53,0xf9,0xe8,0xbb,0xf0,0x2a,0x33,0x23,0x9,0xca,0x58,0x56,0xdc,0xb8,0x36,0xc6,0x28,0x62,0xf2,0xa,0x7a,0x3c,0x18,0xcb,0xf3,0xe5,0x90,0xf8,0x52,0x8e,0xd7,0x7c,0x68,0x50,0x6e,0x75,0x34,0x5a,0xf4,0x63,0xd6,0xdf,0xb4,0x5f,0xe9,0x27,0x6b,0x87,0xb3,0xa0,0xcc,0x19,0xc1,0xb5,0x10,0xb6,0x4,0x8c,0xda,0x2,0x38,0x2b,0x9b,0x3,0x49,0x46,0x99,0x57,0x4c,0xc0,0x71,0xdb,0xb2,0xef,0xbf,0x3f,0x94,0x44,0x72,0xc9,0xe1,0x60,0x61,0x5c,0x39,0xdd,0x48,0x1a,0x5e,0xd0,0xaa,0x85,0xb9,0x88,0x78,0xd9,0x14,0xcd,0xba,0xc7,0x4f,0xd3,0xa2,0x8f,0xfb,0xe3,0x95,0x4e,0xe,0x1e,0x5b,0x84,0x0,0x92,0x15,0x45,0x66,0xcf,0x37,0xfd,0x2d,0x7,0xd1,0xff,0xce,0xa3,0xe4,0x1b,0xb7,0x31,0xd4,0x4b,0x83,0x41,0x32,0x67,0x3d,0x9d,0x6,0x73,0xb1,0x9f,0x69,0xa9,0x26,0xf7,0xbe,0xbc,0x1f,0xf1,0x42,0x2e,0x89,0xa3,0x5,0xea,0xc5,0xac,0xb2,0x53,0x37,0x9a,0x4,0xdd,0x7f,0xdf,0x52,0x6b,0xd3,0xf7,0x30,0xbf,0x99,0x23,0xb5,0x48,0xb9,0xd8,0x33,0xca,0xe7,0xb4,0x40,0x1a,0xfc,0x44,0xfb,0x98,0xc3,0xa9,0x34,0xa7,0xa1,0xf,0x32,0xd1,0x2e,0x6a,0x46,0x62,0x10,0x13,0xa8,0x72,0xed,0x16,0x6e,0xbe,0xa,0xd5,0xd2,0x1f,0xa5,0x5a,0x78,0x4f,0x55,0x91,0x3a,0x49,0x1,0x9b,0x42,0x2d,0x1d,0x94,0xc9,0x75,0x66,0x97,0xd4,0x22,0x29,0x1e,0x8f,0xbd,0x41,0x93,0x9e,0xae,0x5b,0x92,0x2c,0x3e,0x50,0xfa,0x1b,0x82,0x90,0xf5,0x67,0x69,0xe3,0x87,0x9,0xf9,0x17,0x5d,0xcd,0x35,0x45,0x3,0x27,0xf4,0xcc,0xc1,0xd9,0xe1,0xfd,0x4b,0x28,0x7c,0x6c,0xc6,0xd7,0x84,0xcf,0x15,0xc,0x1c,0x36,0xe0,0x8b,0x60,0xd6,0x18,0x54,0xb8,0x8c,0x9f,0xf3,0x26,0xfe,0x8a,0x2f,0x89,0x3b,0xda,0xaf,0xc7,0x6d,0xb1,0xe8,0x43,0x57,0x6f,0x51,0x4a,0xb,0x65,0xcb,0x5c,0xe9,0xd0,0x80,0x0,0xab,0x7b,0x4d,0xf6,0xde,0x5f,0x5e,0x63,0x6,0xe2,0x77,0x25,0x61,0xb3,0xe5,0x3d,0x7,0x14,0xa4,0x3c,0x76,0x79,0xa6,0x68,0x73,0xff,0x4e,0xe4,0x8d,0xdc,0xaa,0x71,0x31,0x21,0x64,0xbb,0x3f,0xad,0x2a,0x7a,0x59,0xf0,0x8,0xc2,0x12,0xef,0x95,0xba,0x86,0xb7,0x47,0xe6,0x2b,0xf2,0x85,0xf8,0x70,0xec,0x9d,0xb0,0xc4,0xa2,0x39,0x4c,0x8e,0xa0,0x56,0x96,0x19,0xc8,0x81,0x83,0x20,0xce,0x7d,0x11,0xb6,0x38,0xee,0xc0,0xf1,0x9c,0xdb,0x24,0x88,0xe,0xeb,0x74,0xbc,0x7e,0xd,0x58,0x2,0x9f,0xb2,0x4b,0xa0,0x84,0x62,0x38,0xcc,0xe1,0xc7,0x48,0x8f,0xc1,0x30,0xcd,0x5b,0x7,0xa5,0x7c,0xe2,0xab,0x13,0x2a,0xa7,0xbd,0x92,0x7d,0xdb,0x4f,0x2b,0xca,0xd4,0xdd,0x67,0xaa,0xad,0x2d,0x37,0x0,0x22,0x95,0xa,0xd0,0x6b,0x72,0xc6,0x16,0x6e,0x56,0xa9,0x4a,0x77,0x68,0x1a,0x3e,0x12,0xbb,0xe0,0x83,0x3c,0xd9,0xdf,0x4c,0xd1,0x28,0x46,0x54,0xea,0xe8,0xfa,0x63,0x82,0x39,0xc5,0xf7,0x66,0x23,0xd6,0xe6,0xeb,0x1e,0xd,0xb1,0xec,0x51,0x5a,0xac,0xef,0x79,0x31,0x42,0xe9,0x65,0x55,0x3a,0xe3,0xb7,0xfc,0xaf,0xbe,0x4e,0x64,0x74,0x6d,0x85,0x99,0xa1,0xb9,0x14,0x4,0x50,0x33,0x3d,0x4d,0xb5,0x25,0xb4,0x8c,0x5f,0x7b,0x9b,0x11,0x1f,0x8d,0x6f,0x81,0x71,0xff,0x73,0x32,0x29,0x17,0x91,0x24,0xb3,0x1d,0x15,0xbf,0xd7,0xa2,0x2f,0x3b,0x90,0xc9,0x86,0x5e,0x8b,0xe7,0x43,0xf1,0x57,0xf2,0xae,0x18,0xf3,0x98,0xf4,0xc0,0x2c,0x60,0xb,0x10,0xde,0x1,0xf5,0x9c,0x36,0x87,0x7f,0x45,0x9d,0xcb,0xe,0x44,0xdc,0x6c,0x7e,0x1b,0x26,0x27,0x19,0x5d,0xf,0x9a,0xd3,0x78,0xf8,0xa8,0xa6,0x8e,0x35,0x3,0x8,0x80,0xfd,0x8a,0xbc,0xc8,0xe5,0x94,0xfe,0xc2,0xed,0x97,0x53,0x9e,0x3f,0xcf,0x21,0x2,0x52,0xd5,0x6a,0xba,0x70,0x88,0x49,0x9,0xd2,0xa4,0x47,0xc3,0x1c,0x59,0xc4,0xc,0x93,0x76,0x7a,0x20,0x75,0x6,0x89,0xb8,0x96,0x40,0xf0,0x5c,0xa3,0xe4,0x58,0xfb,0xf9,0xb0,0xce,0x69,0x5,0xb6,0xf6,0x34,0x41,0xda,0x61,0xee,0x2e,0xd8,0xa2,0xa4,0xac,0x31,0x9d,0xc6,0x41,0xfe,0x67,0x15,0x6f,0x43,0xd4,0x2b,0xa,0x37,0xbb,0xf,0x13,0x6b,0x77,0xe8,0x16,0xad,0x4a,0x50,0x5f,0x7d,0x1a,0xa0,0xd0,0xd7,0x56,0x32,0xa9,0xb7,0xef,0xc0,0xa6,0x0,0x6e,0xd6,0xda,0x57,0xd8,0x7a,0x9f,0x1,0x4d,0xbc,0x26,0xb0,0xba,0x9c,0xf2,0x35,0x1f,0xf9,0xb1,0x45,0xcf,0xe2,0xdd,0x36,0xfc,0x12,0x82,0xc,0x6c,0xe6,0xf0,0x62,0xf1,0xc9,0x6,0x22,0x30,0x40,0x58,0xc8,0x79,0x69,0x4e,0x2d,0xe4,0xf8,0xc4,0xdc,0x19,0x33,0x10,0x9,0x81,0xca,0xc3,0xd2,0x28,0x18,0x9e,0x47,0x4c,0x4,0x94,0x3f,0x27,0x2c,0x92,0xd1,0x70,0x63,0x91,0xcc,0xab,0x5e,0x96,0x9b,0xb8,0x44,0x1b,0x8a,0x87,0x95,0xff,0x1e,0x3b,0x55,0x97,0x29,0xf3,0xdb,0x7e,0x48,0x5,0xae,0xd5,0x85,0x20,0x64,0xe7,0x72,0x66,0x3,0x5a,0x5b,0x39,0x73,0x11,0xa1,0x38,0x2,0xb6,0xe0,0xe1,0x88,0xfa,0x4b,0x6d,0x76,0x7c,0xa3,0xbd,0x89,0x1d,0x51,0x65,0xd3,0xe5,0x8e,0x8c,0x3e,0x8f,0x2a,0x23,0xfb,0x9a,0xf6,0x46,0x52,0xb4,0xed,0xc2,0x68,0xdf,0xaa,0x59,0xec,0x60,0xce,0x4f,0xe,0x6a,0x54,0x93,0x1c,0xa5,0x53,0x49,0x8b,0xa7,0x3c,0x14,0xb3,0xcb,0x78,0x86,0x25,0xcd,0x84,0x21,0x8d,0x99,0xde,0xc5,0xf4,0x3d,0xeb,0x5d,0x7,0x7b,0x8,0x71,0xb9,0xb,0xee,0xbe,0x3a,0x24,0x61,0x74,0x34,0xd9,0xaf,0xc7,0x17,0xf5,0xd,0x7f,0x5c,0xa8,0x2f,0xe3,0x2e,0xb2,0x42,0xbf,0x83,0xea,0x90,0xb5,0xc1,0xe9,0x98,0xfd,0x75,0xf7,0x80,0x2d,0xea,0x65,0x43,0xf9,0x6f,0x92,0x63,0x2,0xe9,0x10,0x3d,0x6e,0x9a,0xc0,0x26,0x79,0xdf,0x30,0x1f,0x76,0x68,0x89,0xed,0x40,0xde,0x7,0xa5,0x5,0x88,0xb1,0x9,0xc9,0x72,0xa8,0x37,0xcc,0xb4,0x64,0xd0,0xf,0x8,0xc5,0x7f,0x80,0xa2,0x95,0x8f,0x9e,0x21,0x42,0x19,0x73,0xee,0x7d,0x7b,0xd5,0xe8,0xb,0xf4,0xb0,0x9c,0xb8,0xca,0xc4,0x55,0x67,0x9b,0x49,0x44,0x74,0x81,0x48,0xf6,0xe4,0x8a,0x20,0xc1,0x58,0x4a,0x4b,0xe0,0x93,0xdb,0x41,0x98,0xf7,0xc7,0x4e,0x13,0xaf,0xbc,0x4d,0xe,0xf8,0xf3,0x1b,0x3,0x3b,0x27,0x91,0xf2,0xa6,0xb6,0x1c,0xd,0x5e,0x15,0xcf,0xd6,0xc6,0xec,0x2f,0xbd,0xb3,0x39,0x5d,0xd3,0x23,0xcd,0x87,0x17,0xef,0x9f,0xd9,0xfd,0x2e,0x16,0x0,0x75,0x1d,0xb7,0x6b,0x32,0x99,0x8d,0xb5,0x8b,0x90,0xd1,0xbf,0x11,0x86,0x33,0x3a,0x51,0xba,0xc,0xc2,0x8e,0x62,0x56,0x45,0x29,0xfc,0x24,0x50,0xf5,0x53,0xe1,0x69,0x3f,0xe7,0xdd,0xce,0x7e,0xe6,0xac,0xa3,0x7c,0xb2,0xa9,0x25,0x94,0x3e,0x57,0xa,0x5a,0xda,0x71,0xa1,0x97,0x2c,0x4,0x85,0x84,0xb9,0xdc,0x38,0xad,0xff,0xbb,0x35,0x4f,0x60,0x5c,0x6d,0x9d,0x3c,0xf1,0x28,0x5f,0x22,0xaa,0x36,0x47,0x6a,0x1e,0x6,0x70,0xab,0xeb,0xfb,0xbe,0x61,0xe5,0x77,0xf0,0xa0,0x83,0x2a,0xd2,0x18,0xc8,0xe2,0x34,0x1a,0x2b,0x46,0x1,0xfe,0x52,0xd4,0x31,0xae,0x66,0xa4,0xd7,0x82,0xd8,0x78,0xe3,0x96,0x54,0x7a,0x8c,0x4c,0xc3,0x12,0x5b,0x59,0xfa,0x14,0xa7,0xcb,0x6c,0x47,0xe1,0xe,0x21,0x48,0x56,0xb7,0xd3,0x7e,0xe0,0x39,0x9b,0x3b,0xb6,0x8f,0x37,0x13,0xd4,0x5b,0x7d,0xc7,0x51,0xac,0x5d,0x3c,0xd7,0x2e,0x3,0x50,0xa4,0xfe,0x18,0xa0,0x1f,0x7c,0x27,0x4d,0xd0,0x43,0x45,0xeb,0xd6,0x35,0xca,0x8e,0xa2,0x86,0xf4,0xf7,0x4c,0x96,0x9,0xf2,0x8a,0x5a,0xee,0x31,0x36,0xfb,0x41,0xbe,0x9c,0xab,0xb1,0x75,0xde,0xad,0xe5,0x7f,0xa6,0xc9,0xf9,0x70,0x2d,0x91,0x82,0x73,0x30,0xc6,0xcd,0xfa,0x6b,0x59,0xa5,0x77,0x7a,0x4a,0xbf,0x76,0xc8,0xda,0xb4,0x1e,0xff,0x66,0x74,0x11,0x83,0x8d,0x7,0x63,0xed,0x1d,0xf3,0xb9,0x29,0xd1,0xa1,0xe7,0xc3,0x10,0x28,0x25,0x3d,0x5,0x19,0xaf,0xcc,0x98,0x88,0x22,0x33,0x60,0x2b,0xf1,0xe8,0xf8,0xd2,0x4,0x6f,0x84,0x32,0xfc,0xb0,0x5c,0x68,0x7b,0x17,0xc2,0x1a,0x6e,0xcb,0x6d,0xdf,0x3e,0x4b,0x23,0x89,0x55,0xc,0xa7,0xb3,0x8b,0xb5,0xae,0xef,0x81,0x2f,0xb8,0xd,0x34,0x64,0xe4,0x4f,0x9f,0xa9,0x12,0x3a,0xbb,0xba,0x87,0xe2,0x6,0x93,0xc1,0x85,0x57,0x1,0xd9,0xe3,0xf0,0x40,0xd8,0x92,0x9d,0x42,0x8c,0x97,0x1b,0xaa,0x0,0x69,0x38,0x4e,0x95,0xd5,0xc5,0x80,0x5f,0xdb,0x49,0xce,0x9e,0xbd,0x14,0xec,0x26,0xf6,0xb,0x71,0x5e,0x62,0x53,0xa3,0x2,0xcf,0x16,0x61,0x1c,0x94,0x8,0x79,0x54,0x20,0x46,0xdd,0xa8,0x6a,0x44,0xb2,0x72,0xfd,0x2c,0x65,0x67,0xc4,0x2a,0x99,0xf5,0x52,0xdc,0xa,0x24,0x15,0x78,0x3f,0xc0,0x6c,0xea,0xf,0x90,0x58,0x9a,0xe9,0xbc,0xe6,0x9e,0xb3,0x4a,0xa1,0x85,0x63,0x39,0xcd,0xe0,0xc6,0x49,0x8e,0xc0,0x31,0xcc,0x5a,0x6,0xa4,0x7d,0xe3,0xaa,0x12,0x2b,0xa6,0xbc,0x93,0x7c,0xda,0x4e,0x2a,0xcb,0xd5,0xdc,0x66,0xab,0xac,0x2c,0x36,0x1,0x23,0x94,0xb,0xd1,0x6a,0x73,0xc7,0x17,0x6f,0x57,0xa8,0x4b,0x76,0x69,0x1b,0x3f,0x13,0xba,0xe1,0x82,0x3d,0xd8,0xde,0x4d,0xd0,0x29,0x47,0x55,0xeb,0xe9,0xfb,0x62,0x83,0x38,0xc4,0xf6,0x67,0x22,0xd7,0xe7,0xea,0x1f,0xc,0xb0,0xed,0x50,0x5b,0xad,0xee,0x78,0x30,0x43,0xe8,0x64,0x54,0x3b,0xe2,0xb6,0xfd,0xae,0xbf,0x4f,0x65,0x75,0x6c,0x84,0x98,0xa0,0xb8,0x15,0x5,0x51,0x32,0x3c,0x4c,0xb4,0x24,0xb5,0x8d,0x5e,0x7a,0x9a,0x10,0x1e,0x8c,0x6e,0x80,0x70,0xfe,0x72,0x33,0x28,0x16,0x90,0x25,0xb2,0x1c,0x14,0xbe,0xd6,0xa3,0x2e,0x3a,0x91,0xc8,0x87,0x5f,0x8a,0xe6,0x42,0xf0,0x56,0xf3,0xaf,0x19,0xf2,0x99,0xf5,0xc1,0x2d,0x61,0xa,0x11,0xdf,0x0,0xf4,0x9d,0x37,0x86,0x7e,0x44,0x9c,0xca,0xf,0x45,0xdd,0x6d,0x7f,0x1a,0x27,0x26,0x18,0x5c,0xe,0x9b,0xd2,0x79,0xf9,0xa9,0xa7,0x8f,0x34,0x2,0x9,0x81,0xfc,0x8b,0xbd,0xc9,0xe4,0x95,0xff,0xc3,0xec,0x96,0x52,0x9f,0x3e,0xce,0x20,0x3,0x53,0xd4,0x6b,0xbb,0x71,0x89,0x48,0x8,0xd3,0xa5,0x46,0xc2,0x1d,0x58,0xc5,0xd,0x92,0x77,0x7b,0x21,0x74,0x7,0x88,0xb9,0x97,0x41,0xf1,0x5d,0xa2,0xe5,0x59,0xfa,0xf8,0xb1,0xcf,0x68,0x4,0xb7,0xf7,0x35,0x40,0xdb,0x60,0xef,0x2f,0xd9,0x5d,0x5b,0x53,0xce,0x62,0x39,0xbe,0x1,0x98,0xea,0x90,0xbc,0x2b,0xd4,0xf5,0xc8,0x44,0xf0,0xec,0x94,0x88,0x17,0xe9,0x52,0xb5,0xaf,0xa0,0x82,0xe5,0x5f,0x2f,0x28,0xa9,0xcd,0x56,0x48,0x10,0x3f,0x59,0xff,0x91,0x29,0x25,0xa8,0x27,0x85,0x60,0xfe,0xb2,0x43,0xd9,0x4f,0x45,0x63,0xd,0xca,0xe0,0x6,0x4e,0xba,0x30,0x1d,0x22,0xc9,0x3,0xed,0x7d,0xf3,0x93,0x19,0xf,0x9d,0xe,0x36,0xf9,0xdd,0xcf,0xbf,0xa7,0x37,0x86,0x96,0xb1,0xd2,0x1b,0x7,0x3b,0x23,0xe6,0xcc,0xef,0xf6,0x7e,0x35,0x3c,0x2d,0xd7,0xe7,0x61,0xb8,0xb3,0xfb,0x6b,0xc0,0xd8,0xd3,0x6d,0x2e,0x8f,0x9c,0x6e,0x33,0x54,0xa1,0x69,0x64,0x47,0xbb,0xe4,0x75,0x78,0x6a,0x0,0xe1,0xc4,0xaa,0x68,0xd6,0xc,0x24,0x81,0xb7,0xfa,0x51,0x2a,0x7a,0xdf,0x9b,0x18,0x8d,0x99,0xfc,0xa5,0xa4,0xc6,0x8c,0xee,0x5e,0xc7,0xfd,0x49,0x1f,0x1e,0x77,0x5,0xb4,0x92,0x89,0x83,0x5c,0x42,0x76,0xe2,0xae,0x9a,0x2c,0x1a,0x71,0x73,0xc1,0x70,0xd5,0xdc,0x4,0x65,0x9,0xb9,0xad,0x4b,0x12,0x3d,0x97,0x20,0x55,0xa6,0x13,0x9f,0x31,0xb0,0xf1,0x95,0xab,0x6c,0xe3,0x5a,0xac,0xb6,0x74,0x58,0xc3,0xeb,0x4c,0x34,0x87,0x79,0xda,0x32,0x7b,0xde,0x72,0x66,0x21,0x3a,0xb,0xc2,0x14,0xa2,0xf8,0x84,0xf7,0x8e,0x46,0xf4,0x11,0x41,0xc5,0xdb,0x9e,0x8b,0xcb,0x26,0x50,0x38,0xe8,0xa,0xf2,0x80,0xa3,0x57,0xd0,0x1c,0xd1,0x4d,0xbd,0x40,0x7c,0x15,0x6f,0x4a,0x3e,0x16,0x67,0x2,0x8a,0x8,0x7f,0xd9,0x1e,0x91,0xb7,0xd,0x9b,0x66,0x97,0xf6,0x1d,0xe4,0xc9,0x9a,0x6e,0x34,0xd2,0x8d,0x2b,0xc4,0xeb,0x82,0x9c,0x7d,0x19,0xb4,0x2a,0xf3,0x51,0xf1,0x7c,0x45,0xfd,0x3d,0x86,0x5c,0xc3,0x38,0x40,0x90,0x24,0xfb,0xfc,0x31,0x8b,0x74,0x56,0x61,0x7b,0x6a,0xd5,0xb6,0xed,0x87,0x1a,0x89,0x8f,0x21,0x1c,0xff,0x0,0x44,0x68,0x4c,0x3e,0x30,0xa1,0x93,0x6f,0xbd,0xb0,0x80,0x75,0xbc,0x2,0x10,0x7e,0xd4,0x35,0xac,0xbe,0xbf,0x14,0x67,0x2f,0xb5,0x6c,0x3,0x33,0xba,0xe7,0x5b,0x48,0xb9,0xfa,0xc,0x7,0xef,0xf7,0xcf,0xd3,0x65,0x6,0x52,0x42,0xe8,0xf9,0xaa,0xe1,0x3b,0x22,0x32,0x18,0xdb,0x49,0x47,0xcd,0xa9,0x27,0xd7,0x39,0x73,0xe3,0x1b,0x6b,0x2d,0x9,0xda,0xe2,0xf4,0x81,0xe9,0x43,0x9f,0xc6,0x6d,0x79,0x41,0x7f,0x64,0x25,0x4b,0xe5,0x72,0xc7,0xce,0xa5,0x4e,0xf8,0x36,0x7a,0x96,0xa2,0xb1,0xdd,0x8,0xd0,0xa4,0x1,0xa7,0x15,0x9d,0xcb,0x13,0x29,0x3a,0x8a,0x12,0x58,0x57,0x88,0x46,0x5d,0xd1,0x60,0xca,0xa3,0xfe,0xae,0x2e,0x85,0x55,0x63,0xd8,0xf0,0x71,0x70,0x4d,0x28,0xcc,0x59,0xb,0x4f,0xc1,0xbb,0x94,0xa8,0x99,0x69,0xc8,0x5,0xdc,0xab,0xd6,0x5e,0xc2,0xb3,0x9e,0xea,0xf2,0x84,0x5f,0x1f,0xf,0x4a,0x95,0x11,0x83,0x4,0x54,0x77,0xde,0x26,0xec,0x3c,0x16,0xc0,0xee,0xdf,0xb2,0xf5,0xa,0xa6,0x20,0xc5,0x5a,0x92,0x50,0x23,0x76,0x2c,0x8c,0x17,0x62,0xa0,0x8e,0x78,0xb8,0x37,0xe6,0xaf,0xad,0xe,0xe0,0x53,0x3f,0x98,0x85,0x23,0xcc,0xe3,0x8a,0x94,0x75,0x11,0xbc,0x22,0xfb,0x59,0xf9,0x74,0x4d,0xf5,0xd1,0x16,0x99,0xbf,0x5,0x93,0x6e,0x9f,0xfe,0x15,0xec,0xc1,0x92,0x66,0x3c,0xda,0x62,0xdd,0xbe,0xe5,0x8f,0x12,0x81,0x87,0x29,0x14,0xf7,0x8,0x4c,0x60,0x44,0x36,0x35,0x8e,0x54,0xcb,0x30,0x48,0x98,0x2c,0xf3,0xf4,0x39,0x83,0x7c,0x5e,0x69,0x73,0xb7,0x1c,0x6f,0x27,0xbd,0x64,0xb,0x3b,0xb2,0xef,0x53,0x40,0xb1,0xf2,0x4,0xf,0x38,0xa9,0x9b,0x67,0xb5,0xb8,0x88,0x7d,0xb4,0xa,0x18,0x76,0xdc,0x3d,0xa4,0xb6,0xd3,0x41,0x4f,0xc5,0xa1,0x2f,0xdf,0x31,0x7b,0xeb,0x13,0x63,0x25,0x1,0xd2,0xea,0xe7,0xff,0xc7,0xdb,0x6d,0xe,0x5a,0x4a,0xe0,0xf1,0xa2,0xe9,0x33,0x2a,0x3a,0x10,0xc6,0xad,0x46,0xf0,0x3e,0x72,0x9e,0xaa,0xb9,0xd5,0x0,0xd8,0xac,0x9,0xaf,0x1d,0xfc,0x89,0xe1,0x4b,0x97,0xce,0x65,0x71,0x49,0x77,0x6c,0x2d,0x43,0xed,0x7a,0xcf,0xf6,0xa6,0x26,0x8d,0x5d,0x6b,0xd0,0xf8,0x79,0x78,0x45,0x20,0xc4,0x51,0x3,0x47,0x95,0xc3,0x1b,0x21,0x32,0x82,0x1a,0x50,0x5f,0x80,0x4e,0x55,0xd9,0x68,0xc2,0xab,0xfa,0x8c,0x57,0x17,0x7,0x42,0x9d,0x19,0x8b,0xc,0x5c,0x7f,0xd6,0x2e,0xe4,0x34,0xc9,0xb3,0x9c,0xa0,0x91,0x61,0xc0,0xd,0xd4,0xa3,0xde,0x56,0xca,0xbb,0x96,0xe2,0x84,0x1f,0x6a,0xa8,0x86,0x70,0xb0,0x3f,0xee,0xa7,0xa5,0x6,0xe8,0x5b,0x37,0x90,0x1e,0xc8,0xe6,0xd7,0xba,0xfd,0x2,0xae,0x28,0xcd,0x52,0x9a,0x58,0x2b,0x7e,0x24,0xf1,0xdc,0x25,0xce,0xea,0xc,0x56,0xa2,0x8f,0xa9,0x26,0xe1,0xaf,0x5e,0xa3,0x35,0x69,0xcb,0x12,0x8c,0xc5,0x7d,0x44,0xc9,0xd3,0xfc,0x13,0xb5,0x21,0x45,0xa4,0xba,0xb3,0x9,0xc4,0xc3,0x43,0x59,0x6e,0x4c,0xfb,0x64,0xbe,0x5,0x1c,0xa8,0x78,0x0,0x38,0xc7,0x24,0x19,0x6,0x74,0x50,0x7c,0xd5,0x8e,0xed,0x52,0xb7,0xb1,0x22,0xbf,0x46,0x28,0x3a,0x84,0x86,0x94,0xd,0xec,0x57,0xab,0x99,0x8,0x4d,0xb8,0x88,0x85,0x70,0x63,0xdf,0x82,0x3f,0x34,0xc2,0x81,0x17,0x5f,0x2c,0x87,0xb,0x3b,0x54,0x8d,0xd9,0x92,0xc1,0xd0,0x20,0xa,0x1a,0x3,0xeb,0xf7,0xcf,0xd7,0x7a,0x6a,0x3e,0x5d,0x53,0x23,0xdb,0x4b,0xda,0xe2,0x31,0x15,0xf5,0x7f,0x71,0xe3,0x1,0xef,0x1f,0x91,0x1d,0x5c,0x47,0x79,0xff,0x4a,0xdd,0x73,0x7b,0xd1,0xb9,0xcc,0x41,0x55,0xfe,0xa7,0xe8,0x30,0xe5,0x89,0x2d,0x9f,0x39,0x9c,0xc0,0x76,0x9d,0xf6,0x9a,0xae,0x42,0xe,0x65,0x7e,0xb0,0x6f,0x9b,0xf2,0x58,0xe9,0x11,0x2b,0xf3,0xa5,0x60,0x2a,0xb2,0x2,0x10,0x75,0x48,0x49,0x77,0x33,0x61,0xf4,0xbd,0x16,0x96,0xc6,0xc8,0xe0,0x5b,0x6d,0x66,0xee,0x93,0xe4,0xd2,0xa6,0x8b,0xfa,0x90,0xac,0x83,0xf9,0x3d,0xf0,0x51,0xa1,0x4f,0x6c,0x3c,0xbb,0x4,0xd4,0x1e,0xe6,0x27,0x67,0xbc,0xca,0x29,0xad,0x72,0x37,0xaa,0x62,0xfd,0x18,0x14,0x4e,0x1b,0x68,0xe7,0xd6,0xf8,0x2e,0x9e,0x32,0xcd,0x8a,0x36,0x95,0x97,0xde,0xa0,0x7,0x6b,0xd8,0x98,0x5a,0x2f,0xb4,0xf,0x80,0x40,0xb6,0xa6,0xa0,0xa8,0x35,0x99,0xc2,0x45,0xfa,0x63,0x11,0x6b,0x47,0xd0,0x2f,0xe,0x33,0xbf,0xb,0x17,0x6f,0x73,0xec,0x12,0xa9,0x4e,0x54,0x5b,0x79,0x1e,0xa4,0xd4,0xd3,0x52,0x36,0xad,0xb3,0xeb,0xc4,0xa2,0x4,0x6a,0xd2,0xde,0x53,0xdc,0x7e,0x9b,0x5,0x49,0xb8,0x22,0xb4,0xbe,0x98,0xf6,0x31,0x1b,0xfd,0xb5,0x41,0xcb,0xe6,0xd9,0x32,0xf8,0x16,0x86,0x8,0x68,0xe2,0xf4,0x66,0xf5,0xcd,0x2,0x26,0x34,0x44,0x5c,0xcc,0x7d,0x6d,0x4a,0x29,0xe0,0xfc,0xc0,0xd8,0x1d,0x37,0x14,0xd,0x85,0xce,0xc7,0xd6,0x2c,0x1c,0x9a,0x43,0x48,0x0,0x90,0x3b,0x23,0x28,0x96,0xd5,0x74,0x67,0x95,0xc8,0xaf,0x5a,0x92,0x9f,0xbc,0x40,0x1f,0x8e,0x83,0x91,0xfb,0x1a,0x3f,0x51,0x93,0x2d,0xf7,0xdf,0x7a,0x4c,0x1,0xaa,0xd1,0x81,0x24,0x60,0xe3,0x76,0x62,0x7,0x5e,0x5f,0x3d,0x77,0x15,0xa5,0x3c,0x6,0xb2,0xe4,0xe5,0x8c,0xfe,0x4f,0x69,0x72,0x78,0xa7,0xb9,0x8d,0x19,0x55,0x61,0xd7,0xe1,0x8a,0x88,0x3a,0x8b,0x2e,0x27,0xff,0x9e,0xf2,0x42,0x56,0xb0,0xe9,0xc6,0x6c,0xdb,0xae,0x5d,0xe8,0x64,0xca,0x4b,0xa,0x6e,0x50,0x97,0x18,0xa1,0x57,0x4d,0x8f,0xa3,0x38,0x10,0xb7,0xcf,0x7c,0x82,0x21,0xc9,0x80,0x25,0x89,0x9d,0xda,0xc1,0xf0,0x39,0xef,0x59,0x3,0x7f,0xc,0x75,0xbd,0xf,0xea,0xba,0x3e,0x20,0x65,0x70,0x30,0xdd,0xab,0xc3,0x13,0xf1,0x9,0x7b,0x58,0xac,0x2b,0xe7,0x2a,0xb6,0x46,0xbb,0x87,0xee,0x94,0xb1,0xc5,0xed,0x9c,0xf9,0x71,0xf3,0x84,0xef,0x28,0xa7,0x81,0x3b,0xad,0x50,0xa1,0xc0,0x2b,0xd2,0xff,0xac,0x58,0x2,0xe4,0xbb,0x1d,0xf2,0xdd,0xb4,0xaa,0x4b,0x2f,0x82,0x1c,0xc5,0x67,0xc7,0x4a,0x73,0xcb,0xb,0xb0,0x6a,0xf5,0xe,0x76,0xa6,0x12,0xcd,0xca,0x7,0xbd,0x42,0x60,0x57,0x4d,0x5c,0xe3,0x80,0xdb,0xb1,0x2c,0xbf,0xb9,0x17,0x2a,0xc9,0x36,0x72,0x5e,0x7a,0x8,0x6,0x97,0xa5,0x59,0x8b,0x86,0xb6,0x43,0x8a,0x34,0x26,0x48,0xe2,0x3,0x9a,0x88,0x89,0x22,0x51,0x19,0x83,0x5a,0x35,0x5,0x8c,0xd1,0x6d,0x7e,0x8f,0xcc,0x3a,0x31,0xd9,0xc1,0xf9,0xe5,0x53,0x30,0x64,0x74,0xde,0xcf,0x9c,0xd7,0xd,0x14,0x4,0x2e,0xed,0x7f,0x71,0xfb,0x9f,0x11,0xe1,0xf,0x45,0xd5,0x2d,0x5d,0x1b,0x3f,0xec,0xd4,0xc2,0xb7,0xdf,0x75,0xa9,0xf0,0x5b,0x4f,0x77,0x49,0x52,0x13,0x7d,0xd3,0x44,0xf1,0xf8,0x93,0x78,0xce,0x0,0x4c,0xa0,0x94,0x87,0xeb,0x3e,0xe6,0x92,0x37,0x91,0x23,0xab,0xfd,0x25,0x1f,0xc,0xbc,0x24,0x6e,0x61,0xbe,0x70,0x6b,0xe7,0x56,0xfc,0x95,0xc8,0x98,0x18,0xb3,0x63,0x55,0xee,0xc6,0x47,0x46,0x7b,0x1e,0xfa,0x6f,0x3d,0x79,0xf7,0x8d,0xa2,0x9e,0xaf,0x5f,0xfe,0x33,0xea,0x9d,0xe0,0x68,0xf4,0x85,0xa8,0xdc,0xc4,0xb2,0x69,0x29,0x39,0x7c,0xa3,0x27,0xb5,0x32,0x62,0x41,0xe8,0x10,0xda,0xa,0x20,0xf6,0xd8,0xe9,0x84,0xc3,0x3c,0x90,0x16,0xf3,0x6c,0xa4,0x66,0x15,0x40,0x1a,0xba,0x21,0x54,0x96,0xb8,0x4e,0x8e,0x1,0xd0,0x99,0x9b,0x38,0xd6,0x65,0x9,0xae,0xf9,0x5f,0xb0,0x9f,0xf6,0xe8,0x9,0x6d,0xc0,0x5e,0x87,0x25,0x85,0x8,0x31,0x89,0xad,0x6a,0xe5,0xc3,0x79,0xef,0x12,0xe3,0x82,0x69,0x90,0xbd,0xee,0x1a,0x40,0xa6,0x1e,0xa1,0xc2,0x99,0xf3,0x6e,0xfd,0xfb,0x55,0x68,0x8b,0x74,0x30,0x1c,0x38,0x4a,0x49,0xf2,0x28,0xb7,0x4c,0x34,0xe4,0x50,0x8f,0x88,0x45,0xff,0x0,0x22,0x15,0xf,0xcb,0x60,0x13,0x5b,0xc1,0x18,0x77,0x47,0xce,0x93,0x2f,0x3c,0xcd,0x8e,0x78,0x73,0x44,0xd5,0xe7,0x1b,0xc9,0xc4,0xf4,0x1,0xc8,0x76,0x64,0xa,0xa0,0x41,0xd8,0xca,0xaf,0x3d,0x33,0xb9,0xdd,0x53,0xa3,0x4d,0x7,0x97,0x6f,0x1f,0x59,0x7d,0xae,0x96,0x9b,0x83,0xbb,0xa7,0x11,0x72,0x26,0x36,0x9c,0x8d,0xde,0x95,0x4f,0x56,0x46,0x6c,0xba,0xd1,0x3a,0x8c,0x42,0xe,0xe2,0xd6,0xc5,0xa9,0x7c,0xa4,0xd0,0x75,0xd3,0x61,0x80,0xf5,0x9d,0x37,0xeb,0xb2,0x19,0xd,0x35,0xb,0x10,0x51,0x3f,0x91,0x6,0xb3,0x8a,0xda,0x5a,0xf1,0x21,0x17,0xac,0x84,0x5,0x4,0x39,0x5c,0xb8,0x2d,0x7f,0x3b,0xe9,0xbf,0x67,0x5d,0x4e,0xfe,0x66,0x2c,0x23,0xfc,0x32,0x29,0xa5,0x14,0xbe,0xd7,0x86,0xf0,0x2b,0x6b,0x7b,0x3e,0xe1,0x65,0xf7,0x70,0x20,0x3,0xaa,0x52,0x98,0x48,0xb5,0xcf,0xe0,0xdc,0xed,0x1d,0xbc,0x71,0xa8,0xdf,0xa2,0x2a,0xb6,0xc7,0xea,0x9e,0xf8,0x63,0x16,0xd4,0xfa,0xc,0xcc,0x43,0x92,0xdb,0xd9,0x7a,0x94,0x27,0x4b,0xec,0x62,0xb4,0x9a,0xab,0xc6,0x81,0x7e,0xd2,0x54,0xb1,0x2e,0xe6,0x24,0x57,0x2,0x58,0x51,0x7c,0x85,0x6e,0x4a,0xac,0xf6,0x2,0x2f,0x9,0x86,0x41,0xf,0xfe,0x3,0x95,0xc9,0x6b,0xb2,0x2c,0x65,0xdd,0xe4,0x69,0x73,0x5c,0xb3,0x15,0x81,0xe5,0x4,0x1a,0x13,0xa9,0x64,0x63,0xe3,0xf9,0xce,0xec,0x5b,0xc4,0x1e,0xa5,0xbc,0x8,0xd8,0xa0,0x98,0x67,0x84,0xb9,0xa6,0xd4,0xf0,0xdc,0x75,0x2e,0x4d,0xf2,0x17,0x11,0x82,0x1f,0xe6,0x88,0x9a,0x24,0x26,0x34,0xad,0x4c,0xf7,0xb,0x39,0xa8,0xed,0x18,0x28,0x25,0xd0,0xc3,0x7f,0x22,0x9f,0x94,0x62,0x21,0xb7,0xff,0x8c,0x27,0xab,0x9b,0xf4,0x2d,0x79,0x32,0x61,0x70,0x80,0xaa,0xba,0xa3,0x4b,0x57,0x6f,0x77,0xda,0xca,0x9e,0xfd,0xf3,0x83,0x7b,0xeb,0x7a,0x42,0x91,0xb5,0x55,0xdf,0xd1,0x43,0xa1,0x4f,0xbf,0x31,0xbd,0xfc,0xe7,0xd9,0x5f,0xea,0x7d,0xd3,0xdb,0x71,0x19,0x6c,0xe1,0xf5,0x5e,0x7,0x48,0x90,0x45,0x29,0x8d,0x3f,0x99,0x3c,0x60,0xd6,0x3d,0x56,0x3a,0xe,0xe2,0xae,0xc5,0xde,0x10,0xcf,0x3b,0x52,0xf8,0x49,0xb1,0x8b,0x53,0x5,0xc0,0x8a,0x12,0xa2,0xb0,0xd5,0xe8,0xe9,0xd7,0x93,0xc1,0x54,0x1d,0xb6,0x36,0x66,0x68,0x40,0xfb,0xcd,0xc6,0x4e,0x33,0x44,0x72,0x6,0x2b,0x5a,0x30,0xc,0x23,0x59,0x9d,0x50,0xf1,0x1,0xef,0xcc,0x9c,0x1b,0xa4,0x74,0xbe,0x46,0x87,0xc7,0x1c,0x6a,0x89,0xd,0xd2,0x97,0xa,0xc2,0x5d,0xb8,0xb4,0xee,0xbb,0xc8,0x47,0x76,0x58,0x8e,0x3e,0x92,0x6d,0x2a,0x96,0x35,0x37,0x7e,0x0,0xa7,0xcb,0x78,0x38,0xfa,0x8f,0x14,0xaf,0x20,0xe0,0x16,0x64,0x62,0x6a,0xf7,0x5b,0x0,0x87,0x38,0xa1,0xd3,0xa9,0x85,0x12,0xed,0xcc,0xf1,0x7d,0xc9,0xd5,0xad,0xb1,0x2e,0xd0,0x6b,0x8c,0x96,0x99,0xbb,0xdc,0x66,0x16,0x11,0x90,0xf4,0x6f,0x71,0x29,0x6,0x60,0xc6,0xa8,0x10,0x1c,0x91,0x1e,0xbc,0x59,0xc7,0x8b,0x7a,0xe0,0x76,0x7c,0x5a,0x34,0xf3,0xd9,0x3f,0x77,0x83,0x9,0x24,0x1b,0xf0,0x3a,0xd4,0x44,0xca,0xaa,0x20,0x36,0xa4,0x37,0xf,0xc0,0xe4,0xf6,0x86,0x9e,0xe,0xbf,0xaf,0x88,0xeb,0x22,0x3e,0x2,0x1a,0xdf,0xf5,0xd6,0xcf,0x47,0xc,0x5,0x14,0xee,0xde,0x58,0x81,0x8a,0xc2,0x52,0xf9,0xe1,0xea,0x54,0x17,0xb6,0xa5,0x57,0xa,0x6d,0x98,0x50,0x5d,0x7e,0x82,0xdd,0x4c,0x41,0x53,0x39,0xd8,0xfd,0x93,0x51,0xef,0x35,0x1d,0xb8,0x8e,0xc3,0x68,0x13,0x43,0xe6,0xa2,0x21,0xb4,0xa0,0xc5,0x9c,0x9d,0xff,0xb5,0xd7,0x67,0xfe,0xc4,0x70,0x26,0x27,0x4e,0x3c,0x8d,0xab,0xb0,0xba,0x65,0x7b,0x4f,0xdb,0x97,0xa3,0x15,0x23,0x48,0x4a,0xf8,0x49,0xec,0xe5,0x3d,0x5c,0x30,0x80,0x94,0x72,0x2b,0x4,0xae,0x19,0x6c,0x9f,0x2a,0xa6,0x8,0x89,0xc8,0xac,0x92,0x55,0xda,0x63,0x95,0x8f,0x4d,0x61,0xfa,0xd2,0x75,0xd,0xbe,0x40,0xe3,0xb,0x42,0xe7,0x4b,0x5f,0x18,0x3,0x32,0xfb,0x2d,0x9b,0xc1,0xbd,0xce,0xb7,0x7f,0xcd,0x28,0x78,0xfc,0xe2,0xa7,0xb2,0xf2,0x1f,0x69,0x1,0xd1,0x33,0xcb,0xb9,0x9a,0x6e,0xe9,0x25,0xe8,0x74,0x84,0x79,0x45,0x2c,0x56,0x73,0x7,0x2f,0x5e,0x3b,0xb3,0x31,0x46,0x83,0x44,0xcb,0xed,0x57,0xc1,0x3c,0xcd,0xac,0x47,0xbe,0x93,0xc0,0x34,0x6e,0x88,0xd7,0x71,0x9e,0xb1,0xd8,0xc6,0x27,0x43,0xee,0x70,0xa9,0xb,0xab,0x26,0x1f,0xa7,0x67,0xdc,0x6,0x99,0x62,0x1a,0xca,0x7e,0xa1,0xa6,0x6b,0xd1,0x2e,0xc,0x3b,0x21,0x30,0x8f,0xec,0xb7,0xdd,0x40,0xd3,0xd5,0x7b,0x46,0xa5,0x5a,0x1e,0x32,0x16,0x64,0x6a,0xfb,0xc9,0x35,0xe7,0xea,0xda,0x2f,0xe6,0x58,0x4a,0x24,0x8e,0x6f,0xf6,0xe4,0xe5,0x4e,0x3d,0x75,0xef,0x36,0x59,0x69,0xe0,0xbd,0x1,0x12,0xe3,0xa0,0x56,0x5d,0xb5,0xad,0x95,0x89,0x3f,0x5c,0x8,0x18,0xb2,0xa3,0xf0,0xbb,0x61,0x78,0x68,0x42,0x81,0x13,0x1d,0x97,0xf3,0x7d,0x8d,0x63,0x29,0xb9,0x41,0x31,0x77,0x53,0x80,0xb8,0xae,0xdb,0xb3,0x19,0xc5,0x9c,0x37,0x23,0x1b,0x25,0x3e,0x7f,0x11,0xbf,0x28,0x9d,0x94,0xff,0x14,0xa2,0x6c,0x20,0xcc,0xf8,0xeb,0x87,0x52,0x8a,0xfe,0x5b,0xfd,0x4f,0xc7,0x91,0x49,0x73,0x60,0xd0,0x48,0x2,0xd,0xd2,0x1c,0x7,0x8b,0x3a,0x90,0xf9,0xa4,0xf4,0x74,0xdf,0xf,0x39,0x82,0xaa,0x2b,0x2a,0x17,0x72,0x96,0x3,0x51,0x15,0x9b,0xe1,0xce,0xf2,0xc3,0x33,0x92,0x5f,0x86,0xf1,0x8c,0x4,0x98,0xe9,0xc4,0xb0,0xa8,0xde,0x5,0x45,0x55,0x10,0xcf,0x4b,0xd9,0x5e,0xe,0x2d,0x84,0x7c,0xb6,0x66,0x4c,0x9a,0xb4,0x85,0xe8,0xaf,0x50,0xfc,0x7a,0x9f,0x0,0xc8,0xa,0x79,0x2c,0x76,0xd6,0x4d,0x38,0xfa,0xd4,0x22,0xe2,0x6d,0xbc,0xf5,0xf7,0x54,0xba,0x9,0x65,0xc2,0xd6,0x70,0x9f,0xb0,0xd9,0xc7,0x26,0x42,0xef,0x71,0xa8,0xa,0xaa,0x27,0x1e,0xa6,0x82,0x45,0xca,0xec,0x56,0xc0,0x3d,0xcc,0xad,0x46,0xbf,0x92,0xc1,0x35,0x6f,0x89,0x31,0x8e,0xed,0xb6,0xdc,0x41,0xd2,0xd4,0x7a,0x47,0xa4,0x5b,0x1f,0x33,0x17,0x65,0x66,0xdd,0x7,0x98,0x63,0x1b,0xcb,0x7f,0xa0,0xa7,0x6a,0xd0,0x2f,0xd,0x3a,0x20,0xe4,0x4f,0x3c,0x74,0xee,0x37,0x58,0x68,0xe1,0xbc,0x0,0x13,0xe2,0xa1,0x57,0x5c,0x6b,0xfa,0xc8,0x34,0xe6,0xeb,0xdb,0x2e,0xe7,0x59,0x4b,0x25,0x8f,0x6e,0xf7,0xe5,0x80,0x12,0x1c,0x96,0xf2,0x7c,0x8c,0x62,0x28,0xb8,0x40,0x30,0x76,0x52,0x81,0xb9,0xb4,0xac,0x94,0x88,0x3e,0x5d,0x9,0x19,0xb3,0xa2,0xf1,0xba,0x60,0x79,0x69,0x43,0x95,0xfe,0x15,0xa3,0x6d,0x21,0xcd,0xf9,0xea,0x86,0x53,0x8b,0xff,0x5a,0xfc,0x4e,0xaf,0xda,0xb2,0x18,0xc4,0x9d,0x36,0x22,0x1a,0x24,0x3f,0x7e,0x10,0xbe,0x29,0x9c,0xa5,0xf5,0x75,0xde,0xe,0x38,0x83,0xab,0x2a,0x2b,0x16,0x73,0x97,0x2,0x50,0x14,0xc6,0x90,0x48,0x72,0x61,0xd1,0x49,0x3,0xc,0xd3,0x1d,0x6,0x8a,0x3b,0x91,0xf8,0xa9,0xdf,0x4,0x44,0x54,0x11,0xce,0x4a,0xd8,0x5f,0xf,0x2c,0x85,0x7d,0xb7,0x67,0x9a,0xe0,0xcf,0xf3,0xc2,0x32,0x93,0x5e,0x87,0xf0,0x8d,0x5,0x99,0xe8,0xc5,0xb1,0xd7,0x4c,0x39,0xfb,0xd5,0x23,0xe3,0x6c,0xbd,0xf4,0xf6,0x55,0xbb,0x8,0x64,0xc3,0x4d,0x9b,0xb5,0x84,0xe9,0xae,0x51,0xfd,0x7b,0x9e,0x1,0xc9,0xb,0x78,0x2d,0x77,0x77,0x5a,0xa3,0x48,0x6c,0x8a,0xd0,0x24,0x9,0x2f,0xa0,0x67,0x29,0xd8,0x25,0xb3,0xef,0x4d,0x94,0xa,0x43,0xfb,0xc2,0x4f,0x55,0x7a,0x95,0x33,0xa7,0xc3,0x22,0x3c,0x35,0x8f,0x42,0x45,0xc5,0xdf,0xe8,0xca,0x7d,0xe2,0x38,0x83,0x9a,0x2e,0xfe,0x86,0xbe,0x41,0xa2,0x9f,0x80,0xf2,0xd6,0xfa,0x53,0x8,0x6b,0xd4,0x31,0x37,0xa4,0x39,0xc0,0xae,0xbc,0x2,0x0,0x12,0x8b,0x6a,0xd1,0x2d,0x1f,0x8e,0xcb,0x3e,0xe,0x3,0xf6,0xe5,0x59,0x4,0xb9,0xb2,0x44,0x7,0x91,0xd9,0xaa,0x1,0x8d,0xbd,0xd2,0xb,0x5f,0x14,0x47,0x56,0xa6,0x8c,0x9c,0x85,0x6d,0x71,0x49,0x51,0xfc,0xec,0xb8,0xdb,0xd5,0xa5,0x5d,0xcd,0x5c,0x64,0xb7,0x93,0x73,0xf9,0xf7,0x65,0x87,0x69,0x99,0x17,0x9b,0xda,0xc1,0xff,0x79,0xcc,0x5b,0xf5,0xfd,0x57,0x3f,0x4a,0xc7,0xd3,0x78,0x21,0x6e,0xb6,0x63,0xf,0xab,0x19,0xbf,0x1a,0x46,0xf0,0x1b,0x70,0x1c,0x28,0xc4,0x88,0xe3,0xf8,0x36,0xe9,0x1d,0x74,0xde,0x6f,0x97,0xad,0x75,0x23,0xe6,0xac,0x34,0x84,0x96,0xf3,0xce,0xcf,0xf1,0xb5,0xe7,0x72,0x3b,0x90,0x10,0x40,0x4e,0x66,0xdd,0xeb,0xe0,0x68,0x15,0x62,0x54,0x20,0xd,0x7c,0x16,0x2a,0x5,0x7f,0xbb,0x76,0xd7,0x27,0xc9,0xea,0xba,0x3d,0x82,0x52,0x98,0x60,0xa1,0xe1,0x3a,0x4c,0xaf,0x2b,0xf4,0xb1,0x2c,0xe4,0x7b,0x9e,0x92,0xc8,0x9d,0xee,0x61,0x50,0x7e,0xa8,0x18,0xb4,0x4b,0xc,0xb0,0x13,0x11,0x58,0x26,0x81,0xed,0x5e,0x1e,0xdc,0xa9,0x32,0x89,0x6,0xc6,0x30,0xc9,0xcf,0xc7,0x5a,0xf6,0xad,0x2a,0x95,0xc,0x7e,0x4,0x28,0xbf,0x40,0x61,0x5c,0xd0,0x64,0x78,0x0,0x1c,0x83,0x7d,0xc6,0x21,0x3b,0x34,0x16,0x71,0xcb,0xbb,0xbc,0x3d,0x59,0xc2,0xdc,0x84,0xab,0xcd,0x6b,0x5,0xbd,0xb1,0x3c,0xb3,0x11,0xf4,0x6a,0x26,0xd7,0x4d,0xdb,0xd1,0xf7,0x99,0x5e,0x74,0x92,0xda,0x2e,0xa4,0x89,0xb6,0x5d,0x97,0x79,0xe9,0x67,0x7,0x8d,0x9b,0x9,0x9a,0xa2,0x6d,0x49,0x5b,0x2b,0x33,0xa3,0x12,0x2,0x25,0x46,0x8f,0x93,0xaf,0xb7,0x72,0x58,0x7b,0x62,0xea,0xa1,0xa8,0xb9,0x43,0x73,0xf5,0x2c,0x27,0x6f,0xff,0x54,0x4c,0x47,0xf9,0xba,0x1b,0x8,0xfa,0xa7,0xc0,0x35,0xfd,0xf0,0xd3,0x2f,0x70,0xe1,0xec,0xfe,0x94,0x75,0x50,0x3e,0xfc,0x42,0x98,0xb0,0x15,0x23,0x6e,0xc5,0xbe,0xee,0x4b,0xf,0x8c,0x19,0xd,0x68,0x31,0x30,0x52,0x18,0x7a,0xca,0x53,0x69,0xdd,0x8b,0x8a,0xe3,0x91,0x20,0x6,0x1d,0x17,0xc8,0xd6,0xe2,0x76,0x3a,0xe,0xb8,0x8e,0xe5,0xe7,0x55,0xe4,0x41,0x48,0x90,0xf1,0x9d,0x2d,0x39,0xdf,0x86,0xa9,0x3,0xb4,0xc1,0x32,0x87,0xb,0xa5,0x24,0x65,0x1,0x3f,0xf8,0x77,0xce,0x38,0x22,0xe0,0xcc,0x57,0x7f,0xd8,0xa0,0x13,0xed,0x4e,0xa6,0xef,0x4a,0xe6,0xf2,0xb5,0xae,0x9f,0x56,0x80,0x36,0x6c,0x10,0x63,0x1a,0xd2,0x60,0x85,0xd5,0x51,0x4f,0xa,0x1f,0x5f,0xb2,0xc4,0xac,0x7c,0x9e,0x66,0x14,0x37,0xc3,0x44,0x88,0x45,0xd9,0x29,0xd4,0xe8,0x81,0xfb,0xde,0xaa,0x82,0xf3,0x96,0x1e,0x9c,0xeb,0x92,0x55,0xda,0xfc,0x46,0xd0,0x2d,0xdc,0xbd,0x56,0xaf,0x82,0xd1,0x25,0x7f,0x99,0xc6,0x60,0x8f,0xa0,0xc9,0xd7,0x36,0x52,0xff,0x61,0xb8,0x1a,0xba,0x37,0xe,0xb6,0x76,0xcd,0x17,0x88,0x73,0xb,0xdb,0x6f,0xb0,0xb7,0x7a,0xc0,0x3f,0x1d,0x2a,0x30,0x21,0x9e,0xfd,0xa6,0xcc,0x51,0xc2,0xc4,0x6a,0x57,0xb4,0x4b,0xf,0x23,0x7,0x75,0x7b,0xea,0xd8,0x24,0xf6,0xfb,0xcb,0x3e,0xf7,0x49,0x5b,0x35,0x9f,0x7e,0xe7,0xf5,0xf4,0x5f,0x2c,0x64,0xfe,0x27,0x48,0x78,0xf1,0xac,0x10,0x3,0xf2,0xb1,0x47,0x4c,0xa4,0xbc,0x84,0x98,0x2e,0x4d,0x19,0x9,0xa3,0xb2,0xe1,0xaa,0x70,0x69,0x79,0x53,0x90,0x2,0xc,0x86,0xe2,0x6c,0x9c,0x72,0x38,0xa8,0x50,0x20,0x66,0x42,0x91,0xa9,0xbf,0xca,0xa2,0x8,0xd4,0x8d,0x26,0x32,0xa,0x34,0x2f,0x6e,0x0,0xae,0x39,0x8c,0x85,0xee,0x5,0xb3,0x7d,0x31,0xdd,0xe9,0xfa,0x96,0x43,0x9b,0xef,0x4a,0xec,0x5e,0xd6,0x80,0x58,0x62,0x71,0xc1,0x59,0x13,0x1c,0xc3,0xd,0x16,0x9a,0x2b,0x81,0xe8,0xb5,0xe5,0x65,0xce,0x1e,0x28,0x93,0xbb,0x3a,0x3b,0x6,0x63,0x87,0x12,0x40,0x4,0x8a,0xf0,0xdf,0xe3,0xd2,0x22,0x83,0x4e,0x97,0xe0,0x9d,0x15,0x89,0xf8,0xd5,0xa1,0xb9,0xcf,0x14,0x54,0x44,0x1,0xde,0x5a,0xc8,0x4f,0x1f,0x3c,0x95,0x6d,0xa7,0x77,0x5d,0x8b,0xa5,0x94,0xf9,0xbe,0x41,0xed,0x6b,0x8e,0x11,0xd9,0x1b,0x68,0x3d,0x67,0xc7,0x5c,0x29,0xeb,0xc5,0x33,0xf3,0x7c,0xad,0xe4,0xe6,0x45,0xab,0x18,0x74,0xd3,0xf0,0x56,0xb9,0x96,0xff,0xe1,0x0,0x64,0xc9,0x57,0x8e,0x2c,0x8c,0x1,0x38,0x80,0xa4,0x63,0xec,0xca,0x70,0xe6,0x1b,0xea,0x8b,0x60,0x99,0xb4,0xe7,0x13,0x49,0xaf,0x17,0xa8,0xcb,0x90,0xfa,0x67,0xf4,0xf2,0x5c,0x61,0x82,0x7d,0x39,0x15,0x31,0x43,0x40,0xfb,0x21,0xbe,0x45,0x3d,0xed,0x59,0x86,0x81,0x4c,0xf6,0x9,0x2b,0x1c,0x6,0xc2,0x69,0x1a,0x52,0xc8,0x11,0x7e,0x4e,0xc7,0x9a,0x26,0x35,0xc4,0x87,0x71,0x7a,0x4d,0xdc,0xee,0x12,0xc0,0xcd,0xfd,0x8,0xc1,0x7f,0x6d,0x3,0xa9,0x48,0xd1,0xc3,0xa6,0x34,0x3a,0xb0,0xd4,0x5a,0xaa,0x44,0xe,0x9e,0x66,0x16,0x50,0x74,0xa7,0x9f,0x92,0x8a,0xb2,0xae,0x18,0x7b,0x2f,0x3f,0x95,0x84,0xd7,0x9c,0x46,0x5f,0x4f,0x65,0xb3,0xd8,0x33,0x85,0x4b,0x7,0xeb,0xdf,0xcc,0xa0,0x75,0xad,0xd9,0x7c,0xda,0x68,0x89,0xfc,0x94,0x3e,0xe2,0xbb,0x10,0x4,0x3c,0x2,0x19,0x58,0x36,0x98,0xf,0xba,0x83,0xd3,0x53,0xf8,0x28,0x1e,0xa5,0x8d,0xc,0xd,0x30,0x55,0xb1,0x24,0x76,0x32,0xe0,0xb6,0x6e,0x54,0x47,0xf7,0x6f,0x25,0x2a,0xf5,0x3b,0x20,0xac,0x1d,0xb7,0xde,0x8f,0xf9,0x22,0x62,0x72,0x37,0xe8,0x6c,0xfe,0x79,0x29,0xa,0xa3,0x5b,0x91,0x41,0xbc,0xc6,0xe9,0xd5,0xe4,0x14,0xb5,0x78,0xa1,0xd6,0xab,0x23,0xbf,0xce,0xe3,0x97,0xf1,0x6a,0x1f,0xdd,0xf3,0x5,0xc5,0x4a,0x9b,0xd2,0xd0,0x73,0x9d,0x2e,0x42,0xe5,0x6b,0xbd,0x93,0xa2,0xcf,0x88,0x77,0xdb,0x5d,0xb8,0x27,0xef,0x2d,0x5e,0xb,0x51,0xe,0x23,0xda,0x31,0x15,0xf3,0xa9,0x5d,0x70,0x56,0xd9,0x1e,0x50,0xa1,0x5c,0xca,0x96,0x34,0xed,0x73,0x3a,0x82,0xbb,0x36,0x2c,0x3,0xec,0x4a,0xde,0xba,0x5b,0x45,0x4c,0xf6,0x3b,0x3c,0xbc,0xa6,0x91,0xb3,0x4,0x9b,0x41,0xfa,0xe3,0x57,0x87,0xff,0xc7,0x38,0xdb,0xe6,0xf9,0x8b,0xaf,0x83,0x2a,0x71,0x12,0xad,0x48,0x4e,0xdd,0x40,0xb9,0xd7,0xc5,0x7b,0x79,0x6b,0xf2,0x13,0xa8,0x54,0x66,0xf7,0xb2,0x47,0x77,0x7a,0x8f,0x9c,0x20,0x7d,0xc0,0xcb,0x3d,0x7e,0xe8,0xa0,0xd3,0x78,0xf4,0xc4,0xab,0x72,0x26,0x6d,0x3e,0x2f,0xdf,0xf5,0xe5,0xfc,0x14,0x8,0x30,0x28,0x85,0x95,0xc1,0xa2,0xac,0xdc,0x24,0xb4,0x25,0x1d,0xce,0xea,0xa,0x80,0x8e,0x1c,0xfe,0x10,0xe0,0x6e,0xe2,0xa3,0xb8,0x86,0x0,0xb5,0x22,0x8c,0x84,0x2e,0x46,0x33,0xbe,0xaa,0x1,0x58,0x17,0xcf,0x1a,0x76,0xd2,0x60,0xc6,0x63,0x3f,0x89,0x62,0x9,0x65,0x51,0xbd,0xf1,0x9a,0x81,0x4f,0x90,0x64,0xd,0xa7,0x16,0xee,0xd4,0xc,0x5a,0x9f,0xd5,0x4d,0xfd,0xef,0x8a,0xb7,0xb6,0x88,0xcc,0x9e,0xb,0x42,0xe9,0x69,0x39,0x37,0x1f,0xa4,0x92,0x99,0x11,0x6c,0x1b,0x2d,0x59,0x74,0x5,0x6f,0x53,0x7c,0x6,0xc2,0xf,0xae,0x5e,0xb0,0x93,0xc3,0x44,0xfb,0x2b,0xe1,0x19,0xd8,0x98,0x43,0x35,0xd6,0x52,0x8d,0xc8,0x55,0x9d,0x2,0xe7,0xeb,0xb1,0xe4,0x97,0x18,0x29,0x7,0xd1,0x61,0xcd,0x32,0x75,0xc9,0x6a,0x68,0x21,0x5f,0xf8,0x94,0x27,0x67,0xa5,0xd0,0x4b,0xf0,0x7f,0xbf,0x49,0xcd,0xcb,0xc3,0x5e,0xf2,0xa9,0x2e,0x91,0x8,0x7a,0x0,0x2c,0xbb,0x44,0x65,0x58,0xd4,0x60,0x7c,0x4,0x18,0x87,0x79,0xc2,0x25,0x3f,0x30,0x12,0x75,0xcf,0xbf,0xb8,0x39,0x5d,0xc6,0xd8,0x80,0xaf,0xc9,0x6f,0x1,0xb9,0xb5,0x38,0xb7,0x15,0xf0,0x6e,0x22,0xd3,0x49,0xdf,0xd5,0xf3,0x9d,0x5a,0x70,0x96,0xde,0x2a,0xa0,0x8d,0xb2,0x59,0x93,0x7d,0xed,0x63,0x3,0x89,0x9f,0xd,0x9e,0xa6,0x69,0x4d,0x5f,0x2f,0x37,0xa7,0x16,0x6,0x21,0x42,0x8b,0x97,0xab,0xb3,0x76,0x5c,0x7f,0x66,0xee,0xa5,0xac,0xbd,0x47,0x77,0xf1,0x28,0x23,0x6b,0xfb,0x50,0x48,0x43,0xfd,0xbe,0x1f,0xc,0xfe,0xa3,0xc4,0x31,0xf9,0xf4,0xd7,0x2b,0x74,0xe5,0xe8,0xfa,0x90,0x71,0x54,0x3a,0xf8,0x46,0x9c,0xb4,0x11,0x27,0x6a,0xc1,0xba,0xea,0x4f,0xb,0x88,0x1d,0x9,0x6c,0x35,0x34,0x56,0x1c,0x7e,0xce,0x57,0x6d,0xd9,0x8f,0x8e,0xe7,0x95,0x24,0x2,0x19,0x13,0xcc,0xd2,0xe6,0x72,0x3e,0xa,0xbc,0x8a,0xe1,0xe3,0x51,0xe0,0x45,0x4c,0x94,0xf5,0x99,0x29,0x3d,0xdb,0x82,0xad,0x7,0xb0,0xc5,0x36,0x83,0xf,0xa1,0x20,0x61,0x5,0x3b,0xfc,0x73,0xca,0x3c,0x26,0xe4,0xc8,0x53,0x7b,0xdc,0xa4,0x17,0xe9,0x4a,0xa2,0xeb,0x4e,0xe2,0xf6,0xb1,0xaa,0x9b,0x52,0x84,0x32,0x68,0x14,0x67,0x1e,0xd6,0x64,0x81,0xd1,0x55,0x4b,0xe,0x1b,0x5b,0xb6,0xc0,0xa8,0x78,0x9a,0x62,0x10,0x33,0xc7,0x40,0x8c,0x41,0xdd,0x2d,0xd0,0xec,0x85,0xff,0xda,0xae,0x86,0xf7,0x92,0x1a,0x98,0xef,0x80,0x47,0xc8,0xee,0x54,0xc2,0x3f,0xce,0xaf,0x44,0xbd,0x90,0xc3,0x37,0x6d,0x8b,0xd4,0x72,0x9d,0xb2,0xdb,0xc5,0x24,0x40,0xed,0x73,0xaa,0x8,0xa8,0x25,0x1c,0xa4,0x64,0xdf,0x5,0x9a,0x61,0x19,0xc9,0x7d,0xa2,0xa5,0x68,0xd2,0x2d,0xf,0x38,0x22,0x33,0x8c,0xef,0xb4,0xde,0x43,0xd0,0xd6,0x78,0x45,0xa6,0x59,0x1d,0x31,0x15,0x67,0x69,0xf8,0xca,0x36,0xe4,0xe9,0xd9,0x2c,0xe5,0x5b,0x49,0x27,0x8d,0x6c,0xf5,0xe7,0xe6,0x4d,0x3e,0x76,0xec,0x35,0x5a,0x6a,0xe3,0xbe,0x2,0x11,0xe0,0xa3,0x55,0x5e,0xb6,0xae,0x96,0x8a,0x3c,0x5f,0xb,0x1b,0xb1,0xa0,0xf3,0xb8,0x62,0x7b,0x6b,0x41,0x82,0x10,0x1e,0x94,0xf0,0x7e,0x8e,0x60,0x2a,0xba,0x42,0x32,0x74,0x50,0x83,0xbb,0xad,0xd8,0xb0,0x1a,0xc6,0x9f,0x34,0x20,0x18,0x26,0x3d,0x7c,0x12,0xbc,0x2b,0x9e,0x97,0xfc,0x17,0xa1,0x6f,0x23,0xcf,0xfb,0xe8,0x84,0x51,0x89,0xfd,0x58,0xfe,0x4c,0xc4,0x92,0x4a,0x70,0x63,0xd3,0x4b,0x1,0xe,0xd1,0x1f,0x4,0x88,0x39,0x93,0xfa,0xa7,0xf7,0x77,0xdc,0xc,0x3a,0x81,0xa9,0x28,0x29,0x14,0x71,0x95,0x0,0x52,0x16,0x98,0xe2,0xcd,0xf1,0xc0,0x30,0x91,0x5c,0x85,0xf2,0x8f,0x7,0x9b,0xea,0xc7,0xb3,0xab,0xdd,0x6,0x46,0x56,0x13,0xcc,0x48,0xda,0x5d,0xd,0x2e,0x87,0x7f,0xb5,0x65,0x4f,0x99,0xb7,0x86,0xeb,0xac,0x53,0xff,0x79,0x9c,0x3,0xcb,0x9,0x7a,0x2f,0x75,0xd5,0x4e,0x3b,0xf9,0xd7,0x21,0xe1,0x6e,0xbf,0xf6,0xf4,0x57,0xb9,0xa,0x66,0xc1,0x4e,0xe8,0x7,0x28,0x41,0x5f,0xbe,0xda,0x77,0xe9,0x30,0x92,0x32,0xbf,0x86,0x3e,0x1a,0xdd,0x52,0x74,0xce,0x58,0xa5,0x54,0x35,0xde,0x27,0xa,0x59,0xad,0xf7,0x11,0xa9,0x16,0x75,0x2e,0x44,0xd9,0x4a,0x4c,0xe2,0xdf,0x3c,0xc3,0x87,0xab,0x8f,0xfd,0xfe,0x45,0x9f,0x0,0xfb,0x83,0x53,0xe7,0x38,0x3f,0xf2,0x48,0xb7,0x95,0xa2,0xb8,0x7c,0xd7,0xa4,0xec,0x76,0xaf,0xc0,0xf0,0x79,0x24,0x98,0x8b,0x7a,0x39,0xcf,0xc4,0xf3,0x62,0x50,0xac,0x7e,0x73,0x43,0xb6,0x7f,0xc1,0xd3,0xbd,0x17,0xf6,0x6f,0x7d,0x18,0x8a,0x84,0xe,0x6a,0xe4,0x14,0xfa,0xb0,0x20,0xd8,0xa8,0xee,0xca,0x19,0x21,0x2c,0x34,0xc,0x10,0xa6,0xc5,0x91,0x81,0x2b,0x3a,0x69,0x22,0xf8,0xe1,0xf1,0xdb,0xd,0x66,0x8d,0x3b,0xf5,0xb9,0x55,0x61,0x72,0x1e,0xcb,0x13,0x67,0xc2,0x64,0xd6,0x37,0x42,0x2a,0x80,0x5c,0x5,0xae,0xba,0x82,0xbc,0xa7,0xe6,0x88,0x26,0xb1,0x4,0x3d,0x6d,0xed,0x46,0x96,0xa0,0x1b,0x33,0xb2,0xb3,0x8e,0xeb,0xf,0x9a,0xc8,0x8c,0x5e,0x8,0xd0,0xea,0xf9,0x49,0xd1,0x9b,0x94,0x4b,0x85,0x9e,0x12,0xa3,0x9,0x60,0x31,0x47,0x9c,0xdc,0xcc,0x89,0x56,0xd2,0x40,0xc7,0x97,0xb4,0x1d,0xe5,0x2f,0xff,0x2,0x78,0x57,0x6b,0x5a,0xaa,0xb,0xc6,0x1f,0x68,0x15,0x9d,0x1,0x70,0x5d,0x29,0x4f,0xd4,0xa1,0x63,0x4d,0xbb,0x7b,0xf4,0x25,0x6c,0x6e,0xcd,0x23,0x90,0xfc,0x5b,0xd5,0x3,0x2d,0x1c,0x71,0x36,0xc9,0x65,0xe3,0x6,0x99,0x51,0x93,0xe0,0xb5,0xef,0x70,0x5d,0xa4,0x4f,0x6b,0x8d,0xd7,0x23,0xe,0x28,0xa7,0x60,0x2e,0xdf,0x22,0xb4,0xe8,0x4a,0x93,0xd,0x44,0xfc,0xc5,0x48,0x52,0x7d,0x92,0x34,0xa0,0xc4,0x25,0x3b,0x32,0x88,0x45,0x42,0xc2,0xd8,0xef,0xcd,0x7a,0xe5,0x3f,0x84,0x9d,0x29,0xf9,0x81,0xb9,0x46,0xa5,0x98,0x87,0xf5,0xd1,0xfd,0x54,0xf,0x6c,0xd3,0x36,0x30,0xa3,0x3e,0xc7,0xa9,0xbb,0x5,0x7,0x15,0x8c,0x6d,0xd6,0x2a,0x18,0x89,0xcc,0x39,0x9,0x4,0xf1,0xe2,0x5e,0x3,0xbe,0xb5,0x43,0x0,0x96,0xde,0xad,0x6,0x8a,0xba,0xd5,0xc,0x58,0x13,0x40,0x51,0xa1,0x8b,0x9b,0x82,0x6a,0x76,0x4e,0x56,0xfb,0xeb,0xbf,0xdc,0xd2,0xa2,0x5a,0xca,0x5b,0x63,0xb0,0x94,0x74,0xfe,0xf0,0x62,0x80,0x6e,0x9e,0x10,0x9c,0xdd,0xc6,0xf8,0x7e,0xcb,0x5c,0xf2,0xfa,0x50,0x38,0x4d,0xc0,0xd4,0x7f,0x26,0x69,0xb1,0x64,0x8,0xac,0x1e,0xb8,0x1d,0x41,0xf7,0x1c,0x77,0x1b,0x2f,0xc3,0x8f,0xe4,0xff,0x31,0xee,0x1a,0x73,0xd9,0x68,0x90,0xaa,0x72,0x24,0xe1,0xab,0x33,0x83,0x91,0xf4,0xc9,0xc8,0xf6,0xb2,0xe0,0x75,0x3c,0x97,0x17,0x47,0x49,0x61,0xda,0xec,0xe7,0x6f,0x12,0x65,0x53,0x27,0xa,0x7b,0x11,0x2d,0x2,0x78,0xbc,0x71,0xd0,0x20,0xce,0xed,0xbd,0x3a,0x85,0x55,0x9f,0x67,0xa6,0xe6,0x3d,0x4b,0xa8,0x2c,0xf3,0xb6,0x2b,0xe3,0x7c,0x99,0x95,0xcf,0x9a,0xe9,0x66,0x57,0x79,0xaf,0x1f,0xb3,0x4c,0xb,0xb7,0x14,0x16,0x5f,0x21,0x86,0xea,0x59,0x19,0xdb,0xae,0x35,0x8e,0x1,0xc1,0x37,0xf4,0xf2,0xfa,0x67,0xcb,0x90,0x17,0xa8,0x31,0x43,0x39,0x15,0x82,0x7d,0x5c,0x61,0xed,0x59,0x45,0x3d,0x21,0xbe,0x40,0xfb,0x1c,0x6,0x9,0x2b,0x4c,0xf6,0x86,0x81,0x0,0x64,0xff,0xe1,0xb9,0x96,0xf0,0x56,0x38,0x80,0x8c,0x1,0x8e,0x2c,0xc9,0x57,0x1b,0xea,0x70,0xe6,0xec,0xca,0xa4,0x63,0x49,0xaf,0xe7,0x13,0x99,0xb4,0x8b,0x60,0xaa,0x44,0xd4,0x5a,0x3a,0xb0,0xa6,0x34,0xa7,0x9f,0x50,0x74,0x66,0x16,0xe,0x9e,0x2f,0x3f,0x18,0x7b,0xb2,0xae,0x92,0x8a,0x4f,0x65,0x46,0x5f,0xd7,0x9c,0x95,0x84,0x7e,0x4e,0xc8,0x11,0x1a,0x52,0xc2,0x69,0x71,0x7a,0xc4,0x87,0x26,0x35,0xc7,0x9a,0xfd,0x8,0xc0,0xcd,0xee,0x12,0x4d,0xdc,0xd1,0xc3,0xa9,0x48,0x6d,0x3,0xc1,0x7f,0xa5,0x8d,0x28,0x1e,0x53,0xf8,0x83,0xd3,0x76,0x32,0xb1,0x24,0x30,0x55,0xc,0xd,0x6f,0x25,0x47,0xf7,0x6e,0x54,0xe0,0xb6,0xb7,0xde,0xac,0x1d,0x3b,0x20,0x2a,0xf5,0xeb,0xdf,0x4b,0x7,0x33,0x85,0xb3,0xd8,0xda,0x68,0xd9,0x7c,0x75,0xad,0xcc,0xa0,0x10,0x4,0xe2,0xbb,0x94,0x3e,0x89,0xfc,0xf,0xba,0x36,0x98,0x19,0x58,0x3c,0x2,0xc5,0x4a,0xf3,0x5,0x1f,0xdd,0xf1,0x6a,0x42,0xe5,0x9d,0x2e,0xd0,0x73,0x9b,0xd2,0x77,0xdb,0xcf,0x88,0x93,0xa2,0x6b,0xbd,0xb,0x51,0x2d,0x5e,0x27,0xef,0x5d,0xb8,0xe8,0x6c,0x72,0x37,0x22,0x62,0x8f,0xf9,0x91,0x41,0xa3,0x5b,0x29,0xa,0xfe,0x79,0xb5,0x78,0xe4,0x14,0xe9,0xd5,0xbc,0xc6,0xe3,0x97,0xbf,0xce,0xab,0x23,0xa1,0xd6,0x44,0x83,0xc,0x2a,0x90,0x6,0xfb,0xa,0x6b,0x80,0x79,0x54,0x7,0xf3,0xa9,0x4f,0x10,0xb6,0x59,0x76,0x1f,0x1,0xe0,0x84,0x29,0xb7,0x6e,0xcc,0x6c,0xe1,0xd8,0x60,0xa0,0x1b,0xc1,0x5e,0xa5,0xdd,0xd,0xb9,0x66,0x61,0xac,0x16,0xe9,0xcb,0xfc,0xe6,0xf7,0x48,0x2b,0x70,0x1a,0x87,0x14,0x12,0xbc,0x81,0x62,0x9d,0xd9,0xf5,0xd1,0xa3,0xad,0x3c,0xe,0xf2,0x20,0x2d,0x1d,0xe8,0x21,0x9f,0x8d,0xe3,0x49,0xa8,0x31,0x23,0x22,0x89,0xfa,0xb2,0x28,0xf1,0x9e,0xae,0x27,0x7a,0xc6,0xd5,0x24,0x67,0x91,0x9a,0x72,0x6a,0x52,0x4e,0xf8,0x9b,0xcf,0xdf,0x75,0x64,0x37,0x7c,0xa6,0xbf,0xaf,0x85,0x46,0xd4,0xda,0x50,0x34,0xba,0x4a,0xa4,0xee,0x7e,0x86,0xf6,0xb0,0x94,0x47,0x7f,0x69,0x1c,0x74,0xde,0x2,0x5b,0xf0,0xe4,0xdc,0xe2,0xf9,0xb8,0xd6,0x78,0xef,0x5a,0x53,0x38,0xd3,0x65,0xab,0xe7,0xb,0x3f,0x2c,0x40,0x95,0x4d,0x39,0x9c,0x3a,0x88,0x0,0x56,0x8e,0xb4,0xa7,0x17,0x8f,0xc5,0xca,0x15,0xdb,0xc0,0x4c,0xfd,0x57,0x3e,0x63,0x33,0xb3,0x18,0xc8,0xfe,0x45,0x6d,0xec,0xed,0xd0,0xb5,0x51,0xc4,0x96,0xd2,0x5c,0x26,0x9,0x35,0x4,0xf4,0x55,0x98,0x41,0x36,0x4b,0xc3,0x5f,0x2e,0x3,0x77,0x6f,0x19,0xc2,0x82,0x92,0xd7,0x8,0x8c,0x1e,0x99,0xc9,0xea,0x43,0xbb,0x71,0xa1,0x8b,0x5d,0x73,0x42,0x2f,0x68,0x97,0x3b,0xbd,0x58,0xc7,0xf,0xcd,0xbe,0xeb,0xb1,0x11,0x8a,0xff,0x3d,0x13,0xe5,0x25,0xaa,0x7b,0x32,0x30,0x93,0x7d,0xce,0xa2,0x5,0xed,0x4b,0xa4,0x8b,0xe2,0xfc,0x1d,0x79,0xd4,0x4a,0x93,0x31,0x91,0x1c,0x25,0x9d,0xb9,0x7e,0xf1,0xd7,0x6d,0xfb,0x6,0xf7,0x96,0x7d,0x84,0xa9,0xfa,0xe,0x54,0xb2,0xa,0xb5,0xd6,0x8d,0xe7,0x7a,0xe9,0xef,0x41,0x7c,0x9f,0x60,0x24,0x8,0x2c,0x5e,0x5d,0xe6,0x3c,0xa3,0x58,0x20,0xf0,0x44,0x9b,0x9c,0x51,0xeb,0x14,0x36,0x1,0x1b,0xdf,0x74,0x7,0x4f,0xd5,0xc,0x63,0x53,0xda,0x87,0x3b,0x28,0xd9,0x9a,0x6c,0x67,0x50,0xc1,0xf3,0xf,0xdd,0xd0,0xe0,0x15,0xdc,0x62,0x70,0x1e,0xb4,0x55,0xcc,0xde,0xbb,0x29,0x27,0xad,0xc9,0x47,0xb7,0x59,0x13,0x83,0x7b,0xb,0x4d,0x69,0xba,0x82,0x8f,0x97,0xaf,0xb3,0x5,0x66,0x32,0x22,0x88,0x99,0xca,0x81,0x5b,0x42,0x52,0x78,0xae,0xc5,0x2e,0x98,0x56,0x1a,0xf6,0xc2,0xd1,0xbd,0x68,0xb0,0xc4,0x61,0xc7,0x75,0x94,0xe1,0x89,0x23,0xff,0xa6,0xd,0x19,0x21,0x1f,0x4,0x45,0x2b,0x85,0x12,0xa7,0x9e,0xce,0x4e,0xe5,0x35,0x3,0xb8,0x90,0x11,0x10,0x2d,0x48,0xac,0x39,0x6b,0x2f,0xfd,0xab,0x73,0x49,0x5a,0xea,0x72,0x38,0x37,0xe8,0x26,0x3d,0xb1,0x0,0xaa,0xc3,0x92,0xe4,0x3f,0x7f,0x6f,0x2a,0xf5,0x71,0xe3,0x64,0x34,0x17,0xbe,0x46,0x8c,0x5c,0xa1,0xdb,0xf4,0xc8,0xf9,0x9,0xa8,0x65,0xbc,0xcb,0xb6,0x3e,0xa2,0xd3,0xfe,0x8a,0xec,0x77,0x2,0xc0,0xee,0x18,0xd8,0x57,0x86,0xcf,0xcd,0x6e,0x80,0x33,0x5f,0xf8,0x76,0xa0,0x8e,0xbf,0xd2,0x95,0x6a,0xc6,0x40,0xa5,0x3a,0xf2,0x30,0x43,0x16,0x4c,0xb3,0x9e,0x67,0x8c,0xa8,0x4e,0x14,0xe0,0xcd,0xeb,0x64,0xa3,0xed,0x1c,0xe1,0x77,0x2b,0x89,0x50,0xce,0x87,0x3f,0x6,0x8b,0x91,0xbe,0x51,0xf7,0x63,0x7,0xe6,0xf8,0xf1,0x4b,0x86,0x81,0x1,0x1b,0x2c,0xe,0xb9,0x26,0xfc,0x47,0x5e,0xea,0x3a,0x42,0x7a,0x85,0x66,0x5b,0x44,0x36,0x12,0x3e,0x97,0xcc,0xaf,0x10,0xf5,0xf3,0x60,0xfd,0x4,0x6a,0x78,0xc6,0xc4,0xd6,0x4f,0xae,0x15,0xe9,0xdb,0x4a,0xf,0xfa,0xca,0xc7,0x32,0x21,0x9d,0xc0,0x7d,0x76,0x80,0xc3,0x55,0x1d,0x6e,0xc5,0x49,0x79,0x16,0xcf,0x9b,0xd0,0x83,0x92,0x62,0x48,0x58,0x41,0xa9,0xb5,0x8d,0x95,0x38,0x28,0x7c,0x1f,0x11,0x61,0x99,0x9,0x98,0xa0,0x73,0x57,0xb7,0x3d,0x33,0xa1,0x43,0xad,0x5d,0xd3,0x5f,0x1e,0x5,0x3b,0xbd,0x8,0x9f,0x31,0x39,0x93,0xfb,0x8e,0x3,0x17,0xbc,0xe5,0xaa,0x72,0xa7,0xcb,0x6f,0xdd,0x7b,0xde,0x82,0x34,0xdf,0xb4,0xd8,0xec,0x0,0x4c,0x27,0x3c,0xf2,0x2d,0xd9,0xb0,0x1a,0xab,0x53,0x69,0xb1,0xe7,0x22,0x68,0xf0,0x40,0x52,0x37,0xa,0xb,0x35,0x71,0x23,0xb6,0xff,0x54,0xd4,0x84,0x8a,0xa2,0x19,0x2f,0x24,0xac,0xd1,0xa6,0x90,0xe4,0xc9,0xb8,0xd2,0xee,0xc1,0xbb,0x7f,0xb2,0x13,0xe3,0xd,0x2e,0x7e,0xf9,0x46,0x96,0x5c,0xa4,0x65,0x25,0xfe,0x88,0x6b,0xef,0x30,0x75,0xe8,0x20,0xbf,0x5a,0x56,0xc,0x59,0x2a,0xa5,0x94,0xba,0x6c,0xdc,0x70,0x8f,0xc8,0x74,0xd7,0xd5,0x9c,0xe2,0x45,0x29,0x9a,0xda,0x18,0x6d,0xf6,0x4d,0xc2,0x2,0xf4,0x7e,0x78,0x70,0xed,0x41,0x1a,0x9d,0x22,0xbb,0xc9,0xb3,0x9f,0x8,0xf7,0xd6,0xeb,0x67,0xd3,0xcf,0xb7,0xab,0x34,0xca,0x71,0x96,0x8c,0x83,0xa1,0xc6,0x7c,0xc,0xb,0x8a,0xee,0x75,0x6b,0x33,0x1c,0x7a,0xdc,0xb2,0xa,0x6,0x8b,0x4,0xa6,0x43,0xdd,0x91,0x60,0xfa,0x6c,0x66,0x40,0x2e,0xe9,0xc3,0x25,0x6d,0x99,0x13,0x3e,0x1,0xea,0x20,0xce,0x5e,0xd0,0xb0,0x3a,0x2c,0xbe,0x2d,0x15,0xda,0xfe,0xec,0x9c,0x84,0x14,0xa5,0xb5,0x92,0xf1,0x38,0x24,0x18,0x0,0xc5,0xef,0xcc,0xd5,0x5d,0x16,0x1f,0xe,0xf4,0xc4,0x42,0x9b,0x90,0xd8,0x48,0xe3,0xfb,0xf0,0x4e,0xd,0xac,0xbf,0x4d,0x10,0x77,0x82,0x4a,0x47,0x64,0x98,0xc7,0x56,0x5b,0x49,0x23,0xc2,0xe7,0x89,0x4b,0xf5,0x2f,0x7,0xa2,0x94,0xd9,0x72,0x9,0x59,0xfc,0xb8,0x3b,0xae,0xba,0xdf,0x86,0x87,0xe5,0xaf,0xcd,0x7d,0xe4,0xde,0x6a,0x3c,0x3d,0x54,0x26,0x97,0xb1,0xaa,0xa0,0x7f,0x61,0x55,0xc1,0x8d,0xb9,0xf,0x39,0x52,0x50,0xe2,0x53,0xf6,0xff,0x27,0x46,0x2a,0x9a,0x8e,0x68,0x31,0x1e,0xb4,0x3,0x76,0x85,0x30,0xbc,0x12,0x93,0xd2,0xb6,0x88,0x4f,0xc0,0x79,0x8f,0x95,0x57,0x7b,0xe0,0xc8,0x6f,0x17,0xa4,0x5a,0xf9,0x11,0x58,0xfd,0x51,0x45,0x2,0x19,0x28,0xe1,0x37,0x81,0xdb,0xa7,0xd4,0xad,0x65,0xd7,0x32,0x62,0xe6,0xf8,0xbd,0xa8,0xe8,0x5,0x73,0x1b,0xcb,0x29,0xd1,0xa3,0x80,0x74,0xf3,0x3f,0xf2,0x6e,0x9e,0x63,0x5f,0x36,0x4c,0x69,0x1d,0x35,0x44,0x21,0xa9,0x2b,0x5c,0x10,0xd7,0x58,0x7e,0xc4,0x52,0xaf,0x5e,0x3f,0xd4,0x2d,0x0,0x53,0xa7,0xfd,0x1b,0x44,0xe2,0xd,0x22,0x4b,0x55,0xb4,0xd0,0x7d,0xe3,0x3a,0x98,0x38,0xb5,0x8c,0x34,0xf4,0x4f,0x95,0xa,0xf1,0x89,0x59,0xed,0x32,0x35,0xf8,0x42,0xbd,0x9f,0xa8,0xb2,0xa3,0x1c,0x7f,0x24,0x4e,0xd3,0x40,0x46,0xe8,0xd5,0x36,0xc9,0x8d,0xa1,0x85,0xf7,0xf9,0x68,0x5a,0xa6,0x74,0x79,0x49,0xbc,0x75,0xcb,0xd9,0xb7,0x1d,0xfc,0x65,0x77,0x76,0xdd,0xae,0xe6,0x7c,0xa5,0xca,0xfa,0x73,0x2e,0x92,0x81,0x70,0x33,0xc5,0xce,0x26,0x3e,0x6,0x1a,0xac,0xcf,0x9b,0x8b,0x21,0x30,0x63,0x28,0xf2,0xeb,0xfb,0xd1,0x12,0x80,0x8e,0x4,0x60,0xee,0x1e,0xf0,0xba,0x2a,0xd2,0xa2,0xe4,0xc0,0x13,0x2b,0x3d,0x48,0x20,0x8a,0x56,0xf,0xa4,0xb0,0x88,0xb6,0xad,0xec,0x82,0x2c,0xbb,0xe,0x7,0x6c,0x87,0x31,0xff,0xb3,0x5f,0x6b,0x78,0x14,0xc1,0x19,0x6d,0xc8,0x6e,0xdc,0x54,0x2,0xda,0xe0,0xf3,0x43,0xdb,0x91,0x9e,0x41,0x8f,0x94,0x18,0xa9,0x3,0x6a,0x37,0x67,0xe7,0x4c,0x9c,0xaa,0x11,0x39,0xb8,0xb9,0x84,0xe1,0x5,0x90,0xc2,0x86,0x8,0x72,0x5d,0x61,0x50,0xa0,0x1,0xcc,0x15,0x62,0x1f,0x97,0xb,0x7a,0x57,0x23,0x3b,0x4d,0x96,0xd6,0xc6,0x83,0x5c,0xd8,0x4a,0xcd,0x9d,0xbe,0x17,0xef,0x25,0xf5,0xdf,0x9,0x27,0x16,0x7b,0x3c,0xc3,0x6f,0xe9,0xc,0x93,0x5b,0x99,0xea,0xbf,0xe5,0x45,0xde,0xab,0x69,0x47,0xb1,0x71,0xfe,0x2f,0x66,0x64,0xc7,0x29,0x9a,0xf6,0x51,0x14,0xb2,0x5d,0x72,0x1b,0x5,0xe4,0x80,0x2d,0xb3,0x6a,0xc8,0x68,0xe5,0xdc,0x64,0x40,0x87,0x8,0x2e,0x94,0x2,0xff,0xe,0x6f,0x84,0x7d,0x50,0x3,0xf7,0xad,0x4b,0xf3,0x4c,0x2f,0x74,0x1e,0x83,0x10,0x16,0xb8,0x85,0x66,0x99,0xdd,0xf1,0xd5,0xa7,0xa4,0x1f,0xc5,0x5a,0xa1,0xd9,0x9,0xbd,0x62,0x65,0xa8,0x12,0xed,0xcf,0xf8,0xe2,0x26,0x8d,0xfe,0xb6,0x2c,0xf5,0x9a,0xaa,0x23,0x7e,0xc2,0xd1,0x20,0x63,0x95,0x9e,0xa9,0x38,0xa,0xf6,0x24,0x29,0x19,0xec,0x25,0x9b,0x89,0xe7,0x4d,0xac,0x35,0x27,0x42,0xd0,0xde,0x54,0x30,0xbe,0x4e,0xa0,0xea,0x7a,0x82,0xf2,0xb4,0x90,0x43,0x7b,0x76,0x6e,0x56,0x4a,0xfc,0x9f,0xcb,0xdb,0x71,0x60,0x33,0x78,0xa2,0xbb,0xab,0x81,0x57,0x3c,0xd7,0x61,0xaf,0xe3,0xf,0x3b,0x28,0x44,0x91,0x49,0x3d,0x98,0x3e,0x8c,0x6d,0x18,0x70,0xda,0x6,0x5f,0xf4,0xe0,0xd8,0xe6,0xfd,0xbc,0xd2,0x7c,0xeb,0x5e,0x67,0x37,0xb7,0x1c,0xcc,0xfa,0x41,0x69,0xe8,0xe9,0xd4,0xb1,0x55,0xc0,0x92,0xd6,0x4,0x52,0x8a,0xb0,0xa3,0x13,0x8b,0xc1,0xce,0x11,0xdf,0xc4,0x48,0xf9,0x53,0x3a,0x6b,0x1d,0xc6,0x86,0x96,0xd3,0xc,0x88,0x1a,0x9d,0xcd,0xee,0x47,0xbf,0x75,0xa5,0x58,0x22,0xd,0x31,0x0,0xf0,0x51,0x9c,0x45,0x32,0x4f,0xc7,0x5b,0x2a,0x7,0x73,0x15,0x8e,0xfb,0x39,0x17,0xe1,0x21,0xae,0x7f,0x36,0x34,0x97,0x79,0xca,0xa6,0x1,0x8f,0x59,0x77,0x46,0x2b,0x6c,0x93,0x3f,0xb9,0x5c,0xc3,0xb,0xc9,0xba,0xef,0xb5,0xf8,0xd5,0x2c,0xc7,0xe3,0x5,0x5f,0xab,0x86,0xa0,0x2f,0xe8,0xa6,0x57,0xaa,0x3c,0x60,0xc2,0x1b,0x85,0xcc,0x74,0x4d,0xc0,0xda,0xf5,0x1a,0xbc,0x28,0x4c,0xad,0xb3,0xba,0x0,0xcd,0xca,0x4a,0x50,0x67,0x45,0xf2,0x6d,0xb7,0xc,0x15,0xa1,0x71,0x9,0x31,0xce,0x2d,0x10,0xf,0x7d,0x59,0x75,0xdc,0x87,0xe4,0x5b,0xbe,0xb8,0x2b,0xb6,0x4f,0x21,0x33,0x8d,0x8f,0x9d,0x4,0xe5,0x5e,0xa2,0x90,0x1,0x44,0xb1,0x81,0x8c,0x79,0x6a,0xd6,0x8b,0x36,0x3d,0xcb,0x88,0x1e,0x56,0x25,0x8e,0x2,0x32,0x5d,0x84,0xd0,0x9b,0xc8,0xd9,0x29,0x3,0x13,0xa,0xe2,0xfe,0xc6,0xde,0x73,0x63,0x37,0x54,0x5a,0x2a,0xd2,0x42,0xd3,0xeb,0x38,0x1c,0xfc,0x76,0x78,0xea,0x8,0xe6,0x16,0x98,0x14,0x55,0x4e,0x70,0xf6,0x43,0xd4,0x7a,0x72,0xd8,0xb0,0xc5,0x48,0x5c,0xf7,0xae,0xe1,0x39,0xec,0x80,0x24,0x96,0x30,0x95,0xc9,0x7f,0x94,0xff,0x93,0xa7,0x4b,0x7,0x6c,0x77,0xb9,0x66,0x92,0xfb,0x51,0xe0,0x18,0x22,0xfa,0xac,0x69,0x23,0xbb,0xb,0x19,0x7c,0x41,0x40,0x7e,0x3a,0x68,0xfd,0xb4,0x1f,0x9f,0xcf,0xc1,0xe9,0x52,0x64,0x6f,0xe7,0x9a,0xed,0xdb,0xaf,0x82,0xf3,0x99,0xa5,0x8a,0xf0,0x34,0xf9,0x58,0xa8,0x46,0x65,0x35,0xb2,0xd,0xdd,0x17,0xef,0x2e,0x6e,0xb5,0xc3,0x20,0xa4,0x7b,0x3e,0xa3,0x6b,0xf4,0x11,0x1d,0x47,0x12,0x61,0xee,0xdf,0xf1,0x27,0x97,0x3b,0xc4,0x83,0x3f,0x9c,0x9e,0xd7,0xa9,0xe,0x62,0xd1,0x91,0x53,0x26,0xbd,0x6,0x89,0x49,0xbf,0x32,0x34,0x3c,0xa1,0xd,0x56,0xd1,0x6e,0xf7,0x85,0xff,0xd3,0x44,0xbb,0x9a,0xa7,0x2b,0x9f,0x83,0xfb,0xe7,0x78,0x86,0x3d,0xda,0xc0,0xcf,0xed,0x8a,0x30,0x40,0x47,0xc6,0xa2,0x39,0x27,0x7f,0x50,0x36,0x90,0xfe,0x46,0x4a,0xc7,0x48,0xea,0xf,0x91,0xdd,0x2c,0xb6,0x20,0x2a,0xc,0x62,0xa5,0x8f,0x69,0x21,0xd5,0x5f,0x72,0x4d,0xa6,0x6c,0x82,0x12,0x9c,0xfc,0x76,0x60,0xf2,0x61,0x59,0x96,0xb2,0xa0,0xd0,0xc8,0x58,0xe9,0xf9,0xde,0xbd,0x74,0x68,0x54,0x4c,0x89,0xa3,0x80,0x99,0x11,0x5a,0x53,0x42,0xb8,0x88,0xe,0xd7,0xdc,0x94,0x4,0xaf,0xb7,0xbc,0x2,0x41,0xe0,0xf3,0x1,0x5c,0x3b,0xce,0x6,0xb,0x28,0xd4,0x8b,0x1a,0x17,0x5,0x6f,0x8e,0xab,0xc5,0x7,0xb9,0x63,0x4b,0xee,0xd8,0x95,0x3e,0x45,0x15,0xb0,0xf4,0x77,0xe2,0xf6,0x93,0xca,0xcb,0xa9,0xe3,0x81,0x31,0xa8,0x92,0x26,0x70,0x71,0x18,0x6a,0xdb,0xfd,0xe6,0xec,0x33,0x2d,0x19,0x8d,0xc1,0xf5,0x43,0x75,0x1e,0x1c,0xae,0x1f,0xba,0xb3,0x6b,0xa,0x66,0xd6,0xc2,0x24,0x7d,0x52,0xf8,0x4f,0x3a,0xc9,0x7c,0xf0,0x5e,0xdf,0x9e,0xfa,0xc4,0x3,0x8c,0x35,0xc3,0xd9,0x1b,0x37,0xac,0x84,0x23,0x5b,0xe8,0x16,0xb5,0x5d,0x14,0xb1,0x1d,0x9,0x4e,0x55,0x64,0xad,0x7b,0xcd,0x97,0xeb,0x98,0xe1,0x29,0x9b,0x7e,0x2e,0xaa,0xb4,0xf1,0xe4,0xa4,0x49,0x3f,0x57,0x87,0x65,0x9d,0xef,0xcc,0x38,0xbf,0x73,0xbe,0x22,0xd2,0x2f,0x13,0x7a,0x0,0x25,0x51,0x79,0x8,0x6d,0xe5,0x67,0x10,0xae,0x69,0xe6,0xc0,0x7a,0xec,0x11,0xe0,0x81,0x6a,0x93,0xbe,0xed,0x19,0x43,0xa5,0xfa,0x5c,0xb3,0x9c,0xf5,0xeb,0xa,0x6e,0xc3,0x5d,0x84,0x26,0x86,0xb,0x32,0x8a,0x4a,0xf1,0x2b,0xb4,0x4f,0x37,0xe7,0x53,0x8c,0x8b,0x46,0xfc,0x3,0x21,0x16,0xc,0x1d,0xa2,0xc1,0x9a,0xf0,0x6d,0xfe,0xf8,0x56,0x6b,0x88,0x77,0x33,0x1f,0x3b,0x49,0x47,0xd6,0xe4,0x18,0xca,0xc7,0xf7,0x2,0xcb,0x75,0x67,0x9,0xa3,0x42,0xdb,0xc9,0xc8,0x63,0x10,0x58,0xc2,0x1b,0x74,0x44,0xcd,0x90,0x2c,0x3f,0xce,0x8d,0x7b,0x70,0x98,0x80,0xb8,0xa4,0x12,0x71,0x25,0x35,0x9f,0x8e,0xdd,0x96,0x4c,0x55,0x45,0x6f,0xac,0x3e,0x30,0xba,0xde,0x50,0xa0,0x4e,0x4,0x94,0x6c,0x1c,0x5a,0x7e,0xad,0x95,0x83,0xf6,0x9e,0x34,0xe8,0xb1,0x1a,0xe,0x36,0x8,0x13,0x52,0x3c,0x92,0x5,0xb0,0xb9,0xd2,0x39,0x8f,0x41,0xd,0xe1,0xd5,0xc6,0xaa,0x7f,0xa7,0xd3,0x76,0xd0,0x62,0xea,0xbc,0x64,0x5e,0x4d,0xfd,0x65,0x2f,0x20,0xff,0x31,0x2a,0xa6,0x17,0xbd,0xd4,0x89,0xd9,0x59,0xf2,0x22,0x14,0xaf,0x87,0x6,0x7,0x3a,0x5f,0xbb,0x2e,0x7c,0x38,0xb6,0xcc,0xe3,0xdf,0xee,0x1e,0xbf,0x72,0xab,0xdc,0xa1,0x29,0xb5,0xc4,0xe9,0x9d,0x85,0xf3,0x28,0x68,0x78,0x3d,0xe2,0x66,0xf4,0x73,0x23,0x0,0xa9,0x51,0x9b,0x4b,0x61,0xb7,0x99,0xa8,0xc5,0x82,0x7d,0xd1,0x57,0xb2,0x2d,0xe5,0x27,0x54,0x1,0x5b,0xfb,0x60,0x15,0xd7,0xf9,0xf,0xcf,0x40,0x91,0xd8,0xda,0x79,0x97,0x24,0x48,0xef,0x8c,0x2a,0xc5,0xea,0x83,0x9d,0x7c,0x18,0xb5,0x2b,0xf2,0x50,0xf0,0x7d,0x44,0xfc,0xd8,0x1f,0x90,0xb6,0xc,0x9a,0x67,0x96,0xf7,0x1c,0xe5,0xc8,0x9b,0x6f,0x35,0xd3,0x6b,0xd4,0xb7,0xec,0x86,0x1b,0x88,0x8e,0x20,0x1d,0xfe,0x1,0x45,0x69,0x4d,0x3f,0x3c,0x87,0x5d,0xc2,0x39,0x41,0x91,0x25,0xfa,0xfd,0x30,0x8a,0x75,0x57,0x60,0x7a,0xbe,0x15,0x66,0x2e,0xb4,0x6d,0x2,0x32,0xbb,0xe6,0x5a,0x49,0xb8,0xfb,0xd,0x6,0x31,0xa0,0x92,0x6e,0xbc,0xb1,0x81,0x74,0xbd,0x3,0x11,0x7f,0xd5,0x34,0xad,0xbf,0xda,0x48,0x46,0xcc,0xa8,0x26,0xd6,0x38,0x72,0xe2,0x1a,0x6a,0x2c,0x8,0xdb,0xe3,0xee,0xf6,0xce,0xd2,0x64,0x7,0x53,0x43,0xe9,0xf8,0xab,0xe0,0x3a,0x23,0x33,0x19,0xcf,0xa4,0x4f,0xf9,0x37,0x7b,0x97,0xa3,0xb0,0xdc,0x9,0xd1,0xa5,0x0,0xa6,0x14,0xf5,0x80,0xe8,0x42,0x9e,0xc7,0x6c,0x78,0x40,0x7e,0x65,0x24,0x4a,0xe4,0x73,0xc6,0xff,0xaf,0x2f,0x84,0x54,0x62,0xd9,0xf1,0x70,0x71,0x4c,0x29,0xcd,0x58,0xa,0x4e,0x9c,0xca,0x12,0x28,0x3b,0x8b,0x13,0x59,0x56,0x89,0x47,0x5c,0xd0,0x61,0xcb,0xa2,0xf3,0x85,0x5e,0x1e,0xe,0x4b,0x94,0x10,0x82,0x5,0x55,0x76,0xdf,0x27,0xed,0x3d,0xc0,0xba,0x95,0xa9,0x98,0x68,0xc9,0x4,0xdd,0xaa,0xd7,0x5f,0xc3,0xb2,0x9f,0xeb,0x8d,0x16,0x63,0xa1,0x8f,0x79,0xb9,0x36,0xe7,0xae,0xac,0xf,0xe1,0x52,0x3e,0x99,0x17,0xc1,0xef,0xde,0xb3,0xf4,0xb,0xa7,0x21,0xc4,0x5b,0x93,0x51,0x22,0x77,0x2d,0x58,0x75,0x8c,0x67,0x43,0xa5,0xff,0xb,0x26,0x0,0x8f,0x48,0x6,0xf7,0xa,0x9c,0xc0,0x62,0xbb,0x25,0x6c,0xd4,0xed,0x60,0x7a,0x55,0xba,0x1c,0x88,0xec,0xd,0x13,0x1a,0xa0,0x6d,0x6a,0xea,0xf0,0xc7,0xe5,0x52,0xcd,0x17,0xac,0xb5,0x1,0xd1,0xa9,0x91,0x6e,0x8d,0xb0,0xaf,0xdd,0xf9,0xd5,0x7c,0x27,0x44,0xfb,0x1e,0x18,0x8b,0x16,0xef,0x81,0x93,0x2d,0x2f,0x3d,0xa4,0x45,0xfe,0x2,0x30,0xa1,0xe4,0x11,0x21,0x2c,0xd9,0xca,0x76,0x2b,0x96,0x9d,0x6b,0x28,0xbe,0xf6,0x85,0x2e,0xa2,0x92,0xfd,0x24,0x70,0x3b,0x68,0x79,0x89,0xa3,0xb3,0xaa,0x42,0x5e,0x66,0x7e,0xd3,0xc3,0x97,0xf4,0xfa,0x8a,0x72,0xe2,0x73,0x4b,0x98,0xbc,0x5c,0xd6,0xd8,0x4a,0xa8,0x46,0xb6,0x38,0xb4,0xf5,0xee,0xd0,0x56,0xe3,0x74,0xda,0xd2,0x78,0x10,0x65,0xe8,0xfc,0x57,0xe,0x41,0x99,0x4c,0x20,0x84,0x36,0x90,0x35,0x69,0xdf,0x34,0x5f,0x33,0x7,0xeb,0xa7,0xcc,0xd7,0x19,0xc6,0x32,0x5b,0xf1,0x40,0xb8,0x82,0x5a,0xc,0xc9,0x83,0x1b,0xab,0xb9,0xdc,0xe1,0xe0,0xde,0x9a,0xc8,0x5d,0x14,0xbf,0x3f,0x6f,0x61,0x49,0xf2,0xc4,0xcf,0x47,0x3a,0x4d,0x7b,0xf,0x22,0x53,0x39,0x5,0x2a,0x50,0x94,0x59,0xf8,0x8,0xe6,0xc5,0x95,0x12,0xad,0x7d,0xb7,0x4f,0x8e,0xce,0x15,0x63,0x80,0x4,0xdb,0x9e,0x3,0xcb,0x54,0xb1,0xbd,0xe7,0xb2,0xc1,0x4e,0x7f,0x51,0x87,0x37,0x9b,0x64,0x23,0x9f,0x3c,0x3e,0x77,0x9,0xae,0xc2,0x71,0x31,0xf3,0x86,0x1d,0xa6,0x29,0xe9,0x1f,0xf,0x9,0x1,0x9c,0x30,0x6b,0xec,0x53,0xca,0xb8,0xc2,0xee,0x79,0x86,0xa7,0x9a,0x16,0xa2,0xbe,0xc6,0xda,0x45,0xbb,0x0,0xe7,0xfd,0xf2,0xd0,0xb7,0xd,0x7d,0x7a,0xfb,0x9f,0x4,0x1a,0x42,0x6d,0xb,0xad,0xc3,0x7b,0x77,0xfa,0x75,0xd7,0x32,0xac,0xe0,0x11,0x8b,0x1d,0x17,0x31,0x5f,0x98,0xb2,0x54,0x1c,0xe8,0x62,0x4f,0x70,0x9b,0x51,0xbf,0x2f,0xa1,0xc1,0x4b,0x5d,0xcf,0x5c,0x64,0xab,0x8f,0x9d,0xed,0xf5,0x65,0xd4,0xc4,0xe3,0x80,0x49,0x55,0x69,0x71,0xb4,0x9e,0xbd,0xa4,0x2c,0x67,0x6e,0x7f,0x85,0xb5,0x33,0xea,0xe1,0xa9,0x39,0x92,0x8a,0x81,0x3f,0x7c,0xdd,0xce,0x3c,0x61,0x6,0xf3,0x3b,0x36,0x15,0xe9,0xb6,0x27,0x2a,0x38,0x52,0xb3,0x96,0xf8,0x3a,0x84,0x5e,0x76,0xd3,0xe5,0xa8,0x3,0x78,0x28,0x8d,0xc9,0x4a,0xdf,0xcb,0xae,0xf7,0xf6,0x94,0xde,0xbc,0xc,0x95,0xaf,0x1b,0x4d,0x4c,0x25,0x57,0xe6,0xc0,0xdb,0xd1,0xe,0x10,0x24,0xb0,0xfc,0xc8,0x7e,0x48,0x23,0x21,0x93,0x22,0x87,0x8e,0x56,0x37,0x5b,0xeb,0xff,0x19,0x40,0x6f,0xc5,0x72,0x7,0xf4,0x41,0xcd,0x63,0xe2,0xa3,0xc7,0xf9,0x3e,0xb1,0x8,0xfe,0xe4,0x26,0xa,0x91,0xb9,0x1e,0x66,0xd5,0x2b,0x88,0x60,0x29,0x8c,0x20,0x34,0x73,0x68,0x59,0x90,0x46,0xf0,0xaa,0xd6,0xa5,0xdc,0x14,0xa6,0x43,0x13,0x97,0x89,0xcc,0xd9,0x99,0x74,0x2,0x6a,0xba,0x58,0xa0,0xd2,0xf1,0x5,0x82,0x4e,0x83,0x1f,0xef,0x12,0x2e,0x47,0x3d,0x18,0x6c,0x44,0x35,0x50,0xd8,0x5a,0x2d}; + +unsigned char table_s2[] = {0xab,0xd,0xb5,0xc8,0x9d,0xed,0x11,0x50,0x63,0x8b,0x83,0x79,0x12,0x7c,0x8d,0x23,0xa1,0xeb,0x4c,0xe6,0xd2,0x53,0x7b,0x62,0xf0,0x14,0x28,0xae,0x9e,0xaf,0xb6,0x8c,0xc6,0xb3,0x85,0x40,0x94,0x6d,0x32,0x58,0xf7,0xf8,0x86,0xb1,0xdd,0xdb,0xfc,0x37,0x5b,0xa4,0xee,0x46,0x27,0x1a,0x41,0x93,0x89,0xdf,0x3,0x5a,0x59,0x87,0x60,0xd5,0xe5,0xb7,0xc1,0x3c,0xce,0x1f,0xc2,0x6f,0x36,0x9,0x5f,0xe0,0x10,0x52,0x4a,0x61,0x4b,0xe7,0x42,0xbe,0xa0,0xde,0x2d,0xa9,0x91,0x21,0xfe,0x39,0xb9,0x26,0x68,0xbb,0x25,0xec,0x4f,0x97,0xa,0x4e,0xfb,0x81,0x49,0x5c,0x67,0xc7,0x1c,0x17,0xb8,0xa7,0x16,0xad,0xf9,0x69,0xe4,0x3e,0x0,0xd9,0xac,0x3d,0x2e,0x47,0xd1,0x74,0x1d,0x54,0x7,0x9b,0xd3,0x56,0x29,0xdc,0xa6,0xc9,0x33,0x9c,0x2a,0xfd,0x72,0xf5,0xb,0x7d,0x22,0x80,0x96,0x4,0x3f,0xe9,0x2f,0x34,0x65,0x84,0x38,0xa3,0x2b,0xe1,0x24,0xc4,0x7f,0x57,0xc0,0xb4,0xea,0xca,0x45,0x99,0x90,0x75,0xbc,0x71,0xb0,0xf6,0x1b,0xcb,0x9f,0x6,0xff,0x98,0x20,0xd4,0xfa,0x9a,0xd0,0x8a,0x18,0x70,0xb2,0x5e,0x13,0x3a,0xe3,0x35,0x5d,0x1e,0xd8,0xd6,0xda,0x51,0x2,0x66,0x8,0xd7,0xcf,0xf1,0x30,0x2c,0x6b,0x95,0xaa,0xf2,0xba,0xc3,0xef,0x78,0xc,0x8f,0xa2,0x4d,0x44,0x43,0x7a,0x77,0x15,0xa8,0xc5,0xf3,0x5,0xf4,0xe,0xf,0x55,0x48,0xbf,0xe2,0xbd,0x92,0x7e,0x6c,0xcd,0x82,0x31,0x3b,0xcc,0x19,0x6e,0x6a,0x1,0x76,0x73,0x64,0xe8,0x8e,0xa5,0x88,0x28,0xef,0x30,0x80,0xaa,0x79,0x37,0xa8,0xaf,0x53,0xf6,0x5a,0xb8,0x3c,0xcf,0xb1,0xf1,0x4e,0x18,0x27,0x70,0x5b,0x43,0x1,0x2d,0xd0,0xa6,0xf4,0x7e,0xd3,0xe,0xdf,0x56,0x3f,0x2c,0xbd,0x45,0xc,0x65,0xc0,0x78,0xe8,0xbc,0x7,0xc8,0x11,0x2f,0xf5,0xd6,0x76,0x4d,0x58,0xb6,0xa9,0x6,0xd,0x86,0x5e,0xfd,0x34,0x90,0xea,0x5f,0x1b,0xbf,0x39,0x5,0xe1,0x9d,0xa7,0xbe,0x8f,0xf7,0x5d,0xfa,0xb0,0x73,0x6a,0x42,0xc3,0x68,0x92,0x9a,0x72,0x32,0x9c,0x6d,0x3,0xd9,0xa4,0x1c,0xba,0x41,0x0,0xfc,0x8c,0x4b,0x12,0xce,0x98,0xc4,0x71,0x96,0x48,0x57,0xff,0xb5,0x4a,0x82,0x50,0xb,0x36,0xa0,0x97,0xe9,0xe6,0x26,0xed,0xca,0xcc,0x51,0x94,0xa2,0xd7,0x49,0x23,0x7c,0x85,0x5c,0xb3,0x9e,0x1d,0x66,0x6b,0x52,0x55,0xe3,0xbb,0x84,0x7a,0x69,0xfe,0xd2,0xab,0xc6,0x19,0x77,0x13,0x3d,0x21,0xe0,0xde,0xf,0x4c,0x24,0xf2,0x40,0xcb,0xc7,0xc9,0x75,0x62,0x67,0x10,0x99,0xb4,0x9f,0xf9,0x2a,0x20,0x93,0xdc,0x7b,0x7f,0x8,0xdd,0xf3,0xae,0x59,0x44,0x7d,0x6f,0x83,0xac,0xe2,0xd4,0xb9,0x4,0x1e,0x1f,0xe5,0x14,0xb2,0x29,0x95,0x74,0xd5,0x35,0xf0,0x3a,0x15,0x87,0x91,0x33,0x25,0x3e,0xf8,0x2e,0xec,0x3b,0x8d,0x22,0x6c,0x1a,0xe4,0x63,0x47,0xc2,0x8a,0x16,0xd8,0xb7,0xcd,0x38,0x61,0x9,0x9b,0xc1,0x2b,0x2,0x4f,0xa3,0x89,0xee,0x17,0x8e,0x8b,0xeb,0xc5,0x31,0x60,0xad,0x64,0x81,0xda,0xa,0xe7,0xa1,0xa5,0xd1,0x46,0x6e,0x88,0x54,0xdb,0xfb,0x83,0x21,0x7,0x95,0xea,0x3c,0x37,0x2c,0x87,0x66,0xa0,0x3b,0xe2,0x28,0xc7,0x27,0x98,0x4,0x55,0xd0,0xdf,0x2a,0xca,0xa5,0x9f,0x30,0xfe,0x29,0xf6,0x71,0x7e,0x8,0x5,0x9c,0x9b,0xfc,0xd7,0x23,0x99,0xf9,0x89,0xd3,0x73,0x1b,0x5d,0xb1,0x39,0x10,0x54,0x7c,0xb7,0xc3,0xc9,0xe9,0x9a,0x46,0x76,0x93,0x72,0xbf,0xf5,0xb3,0xc8,0x18,0x96,0x68,0xf1,0xa9,0xc0,0xb9,0x7b,0xec,0x8c,0xf,0x4e,0xa1,0x40,0x47,0x74,0x79,0x36,0xe0,0x1d,0x5e,0xd5,0xdb,0x52,0xd9,0x65,0x1,0xd4,0xb,0xf2,0xcc,0x2f,0x33,0x81,0xce,0x38,0x32,0x1a,0xcf,0x69,0x6d,0x75,0x2,0x67,0x70,0x8d,0xeb,0x8b,0xa6,0xab,0x16,0xf0,0xc6,0xf7,0x6,0xc,0xd,0x4b,0x56,0xe1,0xbc,0x91,0xbe,0x6f,0x7d,0xe8,0xa2,0xe5,0x4f,0x50,0xd1,0x61,0x78,0x17,0xf3,0xad,0x2b,0xac,0x9d,0x8f,0xb5,0xe,0xa8,0xcb,0xb6,0xee,0x9e,0x53,0x12,0x88,0x60,0x7a,0x80,0x7f,0x11,0x20,0x8e,0xa7,0x58,0x45,0xed,0x19,0x24,0x90,0x42,0xdc,0x8a,0x59,0x0,0x84,0x5a,0xd6,0x63,0xb0,0xc5,0x43,0x86,0x6e,0x97,0x5b,0x31,0xfb,0xf4,0xb2,0x85,0xd8,0xde,0x34,0xff,0xe4,0x48,0xbd,0x41,0xdd,0xa3,0xaa,0x2e,0x22,0x92,0x3a,0xfd,0x25,0xba,0xb8,0x6b,0xb4,0xe6,0x3f,0xc2,0x1c,0xcd,0x6c,0xc1,0xa,0x35,0xe3,0x5c,0x51,0x13,0x62,0x49,0xae,0x15,0x6a,0xfa,0x3d,0xe7,0xda,0x3,0x3e,0xaf,0x44,0x2d,0x77,0xd2,0x57,0x1e,0xef,0x26,0x94,0x4c,0x4d,0x9,0x82,0xf8,0x5f,0x4a,0xc4,0x64,0x14,0x1f,0xa4,0xbb,0x47,0xbb,0x4e,0xe2,0x28,0xac,0xa5,0xdb,0xfb,0x3c,0x94,0x24,0x6d,0xbe,0xbc,0x23,0xc4,0x39,0xe0,0xb2,0xc7,0x6a,0xcb,0x1a,0x5a,0xe5,0x33,0xc,0x4f,0x64,0x15,0x57,0xfc,0x6c,0x13,0xa8,0x5,0xdc,0xe1,0x3b,0x2b,0x42,0xa9,0x38,0x18,0x51,0xd4,0x71,0x4a,0x92,0x20,0xe9,0xfe,0x84,0xf,0x4b,0x62,0xc2,0x4c,0x59,0xbd,0xa2,0x19,0x12,0x49,0xe3,0xa4,0xee,0x7e,0x67,0xd7,0x56,0x2d,0xab,0xf5,0x11,0xb3,0x89,0x9b,0xaa,0xb0,0xcd,0xae,0x8,0x14,0x55,0x98,0xe8,0x86,0x7c,0x66,0x8e,0x88,0x26,0x17,0x79,0xeb,0x43,0x5e,0xa1,0x44,0x96,0x22,0x1f,0x6,0x5f,0x8c,0xda,0x65,0xd0,0x5c,0x82,0x80,0x45,0xc3,0xb6,0x37,0x5d,0x91,0x68,0x83,0xb4,0xf2,0xfd,0xf9,0x32,0xd8,0xde,0xaf,0xf7,0x6e,0x90,0xea,0x7d,0xbf,0xc6,0xa7,0x48,0x9,0x8a,0x7f,0x72,0x41,0x46,0x58,0x1b,0xe6,0x30,0xdf,0x54,0xdd,0xd3,0xd,0xd2,0x7,0x63,0x35,0x29,0xca,0xf4,0x34,0x3e,0xc8,0x87,0x6b,0x6f,0xc9,0x1c,0x76,0x61,0x4,0x73,0xa0,0x8d,0xed,0x8b,0xc0,0xf6,0x10,0xad,0xb,0xa,0x0,0xf1,0xba,0xe7,0x50,0x4d,0x7b,0x69,0xb8,0x97,0x93,0x1,0x27,0x85,0x2a,0x31,0x3a,0xec,0x3d,0xa6,0x60,0x81,0x21,0xc1,0x2e,0xe4,0xd6,0x53,0x2,0x9e,0xa3,0xcc,0x2c,0xd9,0x2f,0xf8,0x36,0x99,0xe,0x78,0x77,0xf0,0xfa,0x9d,0x9a,0x3,0xff,0x9f,0x25,0xd1,0x1d,0x75,0xd5,0x8f,0x16,0x3f,0xb7,0x5b,0xc5,0xb1,0x7a,0x52,0x40,0x9c,0xef,0xcf,0xb9,0x74,0x95,0x70,0x1e,0xce,0xb5,0xf3,0x6c,0xca,0x72,0xf,0x5a,0x2a,0xd6,0x97,0xa4,0x4c,0x44,0xbe,0xd5,0xbb,0x4a,0xe4,0x66,0x2c,0x8b,0x21,0x15,0x94,0xbc,0xa5,0x37,0xd3,0xef,0x69,0x59,0x68,0x71,0x4b,0x1,0x74,0x42,0x87,0x53,0xaa,0xf5,0x9f,0x30,0x3f,0x41,0x76,0x1a,0x1c,0x3b,0xf0,0x9c,0x63,0x29,0x81,0xe0,0xdd,0x86,0x54,0x4e,0x18,0xc4,0x9d,0x9e,0x40,0xa7,0x12,0x22,0x70,0x6,0xfb,0x9,0xd8,0x5,0xa8,0xf1,0xce,0x98,0x27,0xd7,0x95,0x8d,0xa6,0x8c,0x20,0x85,0x79,0x67,0x19,0xea,0x6e,0x56,0xe6,0x39,0xfe,0x7e,0xe1,0xaf,0x7c,0xe2,0x2b,0x88,0x50,0xcd,0x89,0x3c,0x46,0x8e,0x9b,0xa0,0x0,0xdb,0xd0,0x7f,0x60,0xd1,0x6a,0x3e,0xae,0x23,0xf9,0xc7,0x1e,0x6b,0xfa,0xe9,0x80,0x16,0xb3,0xda,0x93,0xc0,0x5c,0x14,0x91,0xee,0x1b,0x61,0xe,0xf4,0x5b,0xed,0x3a,0xb5,0x32,0xcc,0xba,0xe5,0x47,0x51,0xc3,0xf8,0x2e,0xe8,0xf3,0xa2,0x43,0xff,0x64,0xec,0x26,0xe3,0x3,0xb8,0x90,0x7,0x73,0x2d,0xd,0x82,0x5e,0x57,0xb2,0x7b,0xb6,0x77,0x31,0xdc,0xc,0x58,0xc1,0x38,0x5f,0xe7,0x13,0x3d,0x5d,0x17,0x4d,0xdf,0xb7,0x75,0x99,0xd4,0xfd,0x24,0xf2,0x9a,0xd9,0x1f,0x11,0x1d,0x96,0xc5,0xa1,0xcf,0x10,0x8,0x36,0xf7,0xeb,0xac,0x52,0x6d,0x35,0x7d,0x4,0x28,0xbf,0xcb,0x48,0x65,0x8a,0x83,0x84,0xbd,0xb0,0xd2,0x6f,0x2,0x34,0xc2,0x33,0xc9,0xc8,0x92,0x8f,0x78,0x25,0x7a,0x55,0xb9,0xab,0xa,0x45,0xf6,0xfc,0xb,0xde,0xa9,0xad,0xc6,0xb1,0xb4,0xa3,0x2f,0x49,0x62,0x4f,0xad,0x6a,0xb5,0x5,0x2f,0xfc,0xb2,0x2d,0x2a,0xd6,0x73,0xdf,0x3d,0xb9,0x4a,0x34,0x74,0xcb,0x9d,0xa2,0xf5,0xde,0xc6,0x84,0xa8,0x55,0x23,0x71,0xfb,0x56,0x8b,0x5a,0xd3,0xba,0xa9,0x38,0xc0,0x89,0xe0,0x45,0xfd,0x6d,0x39,0x82,0x4d,0x94,0xaa,0x70,0x53,0xf3,0xc8,0xdd,0x33,0x2c,0x83,0x88,0x3,0xdb,0x78,0xb1,0x15,0x6f,0xda,0x9e,0x3a,0xbc,0x80,0x64,0x18,0x22,0x3b,0xa,0x72,0xd8,0x7f,0x35,0xf6,0xef,0xc7,0x46,0xed,0x17,0x1f,0xf7,0xb7,0x19,0xe8,0x86,0x5c,0x21,0x99,0x3f,0xc4,0x85,0x79,0x9,0xce,0x97,0x4b,0x1d,0x41,0xf4,0x13,0xcd,0xd2,0x7a,0x30,0xcf,0x7,0xd5,0x8e,0xb3,0x25,0x12,0x6c,0x63,0xa3,0x68,0x4f,0x49,0xd4,0x11,0x27,0x52,0xcc,0xa6,0xf9,0x0,0xd9,0x36,0x1b,0x98,0xe3,0xee,0xd7,0xd0,0x66,0x3e,0x1,0xff,0xec,0x7b,0x57,0x2e,0x43,0x9c,0xf2,0x96,0xb8,0xa4,0x65,0x5b,0x8a,0xc9,0xa1,0x77,0xc5,0x4e,0x42,0x4c,0xf0,0xe7,0xe2,0x95,0x1c,0x31,0x1a,0x7c,0xaf,0xa5,0x16,0x59,0xfe,0xfa,0x8d,0x58,0x76,0x2b,0xdc,0xc1,0xf8,0xea,0x6,0x29,0x67,0x51,0x3c,0x81,0x9b,0x9a,0x60,0x91,0x37,0xac,0x10,0xf1,0x50,0xb0,0x75,0xbf,0x90,0x2,0x14,0xb6,0xa0,0xbb,0x7d,0xab,0x69,0xbe,0x8,0xa7,0xe9,0x9f,0x61,0xe6,0xc2,0x47,0xf,0x93,0x5d,0x32,0x48,0xbd,0xe4,0x8c,0x1e,0x44,0xae,0x87,0xca,0x26,0xc,0x6b,0x92,0xb,0xe,0x6e,0x40,0xb4,0xe5,0x28,0xe1,0x4,0x5f,0x8f,0x62,0x24,0x20,0x54,0xc3,0xeb,0xd,0xd1,0x5e,0x7e,0x94,0x36,0x10,0x82,0xfd,0x2b,0x20,0x3b,0x90,0x71,0xb7,0x2c,0xf5,0x3f,0xd0,0x30,0x8f,0x13,0x42,0xc7,0xc8,0x3d,0xdd,0xb2,0x88,0x27,0xe9,0x3e,0xe1,0x66,0x69,0x1f,0x12,0x8b,0x8c,0xeb,0xc0,0x34,0x8e,0xee,0x9e,0xc4,0x64,0xc,0x4a,0xa6,0x2e,0x7,0x43,0x6b,0xa0,0xd4,0xde,0xfe,0x8d,0x51,0x61,0x84,0x65,0xa8,0xe2,0xa4,0xdf,0xf,0x81,0x7f,0xe6,0xbe,0xd7,0xae,0x6c,0xfb,0x9b,0x18,0x59,0xb6,0x57,0x50,0x63,0x6e,0x21,0xf7,0xa,0x49,0xc2,0xcc,0x45,0xce,0x72,0x16,0xc3,0x1c,0xe5,0xdb,0x38,0x24,0x96,0xd9,0x2f,0x25,0xd,0xd8,0x7e,0x7a,0x62,0x15,0x70,0x67,0x9a,0xfc,0x9c,0xb1,0xbc,0x1,0xe7,0xd1,0xe0,0x11,0x1b,0x1a,0x5c,0x41,0xf6,0xab,0x86,0xa9,0x78,0x6a,0xff,0xb5,0xf2,0x58,0x47,0xc6,0x76,0x6f,0x0,0xe4,0xba,0x3c,0xbb,0x8a,0x98,0xa2,0x19,0xbf,0xdc,0xa1,0xf9,0x89,0x44,0x5,0x9f,0x77,0x6d,0x97,0x68,0x6,0x37,0x99,0xb0,0x4f,0x52,0xfa,0xe,0x33,0x87,0x55,0xcb,0x9d,0x4e,0x17,0x93,0x4d,0xc1,0x74,0xa7,0xd2,0x54,0x91,0x79,0x80,0x4c,0x26,0xec,0xe3,0xa5,0x92,0xcf,0xc9,0x23,0xe8,0xf3,0x5f,0xaa,0x56,0xca,0xb4,0xbd,0x39,0x35,0x85,0x2d,0xea,0x32,0xad,0xaf,0x7c,0xa3,0xf1,0x28,0xd5,0xb,0xda,0x7b,0xd6,0x1d,0x22,0xf4,0x4b,0x46,0x4,0x75,0x5e,0xb9,0x2,0x7d,0xed,0x2a,0xf0,0xcd,0x14,0x29,0xb8,0x53,0x3a,0x60,0xc5,0x40,0x9,0xf8,0x31,0x83,0x5b,0x5a,0x1e,0x95,0xef,0x48,0x5d,0xd3,0x73,0x3,0x8,0xb3,0xac,0x8c,0x70,0x85,0x29,0xe3,0x67,0x6e,0x10,0x30,0xf7,0x5f,0xef,0xa6,0x75,0x77,0xe8,0xf,0xf2,0x2b,0x79,0xc,0xa1,0x0,0xd1,0x91,0x2e,0xf8,0xc7,0x84,0xaf,0xde,0x9c,0x37,0xa7,0xd8,0x63,0xce,0x17,0x2a,0xf0,0xe0,0x89,0x62,0xf3,0xd3,0x9a,0x1f,0xba,0x81,0x59,0xeb,0x22,0x35,0x4f,0xc4,0x80,0xa9,0x9,0x87,0x92,0x76,0x69,0xd2,0xd9,0x82,0x28,0x6f,0x25,0xb5,0xac,0x1c,0x9d,0xe6,0x60,0x3e,0xda,0x78,0x42,0x50,0x61,0x7b,0x6,0x65,0xc3,0xdf,0x9e,0x53,0x23,0x4d,0xb7,0xad,0x45,0x43,0xed,0xdc,0xb2,0x20,0x88,0x95,0x6a,0x8f,0x5d,0xe9,0xd4,0xcd,0x94,0x47,0x11,0xae,0x1b,0x97,0x49,0x4b,0x8e,0x8,0x7d,0xfc,0x96,0x5a,0xa3,0x48,0x7f,0x39,0x36,0x32,0xf9,0x13,0x15,0x64,0x3c,0xa5,0x5b,0x21,0xb6,0x74,0xd,0x6c,0x83,0xc2,0x41,0xb4,0xb9,0x8a,0x8d,0x93,0xd0,0x2d,0xfb,0x14,0x9f,0x16,0x18,0xc6,0x19,0xcc,0xa8,0xfe,0xe2,0x1,0x3f,0xff,0xf5,0x3,0x4c,0xa0,0xa4,0x2,0xd7,0xbd,0xaa,0xcf,0xb8,0x6b,0x46,0x26,0x40,0xb,0x3d,0xdb,0x66,0xc0,0xc1,0xcb,0x3a,0x71,0x2c,0x9b,0x86,0xb0,0xa2,0x73,0x5c,0x58,0xca,0xec,0x4e,0xe1,0xfa,0xf1,0x27,0xf6,0x6d,0xab,0x4a,0xea,0xa,0xe5,0x2f,0x1d,0x98,0xc9,0x55,0x68,0x7,0xe7,0x12,0xe4,0x33,0xfd,0x52,0xc5,0xb3,0xbc,0x3b,0x31,0x56,0x51,0xc8,0x34,0x54,0xee,0x1a,0xd6,0xbe,0x1e,0x44,0xdd,0xf4,0x7c,0x90,0xe,0x7a,0xb1,0x99,0x8b,0x57,0x24,0x4,0x72,0xbf,0x5e,0xbb,0xd5,0x5,0x7e,0x38,0x1,0xa7,0x1f,0x62,0x37,0x47,0xbb,0xfa,0xc9,0x21,0x29,0xd3,0xb8,0xd6,0x27,0x89,0xb,0x41,0xe6,0x4c,0x78,0xf9,0xd1,0xc8,0x5a,0xbe,0x82,0x4,0x34,0x5,0x1c,0x26,0x6c,0x19,0x2f,0xea,0x3e,0xc7,0x98,0xf2,0x5d,0x52,0x2c,0x1b,0x77,0x71,0x56,0x9d,0xf1,0xe,0x44,0xec,0x8d,0xb0,0xeb,0x39,0x23,0x75,0xa9,0xf0,0xf3,0x2d,0xca,0x7f,0x4f,0x1d,0x6b,0x96,0x64,0xb5,0x68,0xc5,0x9c,0xa3,0xf5,0x4a,0xba,0xf8,0xe0,0xcb,0xe1,0x4d,0xe8,0x14,0xa,0x74,0x87,0x3,0x3b,0x8b,0x54,0x93,0x13,0x8c,0xc2,0x11,0x8f,0x46,0xe5,0x3d,0xa0,0xe4,0x51,0x2b,0xe3,0xf6,0xcd,0x6d,0xb6,0xbd,0x12,0xd,0xbc,0x7,0x53,0xc3,0x4e,0x94,0xaa,0x73,0x6,0x97,0x84,0xed,0x7b,0xde,0xb7,0xfe,0xad,0x31,0x79,0xfc,0x83,0x76,0xc,0x63,0x99,0x36,0x80,0x57,0xd8,0x5f,0xa1,0xd7,0x88,0x2a,0x3c,0xae,0x95,0x43,0x85,0x9e,0xcf,0x2e,0x92,0x9,0x81,0x4b,0x8e,0x6e,0xd5,0xfd,0x6a,0x1e,0x40,0x60,0xef,0x33,0x3a,0xdf,0x16,0xdb,0x1a,0x5c,0xb1,0x61,0x35,0xac,0x55,0x32,0x8a,0x7e,0x50,0x30,0x7a,0x20,0xb2,0xda,0x18,0xf4,0xb9,0x90,0x49,0x9f,0xf7,0xb4,0x72,0x7c,0x70,0xfb,0xa8,0xcc,0xa2,0x7d,0x65,0x5b,0x9a,0x86,0xc1,0x3f,0x0,0x58,0x10,0x69,0x45,0xd2,0xa6,0x25,0x8,0xe7,0xee,0xe9,0xd0,0xdd,0xbf,0x2,0x6f,0x59,0xaf,0x5e,0xa4,0xa5,0xff,0xe2,0x15,0x48,0x17,0x38,0xd4,0xc6,0x67,0x28,0x9b,0x91,0x66,0xb3,0xc4,0xc0,0xab,0xdc,0xd9,0xce,0x42,0x24,0xf,0x22,0xf4,0x33,0xec,0x5c,0x76,0xa5,0xeb,0x74,0x73,0x8f,0x2a,0x86,0x64,0xe0,0x13,0x6d,0x2d,0x92,0xc4,0xfb,0xac,0x87,0x9f,0xdd,0xf1,0xc,0x7a,0x28,0xa2,0xf,0xd2,0x3,0x8a,0xe3,0xf0,0x61,0x99,0xd0,0xb9,0x1c,0xa4,0x34,0x60,0xdb,0x14,0xcd,0xf3,0x29,0xa,0xaa,0x91,0x84,0x6a,0x75,0xda,0xd1,0x5a,0x82,0x21,0xe8,0x4c,0x36,0x83,0xc7,0x63,0xe5,0xd9,0x3d,0x41,0x7b,0x62,0x53,0x2b,0x81,0x26,0x6c,0xaf,0xb6,0x9e,0x1f,0xb4,0x4e,0x46,0xae,0xee,0x40,0xb1,0xdf,0x5,0x78,0xc0,0x66,0x9d,0xdc,0x20,0x50,0x97,0xce,0x12,0x44,0x18,0xad,0x4a,0x94,0x8b,0x23,0x69,0x96,0x5e,0x8c,0xd7,0xea,0x7c,0x4b,0x35,0x3a,0xfa,0x31,0x16,0x10,0x8d,0x48,0x7e,0xb,0x95,0xff,0xa0,0x59,0x80,0x6f,0x42,0xc1,0xba,0xb7,0x8e,0x89,0x3f,0x67,0x58,0xa6,0xb5,0x22,0xe,0x77,0x1a,0xc5,0xab,0xcf,0xe1,0xfd,0x3c,0x2,0xd3,0x90,0xf8,0x2e,0x9c,0x17,0x1b,0x15,0xa9,0xbe,0xbb,0xcc,0x45,0x68,0x43,0x25,0xf6,0xfc,0x4f,0x0,0xa7,0xa3,0xd4,0x1,0x2f,0x72,0x85,0x98,0xa1,0xb3,0x5f,0x70,0x3e,0x8,0x65,0xd8,0xc2,0xc3,0x39,0xc8,0x6e,0xf5,0x49,0xa8,0x9,0xe9,0x2c,0xe6,0xc9,0x5b,0x4d,0xef,0xf9,0xe2,0x24,0xf2,0x30,0xe7,0x51,0xfe,0xb0,0xc6,0x38,0xbf,0x9b,0x1e,0x56,0xca,0x4,0x6b,0x11,0xe4,0xbd,0xd5,0x47,0x1d,0xf7,0xde,0x93,0x7f,0x55,0x32,0xcb,0x52,0x57,0x37,0x19,0xed,0xbc,0x71,0xb8,0x5d,0x6,0xd6,0x3b,0x7d,0x79,0xd,0x9a,0xb2,0x54,0x88,0x7,0x27,0x31,0x93,0xb5,0x27,0x58,0x8e,0x85,0x9e,0x35,0xd4,0x12,0x89,0x50,0x9a,0x75,0x95,0x2a,0xb6,0xe7,0x62,0x6d,0x98,0x78,0x17,0x2d,0x82,0x4c,0x9b,0x44,0xc3,0xcc,0xba,0xb7,0x2e,0x29,0x4e,0x65,0x91,0x2b,0x4b,0x3b,0x61,0xc1,0xa9,0xef,0x3,0x8b,0xa2,0xe6,0xce,0x5,0x71,0x7b,0x5b,0x28,0xf4,0xc4,0x21,0xc0,0xd,0x47,0x1,0x7a,0xaa,0x24,0xda,0x43,0x1b,0x72,0xb,0xc9,0x5e,0x3e,0xbd,0xfc,0x13,0xf2,0xf5,0xc6,0xcb,0x84,0x52,0xaf,0xec,0x67,0x69,0xe0,0x6b,0xd7,0xb3,0x66,0xb9,0x40,0x7e,0x9d,0x81,0x33,0x7c,0x8a,0x80,0xa8,0x7d,0xdb,0xdf,0xc7,0xb0,0xd5,0xc2,0x3f,0x59,0x39,0x14,0x19,0xa4,0x42,0x74,0x45,0xb4,0xbe,0xbf,0xf9,0xe4,0x53,0xe,0x23,0xc,0xdd,0xcf,0x5a,0x10,0x57,0xfd,0xe2,0x63,0xd3,0xca,0xa5,0x41,0x1f,0x99,0x1e,0x2f,0x3d,0x7,0xbc,0x1a,0x79,0x4,0x5c,0x2c,0xe1,0xa0,0x3a,0xd2,0xc8,0x32,0xcd,0xa3,0x92,0x3c,0x15,0xea,0xf7,0x5f,0xab,0x96,0x22,0xf0,0x6e,0x38,0xeb,0xb2,0x36,0xe8,0x64,0xd1,0x2,0x77,0xf1,0x34,0xdc,0x25,0xe9,0x83,0x49,0x46,0x0,0x37,0x6a,0x6c,0x86,0x4d,0x56,0xfa,0xf,0xf3,0x6f,0x11,0x18,0x9c,0x90,0x20,0x88,0x4f,0x97,0x8,0xa,0xd9,0x6,0x54,0x8d,0x70,0xae,0x7f,0xde,0x73,0xb8,0x87,0x51,0xee,0xe3,0xa1,0xd0,0xfb,0x1c,0xa7,0xd8,0x48,0x8f,0x55,0x68,0xb1,0x8c,0x1d,0xf6,0x9f,0xc5,0x60,0xe5,0xac,0x5d,0x94,0x26,0xfe,0xff,0xbb,0x30,0x4a,0xed,0xf8,0x76,0xd6,0xa6,0xad,0x16,0x9,0x66,0x9a,0x6f,0xc3,0x9,0x8d,0x84,0xfa,0xda,0x1d,0xb5,0x5,0x4c,0x9f,0x9d,0x2,0xe5,0x18,0xc1,0x93,0xe6,0x4b,0xea,0x3b,0x7b,0xc4,0x12,0x2d,0x6e,0x45,0x34,0x76,0xdd,0x4d,0x32,0x89,0x24,0xfd,0xc0,0x1a,0xa,0x63,0x88,0x19,0x39,0x70,0xf5,0x50,0x6b,0xb3,0x1,0xc8,0xdf,0xa5,0x2e,0x6a,0x43,0xe3,0x6d,0x78,0x9c,0x83,0x38,0x33,0x68,0xc2,0x85,0xcf,0x5f,0x46,0xf6,0x77,0xc,0x8a,0xd4,0x30,0x92,0xa8,0xba,0x8b,0x91,0xec,0x8f,0x29,0x35,0x74,0xb9,0xc9,0xa7,0x5d,0x47,0xaf,0xa9,0x7,0x36,0x58,0xca,0x62,0x7f,0x80,0x65,0xb7,0x3,0x3e,0x27,0x7e,0xad,0xfb,0x44,0xf1,0x7d,0xa3,0xa1,0x64,0xe2,0x97,0x16,0x7c,0xb0,0x49,0xa2,0x95,0xd3,0xdc,0xd8,0x13,0xf9,0xff,0x8e,0xd6,0x4f,0xb1,0xcb,0x5c,0x9e,0xe7,0x86,0x69,0x28,0xab,0x5e,0x53,0x60,0x67,0x79,0x3a,0xc7,0x11,0xfe,0x75,0xfc,0xf2,0x2c,0xf3,0x26,0x42,0x14,0x8,0xeb,0xd5,0x15,0x1f,0xe9,0xa6,0x4a,0x4e,0xe8,0x3d,0x57,0x40,0x25,0x52,0x81,0xac,0xcc,0xaa,0xe1,0xd7,0x31,0x8c,0x2a,0x2b,0x21,0xd0,0x9b,0xc6,0x71,0x6c,0x5a,0x48,0x99,0xb6,0xb2,0x20,0x6,0xa4,0xb,0x10,0x1b,0xcd,0x1c,0x87,0x41,0xa0,0x0,0xe0,0xf,0xc5,0xf7,0x72,0x23,0xbf,0x82,0xed,0xd,0xf8,0xe,0xd9,0x17,0xb8,0x2f,0x59,0x56,0xd1,0xdb,0xbc,0xbb,0x22,0xde,0xbe,0x4,0xf0,0x3c,0x54,0xf4,0xae,0x37,0x1e,0x96,0x7a,0xe4,0x90,0x5b,0x73,0x61,0xbd,0xce,0xee,0x98,0x55,0xb4,0x51,0x3f,0xef,0x94,0xd2,0x2b,0x8d,0x35,0x48,0x1d,0x6d,0x91,0xd0,0xe3,0xb,0x3,0xf9,0x92,0xfc,0xd,0xa3,0x21,0x6b,0xcc,0x66,0x52,0xd3,0xfb,0xe2,0x70,0x94,0xa8,0x2e,0x1e,0x2f,0x36,0xc,0x46,0x33,0x5,0xc0,0x14,0xed,0xb2,0xd8,0x77,0x78,0x6,0x31,0x5d,0x5b,0x7c,0xb7,0xdb,0x24,0x6e,0xc6,0xa7,0x9a,0xc1,0x13,0x9,0x5f,0x83,0xda,0xd9,0x7,0xe0,0x55,0x65,0x37,0x41,0xbc,0x4e,0x9f,0x42,0xef,0xb6,0x89,0xdf,0x60,0x90,0xd2,0xca,0xe1,0xcb,0x67,0xc2,0x3e,0x20,0x5e,0xad,0x29,0x11,0xa1,0x7e,0xb9,0x39,0xa6,0xe8,0x3b,0xa5,0x6c,0xcf,0x17,0x8a,0xce,0x7b,0x1,0xc9,0xdc,0xe7,0x47,0x9c,0x97,0x38,0x27,0x96,0x2d,0x79,0xe9,0x64,0xbe,0x80,0x59,0x2c,0xbd,0xae,0xc7,0x51,0xf4,0x9d,0xd4,0x87,0x1b,0x53,0xd6,0xa9,0x5c,0x26,0x49,0xb3,0x1c,0xaa,0x7d,0xf2,0x75,0x8b,0xfd,0xa2,0x0,0x16,0x84,0xbf,0x69,0xaf,0xb4,0xe5,0x4,0xb8,0x23,0xab,0x61,0xa4,0x44,0xff,0xd7,0x40,0x34,0x6a,0x4a,0xc5,0x19,0x10,0xf5,0x3c,0xf1,0x30,0x76,0x9b,0x4b,0x1f,0x86,0x7f,0x18,0xa0,0x54,0x7a,0x1a,0x50,0xa,0x98,0xf0,0x32,0xde,0x93,0xba,0x63,0xb5,0xdd,0x9e,0x58,0x56,0x5a,0xd1,0x82,0xe6,0x88,0x57,0x4f,0x71,0xb0,0xac,0xeb,0x15,0x2a,0x72,0x3a,0x43,0x6f,0xf8,0x8c,0xf,0x22,0xcd,0xc4,0xc3,0xfa,0xf7,0x95,0x28,0x45,0x73,0x85,0x74,0x8e,0x8f,0xd5,0xc8,0x3f,0x62,0x3d,0x12,0xfe,0xec,0x4d,0x2,0xb1,0xbb,0x4c,0x99,0xee,0xea,0x81,0xf6,0xf3,0xe4,0x68,0xe,0x25,0x8,0xfa,0x3d,0xe2,0x52,0x78,0xab,0xe5,0x7a,0x7d,0x81,0x24,0x88,0x6a,0xee,0x1d,0x63,0x23,0x9c,0xca,0xf5,0xa2,0x89,0x91,0xd3,0xff,0x2,0x74,0x26,0xac,0x1,0xdc,0xd,0x84,0xed,0xfe,0x6f,0x97,0xde,0xb7,0x12,0xaa,0x3a,0x6e,0xd5,0x1a,0xc3,0xfd,0x27,0x4,0xa4,0x9f,0x8a,0x64,0x7b,0xd4,0xdf,0x54,0x8c,0x2f,0xe6,0x42,0x38,0x8d,0xc9,0x6d,0xeb,0xd7,0x33,0x4f,0x75,0x6c,0x5d,0x25,0x8f,0x28,0x62,0xa1,0xb8,0x90,0x11,0xba,0x40,0x48,0xa0,0xe0,0x4e,0xbf,0xd1,0xb,0x76,0xce,0x68,0x93,0xd2,0x2e,0x5e,0x99,0xc0,0x1c,0x4a,0x16,0xa3,0x44,0x9a,0x85,0x2d,0x67,0x98,0x50,0x82,0xd9,0xe4,0x72,0x45,0x3b,0x34,0xf4,0x3f,0x18,0x1e,0x83,0x46,0x70,0x5,0x9b,0xf1,0xae,0x57,0x8e,0x61,0x4c,0xcf,0xb4,0xb9,0x80,0x87,0x31,0x69,0x56,0xa8,0xbb,0x2c,0x0,0x79,0x14,0xcb,0xa5,0xc1,0xef,0xf3,0x32,0xc,0xdd,0x9e,0xf6,0x20,0x92,0x19,0x15,0x1b,0xa7,0xb0,0xb5,0xc2,0x4b,0x66,0x4d,0x2b,0xf8,0xf2,0x41,0xe,0xa9,0xad,0xda,0xf,0x21,0x7c,0x8b,0x96,0xaf,0xbd,0x51,0x7e,0x30,0x6,0x6b,0xd6,0xcc,0xcd,0x37,0xc6,0x60,0xfb,0x47,0xa6,0x7,0xe7,0x22,0xe8,0xc7,0x55,0x43,0xe1,0xf7,0xec,0x2a,0xfc,0x3e,0xe9,0x5f,0xf0,0xbe,0xc8,0x36,0xb1,0x95,0x10,0x58,0xc4,0xa,0x65,0x1f,0xea,0xb3,0xdb,0x49,0x13,0xf9,0xd0,0x9d,0x71,0x5b,0x3c,0xc5,0x5c,0x59,0x39,0x17,0xe3,0xb2,0x7f,0xb6,0x53,0x8,0xd8,0x35,0x73,0x77,0x3,0x94,0xbc,0x5a,0x86,0x9,0x29,0x3f,0x9d,0xbb,0x29,0x56,0x80,0x8b,0x90,0x3b,0xda,0x1c,0x87,0x5e,0x94,0x7b,0x9b,0x24,0xb8,0xe9,0x6c,0x63,0x96,0x76,0x19,0x23,0x8c,0x42,0x95,0x4a,0xcd,0xc2,0xb4,0xb9,0x20,0x27,0x40,0x6b,0x9f,0x25,0x45,0x35,0x6f,0xcf,0xa7,0xe1,0xd,0x85,0xac,0xe8,0xc0,0xb,0x7f,0x75,0x55,0x26,0xfa,0xca,0x2f,0xce,0x3,0x49,0xf,0x74,0xa4,0x2a,0xd4,0x4d,0x15,0x7c,0x5,0xc7,0x50,0x30,0xb3,0xf2,0x1d,0xfc,0xfb,0xc8,0xc5,0x8a,0x5c,0xa1,0xe2,0x69,0x67,0xee,0x65,0xd9,0xbd,0x68,0xb7,0x4e,0x70,0x93,0x8f,0x3d,0x72,0x84,0x8e,0xa6,0x73,0xd5,0xd1,0xc9,0xbe,0xdb,0xcc,0x31,0x57,0x37,0x1a,0x17,0xaa,0x4c,0x7a,0x4b,0xba,0xb0,0xb1,0xf7,0xea,0x5d,0x0,0x2d,0x2,0xd3,0xc1,0x54,0x1e,0x59,0xf3,0xec,0x6d,0xdd,0xc4,0xab,0x4f,0x11,0x97,0x10,0x21,0x33,0x9,0xb2,0x14,0x77,0xa,0x52,0x22,0xef,0xae,0x34,0xdc,0xc6,0x3c,0xc3,0xad,0x9c,0x32,0x1b,0xe4,0xf9,0x51,0xa5,0x98,0x2c,0xfe,0x60,0x36,0xe5,0xbc,0x38,0xe6,0x6a,0xdf,0xc,0x79,0xff,0x3a,0xd2,0x2b,0xe7,0x8d,0x47,0x48,0xe,0x39,0x64,0x62,0x88,0x43,0x58,0xf4,0x1,0xfd,0x61,0x1f,0x16,0x92,0x9e,0x2e,0x86,0x41,0x99,0x6,0x4,0xd7,0x8,0x5a,0x83,0x7e,0xa0,0x71,0xd0,0x7d,0xb6,0x89,0x5f,0xe0,0xed,0xaf,0xde,0xf5,0x12,0xa9,0xd6,0x46,0x81,0x5b,0x66,0xbf,0x82,0x13,0xf8,0x91,0xcb,0x6e,0xeb,0xa2,0x53,0x9a,0x28,0xf0,0xf1,0xb5,0x3e,0x44,0xe3,0xf6,0x78,0xd8,0xa8,0xa3,0x18,0x7,0xef,0x13,0xe6,0x4a,0x80,0x4,0xd,0x73,0x53,0x94,0x3c,0x8c,0xc5,0x16,0x14,0x8b,0x6c,0x91,0x48,0x1a,0x6f,0xc2,0x63,0xb2,0xf2,0x4d,0x9b,0xa4,0xe7,0xcc,0xbd,0xff,0x54,0xc4,0xbb,0x0,0xad,0x74,0x49,0x93,0x83,0xea,0x1,0x90,0xb0,0xf9,0x7c,0xd9,0xe2,0x3a,0x88,0x41,0x56,0x2c,0xa7,0xe3,0xca,0x6a,0xe4,0xf1,0x15,0xa,0xb1,0xba,0xe1,0x4b,0xc,0x46,0xd6,0xcf,0x7f,0xfe,0x85,0x3,0x5d,0xb9,0x1b,0x21,0x33,0x2,0x18,0x65,0x6,0xa0,0xbc,0xfd,0x30,0x40,0x2e,0xd4,0xce,0x26,0x20,0x8e,0xbf,0xd1,0x43,0xeb,0xf6,0x9,0xec,0x3e,0x8a,0xb7,0xae,0xf7,0x24,0x72,0xcd,0x78,0xf4,0x2a,0x28,0xed,0x6b,0x1e,0x9f,0xf5,0x39,0xc0,0x2b,0x1c,0x5a,0x55,0x51,0x9a,0x70,0x76,0x7,0x5f,0xc6,0x38,0x42,0xd5,0x17,0x6e,0xf,0xe0,0xa1,0x22,0xd7,0xda,0xe9,0xee,0xf0,0xb3,0x4e,0x98,0x77,0xfc,0x75,0x7b,0xa5,0x7a,0xaf,0xcb,0x9d,0x81,0x62,0x5c,0x9c,0x96,0x60,0x2f,0xc3,0xc7,0x61,0xb4,0xde,0xc9,0xac,0xdb,0x8,0x25,0x45,0x23,0x68,0x5e,0xb8,0x5,0xa3,0xa2,0xa8,0x59,0x12,0x4f,0xf8,0xe5,0xd3,0xc1,0x10,0x3f,0x3b,0xa9,0x8f,0x2d,0x82,0x99,0x92,0x44,0x95,0xe,0xc8,0x29,0x89,0x69,0x86,0x4c,0x7e,0xfb,0xaa,0x36,0xb,0x64,0x84,0x71,0x87,0x50,0x9e,0x31,0xa6,0xd0,0xdf,0x58,0x52,0x35,0x32,0xab,0x57,0x37,0x8d,0x79,0xb5,0xdd,0x7d,0x27,0xbe,0x97,0x1f,0xf3,0x6d,0x19,0xd2,0xfa,0xe8,0x34,0x47,0x67,0x11,0xdc,0x3d,0xd8,0xb6,0x66,0x1d,0x5b,0x89,0x2f,0x97,0xea,0xbf,0xcf,0x33,0x72,0x41,0xa9,0xa1,0x5b,0x30,0x5e,0xaf,0x1,0x83,0xc9,0x6e,0xc4,0xf0,0x71,0x59,0x40,0xd2,0x36,0xa,0x8c,0xbc,0x8d,0x94,0xae,0xe4,0x91,0xa7,0x62,0xb6,0x4f,0x10,0x7a,0xd5,0xda,0xa4,0x93,0xff,0xf9,0xde,0x15,0x79,0x86,0xcc,0x64,0x5,0x38,0x63,0xb1,0xab,0xfd,0x21,0x78,0x7b,0xa5,0x42,0xf7,0xc7,0x95,0xe3,0x1e,0xec,0x3d,0xe0,0x4d,0x14,0x2b,0x7d,0xc2,0x32,0x70,0x68,0x43,0x69,0xc5,0x60,0x9c,0x82,0xfc,0xf,0x8b,0xb3,0x3,0xdc,0x1b,0x9b,0x4,0x4a,0x99,0x7,0xce,0x6d,0xb5,0x28,0x6c,0xd9,0xa3,0x6b,0x7e,0x45,0xe5,0x3e,0x35,0x9a,0x85,0x34,0x8f,0xdb,0x4b,0xc6,0x1c,0x22,0xfb,0x8e,0x1f,0xc,0x65,0xf3,0x56,0x3f,0x76,0x25,0xb9,0xf1,0x74,0xb,0xfe,0x84,0xeb,0x11,0xbe,0x8,0xdf,0x50,0xd7,0x29,0x5f,0x0,0xa2,0xb4,0x26,0x1d,0xcb,0xd,0x16,0x47,0xa6,0x1a,0x81,0x9,0xc3,0x6,0xe6,0x5d,0x75,0xe2,0x96,0xc8,0xe8,0x67,0xbb,0xb2,0x57,0x9e,0x53,0x92,0xd4,0x39,0xe9,0xbd,0x24,0xdd,0xba,0x2,0xf6,0xd8,0xb8,0xf2,0xa8,0x3a,0x52,0x90,0x7c,0x31,0x18,0xc1,0x17,0x7f,0x3c,0xfa,0xf4,0xf8,0x73,0x20,0x44,0x2a,0xf5,0xed,0xd3,0x12,0xe,0x49,0xb7,0x88,0xd0,0x98,0xe1,0xcd,0x5a,0x2e,0xad,0x80,0x6f,0x66,0x61,0x58,0x55,0x37,0x8a,0xe7,0xd1,0x27,0xd6,0x2c,0x2d,0x77,0x6a,0x9d,0xc0,0x9f,0xb0,0x5c,0x4e,0xef,0xa0,0x13,0x19,0xee,0x3b,0x4c,0x48,0x23,0x54,0x51,0x46,0xca,0xac,0x87,0xaa,0x76,0xb1,0x6e,0xde,0xf4,0x27,0x69,0xf6,0xf1,0xd,0xa8,0x4,0xe6,0x62,0x91,0xef,0xaf,0x10,0x46,0x79,0x2e,0x5,0x1d,0x5f,0x73,0x8e,0xf8,0xaa,0x20,0x8d,0x50,0x81,0x8,0x61,0x72,0xe3,0x1b,0x52,0x3b,0x9e,0x26,0xb6,0xe2,0x59,0x96,0x4f,0x71,0xab,0x88,0x28,0x13,0x6,0xe8,0xf7,0x58,0x53,0xd8,0x0,0xa3,0x6a,0xce,0xb4,0x1,0x45,0xe1,0x67,0x5b,0xbf,0xc3,0xf9,0xe0,0xd1,0xa9,0x3,0xa4,0xee,0x2d,0x34,0x1c,0x9d,0x36,0xcc,0xc4,0x2c,0x6c,0xc2,0x33,0x5d,0x87,0xfa,0x42,0xe4,0x1f,0x5e,0xa2,0xd2,0x15,0x4c,0x90,0xc6,0x9a,0x2f,0xc8,0x16,0x9,0xa1,0xeb,0x14,0xdc,0xe,0x55,0x68,0xfe,0xc9,0xb7,0xb8,0x78,0xb3,0x94,0x92,0xf,0xca,0xfc,0x89,0x17,0x7d,0x22,0xdb,0x2,0xed,0xc0,0x43,0x38,0x35,0xc,0xb,0xbd,0xe5,0xda,0x24,0x37,0xa0,0x8c,0xf5,0x98,0x47,0x29,0x4d,0x63,0x7f,0xbe,0x80,0x51,0x12,0x7a,0xac,0x1e,0x95,0x99,0x97,0x2b,0x3c,0x39,0x4e,0xc7,0xea,0xc1,0xa7,0x74,0x7e,0xcd,0x82,0x25,0x21,0x56,0x83,0xad,0xf0,0x7,0x1a,0x23,0x31,0xdd,0xf2,0xbc,0x8a,0xe7,0x5a,0x40,0x41,0xbb,0x4a,0xec,0x77,0xcb,0x2a,0x8b,0x6b,0xae,0x64,0x4b,0xd9,0xcf,0x6d,0x7b,0x60,0xa6,0x70,0xb2,0x65,0xd3,0x7c,0x32,0x44,0xba,0x3d,0x19,0x9c,0xd4,0x48,0x86,0xe9,0x93,0x66,0x3f,0x57,0xc5,0x9f,0x75,0x5c,0x11,0xfd,0xd7,0xb0,0x49,0xd0,0xd5,0xb5,0x9b,0x6f,0x3e,0xf3,0x3a,0xdf,0x84,0x54,0xb9,0xff,0xfb,0x8f,0x18,0x30,0xd6,0xa,0x85,0xa5,0x17,0xb5,0x93,0x1,0x7e,0xa8,0xa3,0xb8,0x13,0xf2,0x34,0xaf,0x76,0xbc,0x53,0xb3,0xc,0x90,0xc1,0x44,0x4b,0xbe,0x5e,0x31,0xb,0xa4,0x6a,0xbd,0x62,0xe5,0xea,0x9c,0x91,0x8,0xf,0x68,0x43,0xb7,0xd,0x6d,0x1d,0x47,0xe7,0x8f,0xc9,0x25,0xad,0x84,0xc0,0xe8,0x23,0x57,0x5d,0x7d,0xe,0xd2,0xe2,0x7,0xe6,0x2b,0x61,0x27,0x5c,0x8c,0x2,0xfc,0x65,0x3d,0x54,0x2d,0xef,0x78,0x18,0x9b,0xda,0x35,0xd4,0xd3,0xe0,0xed,0xa2,0x74,0x89,0xca,0x41,0x4f,0xc6,0x4d,0xf1,0x95,0x40,0x9f,0x66,0x58,0xbb,0xa7,0x15,0x5a,0xac,0xa6,0x8e,0x5b,0xfd,0xf9,0xe1,0x96,0xf3,0xe4,0x19,0x7f,0x1f,0x32,0x3f,0x82,0x64,0x52,0x63,0x92,0x98,0x99,0xdf,0xc2,0x75,0x28,0x5,0x2a,0xfb,0xe9,0x7c,0x36,0x71,0xdb,0xc4,0x45,0xf5,0xec,0x83,0x67,0x39,0xbf,0x38,0x9,0x1b,0x21,0x9a,0x3c,0x5f,0x22,0x7a,0xa,0xc7,0x86,0x1c,0xf4,0xee,0x14,0xeb,0x85,0xb4,0x1a,0x33,0xcc,0xd1,0x79,0x8d,0xb0,0x4,0xd6,0x48,0x1e,0xcd,0x94,0x10,0xce,0x42,0xf7,0x24,0x51,0xd7,0x12,0xfa,0x3,0xcf,0xa5,0x6f,0x60,0x26,0x11,0x4c,0x4a,0xa0,0x6b,0x70,0xdc,0x29,0xd5,0x49,0x37,0x3e,0xba,0xb6,0x6,0xae,0x69,0xb1,0x2e,0x2c,0xff,0x20,0x72,0xab,0x56,0x88,0x59,0xf8,0x55,0x9e,0xa1,0x77,0xc8,0xc5,0x87,0xf6,0xdd,0x3a,0x81,0xfe,0x6e,0xa9,0x73,0x4e,0x97,0xaa,0x3b,0xd0,0xb9,0xe3,0x46,0xc3,0x8a,0x7b,0xb2,0x0,0xd8,0xd9,0x9d,0x16,0x6c,0xcb,0xde,0x50,0xf0,0x80,0x8b,0x30,0x2f,0x34,0xc8,0x3d,0x91,0x5b,0xdf,0xd6,0xa8,0x88,0x4f,0xe7,0x57,0x1e,0xcd,0xcf,0x50,0xb7,0x4a,0x93,0xc1,0xb4,0x19,0xb8,0x69,0x29,0x96,0x40,0x7f,0x3c,0x17,0x66,0x24,0x8f,0x1f,0x60,0xdb,0x76,0xaf,0x92,0x48,0x58,0x31,0xda,0x4b,0x6b,0x22,0xa7,0x2,0x39,0xe1,0x53,0x9a,0x8d,0xf7,0x7c,0x38,0x11,0xb1,0x3f,0x2a,0xce,0xd1,0x6a,0x61,0x3a,0x90,0xd7,0x9d,0xd,0x14,0xa4,0x25,0x5e,0xd8,0x86,0x62,0xc0,0xfa,0xe8,0xd9,0xc3,0xbe,0xdd,0x7b,0x67,0x26,0xeb,0x9b,0xf5,0xf,0x15,0xfd,0xfb,0x55,0x64,0xa,0x98,0x30,0x2d,0xd2,0x37,0xe5,0x51,0x6c,0x75,0x2c,0xff,0xa9,0x16,0xa3,0x2f,0xf1,0xf3,0x36,0xb0,0xc5,0x44,0x2e,0xe2,0x1b,0xf0,0xc7,0x81,0x8e,0x8a,0x41,0xab,0xad,0xdc,0x84,0x1d,0xe3,0x99,0xe,0xcc,0xb5,0xd4,0x3b,0x7a,0xf9,0xc,0x1,0x32,0x35,0x2b,0x68,0x95,0x43,0xac,0x27,0xae,0xa0,0x7e,0xa1,0x74,0x10,0x46,0x5a,0xb9,0x87,0x47,0x4d,0xbb,0xf4,0x18,0x1c,0xba,0x6f,0x5,0x12,0x77,0x0,0xd3,0xfe,0x9e,0xf8,0xb3,0x85,0x63,0xde,0x78,0x79,0x73,0x82,0xc9,0x94,0x23,0x3e,0x8,0x1a,0xcb,0xe4,0xe0,0x72,0x54,0xf6,0x59,0x42,0x49,0x9f,0x4e,0xd5,0x13,0xf2,0x52,0xb2,0x5d,0x97,0xa5,0x20,0x71,0xed,0xd0,0xbf,0x5f,0xaa,0x5c,0x8b,0x45,0xea,0x7d,0xb,0x4,0x83,0x89,0xee,0xe9,0x70,0x8c,0xec,0x56,0xa2,0x6e,0x6,0xa6,0xfc,0x65,0x4c,0xc4,0x28,0xb6,0xc2,0x9,0x21,0x33,0xef,0x9c,0xbc,0xca,0x7,0xe6,0x3,0x6d,0xbd,0xc6,0x80,0x5b,0xfd,0x45,0x38,0x6d,0x1d,0xe1,0xa0,0x93,0x7b,0x73,0x89,0xe2,0x8c,0x7d,0xd3,0x51,0x1b,0xbc,0x16,0x22,0xa3,0x8b,0x92,0x0,0xe4,0xd8,0x5e,0x6e,0x5f,0x46,0x7c,0x36,0x43,0x75,0xb0,0x64,0x9d,0xc2,0xa8,0x7,0x8,0x76,0x41,0x2d,0x2b,0xc,0xc7,0xab,0x54,0x1e,0xb6,0xd7,0xea,0xb1,0x63,0x79,0x2f,0xf3,0xaa,0xa9,0x77,0x90,0x25,0x15,0x47,0x31,0xcc,0x3e,0xef,0x32,0x9f,0xc6,0xf9,0xaf,0x10,0xe0,0xa2,0xba,0x91,0xbb,0x17,0xb2,0x4e,0x50,0x2e,0xdd,0x59,0x61,0xd1,0xe,0xc9,0x49,0xd6,0x98,0x4b,0xd5,0x1c,0xbf,0x67,0xfa,0xbe,0xb,0x71,0xb9,0xac,0x97,0x37,0xec,0xe7,0x48,0x57,0xe6,0x5d,0x9,0x99,0x14,0xce,0xf0,0x29,0x5c,0xcd,0xde,0xb7,0x21,0x84,0xed,0xa4,0xf7,0x6b,0x23,0xa6,0xd9,0x2c,0x56,0x39,0xc3,0x6c,0xda,0xd,0x82,0x5,0xfb,0x8d,0xd2,0x70,0x66,0xf4,0xcf,0x19,0xdf,0xc4,0x95,0x74,0xc8,0x53,0xdb,0x11,0xd4,0x34,0x8f,0xa7,0x30,0x44,0x1a,0x3a,0xb5,0x69,0x60,0x85,0x4c,0x81,0x40,0x6,0xeb,0x3b,0x6f,0xf6,0xf,0x68,0xd0,0x24,0xa,0x6a,0x20,0x7a,0xe8,0x80,0x42,0xae,0xe3,0xca,0x13,0xc5,0xad,0xee,0x28,0x26,0x2a,0xa1,0xf2,0x96,0xf8,0x27,0x3f,0x1,0xc0,0xdc,0x9b,0x65,0x5a,0x2,0x4a,0x33,0x1f,0x88,0xfc,0x7f,0x52,0xbd,0xb4,0xb3,0x8a,0x87,0xe5,0x58,0x35,0x3,0xf5,0x4,0xfe,0xff,0xa5,0xb8,0x4f,0x12,0x4d,0x62,0x8e,0x9c,0x3d,0x72,0xc1,0xcb,0x3c,0xe9,0x9e,0x9a,0xf1,0x86,0x83,0x94,0x18,0x7e,0x55,0x78,0xc0,0x7,0xd8,0x68,0x42,0x91,0xdf,0x40,0x47,0xbb,0x1e,0xb2,0x50,0xd4,0x27,0x59,0x19,0xa6,0xf0,0xcf,0x98,0xb3,0xab,0xe9,0xc5,0x38,0x4e,0x1c,0x96,0x3b,0xe6,0x37,0xbe,0xd7,0xc4,0x55,0xad,0xe4,0x8d,0x28,0x90,0x0,0x54,0xef,0x20,0xf9,0xc7,0x1d,0x3e,0x9e,0xa5,0xb0,0x5e,0x41,0xee,0xe5,0x6e,0xb6,0x15,0xdc,0x78,0x2,0xb7,0xf3,0x57,0xd1,0xed,0x9,0x75,0x4f,0x56,0x67,0x1f,0xb5,0x12,0x58,0x9b,0x82,0xaa,0x2b,0x80,0x7a,0x72,0x9a,0xda,0x74,0x85,0xeb,0x31,0x4c,0xf4,0x52,0xa9,0xe8,0x14,0x64,0xa3,0xfa,0x26,0x70,0x2c,0x99,0x7e,0xa0,0xbf,0x17,0x5d,0xa2,0x6a,0xb8,0xe3,0xde,0x48,0x7f,0x1,0xe,0xce,0x5,0x22,0x24,0xb9,0x7c,0x4a,0x3f,0xa1,0xcb,0x94,0x6d,0xb4,0x5b,0x76,0xf5,0x8e,0x83,0xba,0xbd,0xb,0x53,0x6c,0x92,0x81,0x16,0x3a,0x43,0x2e,0xf1,0x9f,0xfb,0xd5,0xc9,0x8,0x36,0xe7,0xa4,0xcc,0x1a,0xa8,0x23,0x2f,0x21,0x9d,0x8a,0x8f,0xf8,0x71,0x5c,0x77,0x11,0xc2,0xc8,0x7b,0x34,0x93,0x97,0xe0,0x35,0x1b,0x46,0xb1,0xac,0x95,0x87,0x6b,0x44,0xa,0x3c,0x51,0xec,0xf6,0xf7,0xd,0xfc,0x5a,0xc1,0x7d,0x9c,0x3d,0xdd,0x18,0xd2,0xfd,0x6f,0x79,0xdb,0xcd,0xd6,0x10,0xc6,0x4,0xd3,0x65,0xca,0x84,0xf2,0xc,0x8b,0xaf,0x2a,0x62,0xfe,0x30,0x5f,0x25,0xd0,0x89,0xe1,0x73,0x29,0xc3,0xea,0xa7,0x4b,0x61,0x6,0xff,0x66,0x63,0x3,0x2d,0xd9,0x88,0x45,0x8c,0x69,0x32,0xe2,0xf,0x49,0x4d,0x39,0xae,0x86,0x60,0xbc,0x33,0x13,0xc8,0x6a,0x4c,0xde,0xa1,0x77,0x7c,0x67,0xcc,0x2d,0xeb,0x70,0xa9,0x63,0x8c,0x6c,0xd3,0x4f,0x1e,0x9b,0x94,0x61,0x81,0xee,0xd4,0x7b,0xb5,0x62,0xbd,0x3a,0x35,0x43,0x4e,0xd7,0xd0,0xb7,0x9c,0x68,0xd2,0xb2,0xc2,0x98,0x38,0x50,0x16,0xfa,0x72,0x5b,0x1f,0x37,0xfc,0x88,0x82,0xa2,0xd1,0xd,0x3d,0xd8,0x39,0xf4,0xbe,0xf8,0x83,0x53,0xdd,0x23,0xba,0xe2,0x8b,0xf2,0x30,0xa7,0xc7,0x44,0x5,0xea,0xb,0xc,0x3f,0x32,0x7d,0xab,0x56,0x15,0x9e,0x90,0x19,0x92,0x2e,0x4a,0x9f,0x40,0xb9,0x87,0x64,0x78,0xca,0x85,0x73,0x79,0x51,0x84,0x22,0x26,0x3e,0x49,0x2c,0x3b,0xc6,0xa0,0xc0,0xed,0xe0,0x5d,0xbb,0x8d,0xbc,0x4d,0x47,0x46,0x0,0x1d,0xaa,0xf7,0xda,0xf5,0x24,0x36,0xa3,0xe9,0xae,0x4,0x1b,0x9a,0x2a,0x33,0x5c,0xb8,0xe6,0x60,0xe7,0xd6,0xc4,0xfe,0x45,0xe3,0x80,0xfd,0xa5,0xd5,0x18,0x59,0xc3,0x2b,0x31,0xcb,0x34,0x5a,0x6b,0xc5,0xec,0x13,0xe,0xa6,0x52,0x6f,0xdb,0x9,0x97,0xc1,0x12,0x4b,0xcf,0x11,0x9d,0x28,0xfb,0x8e,0x8,0xcd,0x25,0xdc,0x10,0x7a,0xb0,0xbf,0xf9,0xce,0x93,0x95,0x7f,0xb4,0xaf,0x3,0xf6,0xa,0x96,0xe8,0xe1,0x65,0x69,0xd9,0x71,0xb6,0x6e,0xf1,0xf3,0x20,0xff,0xad,0x74,0x89,0x57,0x86,0x27,0x8a,0x41,0x7e,0xa8,0x17,0x1a,0x58,0x29,0x2,0xe5,0x5e,0x21,0xb1,0x76,0xac,0x91,0x48,0x75,0xe4,0xf,0x66,0x3c,0x99,0x1c,0x55,0xa4,0x6d,0xdf,0x7,0x6,0x42,0xc9,0xb3,0x14,0x1,0x8f,0x2f,0x5f,0x54,0xef,0xf0,0xee,0x12,0xe7,0x4b,0x81,0x5,0xc,0x72,0x52,0x95,0x3d,0x8d,0xc4,0x17,0x15,0x8a,0x6d,0x90,0x49,0x1b,0x6e,0xc3,0x62,0xb3,0xf3,0x4c,0x9a,0xa5,0xe6,0xcd,0xbc,0xfe,0x55,0xc5,0xba,0x1,0xac,0x75,0x48,0x92,0x82,0xeb,0x0,0x91,0xb1,0xf8,0x7d,0xd8,0xe3,0x3b,0x89,0x40,0x57,0x2d,0xa6,0xe2,0xcb,0x6b,0xe5,0xf0,0x14,0xb,0xb0,0xbb,0xe0,0x4a,0xd,0x47,0xd7,0xce,0x7e,0xff,0x84,0x2,0x5c,0xb8,0x1a,0x20,0x32,0x3,0x19,0x64,0x7,0xa1,0xbd,0xfc,0x31,0x41,0x2f,0xd5,0xcf,0x27,0x21,0x8f,0xbe,0xd0,0x42,0xea,0xf7,0x8,0xed,0x3f,0x8b,0xb6,0xaf,0xf6,0x25,0x73,0xcc,0x79,0xf5,0x2b,0x29,0xec,0x6a,0x1f,0x9e,0xf4,0x38,0xc1,0x2a,0x1d,0x5b,0x54,0x50,0x9b,0x71,0x77,0x6,0x5e,0xc7,0x39,0x43,0xd4,0x16,0x6f,0xe,0xe1,0xa0,0x23,0xd6,0xdb,0xe8,0xef,0xf1,0xb2,0x4f,0x99,0x76,0xfd,0x74,0x7a,0xa4,0x7b,0xae,0xca,0x9c,0x80,0x63,0x5d,0x9d,0x97,0x61,0x2e,0xc2,0xc6,0x60,0xb5,0xdf,0xc8,0xad,0xda,0x9,0x24,0x44,0x22,0x69,0x5f,0xb9,0x4,0xa2,0xa3,0xa9,0x58,0x13,0x4e,0xf9,0xe4,0xd2,0xc0,0x11,0x3e,0x3a,0xa8,0x8e,0x2c,0x83,0x98,0x93,0x45,0x94,0xf,0xc9,0x28,0x88,0x68,0x87,0x4d,0x7f,0xfa,0xab,0x37,0xa,0x65,0x85,0x70,0x86,0x51,0x9f,0x30,0xa7,0xd1,0xde,0x59,0x53,0x34,0x33,0xaa,0x56,0x36,0x8c,0x78,0xb4,0xdc,0x7c,0x26,0xbf,0x96,0x1e,0xf2,0x6c,0x18,0xd3,0xfb,0xe9,0x35,0x46,0x66,0x10,0xdd,0x3c,0xd9,0xb7,0x67,0x1c,0x5a,0xa7,0x1,0xb9,0xc4,0x91,0xe1,0x1d,0x5c,0x6f,0x87,0x8f,0x75,0x1e,0x70,0x81,0x2f,0xad,0xe7,0x40,0xea,0xde,0x5f,0x77,0x6e,0xfc,0x18,0x24,0xa2,0x92,0xa3,0xba,0x80,0xca,0xbf,0x89,0x4c,0x98,0x61,0x3e,0x54,0xfb,0xf4,0x8a,0xbd,0xd1,0xd7,0xf0,0x3b,0x57,0xa8,0xe2,0x4a,0x2b,0x16,0x4d,0x9f,0x85,0xd3,0xf,0x56,0x55,0x8b,0x6c,0xd9,0xe9,0xbb,0xcd,0x30,0xc2,0x13,0xce,0x63,0x3a,0x5,0x53,0xec,0x1c,0x5e,0x46,0x6d,0x47,0xeb,0x4e,0xb2,0xac,0xd2,0x21,0xa5,0x9d,0x2d,0xf2,0x35,0xb5,0x2a,0x64,0xb7,0x29,0xe0,0x43,0x9b,0x6,0x42,0xf7,0x8d,0x45,0x50,0x6b,0xcb,0x10,0x1b,0xb4,0xab,0x1a,0xa1,0xf5,0x65,0xe8,0x32,0xc,0xd5,0xa0,0x31,0x22,0x4b,0xdd,0x78,0x11,0x58,0xb,0x97,0xdf,0x5a,0x25,0xd0,0xaa,0xc5,0x3f,0x90,0x26,0xf1,0x7e,0xf9,0x7,0x71,0x2e,0x8c,0x9a,0x8,0x33,0xe5,0x23,0x38,0x69,0x88,0x34,0xaf,0x27,0xed,0x28,0xc8,0x73,0x5b,0xcc,0xb8,0xe6,0xc6,0x49,0x95,0x9c,0x79,0xb0,0x7d,0xbc,0xfa,0x17,0xc7,0x93,0xa,0xf3,0x94,0x2c,0xd8,0xf6,0x96,0xdc,0x86,0x14,0x7c,0xbe,0x52,0x1f,0x36,0xef,0x39,0x51,0x12,0xd4,0xda,0xd6,0x5d,0xe,0x6a,0x4,0xdb,0xc3,0xfd,0x3c,0x20,0x67,0x99,0xa6,0xfe,0xb6,0xcf,0xe3,0x74,0x0,0x83,0xae,0x41,0x48,0x4f,0x76,0x7b,0x19,0xa4,0xc9,0xff,0x9,0xf8,0x2,0x3,0x59,0x44,0xb3,0xee,0xb1,0x9e,0x72,0x60,0xc1,0x8e,0x3d,0x37,0xc0,0x15,0x62,0x66,0xd,0x7a,0x7f,0x68,0xe4,0x82,0xa9,0x84,0x28,0xef,0x30,0x80,0xaa,0x79,0x37,0xa8,0xaf,0x53,0xf6,0x5a,0xb8,0x3c,0xcf,0xb1,0xf1,0x4e,0x18,0x27,0x70,0x5b,0x43,0x1,0x2d,0xd0,0xa6,0xf4,0x7e,0xd3,0xe,0xdf,0x56,0x3f,0x2c,0xbd,0x45,0xc,0x65,0xc0,0x78,0xe8,0xbc,0x7,0xc8,0x11,0x2f,0xf5,0xd6,0x76,0x4d,0x58,0xb6,0xa9,0x6,0xd,0x86,0x5e,0xfd,0x34,0x90,0xea,0x5f,0x1b,0xbf,0x39,0x5,0xe1,0x9d,0xa7,0xbe,0x8f,0xf7,0x5d,0xfa,0xb0,0x73,0x6a,0x42,0xc3,0x68,0x92,0x9a,0x72,0x32,0x9c,0x6d,0x3,0xd9,0xa4,0x1c,0xba,0x41,0x0,0xfc,0x8c,0x4b,0x12,0xce,0x98,0xc4,0x71,0x96,0x48,0x57,0xff,0xb5,0x4a,0x82,0x50,0xb,0x36,0xa0,0x97,0xe9,0xe6,0x26,0xed,0xca,0xcc,0x51,0x94,0xa2,0xd7,0x49,0x23,0x7c,0x85,0x5c,0xb3,0x9e,0x1d,0x66,0x6b,0x52,0x55,0xe3,0xbb,0x84,0x7a,0x69,0xfe,0xd2,0xab,0xc6,0x19,0x77,0x13,0x3d,0x21,0xe0,0xde,0xf,0x4c,0x24,0xf2,0x40,0xcb,0xc7,0xc9,0x75,0x62,0x67,0x10,0x99,0xb4,0x9f,0xf9,0x2a,0x20,0x93,0xdc,0x7b,0x7f,0x8,0xdd,0xf3,0xae,0x59,0x44,0x7d,0x6f,0x83,0xac,0xe2,0xd4,0xb9,0x4,0x1e,0x1f,0xe5,0x14,0xb2,0x29,0x95,0x74,0xd5,0x35,0xf0,0x3a,0x15,0x87,0x91,0x33,0x25,0x3e,0xf8,0x2e,0xec,0x3b,0x8d,0x22,0x6c,0x1a,0xe4,0x63,0x47,0xc2,0x8a,0x16,0xd8,0xb7,0xcd,0x38,0x61,0x9,0x9b,0xc1,0x2b,0x2,0x4f,0xa3,0x89,0xee,0x17,0x8e,0x8b,0xeb,0xc5,0x31,0x60,0xad,0x64,0x81,0xda,0xa,0xe7,0xa1,0xa5,0xd1,0x46,0x6e,0x88,0x54,0xdb,0xfb,0x6c,0xce,0xe8,0x7a,0x5,0xd3,0xd8,0xc3,0x68,0x89,0x4f,0xd4,0xd,0xc7,0x28,0xc8,0x77,0xeb,0xba,0x3f,0x30,0xc5,0x25,0x4a,0x70,0xdf,0x11,0xc6,0x19,0x9e,0x91,0xe7,0xea,0x73,0x74,0x13,0x38,0xcc,0x76,0x16,0x66,0x3c,0x9c,0xf4,0xb2,0x5e,0xd6,0xff,0xbb,0x93,0x58,0x2c,0x26,0x6,0x75,0xa9,0x99,0x7c,0x9d,0x50,0x1a,0x5c,0x27,0xf7,0x79,0x87,0x1e,0x46,0x2f,0x56,0x94,0x3,0x63,0xe0,0xa1,0x4e,0xaf,0xa8,0x9b,0x96,0xd9,0xf,0xf2,0xb1,0x3a,0x34,0xbd,0x36,0x8a,0xee,0x3b,0xe4,0x1d,0x23,0xc0,0xdc,0x6e,0x21,0xd7,0xdd,0xf5,0x20,0x86,0x82,0x9a,0xed,0x88,0x9f,0x62,0x4,0x64,0x49,0x44,0xf9,0x1f,0x29,0x18,0xe9,0xe3,0xe2,0xa4,0xb9,0xe,0x53,0x7e,0x51,0x80,0x92,0x7,0x4d,0xa,0xa0,0xbf,0x3e,0x8e,0x97,0xf8,0x1c,0x42,0xc4,0x43,0x72,0x60,0x5a,0xe1,0x47,0x24,0x59,0x1,0x71,0xbc,0xfd,0x67,0x8f,0x95,0x6f,0x90,0xfe,0xcf,0x61,0x48,0xb7,0xaa,0x2,0xf6,0xcb,0x7f,0xad,0x33,0x65,0xb6,0xef,0x6b,0xb5,0x39,0x8c,0x5f,0x2a,0xac,0x69,0x81,0x78,0xb4,0xde,0x14,0x1b,0x5d,0x6a,0x37,0x31,0xdb,0x10,0xb,0xa7,0x52,0xae,0x32,0x4c,0x45,0xc1,0xcd,0x7d,0xd5,0x12,0xca,0x55,0x57,0x84,0x5b,0x9,0xd0,0x2d,0xf3,0x22,0x83,0x2e,0xe5,0xda,0xc,0xb3,0xbe,0xfc,0x8d,0xa6,0x41,0xfa,0x85,0x15,0xd2,0x8,0x35,0xec,0xd1,0x40,0xab,0xc2,0x98,0x3d,0xb8,0xf1,0x0,0xc9,0x7b,0xa3,0xa2,0xe6,0x6d,0x17,0xb0,0xa5,0x2b,0x8b,0xfb,0xf0,0x4b,0x54,0x29,0xd5,0x20,0x8c,0x46,0xc2,0xcb,0xb5,0x95,0x52,0xfa,0x4a,0x3,0xd0,0xd2,0x4d,0xaa,0x57,0x8e,0xdc,0xa9,0x4,0xa5,0x74,0x34,0x8b,0x5d,0x62,0x21,0xa,0x7b,0x39,0x92,0x2,0x7d,0xc6,0x6b,0xb2,0x8f,0x55,0x45,0x2c,0xc7,0x56,0x76,0x3f,0xba,0x1f,0x24,0xfc,0x4e,0x87,0x90,0xea,0x61,0x25,0xc,0xac,0x22,0x37,0xd3,0xcc,0x77,0x7c,0x27,0x8d,0xca,0x80,0x10,0x9,0xb9,0x38,0x43,0xc5,0x9b,0x7f,0xdd,0xe7,0xf5,0xc4,0xde,0xa3,0xc0,0x66,0x7a,0x3b,0xf6,0x86,0xe8,0x12,0x8,0xe0,0xe6,0x48,0x79,0x17,0x85,0x2d,0x30,0xcf,0x2a,0xf8,0x4c,0x71,0x68,0x31,0xe2,0xb4,0xb,0xbe,0x32,0xec,0xee,0x2b,0xad,0xd8,0x59,0x33,0xff,0x6,0xed,0xda,0x9c,0x93,0x97,0x5c,0xb6,0xb0,0xc1,0x99,0x0,0xfe,0x84,0x13,0xd1,0xa8,0xc9,0x26,0x67,0xe4,0x11,0x1c,0x2f,0x28,0x36,0x75,0x88,0x5e,0xb1,0x3a,0xb3,0xbd,0x63,0xbc,0x69,0xd,0x5b,0x47,0xa4,0x9a,0x5a,0x50,0xa6,0xe9,0x5,0x1,0xa7,0x72,0x18,0xf,0x6a,0x1d,0xce,0xe3,0x83,0xe5,0xae,0x98,0x7e,0xc3,0x65,0x64,0x6e,0x9f,0xd4,0x89,0x3e,0x23,0x15,0x7,0xd6,0xf9,0xfd,0x6f,0x49,0xeb,0x44,0x5f,0x54,0x82,0x53,0xc8,0xe,0xef,0x4f,0xaf,0x40,0x8a,0xb8,0x3d,0x6c,0xf0,0xcd,0xa2,0x42,0xb7,0x41,0x96,0x58,0xf7,0x60,0x16,0x19,0x9e,0x94,0xf3,0xf4,0x6d,0x91,0xf1,0x4b,0xbf,0x73,0x1b,0xbb,0xe1,0x78,0x51,0xd9,0x35,0xab,0xdf,0x14,0x3c,0x2e,0xf2,0x81,0xa1,0xd7,0x1a,0xfb,0x1e,0x70,0xa0,0xdb,0x9d,0xc8,0x6e,0xd6,0xab,0xfe,0x8e,0x72,0x33,0x0,0xe8,0xe0,0x1a,0x71,0x1f,0xee,0x40,0xc2,0x88,0x2f,0x85,0xb1,0x30,0x18,0x1,0x93,0x77,0x4b,0xcd,0xfd,0xcc,0xd5,0xef,0xa5,0xd0,0xe6,0x23,0xf7,0xe,0x51,0x3b,0x94,0x9b,0xe5,0xd2,0xbe,0xb8,0x9f,0x54,0x38,0xc7,0x8d,0x25,0x44,0x79,0x22,0xf0,0xea,0xbc,0x60,0x39,0x3a,0xe4,0x3,0xb6,0x86,0xd4,0xa2,0x5f,0xad,0x7c,0xa1,0xc,0x55,0x6a,0x3c,0x83,0x73,0x31,0x29,0x2,0x28,0x84,0x21,0xdd,0xc3,0xbd,0x4e,0xca,0xf2,0x42,0x9d,0x5a,0xda,0x45,0xb,0xd8,0x46,0x8f,0x2c,0xf4,0x69,0x2d,0x98,0xe2,0x2a,0x3f,0x4,0xa4,0x7f,0x74,0xdb,0xc4,0x75,0xce,0x9a,0xa,0x87,0x5d,0x63,0xba,0xcf,0x5e,0x4d,0x24,0xb2,0x17,0x7e,0x37,0x64,0xf8,0xb0,0x35,0x4a,0xbf,0xc5,0xaa,0x50,0xff,0x49,0x9e,0x11,0x96,0x68,0x1e,0x41,0xe3,0xf5,0x67,0x5c,0x8a,0x4c,0x57,0x6,0xe7,0x5b,0xc0,0x48,0x82,0x47,0xa7,0x1c,0x34,0xa3,0xd7,0x89,0xa9,0x26,0xfa,0xf3,0x16,0xdf,0x12,0xd3,0x95,0x78,0xa8,0xfc,0x65,0x9c,0xfb,0x43,0xb7,0x99,0xf9,0xb3,0xe9,0x7b,0x13,0xd1,0x3d,0x70,0x59,0x80,0x56,0x3e,0x7d,0xbb,0xb5,0xb9,0x32,0x61,0x5,0x6b,0xb4,0xac,0x92,0x53,0x4f,0x8,0xf6,0xc9,0x91,0xd9,0xa0,0x8c,0x1b,0x6f,0xec,0xc1,0x2e,0x27,0x20,0x19,0x14,0x76,0xcb,0xa6,0x90,0x66,0x97,0x6d,0x6c,0x36,0x2b,0xdc,0x81,0xde,0xf1,0x1d,0xf,0xae,0xe1,0x52,0x58,0xaf,0x7a,0xd,0x9,0x62,0x15,0x10,0x7,0x8b,0xed,0xc6,0xeb,0x21,0xe6,0x39,0x89,0xa3,0x70,0x3e,0xa1,0xa6,0x5a,0xff,0x53,0xb1,0x35,0xc6,0xb8,0xf8,0x47,0x11,0x2e,0x79,0x52,0x4a,0x8,0x24,0xd9,0xaf,0xfd,0x77,0xda,0x7,0xd6,0x5f,0x36,0x25,0xb4,0x4c,0x5,0x6c,0xc9,0x71,0xe1,0xb5,0xe,0xc1,0x18,0x26,0xfc,0xdf,0x7f,0x44,0x51,0xbf,0xa0,0xf,0x4,0x8f,0x57,0xf4,0x3d,0x99,0xe3,0x56,0x12,0xb6,0x30,0xc,0xe8,0x94,0xae,0xb7,0x86,0xfe,0x54,0xf3,0xb9,0x7a,0x63,0x4b,0xca,0x61,0x9b,0x93,0x7b,0x3b,0x95,0x64,0xa,0xd0,0xad,0x15,0xb3,0x48,0x9,0xf5,0x85,0x42,0x1b,0xc7,0x91,0xcd,0x78,0x9f,0x41,0x5e,0xf6,0xbc,0x43,0x8b,0x59,0x2,0x3f,0xa9,0x9e,0xe0,0xef,0x2f,0xe4,0xc3,0xc5,0x58,0x9d,0xab,0xde,0x40,0x2a,0x75,0x8c,0x55,0xba,0x97,0x14,0x6f,0x62,0x5b,0x5c,0xea,0xb2,0x8d,0x73,0x60,0xf7,0xdb,0xa2,0xcf,0x10,0x7e,0x1a,0x34,0x28,0xe9,0xd7,0x6,0x45,0x2d,0xfb,0x49,0xc2,0xce,0xc0,0x7c,0x6b,0x6e,0x19,0x90,0xbd,0x96,0xf0,0x23,0x29,0x9a,0xd5,0x72,0x76,0x1,0xd4,0xfa,0xa7,0x50,0x4d,0x74,0x66,0x8a,0xa5,0xeb,0xdd,0xb0,0xd,0x17,0x16,0xec,0x1d,0xbb,0x20,0x9c,0x7d,0xdc,0x3c,0xf9,0x33,0x1c,0x8e,0x98,0x3a,0x2c,0x37,0xf1,0x27,0xe5,0x32,0x84,0x2b,0x65,0x13,0xed,0x6a,0x4e,0xcb,0x83,0x1f,0xd1,0xbe,0xc4,0x31,0x68,0x0,0x92,0xc8,0x22,0xb,0x46,0xaa,0x80,0xe7,0x1e,0x87,0x82,0xe2,0xcc,0x38,0x69,0xa4,0x6d,0x88,0xd3,0x3,0xee,0xa8,0xac,0xd8,0x4f,0x67,0x81,0x5d,0xd2,0xf2,0xe9,0x4b,0x6d,0xff,0x80,0x56,0x5d,0x46,0xed,0xc,0xca,0x51,0x88,0x42,0xad,0x4d,0xf2,0x6e,0x3f,0xba,0xb5,0x40,0xa0,0xcf,0xf5,0x5a,0x94,0x43,0x9c,0x1b,0x14,0x62,0x6f,0xf6,0xf1,0x96,0xbd,0x49,0xf3,0x93,0xe3,0xb9,0x19,0x71,0x37,0xdb,0x53,0x7a,0x3e,0x16,0xdd,0xa9,0xa3,0x83,0xf0,0x2c,0x1c,0xf9,0x18,0xd5,0x9f,0xd9,0xa2,0x72,0xfc,0x2,0x9b,0xc3,0xaa,0xd3,0x11,0x86,0xe6,0x65,0x24,0xcb,0x2a,0x2d,0x1e,0x13,0x5c,0x8a,0x77,0x34,0xbf,0xb1,0x38,0xb3,0xf,0x6b,0xbe,0x61,0x98,0xa6,0x45,0x59,0xeb,0xa4,0x52,0x58,0x70,0xa5,0x3,0x7,0x1f,0x68,0xd,0x1a,0xe7,0x81,0xe1,0xcc,0xc1,0x7c,0x9a,0xac,0x9d,0x6c,0x66,0x67,0x21,0x3c,0x8b,0xd6,0xfb,0xd4,0x5,0x17,0x82,0xc8,0x8f,0x25,0x3a,0xbb,0xb,0x12,0x7d,0x99,0xc7,0x41,0xc6,0xf7,0xe5,0xdf,0x64,0xc2,0xa1,0xdc,0x84,0xf4,0x39,0x78,0xe2,0xa,0x10,0xea,0x15,0x7b,0x4a,0xe4,0xcd,0x32,0x2f,0x87,0x73,0x4e,0xfa,0x28,0xb6,0xe0,0x33,0x6a,0xee,0x30,0xbc,0x9,0xda,0xaf,0x29,0xec,0x4,0xfd,0x31,0x5b,0x91,0x9e,0xd8,0xef,0xb2,0xb4,0x5e,0x95,0x8e,0x22,0xd7,0x2b,0xb7,0xc9,0xc0,0x44,0x48,0xf8,0x50,0x97,0x4f,0xd0,0xd2,0x1,0xde,0x8c,0x55,0xa8,0x76,0xa7,0x6,0xab,0x60,0x5f,0x89,0x36,0x3b,0x79,0x8,0x23,0xc4,0x7f,0x0,0x90,0x57,0x8d,0xb0,0x69,0x54,0xc5,0x2e,0x47,0x1d,0xb8,0x3d,0x74,0x85,0x4c,0xfe,0x26,0x27,0x63,0xe8,0x92,0x35,0x20,0xae,0xe,0x7e,0x75,0xce,0xd1,0x8e,0x72,0x87,0x2b,0xe1,0x65,0x6c,0x12,0x32,0xf5,0x5d,0xed,0xa4,0x77,0x75,0xea,0xd,0xf0,0x29,0x7b,0xe,0xa3,0x2,0xd3,0x93,0x2c,0xfa,0xc5,0x86,0xad,0xdc,0x9e,0x35,0xa5,0xda,0x61,0xcc,0x15,0x28,0xf2,0xe2,0x8b,0x60,0xf1,0xd1,0x98,0x1d,0xb8,0x83,0x5b,0xe9,0x20,0x37,0x4d,0xc6,0x82,0xab,0xb,0x85,0x90,0x74,0x6b,0xd0,0xdb,0x80,0x2a,0x6d,0x27,0xb7,0xae,0x1e,0x9f,0xe4,0x62,0x3c,0xd8,0x7a,0x40,0x52,0x63,0x79,0x4,0x67,0xc1,0xdd,0x9c,0x51,0x21,0x4f,0xb5,0xaf,0x47,0x41,0xef,0xde,0xb0,0x22,0x8a,0x97,0x68,0x8d,0x5f,0xeb,0xd6,0xcf,0x96,0x45,0x13,0xac,0x19,0x95,0x4b,0x49,0x8c,0xa,0x7f,0xfe,0x94,0x58,0xa1,0x4a,0x7d,0x3b,0x34,0x30,0xfb,0x11,0x17,0x66,0x3e,0xa7,0x59,0x23,0xb4,0x76,0xf,0x6e,0x81,0xc0,0x43,0xb6,0xbb,0x88,0x8f,0x91,0xd2,0x2f,0xf9,0x16,0x9d,0x14,0x1a,0xc4,0x1b,0xce,0xaa,0xfc,0xe0,0x3,0x3d,0xfd,0xf7,0x1,0x4e,0xa2,0xa6,0x0,0xd5,0xbf,0xa8,0xcd,0xba,0x69,0x44,0x24,0x42,0x9,0x3f,0xd9,0x64,0xc2,0xc3,0xc9,0x38,0x73,0x2e,0x99,0x84,0xb2,0xa0,0x71,0x5e,0x5a,0xc8,0xee,0x4c,0xe3,0xf8,0xf3,0x25,0xf4,0x6f,0xa9,0x48,0xe8,0x8,0xe7,0x2d,0x1f,0x9a,0xcb,0x57,0x6a,0x5,0xe5,0x10,0xe6,0x31,0xff,0x50,0xc7,0xb1,0xbe,0x39,0x33,0x54,0x53,0xca,0x36,0x56,0xec,0x18,0xd4,0xbc,0x1c,0x46,0xdf,0xf6,0x7e,0x92,0xc,0x78,0xb3,0x9b,0x89,0x55,0x26,0x6,0x70,0xbd,0x5c,0xb9,0xd7,0x7,0x7c,0x3a,0xfa,0x3b,0x87,0x55,0xc6,0x13,0xdc,0x89,0xb8,0xc7,0x67,0xc9,0xbc,0x82,0x28,0x44,0xaf,0xdf,0x77,0xd4,0x5,0x49,0xf6,0x7d,0x7,0xd9,0xca,0xf9,0xe1,0x8,0x29,0x4,0xae,0xd8,0x65,0xad,0x63,0xc2,0x23,0x61,0x7f,0x1f,0x7e,0x2,0x7c,0x79,0xcf,0x15,0x60,0xf5,0x4b,0xa7,0x58,0x11,0x2a,0x9d,0x39,0xc,0x56,0xa3,0x12,0xbf,0x69,0x9a,0x6a,0x7b,0x2d,0x27,0x34,0xcb,0x99,0xf4,0x3e,0x80,0xe,0xd1,0x90,0x78,0xe6,0xe4,0x76,0xa0,0x6e,0xf3,0x2b,0x33,0x41,0x3c,0x3d,0x4a,0x83,0x73,0x50,0xa6,0x42,0x1b,0xb4,0xb,0x96,0x18,0x48,0x3,0xe8,0x47,0x5d,0xcd,0xaa,0x86,0x16,0xbd,0x62,0xfb,0xbb,0x32,0x6f,0xfe,0xe7,0x8f,0x1d,0xff,0xb7,0xa4,0xd,0x5f,0xd7,0x52,0x94,0x6c,0x71,0xc8,0xb2,0x25,0x6d,0xec,0xd6,0xa5,0x35,0xa1,0xd2,0xc0,0x46,0x40,0x1c,0x20,0xbe,0x4f,0xee,0xb9,0xf0,0xea,0xba,0xd0,0x38,0x3f,0x8a,0x2e,0xf,0x21,0x8c,0xb6,0x5c,0x43,0xd5,0xf2,0x68,0x4d,0xf7,0xb1,0x57,0xd3,0xfc,0xda,0xc5,0xfd,0x8e,0x66,0xab,0xe3,0x17,0x88,0x72,0x92,0xac,0x3a,0x1,0x8d,0xc1,0x85,0x24,0xf8,0xf1,0xef,0x59,0x97,0x64,0xce,0x8b,0x75,0x9b,0x5b,0x51,0xa,0x37,0x0,0xde,0xc3,0x81,0x7a,0x9e,0xeb,0xe0,0x2c,0x9c,0x1e,0x9f,0xa9,0x6,0xe2,0xcc,0x70,0x5e,0x26,0xb5,0x5a,0x9,0xc4,0xed,0xdd,0xa2,0x1a,0x91,0x84,0xb0,0x22,0x4e,0x2f,0x10,0x98,0x45,0xe9,0xe5,0x4c,0x74,0x95,0x93,0x54,0xdb,0x36,0xa8,0x30,0x31,0x19,0x6b,0xb3,0x53,0x14,0x43,0x84,0x5b,0xeb,0xc1,0x12,0x5c,0xc3,0xc4,0x38,0x9d,0x31,0xd3,0x57,0xa4,0xda,0x9a,0x25,0x73,0x4c,0x1b,0x30,0x28,0x6a,0x46,0xbb,0xcd,0x9f,0x15,0xb8,0x65,0xb4,0x3d,0x54,0x47,0xd6,0x2e,0x67,0xe,0xab,0x13,0x83,0xd7,0x6c,0xa3,0x7a,0x44,0x9e,0xbd,0x1d,0x26,0x33,0xdd,0xc2,0x6d,0x66,0xed,0x35,0x96,0x5f,0xfb,0x81,0x34,0x70,0xd4,0x52,0x6e,0x8a,0xf6,0xcc,0xd5,0xe4,0x9c,0x36,0x91,0xdb,0x18,0x1,0x29,0xa8,0x3,0xf9,0xf1,0x19,0x59,0xf7,0x6,0x68,0xb2,0xcf,0x77,0xd1,0x2a,0x6b,0x97,0xe7,0x20,0x79,0xa5,0xf3,0xaf,0x1a,0xfd,0x23,0x3c,0x94,0xde,0x21,0xe9,0x3b,0x60,0x5d,0xcb,0xfc,0x82,0x8d,0x4d,0x86,0xa1,0xa7,0x3a,0xff,0xc9,0xbc,0x22,0x48,0x17,0xee,0x37,0xd8,0xf5,0x76,0xd,0x0,0x39,0x3e,0x88,0xd0,0xef,0x11,0x2,0x95,0xb9,0xc0,0xad,0x72,0x1c,0x78,0x56,0x4a,0x8b,0xb5,0x64,0x27,0x4f,0x99,0x2b,0xa0,0xac,0xa2,0x1e,0x9,0xc,0x7b,0xf2,0xdf,0xf4,0x92,0x41,0x4b,0xf8,0xb7,0x10,0x14,0x63,0xb6,0x98,0xc5,0x32,0x2f,0x16,0x4,0xe8,0xc7,0x89,0xbf,0xd2,0x6f,0x75,0x74,0x8e,0x7f,0xd9,0x42,0xfe,0x1f,0xbe,0x5e,0x9b,0x51,0x7e,0xec,0xfa,0x58,0x4e,0x55,0x93,0x45,0x87,0x50,0xe6,0x49,0x7,0x71,0x8f,0x8,0x2c,0xa9,0xe1,0x7d,0xb3,0xdc,0xa6,0x53,0xa,0x62,0xf0,0xaa,0x40,0x69,0x24,0xc8,0xe2,0x85,0x7c,0xe5,0xe0,0x80,0xae,0x5a,0xb,0xc6,0xf,0xea,0xb1,0x61,0x8c,0xca,0xce,0xba,0x2d,0x5,0xe3,0x3f,0xb0,0x90,0xc2,0x60,0x46,0xd4,0xab,0x7d,0x76,0x6d,0xc6,0x27,0xe1,0x7a,0xa3,0x69,0x86,0x66,0xd9,0x45,0x14,0x91,0x9e,0x6b,0x8b,0xe4,0xde,0x71,0xbf,0x68,0xb7,0x30,0x3f,0x49,0x44,0xdd,0xda,0xbd,0x96,0x62,0xd8,0xb8,0xc8,0x92,0x32,0x5a,0x1c,0xf0,0x78,0x51,0x15,0x3d,0xf6,0x82,0x88,0xa8,0xdb,0x7,0x37,0xd2,0x33,0xfe,0xb4,0xf2,0x89,0x59,0xd7,0x29,0xb0,0xe8,0x81,0xf8,0x3a,0xad,0xcd,0x4e,0xf,0xe0,0x1,0x6,0x35,0x38,0x77,0xa1,0x5c,0x1f,0x94,0x9a,0x13,0x98,0x24,0x40,0x95,0x4a,0xb3,0x8d,0x6e,0x72,0xc0,0x8f,0x79,0x73,0x5b,0x8e,0x28,0x2c,0x34,0x43,0x26,0x31,0xcc,0xaa,0xca,0xe7,0xea,0x57,0xb1,0x87,0xb6,0x47,0x4d,0x4c,0xa,0x17,0xa0,0xfd,0xd0,0xff,0x2e,0x3c,0xa9,0xe3,0xa4,0xe,0x11,0x90,0x20,0x39,0x56,0xb2,0xec,0x6a,0xed,0xdc,0xce,0xf4,0x4f,0xe9,0x8a,0xf7,0xaf,0xdf,0x12,0x53,0xc9,0x21,0x3b,0xc1,0x3e,0x50,0x61,0xcf,0xe6,0x19,0x4,0xac,0x58,0x65,0xd1,0x3,0x9d,0xcb,0x18,0x41,0xc5,0x1b,0x97,0x22,0xf1,0x84,0x2,0xc7,0x2f,0xd6,0x1a,0x70,0xba,0xb5,0xf3,0xc4,0x99,0x9f,0x75,0xbe,0xa5,0x9,0xfc,0x0,0x9c,0xe2,0xeb,0x6f,0x63,0xd3,0x7b,0xbc,0x64,0xfb,0xf9,0x2a,0xf5,0xa7,0x7e,0x83,0x5d,0x8c,0x2d,0x80,0x4b,0x74,0xa2,0x1d,0x10,0x52,0x23,0x8,0xef,0x54,0x2b,0xbb,0x7c,0xa6,0x9b,0x42,0x7f,0xee,0x5,0x6c,0x36,0x93,0x16,0x5f,0xae,0x67,0xd5,0xd,0xc,0x48,0xc3,0xb9,0x1e,0xb,0x85,0x25,0x55,0x5e,0xe5,0xfa,0xd5,0xa8,0xbf,0xa7,0xfa,0x67,0xe2,0x34,0xd6,0x8f,0xc4,0x32,0x17,0xe7,0xa9,0xde,0xd,0x60,0xa0,0x5f,0xb9,0xb3,0xfe,0xef,0x72,0x70,0x4,0xec,0x9a,0x45,0xaa,0x14,0x89,0x6b,0x73,0x1b,0xfb,0x6a,0x2f,0xa6,0x0,0xf8,0x43,0xc6,0x99,0xcb,0x23,0x30,0x7c,0xd3,0xdc,0x97,0x2,0x8c,0x20,0x9f,0xf6,0x6f,0x82,0x29,0x3e,0x12,0xc9,0x59,0x62,0xe9,0x91,0xdd,0xe3,0x40,0x3b,0x4b,0xbd,0x90,0x75,0x9c,0x5e,0x6d,0x93,0x4d,0x48,0x1d,0x52,0x87,0x13,0xc1,0x6e,0xaf,0xbc,0xd0,0x28,0x16,0xf3,0x5d,0x2c,0x53,0xbe,0x9,0xcc,0x85,0xdf,0x33,0xf4,0x61,0xfd,0xe,0x86,0x2b,0xc2,0x37,0xad,0x98,0xb7,0xf5,0xf7,0x56,0xf1,0x39,0x3a,0x4c,0x5b,0x81,0xe8,0xed,0xea,0x96,0xeb,0x8b,0xb,0x3d,0x8,0x8a,0x74,0xb8,0xa,0x7f,0x21,0xce,0xca,0xb2,0x58,0xe4,0x92,0x76,0xf,0xcf,0x1f,0xe1,0xf0,0x5a,0xcd,0x3,0x15,0xee,0x4a,0x57,0xa3,0x94,0xc5,0x9e,0x4f,0xa2,0x7,0xc0,0xe0,0x1,0x71,0xd8,0xc7,0x80,0xff,0x27,0xa5,0x8d,0x3c,0xa4,0x5,0x10,0x36,0x8e,0x79,0x49,0x9d,0x50,0xd1,0x7d,0x84,0xc,0xda,0xbb,0x24,0xb6,0x2e,0x44,0x64,0x7e,0x7a,0x2d,0x2a,0xdb,0x18,0x22,0x9b,0xb5,0x1e,0xba,0xac,0xab,0x42,0x31,0xf9,0x78,0x26,0xb1,0xe5,0x5c,0x88,0xb4,0xd2,0xd4,0x46,0x54,0xa1,0x35,0x38,0xae,0xe6,0x6,0x83,0x1c,0x3f,0x77,0x65,0x7b,0xb0,0x6c,0x55,0x11,0x95,0x19,0x63,0x25,0xfc,0xd9,0x41,0x66,0xc8,0xd7,0x1a,0xf2,0x51,0x69,0x68,0x4e,0xc3,0x47,0x44,0xe2,0x5a,0x27,0x72,0x2,0xfe,0xbf,0x8c,0x64,0x6c,0x96,0xfd,0x93,0x62,0xcc,0x4e,0x4,0xa3,0x9,0x3d,0xbc,0x94,0x8d,0x1f,0xfb,0xc7,0x41,0x71,0x40,0x59,0x63,0x29,0x5c,0x6a,0xaf,0x7b,0x82,0xdd,0xb7,0x18,0x17,0x69,0x5e,0x32,0x34,0x13,0xd8,0xb4,0x4b,0x1,0xa9,0xc8,0xf5,0xae,0x7c,0x66,0x30,0xec,0xb5,0xb6,0x68,0x8f,0x3a,0xa,0x58,0x2e,0xd3,0x21,0xf0,0x2d,0x80,0xd9,0xe6,0xb0,0xf,0xff,0xbd,0xa5,0x8e,0xa4,0x8,0xad,0x51,0x4f,0x31,0xc2,0x46,0x7e,0xce,0x11,0xd6,0x56,0xc9,0x87,0x54,0xca,0x3,0xa0,0x78,0xe5,0xa1,0x14,0x6e,0xa6,0xb3,0x88,0x28,0xf3,0xf8,0x57,0x48,0xf9,0x42,0x16,0x86,0xb,0xd1,0xef,0x36,0x43,0xd2,0xc1,0xa8,0x3e,0x9b,0xf2,0xbb,0xe8,0x74,0x3c,0xb9,0xc6,0x33,0x49,0x26,0xdc,0x73,0xc5,0x12,0x9d,0x1a,0xe4,0x92,0xcd,0x6f,0x79,0xeb,0xd0,0x6,0xc0,0xdb,0x8a,0x6b,0xd7,0x4c,0xc4,0xe,0xcb,0x2b,0x90,0xb8,0x2f,0x5b,0x5,0x25,0xaa,0x76,0x7f,0x9a,0x53,0x9e,0x5f,0x19,0xf4,0x24,0x70,0xe9,0x10,0x77,0xcf,0x3b,0x15,0x75,0x3f,0x65,0xf7,0x9f,0x5d,0xb1,0xfc,0xd5,0xc,0xda,0xb2,0xf1,0x37,0x39,0x35,0xbe,0xed,0x89,0xe7,0x38,0x20,0x1e,0xdf,0xc3,0x84,0x7a,0x45,0x1d,0x55,0x2c,0x0,0x97,0xe3,0x60,0x4d,0xa2,0xab,0xac,0x95,0x98,0xfa,0x47,0x2a,0x1c,0xea,0x1b,0xe1,0xe0,0xba,0xa7,0x50,0xd,0x52,0x7d,0x91,0x83,0x22,0x6d,0xde,0xd4,0x23,0xf6,0x81,0x85,0xee,0x99,0x9c,0x8b,0x7,0x61,0x4a,0x67,0xd0,0x17,0xc8,0x78,0x52,0x81,0xcf,0x50,0x57,0xab,0xe,0xa2,0x40,0xc4,0x37,0x49,0x9,0xb6,0xe0,0xdf,0x88,0xa3,0xbb,0xf9,0xd5,0x28,0x5e,0xc,0x86,0x2b,0xf6,0x27,0xae,0xc7,0xd4,0x45,0xbd,0xf4,0x9d,0x38,0x80,0x10,0x44,0xff,0x30,0xe9,0xd7,0xd,0x2e,0x8e,0xb5,0xa0,0x4e,0x51,0xfe,0xf5,0x7e,0xa6,0x5,0xcc,0x68,0x12,0xa7,0xe3,0x47,0xc1,0xfd,0x19,0x65,0x5f,0x46,0x77,0xf,0xa5,0x2,0x48,0x8b,0x92,0xba,0x3b,0x90,0x6a,0x62,0x8a,0xca,0x64,0x95,0xfb,0x21,0x5c,0xe4,0x42,0xb9,0xf8,0x4,0x74,0xb3,0xea,0x36,0x60,0x3c,0x89,0x6e,0xb0,0xaf,0x7,0x4d,0xb2,0x7a,0xa8,0xf3,0xce,0x58,0x6f,0x11,0x1e,0xde,0x15,0x32,0x34,0xa9,0x6c,0x5a,0x2f,0xb1,0xdb,0x84,0x7d,0xa4,0x4b,0x66,0xe5,0x9e,0x93,0xaa,0xad,0x1b,0x43,0x7c,0x82,0x91,0x6,0x2a,0x53,0x3e,0xe1,0x8f,0xeb,0xc5,0xd9,0x18,0x26,0xf7,0xb4,0xdc,0xa,0xb8,0x33,0x3f,0x31,0x8d,0x9a,0x9f,0xe8,0x61,0x4c,0x67,0x1,0xd2,0xd8,0x6b,0x24,0x83,0x87,0xf0,0x25,0xb,0x56,0xa1,0xbc,0x85,0x97,0x7b,0x54,0x1a,0x2c,0x41,0xfc,0xe6,0xe7,0x1d,0xec,0x4a,0xd1,0x6d,0x8c,0x2d,0xcd,0x8,0xc2,0xed,0x7f,0x69,0xcb,0xdd,0xc6,0x0,0xd6,0x14,0xc3,0x75,0xda,0x94,0xe2,0x1c,0x9b,0xbf,0x3a,0x72,0xee,0x20,0x4f,0x35,0xc0,0x99,0xf1,0x63,0x39,0xd3,0xfa,0xb7,0x5b,0x71,0x16,0xef,0x76,0x73,0x13,0x3d,0xc9,0x98,0x55,0x9c,0x79,0x22,0xf2,0x1f,0x59,0x5d,0x29,0xbe,0x96,0x70,0xac,0x23,0x3,0x69,0x2b,0x29,0x88,0x2f,0xe7,0xe4,0x92,0x85,0x5f,0x36,0x33,0x34,0x48,0x35,0x55,0x60,0xd7,0x12,0x5b,0x1,0xed,0x2a,0xbf,0x23,0xd0,0x58,0xf5,0x1c,0xe9,0x73,0x46,0x96,0xc3,0x8c,0x59,0xcd,0x1f,0xb0,0x71,0x62,0xe,0xf6,0xc8,0x2d,0x83,0xf2,0x8d,0xbc,0x37,0x4f,0x3,0x3d,0x9e,0xe5,0x95,0x63,0x4e,0xab,0x42,0x80,0xb3,0x4d,0x93,0xa2,0xd,0x2,0x49,0xdc,0x52,0xfe,0x41,0x28,0xb1,0x5c,0xf7,0xe0,0xcc,0x17,0x87,0x57,0xb5,0xad,0xc5,0x25,0xb4,0xf1,0x78,0xde,0x26,0x9d,0x18,0x47,0x15,0xfd,0xee,0xd3,0xbe,0x7e,0x81,0x67,0x6d,0x20,0x31,0xac,0xae,0xda,0x32,0x44,0x9b,0x74,0xca,0xb,0x76,0x61,0x79,0x24,0xb9,0x3c,0xea,0x8,0x51,0x1a,0xec,0xc9,0x39,0x77,0x0,0xbd,0xfb,0x22,0x7,0x9f,0xb8,0x16,0x9,0xc4,0x2c,0x8f,0xb7,0xb6,0x90,0x1d,0x99,0xe6,0x70,0x38,0xd8,0x5d,0xc2,0xe1,0xa9,0xbb,0xa5,0x6e,0xb2,0x8b,0xcf,0x4b,0xc7,0x9c,0xef,0x27,0xa6,0xf8,0x6f,0x3b,0x82,0x56,0x6a,0xc,0xa,0x98,0x8a,0x7f,0xeb,0xf0,0x9a,0xba,0xa0,0xa4,0xf3,0xf4,0x5,0xc6,0xfc,0x45,0x6b,0xc0,0x64,0x72,0x75,0xdb,0xce,0xe8,0x50,0xa7,0x97,0x43,0x8e,0xf,0xa3,0x5a,0xd2,0x4,0x65,0xfa,0x68,0x91,0x7c,0xd9,0x1e,0x3e,0xdf,0xaf,0x6,0x19,0x5e,0x21,0xf9,0x7b,0x53,0xe2,0x7a,0xd1,0x11,0xc1,0x3f,0x2e,0x84,0x13,0xdd,0xcb,0x30,0x94,0x89,0x7d,0x4a,0x1b,0x40,0xd5,0xe3,0xd6,0x54,0xaa,0x66,0xd4,0xa1,0xff,0x10,0x14,0x6c,0x86,0x3a,0x4c,0xa8,0x72,0x8e,0x7b,0xd7,0x1d,0x99,0x90,0xee,0xce,0x9,0xa1,0x11,0x58,0x8b,0x89,0x16,0xf1,0xc,0xd5,0x87,0xf2,0x5f,0xfe,0x2f,0x6f,0xd0,0x6,0x39,0x7a,0x51,0x20,0x62,0xc9,0x59,0x26,0x9d,0x30,0xe9,0xd4,0xe,0x1e,0x77,0x9c,0xd,0x2d,0x64,0xe1,0x44,0x7f,0xa7,0x15,0xdc,0xcb,0xb1,0x3a,0x7e,0x57,0xf7,0x79,0x6c,0x88,0x97,0x2c,0x27,0x7c,0xd6,0x91,0xdb,0x4b,0x52,0xe2,0x63,0x18,0x9e,0xc0,0x24,0x86,0xbc,0xae,0x9f,0x85,0xf8,0x9b,0x3d,0x21,0x60,0xad,0xdd,0xb3,0x49,0x53,0xbb,0xbd,0x13,0x22,0x4c,0xde,0x76,0x6b,0x94,0x71,0xa3,0x17,0x2a,0x33,0x6a,0xb9,0xef,0x50,0xe5,0x69,0xb7,0xb5,0x70,0xf6,0x83,0x2,0x68,0xa4,0x5d,0xb6,0x81,0xc7,0xc8,0xcc,0x7,0xed,0xeb,0x9a,0xc2,0x5b,0xa5,0xdf,0x48,0x8a,0xf3,0x92,0x7d,0x3c,0xbf,0x4a,0x47,0x74,0x73,0x6d,0x2e,0xd3,0x5,0xea,0x61,0xe8,0xe6,0x38,0xe7,0x32,0x56,0x0,0x1c,0xff,0xc1,0x1,0xb,0xfd,0xb2,0x5e,0x5a,0xfc,0x29,0x43,0x54,0x31,0x46,0x95,0xb8,0xd8,0xbe,0xf5,0xc3,0x25,0x98,0x3e,0x3f,0x35,0xc4,0x8f,0xd2,0x65,0x78,0x4e,0x5c,0x8d,0xa2,0xa6,0x34,0x12,0xb0,0x1f,0x4,0xf,0xd9,0x8,0x93,0x55,0xb4,0x14,0xf4,0x1b,0xd1,0xe3,0x66,0x37,0xab,0x96,0xf9,0x19,0xec,0x1a,0xcd,0x3,0xac,0x3b,0x4d,0x42,0xc5,0xcf,0xa8,0xaf,0x36,0xca,0xaa,0x10,0xe4,0x28,0x40,0xe0,0xba,0x23,0xa,0x82,0x6e,0xf0,0x84,0x4f,0x67,0x75,0xa9,0xda,0xfa,0x8c,0x41,0xa0,0x45,0x2b,0xfb,0x80,0xc6,0x5,0xa3,0x1b,0x66,0x33,0x43,0xbf,0xfe,0xcd,0x25,0x2d,0xd7,0xbc,0xd2,0x23,0x8d,0xf,0x45,0xe2,0x48,0x7c,0xfd,0xd5,0xcc,0x5e,0xba,0x86,0x0,0x30,0x1,0x18,0x22,0x68,0x1d,0x2b,0xee,0x3a,0xc3,0x9c,0xf6,0x59,0x56,0x28,0x1f,0x73,0x75,0x52,0x99,0xf5,0xa,0x40,0xe8,0x89,0xb4,0xef,0x3d,0x27,0x71,0xad,0xf4,0xf7,0x29,0xce,0x7b,0x4b,0x19,0x6f,0x92,0x60,0xb1,0x6c,0xc1,0x98,0xa7,0xf1,0x4e,0xbe,0xfc,0xe4,0xcf,0xe5,0x49,0xec,0x10,0xe,0x70,0x83,0x7,0x3f,0x8f,0x50,0x97,0x17,0x88,0xc6,0x15,0x8b,0x42,0xe1,0x39,0xa4,0xe0,0x55,0x2f,0xe7,0xf2,0xc9,0x69,0xb2,0xb9,0x16,0x9,0xb8,0x3,0x57,0xc7,0x4a,0x90,0xae,0x77,0x2,0x93,0x80,0xe9,0x7f,0xda,0xb3,0xfa,0xa9,0x35,0x7d,0xf8,0x87,0x72,0x8,0x67,0x9d,0x32,0x84,0x53,0xdc,0x5b,0xa5,0xd3,0x8c,0x2e,0x38,0xaa,0x91,0x47,0x81,0x9a,0xcb,0x2a,0x96,0xd,0x85,0x4f,0x8a,0x6a,0xd1,0xf9,0x6e,0x1a,0x44,0x64,0xeb,0x37,0x3e,0xdb,0x12,0xdf,0x1e,0x58,0xb5,0x65,0x31,0xa8,0x51,0x36,0x8e,0x7a,0x54,0x34,0x7e,0x24,0xb6,0xde,0x1c,0xf0,0xbd,0x94,0x4d,0x9b,0xf3,0xb0,0x76,0x78,0x74,0xff,0xac,0xc8,0xa6,0x79,0x61,0x5f,0x9e,0x82,0xc5,0x3b,0x4,0x5c,0x14,0x6d,0x41,0xd6,0xa2,0x21,0xc,0xe3,0xea,0xed,0xd4,0xd9,0xbb,0x6,0x6b,0x5d,0xab,0x5a,0xa0,0xa1,0xfb,0xe6,0x11,0x4c,0x13,0x3c,0xd0,0xc2,0x63,0x2c,0x9f,0x95,0x62,0xb7,0xc0,0xc4,0xaf,0xd8,0xdd,0xca,0x46,0x20,0xb,0x26,0xde,0x50,0xfc,0x43,0xa0,0xf,0x0,0x4b,0xe2,0xce,0x15,0x85,0x2a,0xb3,0x5e,0xf5,0x27,0xb6,0xf3,0x7a,0x55,0xb7,0xaf,0xc7,0x45,0x17,0xff,0xec,0xdc,0x24,0x9f,0x1a,0x65,0x6f,0x22,0x33,0xd1,0xbc,0x7c,0x83,0x46,0x99,0x76,0xc8,0xae,0xac,0xd8,0x30,0x26,0xbb,0x3e,0xe8,0x9,0x74,0x63,0x7b,0xcb,0x3b,0x75,0x2,0xa,0x53,0x18,0xee,0x2d,0xe5,0xe6,0x90,0x6b,0x29,0x2b,0x8a,0x36,0x4a,0x37,0x57,0x87,0x5d,0x34,0x31,0x3,0xef,0x28,0xbd,0x62,0xd5,0x10,0x59,0x1e,0xeb,0x71,0x44,0x21,0xd2,0x5a,0xf7,0xcf,0x1d,0xb2,0x73,0x94,0xc1,0x8e,0x5b,0x2f,0x81,0xf0,0x8f,0x60,0xc,0xf4,0xca,0x3f,0x9c,0xe7,0x97,0xbe,0x35,0x4d,0x1,0x82,0xb1,0x4f,0x91,0x61,0x4c,0xa9,0x40,0xa5,0x95,0x41,0x8c,0xd9,0xcc,0xea,0x52,0x6,0x67,0xf8,0x6a,0xd,0xa1,0x58,0xd0,0x3c,0xdd,0xad,0x4,0x93,0x7e,0xdb,0x1c,0x79,0x51,0xe0,0x78,0x1b,0x5c,0x23,0xfb,0x2c,0x86,0x11,0xdf,0xd3,0x13,0xc3,0x3d,0x7f,0x48,0x19,0x42,0xc9,0x32,0x96,0x8b,0xa8,0x64,0xd6,0xa3,0xd7,0xe1,0xd4,0x56,0x84,0x38,0x4e,0xaa,0xfd,0x12,0x16,0x6e,0x9d,0xba,0x14,0xb,0xbf,0xf9,0x20,0x5,0xb4,0x92,0x1f,0x9b,0xc6,0x2e,0x8d,0xb5,0x5f,0xc0,0xe3,0xab,0xe4,0x72,0x3a,0xda,0x89,0xcd,0x49,0xc5,0xb9,0xa7,0x6c,0xb0,0xfa,0x6d,0x39,0x80,0x9e,0xed,0x25,0xa4,0x9a,0x88,0x7d,0xe9,0x54,0x68,0xe,0x8,0xa6,0xf1,0xf6,0x7,0xf2,0x98,0xb8,0xa2,0xc2,0x66,0x70,0x77,0xc4,0xfe,0x47,0x69,0xfe,0x5c,0x7a,0xe8,0x97,0x41,0x4a,0x51,0xfa,0x1b,0xdd,0x46,0x9f,0x55,0xba,0x5a,0xe5,0x79,0x28,0xad,0xa2,0x57,0xb7,0xd8,0xe2,0x4d,0x83,0x54,0x8b,0xc,0x3,0x75,0x78,0xe1,0xe6,0x81,0xaa,0x5e,0xe4,0x84,0xf4,0xae,0xe,0x66,0x20,0xcc,0x44,0x6d,0x29,0x1,0xca,0xbe,0xb4,0x94,0xe7,0x3b,0xb,0xee,0xf,0xc2,0x88,0xce,0xb5,0x65,0xeb,0x15,0x8c,0xd4,0xbd,0xc4,0x6,0x91,0xf1,0x72,0x33,0xdc,0x3d,0x3a,0x9,0x4,0x4b,0x9d,0x60,0x23,0xa8,0xa6,0x2f,0xa4,0x18,0x7c,0xa9,0x76,0x8f,0xb1,0x52,0x4e,0xfc,0xb3,0x45,0x4f,0x67,0xb2,0x14,0x10,0x8,0x7f,0x1a,0xd,0xf0,0x96,0xf6,0xdb,0xd6,0x6b,0x8d,0xbb,0x8a,0x7b,0x71,0x70,0x36,0x2b,0x9c,0xc1,0xec,0xc3,0x12,0x0,0x95,0xdf,0x98,0x32,0x2d,0xac,0x1c,0x5,0x6a,0x8e,0xd0,0x56,0xd1,0xe0,0xf2,0xc8,0x73,0xd5,0xb6,0xcb,0x93,0xe3,0x2e,0x6f,0xf5,0x1d,0x7,0xfd,0x2,0x6c,0x5d,0xf3,0xda,0x25,0x38,0x90,0x64,0x59,0xed,0x3f,0xa1,0xf7,0x24,0x7d,0xf9,0x27,0xab,0x1e,0xcd,0xb8,0x3e,0xfb,0x13,0xea,0x26,0x4c,0x86,0x89,0xcf,0xf8,0xa5,0xa3,0x49,0x82,0x99,0x35,0xc0,0x3c,0xa0,0xde,0xd7,0x53,0x5f,0xef,0x47,0x80,0x58,0xc7,0xc5,0x16,0xc9,0x9b,0x42,0xbf,0x61,0xb0,0x11,0xbc,0x77,0x48,0x9e,0x21,0x2c,0x6e,0x1f,0x34,0xd3,0x68,0x17,0x87,0x40,0x9a,0xa7,0x7e,0x43,0xd2,0x39,0x50,0xa,0xaf,0x2a,0x63,0x92,0x5b,0xe9,0x31,0x30,0x74,0xff,0x85,0x22,0x37,0xb9,0x19,0x69,0x62,0xd9,0xc6,0x71,0x8d,0x78,0xd4,0x1e,0x9a,0x93,0xed,0xcd,0xa,0xa2,0x12,0x5b,0x88,0x8a,0x15,0xf2,0xf,0xd6,0x84,0xf1,0x5c,0xfd,0x2c,0x6c,0xd3,0x5,0x3a,0x79,0x52,0x23,0x61,0xca,0x5a,0x25,0x9e,0x33,0xea,0xd7,0xd,0x1d,0x74,0x9f,0xe,0x2e,0x67,0xe2,0x47,0x7c,0xa4,0x16,0xdf,0xc8,0xb2,0x39,0x7d,0x54,0xf4,0x7a,0x6f,0x8b,0x94,0x2f,0x24,0x7f,0xd5,0x92,0xd8,0x48,0x51,0xe1,0x60,0x1b,0x9d,0xc3,0x27,0x85,0xbf,0xad,0x9c,0x86,0xfb,0x98,0x3e,0x22,0x63,0xae,0xde,0xb0,0x4a,0x50,0xb8,0xbe,0x10,0x21,0x4f,0xdd,0x75,0x68,0x97,0x72,0xa0,0x14,0x29,0x30,0x69,0xba,0xec,0x53,0xe6,0x6a,0xb4,0xb6,0x73,0xf5,0x80,0x1,0x6b,0xa7,0x5e,0xb5,0x82,0xc4,0xcb,0xcf,0x4,0xee,0xe8,0x99,0xc1,0x58,0xa6,0xdc,0x4b,0x89,0xf0,0x91,0x7e,0x3f,0xbc,0x49,0x44,0x77,0x70,0x6e,0x2d,0xd0,0x6,0xe9,0x62,0xeb,0xe5,0x3b,0xe4,0x31,0x55,0x3,0x1f,0xfc,0xc2,0x2,0x8,0xfe,0xb1,0x5d,0x59,0xff,0x2a,0x40,0x57,0x32,0x45,0x96,0xbb,0xdb,0xbd,0xf6,0xc0,0x26,0x9b,0x3d,0x3c,0x36,0xc7,0x8c,0xd1,0x66,0x7b,0x4d,0x5f,0x8e,0xa1,0xa5,0x37,0x11,0xb3,0x1c,0x7,0xc,0xda,0xb,0x90,0x56,0xb7,0x17,0xf7,0x18,0xd2,0xe0,0x65,0x34,0xa8,0x95,0xfa,0x1a,0xef,0x19,0xce,0x0,0xaf,0x38,0x4e,0x41,0xc6,0xcc,0xab,0xac,0x35,0xc9,0xa9,0x13,0xe7,0x2b,0x43,0xe3,0xb9,0x20,0x9,0x81,0x6d,0xf3,0x87,0x4c,0x64,0x76,0xaa,0xd9,0xf9,0x8f,0x42,0xa3,0x46,0x28,0xf8,0x83,0xc5,0x9f,0x76,0x93,0xbe,0x4e,0x90,0x6e,0x5d,0xde,0x92,0xea,0x61,0x48,0x38,0x43,0xe0,0x15,0x2b,0xd3,0xbf,0x50,0x2f,0x5e,0xf0,0x84,0x51,0x1e,0x4b,0xac,0x6d,0xc2,0x10,0x28,0x85,0xd,0xfe,0x9b,0xae,0x34,0xc1,0x86,0xcf,0xa,0xbd,0x62,0xf7,0x30,0xdc,0xee,0xeb,0x82,0x58,0x88,0xe8,0x95,0xe9,0x55,0xf4,0xf6,0xb4,0x4f,0x39,0x3a,0xf2,0x31,0xc7,0x8c,0xd5,0xdd,0xaa,0xe4,0x14,0xa4,0xbc,0xab,0xd6,0x37,0xe1,0x64,0xf9,0xef,0x7,0x73,0x71,0x17,0xa9,0x46,0x99,0x5c,0xa3,0x63,0xe,0xec,0xfd,0xb0,0xba,0xc5,0x40,0xfb,0x3,0x33,0x20,0xc8,0x9a,0x18,0x70,0x68,0x8a,0xa5,0x2c,0x69,0xf8,0x2a,0x81,0x6c,0xf5,0x5a,0xca,0x11,0x3d,0x94,0xdf,0xd0,0x7f,0x9c,0x23,0x8f,0x1,0xb6,0x98,0x21,0x1b,0xa8,0xaf,0xb9,0x1d,0x7d,0x67,0x47,0x2d,0xd8,0x29,0x2e,0x79,0xd7,0xd1,0xb7,0x8b,0x36,0xa2,0x57,0x45,0x7b,0xfa,0x32,0x41,0x5f,0xe6,0xb2,0x25,0x6f,0xb3,0x78,0x66,0x1a,0x96,0x12,0x56,0x5,0xe5,0xad,0x3b,0x74,0x3c,0x1f,0x80,0x6a,0x52,0xf1,0x19,0x44,0xc0,0x4d,0x6b,0xda,0xff,0x26,0x60,0xd4,0xcb,0x65,0x42,0xb1,0xc9,0xcd,0x22,0x75,0x91,0xe7,0x5b,0x89,0xb,0x3e,0x8,0x7c,0x9,0xbb,0x77,0x54,0x49,0xed,0x16,0x9d,0xc6,0x97,0xa0,0xe2,0x1c,0xcc,0xc,0x0,0xce,0x59,0xf3,0x24,0xfc,0x83,0xc4,0xa7,0x3f,0x8e,0xa6,0xc3,0x4,0xa1,0x4c,0xdb,0x72,0x2,0xe3,0xf,0x87,0x7e,0xd2,0xb5,0x27,0xb8,0xd9,0x8d,0x35,0x13,0x6,0x53,0x9e,0x4a,0x7a,0x36,0xf1,0x2e,0x9e,0xb4,0x67,0x29,0xb6,0xb1,0x4d,0xe8,0x44,0xa6,0x22,0xd1,0xaf,0xef,0x50,0x6,0x39,0x6e,0x45,0x5d,0x1f,0x33,0xce,0xb8,0xea,0x60,0xcd,0x10,0xc1,0x48,0x21,0x32,0xa3,0x5b,0x12,0x7b,0xde,0x66,0xf6,0xa2,0x19,0xd6,0xf,0x31,0xeb,0xc8,0x68,0x53,0x46,0xa8,0xb7,0x18,0x13,0x98,0x40,0xe3,0x2a,0x8e,0xf4,0x41,0x5,0xa1,0x27,0x1b,0xff,0x83,0xb9,0xa0,0x91,0xe9,0x43,0xe4,0xae,0x6d,0x74,0x5c,0xdd,0x76,0x8c,0x84,0x6c,0x2c,0x82,0x73,0x1d,0xc7,0xba,0x2,0xa4,0x5f,0x1e,0xe2,0x92,0x55,0xc,0xd0,0x86,0xda,0x6f,0x88,0x56,0x49,0xe1,0xab,0x54,0x9c,0x4e,0x15,0x28,0xbe,0x89,0xf7,0xf8,0x38,0xf3,0xd4,0xd2,0x4f,0x8a,0xbc,0xc9,0x57,0x3d,0x62,0x9b,0x42,0xad,0x80,0x3,0x78,0x75,0x4c,0x4b,0xfd,0xa5,0x9a,0x64,0x77,0xe0,0xcc,0xb5,0xd8,0x7,0x69,0xd,0x23,0x3f,0xfe,0xc0,0x11,0x52,0x3a,0xec,0x5e,0xd5,0xd9,0xd7,0x6b,0x7c,0x79,0xe,0x87,0xaa,0x81,0xe7,0x34,0x3e,0x8d,0xc2,0x65,0x61,0x16,0xc3,0xed,0xb0,0x47,0x5a,0x63,0x71,0x9d,0xb2,0xfc,0xca,0xa7,0x1a,0x0,0x1,0xfb,0xa,0xac,0x37,0x8b,0x6a,0xcb,0x2b,0xee,0x24,0xb,0x99,0x8f,0x2d,0x3b,0x20,0xe6,0x30,0xf2,0x25,0x93,0x3c,0x72,0x4,0xfa,0x7d,0x59,0xdc,0x94,0x8,0xc6,0xa9,0xd3,0x26,0x7f,0x17,0x85,0xdf,0x35,0x1c,0x51,0xbd,0x97,0xf0,0x9,0x90,0x95,0xf5,0xdb,0x2f,0x7e,0xb3,0x7a,0x9f,0xc4,0x14,0xf9,0xbf,0xbb,0xcf,0x58,0x70,0x96,0x4a,0xc5,0xe5,0x2c,0x8e,0xa8,0x3a,0x45,0x93,0x98,0x83,0x28,0xc9,0xf,0x94,0x4d,0x87,0x68,0x88,0x37,0xab,0xfa,0x7f,0x70,0x85,0x65,0xa,0x30,0x9f,0x51,0x86,0x59,0xde,0xd1,0xa7,0xaa,0x33,0x34,0x53,0x78,0x8c,0x36,0x56,0x26,0x7c,0xdc,0xb4,0xf2,0x1e,0x96,0xbf,0xfb,0xd3,0x18,0x6c,0x66,0x46,0x35,0xe9,0xd9,0x3c,0xdd,0x10,0x5a,0x1c,0x67,0xb7,0x39,0xc7,0x5e,0x6,0x6f,0x16,0xd4,0x43,0x23,0xa0,0xe1,0xe,0xef,0xe8,0xdb,0xd6,0x99,0x4f,0xb2,0xf1,0x7a,0x74,0xfd,0x76,0xca,0xae,0x7b,0xa4,0x5d,0x63,0x80,0x9c,0x2e,0x61,0x97,0x9d,0xb5,0x60,0xc6,0xc2,0xda,0xad,0xc8,0xdf,0x22,0x44,0x24,0x9,0x4,0xb9,0x5f,0x69,0x58,0xa9,0xa3,0xa2,0xe4,0xf9,0x4e,0x13,0x3e,0x11,0xc0,0xd2,0x47,0xd,0x4a,0xe0,0xff,0x7e,0xce,0xd7,0xb8,0x5c,0x2,0x84,0x3,0x32,0x20,0x1a,0xa1,0x7,0x64,0x19,0x41,0x31,0xfc,0xbd,0x27,0xcf,0xd5,0x2f,0xd0,0xbe,0x8f,0x21,0x8,0xf7,0xea,0x42,0xb6,0x8b,0x3f,0xed,0x73,0x25,0xf6,0xaf,0x2b,0xf5,0x79,0xcc,0x1f,0x6a,0xec,0x29,0xc1,0x38,0xf4,0x9e,0x54,0x5b,0x1d,0x2a,0x77,0x71,0x9b,0x50,0x4b,0xe7,0x12,0xee,0x72,0xc,0x5,0x81,0x8d,0x3d,0x95,0x52,0x8a,0x15,0x17,0xc4,0x1b,0x49,0x90,0x6d,0xb3,0x62,0xc3,0x6e,0xa5,0x9a,0x4c,0xf3,0xfe,0xbc,0xcd,0xe6,0x1,0xba,0xc5,0x55,0x92,0x48,0x75,0xac,0x91,0x0,0xeb,0x82,0xd8,0x7d,0xf8,0xb1,0x40,0x89,0x3b,0xe3,0xe2,0xa6,0x2d,0x57,0xf0,0xe5,0x6b,0xcb,0xbb,0xb0,0xb,0x14,0x31,0x23,0xd6,0x42,0xff,0xc3,0xa5,0xa3,0x51,0xc6,0x92,0x2b,0x35,0x46,0x8e,0xf,0x69,0xcd,0xdb,0xdc,0x6f,0x55,0xec,0xc2,0xd,0x5a,0x5d,0xac,0x59,0x33,0x13,0x9,0x1f,0x39,0xb4,0x30,0x6d,0x85,0x26,0x1e,0x36,0x11,0xbf,0xa0,0x14,0x52,0x8b,0xae,0x22,0x66,0xe2,0x6e,0x12,0xc,0xc7,0x1b,0xf4,0x6b,0x48,0x0,0x4f,0xd9,0x91,0x71,0xd4,0xe3,0xb2,0xe9,0x62,0x99,0x3d,0x20,0x87,0x2d,0xba,0x74,0x78,0xb8,0x68,0x96,0x2f,0x93,0xe5,0x1,0x56,0xb9,0xbd,0xc5,0x3,0xcf,0x7d,0x8,0x7c,0x4a,0x7f,0xfd,0xad,0xcc,0x53,0xc1,0xa6,0xa,0xf3,0x7b,0xe,0x3e,0xea,0x27,0x72,0x67,0x41,0xf9,0xd2,0xfa,0x4b,0xd3,0xb0,0xf7,0x88,0x50,0x97,0x76,0x6,0xaf,0x38,0xd5,0x70,0xb7,0x84,0x2a,0x5b,0x24,0xcb,0xa7,0x5f,0x61,0x64,0xb6,0x19,0xd8,0x3f,0x6a,0x25,0xf0,0x29,0x1a,0xe4,0x3a,0xca,0xe7,0x2,0xeb,0x94,0x37,0x4c,0x3c,0x15,0x9e,0xe6,0xaa,0x9d,0xe1,0x9c,0xfc,0x2c,0xf6,0x9f,0x9a,0x86,0x4e,0x4d,0x3b,0xc0,0x82,0x80,0x21,0xb5,0x40,0xda,0xef,0x8a,0x79,0xf1,0x5c,0xa8,0x44,0x83,0x16,0xc9,0x7e,0xbb,0xf2,0xed,0x32,0xdd,0x63,0x5,0x7,0x73,0x9b,0xce,0xc4,0x89,0x98,0x7a,0x17,0xd7,0x28,0x60,0x90,0xde,0xa9,0xa1,0xf8,0xb3,0x45,0x8d,0x10,0x95,0x43,0xa2,0xdf,0xc8,0xd0,0x49,0x65,0xbe,0x2e,0x81,0x18,0xf5,0x5e,0x75,0xfb,0x57,0xe8,0xb,0xa4,0xab,0xe0,0xee,0xbc,0x54,0x47,0x77,0x8f,0x34,0xb1,0x8c,0x1d,0x58,0xd1,0xfe,0x1c,0x4,0x6c,0x6a,0xcc,0x74,0x9,0x5c,0x2c,0xd0,0x91,0xa2,0x4a,0x42,0xb8,0xd3,0xbd,0x4c,0xe2,0x60,0x2a,0x8d,0x27,0x13,0x92,0xba,0xa3,0x31,0xd5,0xe9,0x6f,0x5f,0x6e,0x77,0x4d,0x7,0x72,0x44,0x81,0x55,0xac,0xf3,0x99,0x36,0x39,0x47,0x70,0x1c,0x1a,0x3d,0xf6,0x9a,0x65,0x2f,0x87,0xe6,0xdb,0x80,0x52,0x48,0x1e,0xc2,0x9b,0x98,0x46,0xa1,0x14,0x24,0x76,0x0,0xfd,0xf,0xde,0x3,0xae,0xf7,0xc8,0x9e,0x21,0xd1,0x93,0x8b,0xa0,0x8a,0x26,0x83,0x7f,0x61,0x1f,0xec,0x68,0x50,0xe0,0x3f,0xf8,0x78,0xe7,0xa9,0x7a,0xe4,0x2d,0x8e,0x56,0xcb,0x8f,0x3a,0x40,0x88,0x9d,0xa6,0x6,0xdd,0xd6,0x79,0x66,0xd7,0x6c,0x38,0xa8,0x25,0xff,0xc1,0x18,0x6d,0xfc,0xef,0x86,0x10,0xb5,0xdc,0x95,0xc6,0x5a,0x12,0x97,0xe8,0x1d,0x67,0x8,0xf2,0x5d,0xeb,0x3c,0xb3,0x34,0xca,0xbc,0xe3,0x41,0x57,0xc5,0xfe,0x28,0xee,0xf5,0xa4,0x45,0xf9,0x62,0xea,0x20,0xe5,0x5,0xbe,0x96,0x1,0x75,0x2b,0xb,0x84,0x58,0x51,0xb4,0x7d,0xb0,0x71,0x37,0xda,0xa,0x5e,0xc7,0x3e,0x59,0xe1,0x15,0x3b,0x5b,0x11,0x4b,0xd9,0xb1,0x73,0x9f,0xd2,0xfb,0x22,0xf4,0x9c,0xdf,0x19,0x17,0x1b,0x90,0xc3,0xa7,0xc9,0x16,0xe,0x30,0xf1,0xed,0xaa,0x54,0x6b,0x33,0x7b,0x2,0x2e,0xb9,0xcd,0x4e,0x63,0x8c,0x85,0x82,0xbb,0xb6,0xd4,0x69,0x4,0x32,0xc4,0x35,0xcf,0xce,0x94,0x89,0x7e,0x23,0x7c,0x53,0xbf,0xad,0xc,0x43,0xf0,0xfa,0xd,0xd8,0xaf,0xab,0xc0,0xb7,0xb2,0xa5,0x29,0x4f,0x64,0x49,0xad,0x6a,0xb5,0x5,0x2f,0xfc,0xb2,0x2d,0x2a,0xd6,0x73,0xdf,0x3d,0xb9,0x4a,0x34,0x74,0xcb,0x9d,0xa2,0xf5,0xde,0xc6,0x84,0xa8,0x55,0x23,0x71,0xfb,0x56,0x8b,0x5a,0xd3,0xba,0xa9,0x38,0xc0,0x89,0xe0,0x45,0xfd,0x6d,0x39,0x82,0x4d,0x94,0xaa,0x70,0x53,0xf3,0xc8,0xdd,0x33,0x2c,0x83,0x88,0x3,0xdb,0x78,0xb1,0x15,0x6f,0xda,0x9e,0x3a,0xbc,0x80,0x64,0x18,0x22,0x3b,0xa,0x72,0xd8,0x7f,0x35,0xf6,0xef,0xc7,0x46,0xed,0x17,0x1f,0xf7,0xb7,0x19,0xe8,0x86,0x5c,0x21,0x99,0x3f,0xc4,0x85,0x79,0x9,0xce,0x97,0x4b,0x1d,0x41,0xf4,0x13,0xcd,0xd2,0x7a,0x30,0xcf,0x7,0xd5,0x8e,0xb3,0x25,0x12,0x6c,0x63,0xa3,0x68,0x4f,0x49,0xd4,0x11,0x27,0x52,0xcc,0xa6,0xf9,0x0,0xd9,0x36,0x1b,0x98,0xe3,0xee,0xd7,0xd0,0x66,0x3e,0x1,0xff,0xec,0x7b,0x57,0x2e,0x43,0x9c,0xf2,0x96,0xb8,0xa4,0x65,0x5b,0x8a,0xc9,0xa1,0x77,0xc5,0x4e,0x42,0x4c,0xf0,0xe7,0xe2,0x95,0x1c,0x31,0x1a,0x7c,0xaf,0xa5,0x16,0x59,0xfe,0xfa,0x8d,0x58,0x76,0x2b,0xdc,0xc1,0xf8,0xea,0x6,0x29,0x67,0x51,0x3c,0x81,0x9b,0x9a,0x60,0x91,0x37,0xac,0x10,0xf1,0x50,0xb0,0x75,0xbf,0x90,0x2,0x14,0xb6,0xa0,0xbb,0x7d,0xab,0x69,0xbe,0x8,0xa7,0xe9,0x9f,0x61,0xe6,0xc2,0x47,0xf,0x93,0x5d,0x32,0x48,0xbd,0xe4,0x8c,0x1e,0x44,0xae,0x87,0xca,0x26,0xc,0x6b,0x92,0xb,0xe,0x6e,0x40,0xb4,0xe5,0x28,0xe1,0x4,0x5f,0x8f,0x62,0x24,0x20,0x54,0xc3,0xeb,0xd,0xd1,0x5e,0x7e,0x57,0xf5,0xd3,0x41,0x3e,0xe8,0xe3,0xf8,0x53,0xb2,0x74,0xef,0x36,0xfc,0x13,0xf3,0x4c,0xd0,0x81,0x4,0xb,0xfe,0x1e,0x71,0x4b,0xe4,0x2a,0xfd,0x22,0xa5,0xaa,0xdc,0xd1,0x48,0x4f,0x28,0x3,0xf7,0x4d,0x2d,0x5d,0x7,0xa7,0xcf,0x89,0x65,0xed,0xc4,0x80,0xa8,0x63,0x17,0x1d,0x3d,0x4e,0x92,0xa2,0x47,0xa6,0x6b,0x21,0x67,0x1c,0xcc,0x42,0xbc,0x25,0x7d,0x14,0x6d,0xaf,0x38,0x58,0xdb,0x9a,0x75,0x94,0x93,0xa0,0xad,0xe2,0x34,0xc9,0x8a,0x1,0xf,0x86,0xd,0xb1,0xd5,0x0,0xdf,0x26,0x18,0xfb,0xe7,0x55,0x1a,0xec,0xe6,0xce,0x1b,0xbd,0xb9,0xa1,0xd6,0xb3,0xa4,0x59,0x3f,0x5f,0x72,0x7f,0xc2,0x24,0x12,0x23,0xd2,0xd8,0xd9,0x9f,0x82,0x35,0x68,0x45,0x6a,0xbb,0xa9,0x3c,0x76,0x31,0x9b,0x84,0x5,0xb5,0xac,0xc3,0x27,0x79,0xff,0x78,0x49,0x5b,0x61,0xda,0x7c,0x1f,0x62,0x3a,0x4a,0x87,0xc6,0x5c,0xb4,0xae,0x54,0xab,0xc5,0xf4,0x5a,0x73,0x8c,0x91,0x39,0xcd,0xf0,0x44,0x96,0x8,0x5e,0x8d,0xd4,0x50,0x8e,0x2,0xb7,0x64,0x11,0x97,0x52,0xba,0x43,0x8f,0xe5,0x2f,0x20,0x66,0x51,0xc,0xa,0xe0,0x2b,0x30,0x9c,0x69,0x95,0x9,0x77,0x7e,0xfa,0xf6,0x46,0xee,0x29,0xf1,0x6e,0x6c,0xbf,0x60,0x32,0xeb,0x16,0xc8,0x19,0xb8,0x15,0xde,0xe1,0x37,0x88,0x85,0xc7,0xb6,0x9d,0x7a,0xc1,0xbe,0x2e,0xe9,0x33,0xe,0xd7,0xea,0x7b,0x90,0xf9,0xa3,0x6,0x83,0xca,0x3b,0xf2,0x40,0x98,0x99,0xdd,0x56,0x2c,0x8b,0x9e,0x10,0xb0,0xc0,0xcb,0x70,0x6f,0x55,0xa9,0x5c,0xf0,0x3a,0xbe,0xb7,0xc9,0xe9,0x2e,0x86,0x36,0x7f,0xac,0xae,0x31,0xd6,0x2b,0xf2,0xa0,0xd5,0x78,0xd9,0x8,0x48,0xf7,0x21,0x1e,0x5d,0x76,0x7,0x45,0xee,0x7e,0x1,0xba,0x17,0xce,0xf3,0x29,0x39,0x50,0xbb,0x2a,0xa,0x43,0xc6,0x63,0x58,0x80,0x32,0xfb,0xec,0x96,0x1d,0x59,0x70,0xd0,0x5e,0x4b,0xaf,0xb0,0xb,0x0,0x5b,0xf1,0xb6,0xfc,0x6c,0x75,0xc5,0x44,0x3f,0xb9,0xe7,0x3,0xa1,0x9b,0x89,0xb8,0xa2,0xdf,0xbc,0x1a,0x6,0x47,0x8a,0xfa,0x94,0x6e,0x74,0x9c,0x9a,0x34,0x5,0x6b,0xf9,0x51,0x4c,0xb3,0x56,0x84,0x30,0xd,0x14,0x4d,0x9e,0xc8,0x77,0xc2,0x4e,0x90,0x92,0x57,0xd1,0xa4,0x25,0x4f,0x83,0x7a,0x91,0xa6,0xe0,0xef,0xeb,0x20,0xca,0xcc,0xbd,0xe5,0x7c,0x82,0xf8,0x6f,0xad,0xd4,0xb5,0x5a,0x1b,0x98,0x6d,0x60,0x53,0x54,0x4a,0x9,0xf4,0x22,0xcd,0x46,0xcf,0xc1,0x1f,0xc0,0x15,0x71,0x27,0x3b,0xd8,0xe6,0x26,0x2c,0xda,0x95,0x79,0x7d,0xdb,0xe,0x64,0x73,0x16,0x61,0xb2,0x9f,0xff,0x99,0xd2,0xe4,0x2,0xbf,0x19,0x18,0x12,0xe3,0xa8,0xf5,0x42,0x5f,0x69,0x7b,0xaa,0x85,0x81,0x13,0x35,0x97,0x38,0x23,0x28,0xfe,0x2f,0xb4,0x72,0x93,0x33,0xd3,0x3c,0xf6,0xc4,0x41,0x10,0x8c,0xb1,0xde,0x3e,0xcb,0x3d,0xea,0x24,0x8b,0x1c,0x6a,0x65,0xe2,0xe8,0x8f,0x88,0x11,0xed,0x8d,0x37,0xc3,0xf,0x67,0xc7,0x9d,0x4,0x2d,0xa5,0x49,0xd7,0xa3,0x68,0x40,0x52,0x8e,0xfd,0xdd,0xab,0x66,0x87,0x62,0xc,0xdc,0xa7,0xe1,0x46,0xe0,0x58,0x25,0x70,0x0,0xfc,0xbd,0x8e,0x66,0x6e,0x94,0xff,0x91,0x60,0xce,0x4c,0x6,0xa1,0xb,0x3f,0xbe,0x96,0x8f,0x1d,0xf9,0xc5,0x43,0x73,0x42,0x5b,0x61,0x2b,0x5e,0x68,0xad,0x79,0x80,0xdf,0xb5,0x1a,0x15,0x6b,0x5c,0x30,0x36,0x11,0xda,0xb6,0x49,0x3,0xab,0xca,0xf7,0xac,0x7e,0x64,0x32,0xee,0xb7,0xb4,0x6a,0x8d,0x38,0x8,0x5a,0x2c,0xd1,0x23,0xf2,0x2f,0x82,0xdb,0xe4,0xb2,0xd,0xfd,0xbf,0xa7,0x8c,0xa6,0xa,0xaf,0x53,0x4d,0x33,0xc0,0x44,0x7c,0xcc,0x13,0xd4,0x54,0xcb,0x85,0x56,0xc8,0x1,0xa2,0x7a,0xe7,0xa3,0x16,0x6c,0xa4,0xb1,0x8a,0x2a,0xf1,0xfa,0x55,0x4a,0xfb,0x40,0x14,0x84,0x9,0xd3,0xed,0x34,0x41,0xd0,0xc3,0xaa,0x3c,0x99,0xf0,0xb9,0xea,0x76,0x3e,0xbb,0xc4,0x31,0x4b,0x24,0xde,0x71,0xc7,0x10,0x9f,0x18,0xe6,0x90,0xcf,0x6d,0x7b,0xe9,0xd2,0x4,0xc2,0xd9,0x88,0x69,0xd5,0x4e,0xc6,0xc,0xc9,0x29,0x92,0xba,0x2d,0x59,0x7,0x27,0xa8,0x74,0x7d,0x98,0x51,0x9c,0x5d,0x1b,0xf6,0x26,0x72,0xeb,0x12,0x75,0xcd,0x39,0x17,0x77,0x3d,0x67,0xf5,0x9d,0x5f,0xb3,0xfe,0xd7,0xe,0xd8,0xb0,0xf3,0x35,0x3b,0x37,0xbc,0xef,0x8b,0xe5,0x3a,0x22,0x1c,0xdd,0xc1,0x86,0x78,0x47,0x1f,0x57,0x2e,0x2,0x95,0xe1,0x62,0x4f,0xa0,0xa9,0xae,0x97,0x9a,0xf8,0x45,0x28,0x1e,0xe8,0x19,0xe3,0xe2,0xb8,0xa5,0x52,0xf,0x50,0x7f,0x93,0x81,0x20,0x6f,0xdc,0xd6,0x21,0xf4,0x83,0x87,0xec,0x9b,0x9e,0x89,0x5,0x63,0x48,0x65,0x11,0xd6,0x9,0xb9,0x93,0x40,0xe,0x91,0x96,0x6a,0xcf,0x63,0x81,0x5,0xf6,0x88,0xc8,0x77,0x21,0x1e,0x49,0x62,0x7a,0x38,0x14,0xe9,0x9f,0xcd,0x47,0xea,0x37,0xe6,0x6f,0x6,0x15,0x84,0x7c,0x35,0x5c,0xf9,0x41,0xd1,0x85,0x3e,0xf1,0x28,0x16,0xcc,0xef,0x4f,0x74,0x61,0x8f,0x90,0x3f,0x34,0xbf,0x67,0xc4,0xd,0xa9,0xd3,0x66,0x22,0x86,0x0,0x3c,0xd8,0xa4,0x9e,0x87,0xb6,0xce,0x64,0xc3,0x89,0x4a,0x53,0x7b,0xfa,0x51,0xab,0xa3,0x4b,0xb,0xa5,0x54,0x3a,0xe0,0x9d,0x25,0x83,0x78,0x39,0xc5,0xb5,0x72,0x2b,0xf7,0xa1,0xfd,0x48,0xaf,0x71,0x6e,0xc6,0x8c,0x73,0xbb,0x69,0x32,0xf,0x99,0xae,0xd0,0xdf,0x1f,0xd4,0xf3,0xf5,0x68,0xad,0x9b,0xee,0x70,0x1a,0x45,0xbc,0x65,0x8a,0xa7,0x24,0x5f,0x52,0x6b,0x6c,0xda,0x82,0xbd,0x43,0x50,0xc7,0xeb,0x92,0xff,0x20,0x4e,0x2a,0x4,0x18,0xd9,0xe7,0x36,0x75,0x1d,0xcb,0x79,0xf2,0xfe,0xf0,0x4c,0x5b,0x5e,0x29,0xa0,0x8d,0xa6,0xc0,0x13,0x19,0xaa,0xe5,0x42,0x46,0x31,0xe4,0xca,0x97,0x60,0x7d,0x44,0x56,0xba,0x95,0xdb,0xed,0x80,0x3d,0x27,0x26,0xdc,0x2d,0x8b,0x10,0xac,0x4d,0xec,0xc,0xc9,0x3,0x2c,0xbe,0xa8,0xa,0x1c,0x7,0xc1,0x17,0xd5,0x2,0xb4,0x1b,0x55,0x23,0xdd,0x5a,0x7e,0xfb,0xb3,0x2f,0xe1,0x8e,0xf4,0x1,0x58,0x30,0xa2,0xf8,0x12,0x3b,0x76,0x9a,0xb0,0xd7,0x2e,0xb7,0xb2,0xd2,0xfc,0x8,0x59,0x94,0x5d,0xb8,0xe3,0x33,0xde,0x98,0x9c,0xe8,0x7f,0x57,0xb1,0x6d,0xe2,0xc2,0xa6,0x4,0x22,0xb0,0xcf,0x19,0x12,0x9,0xa2,0x43,0x85,0x1e,0xc7,0xd,0xe2,0x2,0xbd,0x21,0x70,0xf5,0xfa,0xf,0xef,0x80,0xba,0x15,0xdb,0xc,0xd3,0x54,0x5b,0x2d,0x20,0xb9,0xbe,0xd9,0xf2,0x6,0xbc,0xdc,0xac,0xf6,0x56,0x3e,0x78,0x94,0x1c,0x35,0x71,0x59,0x92,0xe6,0xec,0xcc,0xbf,0x63,0x53,0xb6,0x57,0x9a,0xd0,0x96,0xed,0x3d,0xb3,0x4d,0xd4,0x8c,0xe5,0x9c,0x5e,0xc9,0xa9,0x2a,0x6b,0x84,0x65,0x62,0x51,0x5c,0x13,0xc5,0x38,0x7b,0xf0,0xfe,0x77,0xfc,0x40,0x24,0xf1,0x2e,0xd7,0xe9,0xa,0x16,0xa4,0xeb,0x1d,0x17,0x3f,0xea,0x4c,0x48,0x50,0x27,0x42,0x55,0xa8,0xce,0xae,0x83,0x8e,0x33,0xd5,0xe3,0xd2,0x23,0x29,0x28,0x6e,0x73,0xc4,0x99,0xb4,0x9b,0x4a,0x58,0xcd,0x87,0xc0,0x6a,0x75,0xf4,0x44,0x5d,0x32,0xd6,0x88,0xe,0x89,0xb8,0xaa,0x90,0x2b,0x8d,0xee,0x93,0xcb,0xbb,0x76,0x37,0xad,0x45,0x5f,0xa5,0x5a,0x34,0x5,0xab,0x82,0x7d,0x60,0xc8,0x3c,0x1,0xb5,0x67,0xf9,0xaf,0x7c,0x25,0xa1,0x7f,0xf3,0x46,0x95,0xe0,0x66,0xa3,0x4b,0xb2,0x7e,0x14,0xde,0xd1,0x97,0xa0,0xfd,0xfb,0x11,0xda,0xc1,0x6d,0x98,0x64,0xf8,0x86,0x8f,0xb,0x7,0xb7,0x1f,0xd8,0x0,0x9f,0x9d,0x4e,0x91,0xc3,0x1a,0xe7,0x39,0xe8,0x49,0xe4,0x2f,0x10,0xc6,0x79,0x74,0x36,0x47,0x6c,0x8b,0x30,0x4f,0xdf,0x18,0xc2,0xff,0x26,0x1b,0x8a,0x61,0x8,0x52,0xf7,0x72,0x3b,0xca,0x3,0xb1,0x69,0x68,0x2c,0xa7,0xdd,0x7a,0x6f,0xe1,0x41,0x31,0x3a,0x81,0x9e,0xbc,0x40,0xb5,0x19,0xd3,0x57,0x5e,0x20,0x0,0xc7,0x6f,0xdf,0x96,0x45,0x47,0xd8,0x3f,0xc2,0x1b,0x49,0x3c,0x91,0x30,0xe1,0xa1,0x1e,0xc8,0xf7,0xb4,0x9f,0xee,0xac,0x7,0x97,0xe8,0x53,0xfe,0x27,0x1a,0xc0,0xd0,0xb9,0x52,0xc3,0xe3,0xaa,0x2f,0x8a,0xb1,0x69,0xdb,0x12,0x5,0x7f,0xf4,0xb0,0x99,0x39,0xb7,0xa2,0x46,0x59,0xe2,0xe9,0xb2,0x18,0x5f,0x15,0x85,0x9c,0x2c,0xad,0xd6,0x50,0xe,0xea,0x48,0x72,0x60,0x51,0x4b,0x36,0x55,0xf3,0xef,0xae,0x63,0x13,0x7d,0x87,0x9d,0x75,0x73,0xdd,0xec,0x82,0x10,0xb8,0xa5,0x5a,0xbf,0x6d,0xd9,0xe4,0xfd,0xa4,0x77,0x21,0x9e,0x2b,0xa7,0x79,0x7b,0xbe,0x38,0x4d,0xcc,0xa6,0x6a,0x93,0x78,0x4f,0x9,0x6,0x2,0xc9,0x23,0x25,0x54,0xc,0x95,0x6b,0x11,0x86,0x44,0x3d,0x5c,0xb3,0xf2,0x71,0x84,0x89,0xba,0xbd,0xa3,0xe0,0x1d,0xcb,0x24,0xaf,0x26,0x28,0xf6,0x29,0xfc,0x98,0xce,0xd2,0x31,0xf,0xcf,0xc5,0x33,0x7c,0x90,0x94,0x32,0xe7,0x8d,0x9a,0xff,0x88,0x5b,0x76,0x16,0x70,0x3b,0xd,0xeb,0x56,0xf0,0xf1,0xfb,0xa,0x41,0x1c,0xab,0xb6,0x80,0x92,0x43,0x6c,0x68,0xfa,0xdc,0x7e,0xd1,0xca,0xc1,0x17,0xc6,0x5d,0x9b,0x7a,0xda,0x3a,0xd5,0x1f,0x2d,0xa8,0xf9,0x65,0x58,0x37,0xd7,0x22,0xd4,0x3,0xcd,0x62,0xf5,0x83,0x8c,0xb,0x1,0x66,0x61,0xf8,0x4,0x64,0xde,0x2a,0xe6,0x8e,0x2e,0x74,0xed,0xc4,0x4c,0xa0,0x3e,0x4a,0x81,0xa9,0xbb,0x67,0x14,0x34,0x42,0x8f,0x6e,0x8b,0xe5,0x35,0x4e,0x8,0x62,0xc4,0x7c,0x1,0x54,0x24,0xd8,0x99,0xaa,0x42,0x4a,0xb0,0xdb,0xb5,0x44,0xea,0x68,0x22,0x85,0x2f,0x1b,0x9a,0xb2,0xab,0x39,0xdd,0xe1,0x67,0x57,0x66,0x7f,0x45,0xf,0x7a,0x4c,0x89,0x5d,0xa4,0xfb,0x91,0x3e,0x31,0x4f,0x78,0x14,0x12,0x35,0xfe,0x92,0x6d,0x27,0x8f,0xee,0xd3,0x88,0x5a,0x40,0x16,0xca,0x93,0x90,0x4e,0xa9,0x1c,0x2c,0x7e,0x8,0xf5,0x7,0xd6,0xb,0xa6,0xff,0xc0,0x96,0x29,0xd9,0x9b,0x83,0xa8,0x82,0x2e,0x8b,0x77,0x69,0x17,0xe4,0x60,0x58,0xe8,0x37,0xf0,0x70,0xef,0xa1,0x72,0xec,0x25,0x86,0x5e,0xc3,0x87,0x32,0x48,0x80,0x95,0xae,0xe,0xd5,0xde,0x71,0x6e,0xdf,0x64,0x30,0xa0,0x2d,0xf7,0xc9,0x10,0x65,0xf4,0xe7,0x8e,0x18,0xbd,0xd4,0x9d,0xce,0x52,0x1a,0x9f,0xe0,0x15,0x6f,0x0,0xfa,0x55,0xe3,0x34,0xbb,0x3c,0xc2,0xb4,0xeb,0x49,0x5f,0xcd,0xf6,0x20,0xe6,0xfd,0xac,0x4d,0xf1,0x6a,0xe2,0x28,0xed,0xd,0xb6,0x9e,0x9,0x7d,0x23,0x3,0x8c,0x50,0x59,0xbc,0x75,0xb8,0x79,0x3f,0xd2,0x2,0x56,0xcf,0x36,0x51,0xe9,0x1d,0x33,0x53,0x19,0x43,0xd1,0xb9,0x7b,0x97,0xda,0xf3,0x2a,0xfc,0x94,0xd7,0x11,0x1f,0x13,0x98,0xcb,0xaf,0xc1,0x1e,0x6,0x38,0xf9,0xe5,0xa2,0x5c,0x63,0x3b,0x73,0xa,0x26,0xb1,0xc5,0x46,0x6b,0x84,0x8d,0x8a,0xb3,0xbe,0xdc,0x61,0xc,0x3a,0xcc,0x3d,0xc7,0xc6,0x9c,0x81,0x76,0x2b,0x74,0x5b,0xb7,0xa5,0x4,0x4b,0xf8,0xf2,0x5,0xd0,0xa7,0xa3,0xc8,0xbf,0xba,0xad,0x21,0x47,0x6c,0x41,0x1c,0xdb,0x4,0xb4,0x9e,0x4d,0x3,0x9c,0x9b,0x67,0xc2,0x6e,0x8c,0x8,0xfb,0x85,0xc5,0x7a,0x2c,0x13,0x44,0x6f,0x77,0x35,0x19,0xe4,0x92,0xc0,0x4a,0xe7,0x3a,0xeb,0x62,0xb,0x18,0x89,0x71,0x38,0x51,0xf4,0x4c,0xdc,0x88,0x33,0xfc,0x25,0x1b,0xc1,0xe2,0x42,0x79,0x6c,0x82,0x9d,0x32,0x39,0xb2,0x6a,0xc9,0x0,0xa4,0xde,0x6b,0x2f,0x8b,0xd,0x31,0xd5,0xa9,0x93,0x8a,0xbb,0xc3,0x69,0xce,0x84,0x47,0x5e,0x76,0xf7,0x5c,0xa6,0xae,0x46,0x6,0xa8,0x59,0x37,0xed,0x90,0x28,0x8e,0x75,0x34,0xc8,0xb8,0x7f,0x26,0xfa,0xac,0xf0,0x45,0xa2,0x7c,0x63,0xcb,0x81,0x7e,0xb6,0x64,0x3f,0x2,0x94,0xa3,0xdd,0xd2,0x12,0xd9,0xfe,0xf8,0x65,0xa0,0x96,0xe3,0x7d,0x17,0x48,0xb1,0x68,0x87,0xaa,0x29,0x52,0x5f,0x66,0x61,0xd7,0x8f,0xb0,0x4e,0x5d,0xca,0xe6,0x9f,0xf2,0x2d,0x43,0x27,0x9,0x15,0xd4,0xea,0x3b,0x78,0x10,0xc6,0x74,0xff,0xf3,0xfd,0x41,0x56,0x53,0x24,0xad,0x80,0xab,0xcd,0x1e,0x14,0xa7,0xe8,0x4f,0x4b,0x3c,0xe9,0xc7,0x9a,0x6d,0x70,0x49,0x5b,0xb7,0x98,0xd6,0xe0,0x8d,0x30,0x2a,0x2b,0xd1,0x20,0x86,0x1d,0xa1,0x40,0xe1,0x1,0xc4,0xe,0x21,0xb3,0xa5,0x7,0x11,0xa,0xcc,0x1a,0xd8,0xf,0xb9,0x16,0x58,0x2e,0xd0,0x57,0x73,0xf6,0xbe,0x22,0xec,0x83,0xf9,0xc,0x55,0x3d,0xaf,0xf5,0x1f,0x36,0x7b,0x97,0xbd,0xda,0x23,0xba,0xbf,0xdf,0xf1,0x5,0x54,0x99,0x50,0xb5,0xee,0x3e,0xd3,0x95,0x91,0xe5,0x72,0x5a,0xbc,0x60,0xef,0xcf,0x7a,0xd8,0xfe,0x6c,0x13,0xc5,0xce,0xd5,0x7e,0x9f,0x59,0xc2,0x1b,0xd1,0x3e,0xde,0x61,0xfd,0xac,0x29,0x26,0xd3,0x33,0x5c,0x66,0xc9,0x7,0xd0,0xf,0x88,0x87,0xf1,0xfc,0x65,0x62,0x5,0x2e,0xda,0x60,0x0,0x70,0x2a,0x8a,0xe2,0xa4,0x48,0xc0,0xe9,0xad,0x85,0x4e,0x3a,0x30,0x10,0x63,0xbf,0x8f,0x6a,0x8b,0x46,0xc,0x4a,0x31,0xe1,0x6f,0x91,0x8,0x50,0x39,0x40,0x82,0x15,0x75,0xf6,0xb7,0x58,0xb9,0xbe,0x8d,0x80,0xcf,0x19,0xe4,0xa7,0x2c,0x22,0xab,0x20,0x9c,0xf8,0x2d,0xf2,0xb,0x35,0xd6,0xca,0x78,0x37,0xc1,0xcb,0xe3,0x36,0x90,0x94,0x8c,0xfb,0x9e,0x89,0x74,0x12,0x72,0x5f,0x52,0xef,0x9,0x3f,0xe,0xff,0xf5,0xf4,0xb2,0xaf,0x18,0x45,0x68,0x47,0x96,0x84,0x11,0x5b,0x1c,0xb6,0xa9,0x28,0x98,0x81,0xee,0xa,0x54,0xd2,0x55,0x64,0x76,0x4c,0xf7,0x51,0x32,0x4f,0x17,0x67,0xaa,0xeb,0x71,0x99,0x83,0x79,0x86,0xe8,0xd9,0x77,0x5e,0xa1,0xbc,0x14,0xe0,0xdd,0x69,0xbb,0x25,0x73,0xa0,0xf9,0x7d,0xa3,0x2f,0x9a,0x49,0x3c,0xba,0x7f,0x97,0x6e,0xa2,0xc8,0x2,0xd,0x4b,0x7c,0x21,0x27,0xcd,0x6,0x1d,0xb1,0x44,0xb8,0x24,0x5a,0x53,0xd7,0xdb,0x6b,0xc3,0x4,0xdc,0x43,0x41,0x92,0x4d,0x1f,0xc6,0x3b,0xe5,0x34,0x95,0x38,0xf3,0xcc,0x1a,0xa5,0xa8,0xea,0x9b,0xb0,0x57,0xec,0x93,0x3,0xc4,0x1e,0x23,0xfa,0xc7,0x56,0xbd,0xd4,0x8e,0x2b,0xae,0xe7,0x16,0xdf,0x6d,0xb5,0xb4,0xf0,0x7b,0x1,0xa6,0xb3,0x3d,0x9d,0xed,0xe6,0x5d,0x42,0x15,0xe9,0x1c,0xb0,0x7a,0xfe,0xf7,0x89,0xa9,0x6e,0xc6,0x76,0x3f,0xec,0xee,0x71,0x96,0x6b,0xb2,0xe0,0x95,0x38,0x99,0x48,0x8,0xb7,0x61,0x5e,0x1d,0x36,0x47,0x5,0xae,0x3e,0x41,0xfa,0x57,0x8e,0xb3,0x69,0x79,0x10,0xfb,0x6a,0x4a,0x3,0x86,0x23,0x18,0xc0,0x72,0xbb,0xac,0xd6,0x5d,0x19,0x30,0x90,0x1e,0xb,0xef,0xf0,0x4b,0x40,0x1b,0xb1,0xf6,0xbc,0x2c,0x35,0x85,0x4,0x7f,0xf9,0xa7,0x43,0xe1,0xdb,0xc9,0xf8,0xe2,0x9f,0xfc,0x5a,0x46,0x7,0xca,0xba,0xd4,0x2e,0x34,0xdc,0xda,0x74,0x45,0x2b,0xb9,0x11,0xc,0xf3,0x16,0xc4,0x70,0x4d,0x54,0xd,0xde,0x88,0x37,0x82,0xe,0xd0,0xd2,0x17,0x91,0xe4,0x65,0xf,0xc3,0x3a,0xd1,0xe6,0xa0,0xaf,0xab,0x60,0x8a,0x8c,0xfd,0xa5,0x3c,0xc2,0xb8,0x2f,0xed,0x94,0xf5,0x1a,0x5b,0xd8,0x2d,0x20,0x13,0x14,0xa,0x49,0xb4,0x62,0x8d,0x6,0x8f,0x81,0x5f,0x80,0x55,0x31,0x67,0x7b,0x98,0xa6,0x66,0x6c,0x9a,0xd5,0x39,0x3d,0x9b,0x4e,0x24,0x33,0x56,0x21,0xf2,0xdf,0xbf,0xd9,0x92,0xa4,0x42,0xff,0x59,0x58,0x52,0xa3,0xe8,0xb5,0x2,0x1f,0x29,0x3b,0xea,0xc5,0xc1,0x53,0x75,0xd7,0x78,0x63,0x68,0xbe,0x6f,0xf4,0x32,0xd3,0x73,0x93,0x7c,0xb6,0x84,0x1,0x50,0xcc,0xf1,0x9e,0x7e,0x8b,0x7d,0xaa,0x64,0xcb,0x5c,0x2a,0x25,0xa2,0xa8,0xcf,0xc8,0x51,0xad,0xcd,0x77,0x83,0x4f,0x27,0x87,0xdd,0x44,0x6d,0xe5,0x9,0x97,0xe3,0x28,0x0,0x12,0xce,0xbd,0x9d,0xeb,0x26,0xc7,0x22,0x4c,0x9c,0xe7,0xa1,0xe0,0x46,0xfe,0x83,0xd6,0xa6,0x5a,0x1b,0x28,0xc0,0xc8,0x32,0x59,0x37,0xc6,0x68,0xea,0xa0,0x7,0xad,0x99,0x18,0x30,0x29,0xbb,0x5f,0x63,0xe5,0xd5,0xe4,0xfd,0xc7,0x8d,0xf8,0xce,0xb,0xdf,0x26,0x79,0x13,0xbc,0xb3,0xcd,0xfa,0x96,0x90,0xb7,0x7c,0x10,0xef,0xa5,0xd,0x6c,0x51,0xa,0xd8,0xc2,0x94,0x48,0x11,0x12,0xcc,0x2b,0x9e,0xae,0xfc,0x8a,0x77,0x85,0x54,0x89,0x24,0x7d,0x42,0x14,0xab,0x5b,0x19,0x1,0x2a,0x0,0xac,0x9,0xf5,0xeb,0x95,0x66,0xe2,0xda,0x6a,0xb5,0x72,0xf2,0x6d,0x23,0xf0,0x6e,0xa7,0x4,0xdc,0x41,0x5,0xb0,0xca,0x2,0x17,0x2c,0x8c,0x57,0x5c,0xf3,0xec,0x5d,0xe6,0xb2,0x22,0xaf,0x75,0x4b,0x92,0xe7,0x76,0x65,0xc,0x9a,0x3f,0x56,0x1f,0x4c,0xd0,0x98,0x1d,0x62,0x97,0xed,0x82,0x78,0xd7,0x61,0xb6,0x39,0xbe,0x40,0x36,0x69,0xcb,0xdd,0x4f,0x74,0xa2,0x64,0x7f,0x2e,0xcf,0x73,0xe8,0x60,0xaa,0x6f,0x8f,0x34,0x1c,0x8b,0xff,0xa1,0x81,0xe,0xd2,0xdb,0x3e,0xf7,0x3a,0xfb,0xbd,0x50,0x80,0xd4,0x4d,0xb4,0xd3,0x6b,0x9f,0xb1,0xd1,0x9b,0xc1,0x53,0x3b,0xf9,0x15,0x58,0x71,0xa8,0x7e,0x16,0x55,0x93,0x9d,0x91,0x1a,0x49,0x2d,0x43,0x9c,0x84,0xba,0x7b,0x67,0x20,0xde,0xe1,0xb9,0xf1,0x88,0xa4,0x33,0x47,0xc4,0xe9,0x6,0xf,0x8,0x31,0x3c,0x5e,0xe3,0x8e,0xb8,0x4e,0xbf,0x45,0x44,0x1e,0x3,0xf4,0xa9,0xf6,0xd9,0x35,0x27,0x86,0xc9,0x7a,0x70,0x87,0x52,0x25,0x21,0x4a,0x3d,0x38,0x2f,0xa3,0xc5,0xee,0xc3,0x7f,0xb8,0x67,0xd7,0xfd,0x2e,0x60,0xff,0xf8,0x4,0xa1,0xd,0xef,0x6b,0x98,0xe6,0xa6,0x19,0x4f,0x70,0x27,0xc,0x14,0x56,0x7a,0x87,0xf1,0xa3,0x29,0x84,0x59,0x88,0x1,0x68,0x7b,0xea,0x12,0x5b,0x32,0x97,0x2f,0xbf,0xeb,0x50,0x9f,0x46,0x78,0xa2,0x81,0x21,0x1a,0xf,0xe1,0xfe,0x51,0x5a,0xd1,0x9,0xaa,0x63,0xc7,0xbd,0x8,0x4c,0xe8,0x6e,0x52,0xb6,0xca,0xf0,0xe9,0xd8,0xa0,0xa,0xad,0xe7,0x24,0x3d,0x15,0x94,0x3f,0xc5,0xcd,0x25,0x65,0xcb,0x3a,0x54,0x8e,0xf3,0x4b,0xed,0x16,0x57,0xab,0xdb,0x1c,0x45,0x99,0xcf,0x93,0x26,0xc1,0x1f,0x0,0xa8,0xe2,0x1d,0xd5,0x7,0x5c,0x61,0xf7,0xc0,0xbe,0xb1,0x71,0xba,0x9d,0x9b,0x6,0xc3,0xf5,0x80,0x1e,0x74,0x2b,0xd2,0xb,0xe4,0xc9,0x4a,0x31,0x3c,0x5,0x2,0xb4,0xec,0xd3,0x2d,0x3e,0xa9,0x85,0xfc,0x91,0x4e,0x20,0x44,0x6a,0x76,0xb7,0x89,0x58,0x1b,0x73,0xa5,0x17,0x9c,0x90,0x9e,0x22,0x35,0x30,0x47,0xce,0xe3,0xc8,0xae,0x7d,0x77,0xc4,0x8b,0x2c,0x28,0x5f,0x8a,0xa4,0xf9,0xe,0x13,0x2a,0x38,0xd4,0xfb,0xb5,0x83,0xee,0x53,0x49,0x48,0xb2,0x43,0xe5,0x7e,0xc2,0x23,0x82,0x62,0xa7,0x6d,0x42,0xd0,0xc6,0x64,0x72,0x69,0xaf,0x79,0xbb,0x6c,0xda,0x75,0x3b,0x4d,0xb3,0x34,0x10,0x95,0xdd,0x41,0x8f,0xe0,0x9a,0x6f,0x36,0x5e,0xcc,0x96,0x7c,0x55,0x18,0xf4,0xde,0xb9,0x40,0xd9,0xdc,0xbc,0x92,0x66,0x37,0xfa,0x33,0xd6,0x8d,0x5d,0xb0,0xf6,0xf2,0x86,0x11,0x39,0xdf,0x3,0x8c,0xac,0x24,0x86,0xa0,0x32,0x4d,0x9b,0x90,0x8b,0x20,0xc1,0x7,0x9c,0x45,0x8f,0x60,0x80,0x3f,0xa3,0xf2,0x77,0x78,0x8d,0x6d,0x2,0x38,0x97,0x59,0x8e,0x51,0xd6,0xd9,0xaf,0xa2,0x3b,0x3c,0x5b,0x70,0x84,0x3e,0x5e,0x2e,0x74,0xd4,0xbc,0xfa,0x16,0x9e,0xb7,0xf3,0xdb,0x10,0x64,0x6e,0x4e,0x3d,0xe1,0xd1,0x34,0xd5,0x18,0x52,0x14,0x6f,0xbf,0x31,0xcf,0x56,0xe,0x67,0x1e,0xdc,0x4b,0x2b,0xa8,0xe9,0x6,0xe7,0xe0,0xd3,0xde,0x91,0x47,0xba,0xf9,0x72,0x7c,0xf5,0x7e,0xc2,0xa6,0x73,0xac,0x55,0x6b,0x88,0x94,0x26,0x69,0x9f,0x95,0xbd,0x68,0xce,0xca,0xd2,0xa5,0xc0,0xd7,0x2a,0x4c,0x2c,0x1,0xc,0xb1,0x57,0x61,0x50,0xa1,0xab,0xaa,0xec,0xf1,0x46,0x1b,0x36,0x19,0xc8,0xda,0x4f,0x5,0x42,0xe8,0xf7,0x76,0xc6,0xdf,0xb0,0x54,0xa,0x8c,0xb,0x3a,0x28,0x12,0xa9,0xf,0x6c,0x11,0x49,0x39,0xf4,0xb5,0x2f,0xc7,0xdd,0x27,0xd8,0xb6,0x87,0x29,0x0,0xff,0xe2,0x4a,0xbe,0x83,0x37,0xe5,0x7b,0x2d,0xfe,0xa7,0x23,0xfd,0x71,0xc4,0x17,0x62,0xe4,0x21,0xc9,0x30,0xfc,0x96,0x5c,0x53,0x15,0x22,0x7f,0x79,0x93,0x58,0x43,0xef,0x1a,0xe6,0x7a,0x4,0xd,0x89,0x85,0x35,0x9d,0x5a,0x82,0x1d,0x1f,0xcc,0x13,0x41,0x98,0x65,0xbb,0x6a,0xcb,0x66,0xad,0x92,0x44,0xfb,0xf6,0xb4,0xc5,0xee,0x9,0xb2,0xcd,0x5d,0x9a,0x40,0x7d,0xa4,0x99,0x8,0xe3,0x8a,0xd0,0x75,0xf0,0xb9,0x48,0x81,0x33,0xeb,0xea,0xae,0x25,0x5f,0xf8,0xed,0x63,0xc3,0xb3,0xb8,0x3,0x1c,0x4a,0xb6,0x43,0xef,0x25,0xa1,0xa8,0xd6,0xf6,0x31,0x99,0x29,0x60,0xb3,0xb1,0x2e,0xc9,0x34,0xed,0xbf,0xca,0x67,0xc6,0x17,0x57,0xe8,0x3e,0x1,0x42,0x69,0x18,0x5a,0xf1,0x61,0x1e,0xa5,0x8,0xd1,0xec,0x36,0x26,0x4f,0xa4,0x35,0x15,0x5c,0xd9,0x7c,0x47,0x9f,0x2d,0xe4,0xf3,0x89,0x2,0x46,0x6f,0xcf,0x41,0x54,0xb0,0xaf,0x14,0x1f,0x44,0xee,0xa9,0xe3,0x73,0x6a,0xda,0x5b,0x20,0xa6,0xf8,0x1c,0xbe,0x84,0x96,0xa7,0xbd,0xc0,0xa3,0x5,0x19,0x58,0x95,0xe5,0x8b,0x71,0x6b,0x83,0x85,0x2b,0x1a,0x74,0xe6,0x4e,0x53,0xac,0x49,0x9b,0x2f,0x12,0xb,0x52,0x81,0xd7,0x68,0xdd,0x51,0x8f,0x8d,0x48,0xce,0xbb,0x3a,0x50,0x9c,0x65,0x8e,0xb9,0xff,0xf0,0xf4,0x3f,0xd5,0xd3,0xa2,0xfa,0x63,0x9d,0xe7,0x70,0xb2,0xcb,0xaa,0x45,0x4,0x87,0x72,0x7f,0x4c,0x4b,0x55,0x16,0xeb,0x3d,0xd2,0x59,0xd0,0xde,0x0,0xdf,0xa,0x6e,0x38,0x24,0xc7,0xf9,0x39,0x33,0xc5,0x8a,0x66,0x62,0xc4,0x11,0x7b,0x6c,0x9,0x7e,0xad,0x80,0xe0,0x86,0xcd,0xfb,0x1d,0xa0,0x6,0x7,0xd,0xfc,0xb7,0xea,0x5d,0x40,0x76,0x64,0xb5,0x9a,0x9e,0xc,0x2a,0x88,0x27,0x3c,0x37,0xe1,0x30,0xab,0x6d,0x8c,0x2c,0xcc,0x23,0xe9,0xdb,0x5e,0xf,0x93,0xae,0xc1,0x21,0xd4,0x22,0xf5,0x3b,0x94,0x3,0x75,0x7a,0xfd,0xf7,0x90,0x97,0xe,0xf2,0x92,0x28,0xdc,0x10,0x78,0xd8,0x82,0x1b,0x32,0xba,0x56,0xc8,0xbc,0x77,0x5f,0x4d,0x91,0xe2,0xc2,0xb4,0x79,0x98,0x7d,0x13,0xc3,0xb8,0xfe,0x5f,0xf9,0x41,0x3c,0x69,0x19,0xe5,0xa4,0x97,0x7f,0x77,0x8d,0xe6,0x88,0x79,0xd7,0x55,0x1f,0xb8,0x12,0x26,0xa7,0x8f,0x96,0x4,0xe0,0xdc,0x5a,0x6a,0x5b,0x42,0x78,0x32,0x47,0x71,0xb4,0x60,0x99,0xc6,0xac,0x3,0xc,0x72,0x45,0x29,0x2f,0x8,0xc3,0xaf,0x50,0x1a,0xb2,0xd3,0xee,0xb5,0x67,0x7d,0x2b,0xf7,0xae,0xad,0x73,0x94,0x21,0x11,0x43,0x35,0xc8,0x3a,0xeb,0x36,0x9b,0xc2,0xfd,0xab,0x14,0xe4,0xa6,0xbe,0x95,0xbf,0x13,0xb6,0x4a,0x54,0x2a,0xd9,0x5d,0x65,0xd5,0xa,0xcd,0x4d,0xd2,0x9c,0x4f,0xd1,0x18,0xbb,0x63,0xfe,0xba,0xf,0x75,0xbd,0xa8,0x93,0x33,0xe8,0xe3,0x4c,0x53,0xe2,0x59,0xd,0x9d,0x10,0xca,0xf4,0x2d,0x58,0xc9,0xda,0xb3,0x25,0x80,0xe9,0xa0,0xf3,0x6f,0x27,0xa2,0xdd,0x28,0x52,0x3d,0xc7,0x68,0xde,0x9,0x86,0x1,0xff,0x89,0xd6,0x74,0x62,0xf0,0xcb,0x1d,0xdb,0xc0,0x91,0x70,0xcc,0x57,0xdf,0x15,0xd0,0x30,0x8b,0xa3,0x34,0x40,0x1e,0x3e,0xb1,0x6d,0x64,0x81,0x48,0x85,0x44,0x2,0xef,0x3f,0x6b,0xf2,0xb,0x6c,0xd4,0x20,0xe,0x6e,0x24,0x7e,0xec,0x84,0x46,0xaa,0xe7,0xce,0x17,0xc1,0xa9,0xea,0x2c,0x22,0x2e,0xa5,0xf6,0x92,0xfc,0x23,0x3b,0x5,0xc4,0xd8,0x9f,0x61,0x5e,0x6,0x4e,0x37,0x1b,0x8c,0xf8,0x7b,0x56,0xb9,0xb0,0xb7,0x8e,0x83,0xe1,0x5c,0x31,0x7,0xf1,0x0,0xfa,0xfb,0xa1,0xbc,0x4b,0x16,0x49,0x66,0x8a,0x98,0x39,0x76,0xc5,0xcf,0x38,0xed,0x9a,0x9e,0xf5,0x82,0x87,0x90,0x1c,0x7a,0x51,0x7c,0x1,0xc6,0x19,0xa9,0x83,0x50,0x1e,0x81,0x86,0x7a,0xdf,0x73,0x91,0x15,0xe6,0x98,0xd8,0x67,0x31,0xe,0x59,0x72,0x6a,0x28,0x4,0xf9,0x8f,0xdd,0x57,0xfa,0x27,0xf6,0x7f,0x16,0x5,0x94,0x6c,0x25,0x4c,0xe9,0x51,0xc1,0x95,0x2e,0xe1,0x38,0x6,0xdc,0xff,0x5f,0x64,0x71,0x9f,0x80,0x2f,0x24,0xaf,0x77,0xd4,0x1d,0xb9,0xc3,0x76,0x32,0x96,0x10,0x2c,0xc8,0xb4,0x8e,0x97,0xa6,0xde,0x74,0xd3,0x99,0x5a,0x43,0x6b,0xea,0x41,0xbb,0xb3,0x5b,0x1b,0xb5,0x44,0x2a,0xf0,0x8d,0x35,0x93,0x68,0x29,0xd5,0xa5,0x62,0x3b,0xe7,0xb1,0xed,0x58,0xbf,0x61,0x7e,0xd6,0x9c,0x63,0xab,0x79,0x22,0x1f,0x89,0xbe,0xc0,0xcf,0xf,0xc4,0xe3,0xe5,0x78,0xbd,0x8b,0xfe,0x60,0xa,0x55,0xac,0x75,0x9a,0xb7,0x34,0x4f,0x42,0x7b,0x7c,0xca,0x92,0xad,0x53,0x40,0xd7,0xfb,0x82,0xef,0x30,0x5e,0x3a,0x14,0x8,0xc9,0xf7,0x26,0x65,0xd,0xdb,0x69,0xe2,0xee,0xe0,0x5c,0x4b,0x4e,0x39,0xb0,0x9d,0xb6,0xd0,0x3,0x9,0xba,0xf5,0x52,0x56,0x21,0xf4,0xda,0x87,0x70,0x6d,0x54,0x46,0xaa,0x85,0xcb,0xfd,0x90,0x2d,0x37,0x36,0xcc,0x3d,0x9b,0x0,0xbc,0x5d,0xfc,0x1c,0xd9,0x13,0x3c,0xae,0xb8,0x1a,0xc,0x17,0xd1,0x7,0xc5,0x12,0xa4,0xb,0x45,0x33,0xcd,0x4a,0x6e,0xeb,0xa3,0x3f,0xf1,0x9e,0xe4,0x11,0x48,0x20,0xb2,0xe8,0x2,0x2b,0x66,0x8a,0xa0,0xc7,0x3e,0xa7,0xa2,0xc2,0xec,0x18,0x49,0x84,0x4d,0xa8,0xf3,0x23,0xce,0x88,0x8c,0xf8,0x6f,0x47,0xa1,0x7d,0xf2,0xd2,0x7,0xa5,0x83,0x11,0x6e,0xb8,0xb3,0xa8,0x3,0xe2,0x24,0xbf,0x66,0xac,0x43,0xa3,0x1c,0x80,0xd1,0x54,0x5b,0xae,0x4e,0x21,0x1b,0xb4,0x7a,0xad,0x72,0xf5,0xfa,0x8c,0x81,0x18,0x1f,0x78,0x53,0xa7,0x1d,0x7d,0xd,0x57,0xf7,0x9f,0xd9,0x35,0xbd,0x94,0xd0,0xf8,0x33,0x47,0x4d,0x6d,0x1e,0xc2,0xf2,0x17,0xf6,0x3b,0x71,0x37,0x4c,0x9c,0x12,0xec,0x75,0x2d,0x44,0x3d,0xff,0x68,0x8,0x8b,0xca,0x25,0xc4,0xc3,0xf0,0xfd,0xb2,0x64,0x99,0xda,0x51,0x5f,0xd6,0x5d,0xe1,0x85,0x50,0x8f,0x76,0x48,0xab,0xb7,0x5,0x4a,0xbc,0xb6,0x9e,0x4b,0xed,0xe9,0xf1,0x86,0xe3,0xf4,0x9,0x6f,0xf,0x22,0x2f,0x92,0x74,0x42,0x73,0x82,0x88,0x89,0xcf,0xd2,0x65,0x38,0x15,0x3a,0xeb,0xf9,0x6c,0x26,0x61,0xcb,0xd4,0x55,0xe5,0xfc,0x93,0x77,0x29,0xaf,0x28,0x19,0xb,0x31,0x8a,0x2c,0x4f,0x32,0x6a,0x1a,0xd7,0x96,0xc,0xe4,0xfe,0x4,0xfb,0x95,0xa4,0xa,0x23,0xdc,0xc1,0x69,0x9d,0xa0,0x14,0xc6,0x58,0xe,0xdd,0x84,0x0,0xde,0x52,0xe7,0x34,0x41,0xc7,0x2,0xea,0x13,0xdf,0xb5,0x7f,0x70,0x36,0x1,0x5c,0x5a,0xb0,0x7b,0x60,0xcc,0x39,0xc5,0x59,0x27,0x2e,0xaa,0xa6,0x16,0xbe,0x79,0xa1,0x3e,0x3c,0xef,0x30,0x62,0xbb,0x46,0x98,0x49,0xe8,0x45,0x8e,0xb1,0x67,0xd8,0xd5,0x97,0xe6,0xcd,0x2a,0x91,0xee,0x7e,0xb9,0x63,0x5e,0x87,0xba,0x2b,0xc0,0xa9,0xf3,0x56,0xd3,0x9a,0x6b,0xa2,0x10,0xc8,0xc9,0x8d,0x6,0x7c,0xdb,0xce,0x40,0xe0,0x90,0x9b,0x20,0x3f,0xf9,0x5,0xf0,0x5c,0x96,0x12,0x1b,0x65,0x45,0x82,0x2a,0x9a,0xd3,0x0,0x2,0x9d,0x7a,0x87,0x5e,0xc,0x79,0xd4,0x75,0xa4,0xe4,0x5b,0x8d,0xb2,0xf1,0xda,0xab,0xe9,0x42,0xd2,0xad,0x16,0xbb,0x62,0x5f,0x85,0x95,0xfc,0x17,0x86,0xa6,0xef,0x6a,0xcf,0xf4,0x2c,0x9e,0x57,0x40,0x3a,0xb1,0xf5,0xdc,0x7c,0xf2,0xe7,0x3,0x1c,0xa7,0xac,0xf7,0x5d,0x1a,0x50,0xc0,0xd9,0x69,0xe8,0x93,0x15,0x4b,0xaf,0xd,0x37,0x25,0x14,0xe,0x73,0x10,0xb6,0xaa,0xeb,0x26,0x56,0x38,0xc2,0xd8,0x30,0x36,0x98,0xa9,0xc7,0x55,0xfd,0xe0,0x1f,0xfa,0x28,0x9c,0xa1,0xb8,0xe1,0x32,0x64,0xdb,0x6e,0xe2,0x3c,0x3e,0xfb,0x7d,0x8,0x89,0xe3,0x2f,0xd6,0x3d,0xa,0x4c,0x43,0x47,0x8c,0x66,0x60,0x11,0x49,0xd0,0x2e,0x54,0xc3,0x1,0x78,0x19,0xf6,0xb7,0x34,0xc1,0xcc,0xff,0xf8,0xe6,0xa5,0x58,0x8e,0x61,0xea,0x63,0x6d,0xb3,0x6c,0xb9,0xdd,0x8b,0x97,0x74,0x4a,0x8a,0x80,0x76,0x39,0xd5,0xd1,0x77,0xa2,0xc8,0xdf,0xba,0xcd,0x1e,0x33,0x53,0x35,0x7e,0x48,0xae,0x13,0xb5,0xb4,0xbe,0x4f,0x4,0x59,0xee,0xf3,0xc5,0xd7,0x6,0x29,0x2d,0xbf,0x99,0x3b,0x94,0x8f,0x84,0x52,0x83,0x18,0xde,0x3f,0x9f,0x7f,0x90,0x5a,0x68,0xed,0xbc,0x20,0x1d,0x72,0x92,0x67,0x91,0x46,0x88,0x27,0xb0,0xc6,0xc9,0x4e,0x44,0x23,0x24,0xbd,0x41,0x21,0x9b,0x6f,0xa3,0xcb,0x6b,0x31,0xa8,0x81,0x9,0xe5,0x7b,0xf,0xc4,0xec,0xfe,0x22,0x51,0x71,0x7,0xca,0x2b,0xce,0xa0,0x70,0xb,0x4d,0x87,0x21,0x99,0xe4,0xb1,0xc1,0x3d,0x7c,0x4f,0xa7,0xaf,0x55,0x3e,0x50,0xa1,0xf,0x8d,0xc7,0x60,0xca,0xfe,0x7f,0x57,0x4e,0xdc,0x38,0x4,0x82,0xb2,0x83,0x9a,0xa0,0xea,0x9f,0xa9,0x6c,0xb8,0x41,0x1e,0x74,0xdb,0xd4,0xaa,0x9d,0xf1,0xf7,0xd0,0x1b,0x77,0x88,0xc2,0x6a,0xb,0x36,0x6d,0xbf,0xa5,0xf3,0x2f,0x76,0x75,0xab,0x4c,0xf9,0xc9,0x9b,0xed,0x10,0xe2,0x33,0xee,0x43,0x1a,0x25,0x73,0xcc,0x3c,0x7e,0x66,0x4d,0x67,0xcb,0x6e,0x92,0x8c,0xf2,0x1,0x85,0xbd,0xd,0xd2,0x15,0x95,0xa,0x44,0x97,0x9,0xc0,0x63,0xbb,0x26,0x62,0xd7,0xad,0x65,0x70,0x4b,0xeb,0x30,0x3b,0x94,0x8b,0x3a,0x81,0xd5,0x45,0xc8,0x12,0x2c,0xf5,0x80,0x11,0x2,0x6b,0xfd,0x58,0x31,0x78,0x2b,0xb7,0xff,0x7a,0x5,0xf0,0x8a,0xe5,0x1f,0xb0,0x6,0xd1,0x5e,0xd9,0x27,0x51,0xe,0xac,0xba,0x28,0x13,0xc5,0x3,0x18,0x49,0xa8,0x14,0x8f,0x7,0xcd,0x8,0xe8,0x53,0x7b,0xec,0x98,0xc6,0xe6,0x69,0xb5,0xbc,0x59,0x90,0x5d,0x9c,0xda,0x37,0xe7,0xb3,0x2a,0xd3,0xb4,0xc,0xf8,0xd6,0xb6,0xfc,0xa6,0x34,0x5c,0x9e,0x72,0x3f,0x16,0xcf,0x19,0x71,0x32,0xf4,0xfa,0xf6,0x7d,0x2e,0x4a,0x24,0xfb,0xe3,0xdd,0x1c,0x0,0x47,0xb9,0x86,0xde,0x96,0xef,0xc3,0x54,0x20,0xa3,0x8e,0x61,0x68,0x6f,0x56,0x5b,0x39,0x84,0xe9,0xdf,0x29,0xd8,0x22,0x23,0x79,0x64,0x93,0xce,0x91,0xbe,0x52,0x40,0xe1,0xae,0x1d,0x17,0xe0,0x35,0x42,0x46,0x2d,0x5a,0x5f,0x48,0xc4,0xa2,0x89,0xa4,0xe4,0x23,0xfc,0x4c,0x66,0xb5,0xfb,0x64,0x63,0x9f,0x3a,0x96,0x74,0xf0,0x3,0x7d,0x3d,0x82,0xd4,0xeb,0xbc,0x97,0x8f,0xcd,0xe1,0x1c,0x6a,0x38,0xb2,0x1f,0xc2,0x13,0x9a,0xf3,0xe0,0x71,0x89,0xc0,0xa9,0xc,0xb4,0x24,0x70,0xcb,0x4,0xdd,0xe3,0x39,0x1a,0xba,0x81,0x94,0x7a,0x65,0xca,0xc1,0x4a,0x92,0x31,0xf8,0x5c,0x26,0x93,0xd7,0x73,0xf5,0xc9,0x2d,0x51,0x6b,0x72,0x43,0x3b,0x91,0x36,0x7c,0xbf,0xa6,0x8e,0xf,0xa4,0x5e,0x56,0xbe,0xfe,0x50,0xa1,0xcf,0x15,0x68,0xd0,0x76,0x8d,0xcc,0x30,0x40,0x87,0xde,0x2,0x54,0x8,0xbd,0x5a,0x84,0x9b,0x33,0x79,0x86,0x4e,0x9c,0xc7,0xfa,0x6c,0x5b,0x25,0x2a,0xea,0x21,0x6,0x0,0x9d,0x58,0x6e,0x1b,0x85,0xef,0xb0,0x49,0x90,0x7f,0x52,0xd1,0xaa,0xa7,0x9e,0x99,0x2f,0x77,0x48,0xb6,0xa5,0x32,0x1e,0x67,0xa,0xd5,0xbb,0xdf,0xf1,0xed,0x2c,0x12,0xc3,0x80,0xe8,0x3e,0x8c,0x7,0xb,0x5,0xb9,0xae,0xab,0xdc,0x55,0x78,0x53,0x35,0xe6,0xec,0x5f,0x10,0xb7,0xb3,0xc4,0x11,0x3f,0x62,0x95,0x88,0xb1,0xa3,0x4f,0x60,0x2e,0x18,0x75,0xc8,0xd2,0xd3,0x29,0xd8,0x7e,0xe5,0x59,0xb8,0x19,0xf9,0x3c,0xf6,0xd9,0x4b,0x5d,0xff,0xe9,0xf2,0x34,0xe2,0x20,0xf7,0x41,0xee,0xa0,0xd6,0x28,0xaf,0x8b,0xe,0x46,0xda,0x14,0x7b,0x1,0xf4,0xad,0xc5,0x57,0xd,0xe7,0xce,0x83,0x6f,0x45,0x22,0xdb,0x42,0x47,0x27,0x9,0xfd,0xac,0x61,0xa8,0x4d,0x16,0xc6,0x2b,0x6d,0x69,0x1d,0x8a,0xa2,0x44,0x98,0x17,0x37,0x7f,0xdd,0xfb,0x69,0x16,0xc0,0xcb,0xd0,0x7b,0x9a,0x5c,0xc7,0x1e,0xd4,0x3b,0xdb,0x64,0xf8,0xa9,0x2c,0x23,0xd6,0x36,0x59,0x63,0xcc,0x2,0xd5,0xa,0x8d,0x82,0xf4,0xf9,0x60,0x67,0x0,0x2b,0xdf,0x65,0x5,0x75,0x2f,0x8f,0xe7,0xa1,0x4d,0xc5,0xec,0xa8,0x80,0x4b,0x3f,0x35,0x15,0x66,0xba,0x8a,0x6f,0x8e,0x43,0x9,0x4f,0x34,0xe4,0x6a,0x94,0xd,0x55,0x3c,0x45,0x87,0x10,0x70,0xf3,0xb2,0x5d,0xbc,0xbb,0x88,0x85,0xca,0x1c,0xe1,0xa2,0x29,0x27,0xae,0x25,0x99,0xfd,0x28,0xf7,0xe,0x30,0xd3,0xcf,0x7d,0x32,0xc4,0xce,0xe6,0x33,0x95,0x91,0x89,0xfe,0x9b,0x8c,0x71,0x17,0x77,0x5a,0x57,0xea,0xc,0x3a,0xb,0xfa,0xf0,0xf1,0xb7,0xaa,0x1d,0x40,0x6d,0x42,0x93,0x81,0x14,0x5e,0x19,0xb3,0xac,0x2d,0x9d,0x84,0xeb,0xf,0x51,0xd7,0x50,0x61,0x73,0x49,0xf2,0x54,0x37,0x4a,0x12,0x62,0xaf,0xee,0x74,0x9c,0x86,0x7c,0x83,0xed,0xdc,0x72,0x5b,0xa4,0xb9,0x11,0xe5,0xd8,0x6c,0xbe,0x20,0x76,0xa5,0xfc,0x78,0xa6,0x2a,0x9f,0x4c,0x39,0xbf,0x7a,0x92,0x6b,0xa7,0xcd,0x7,0x8,0x4e,0x79,0x24,0x22,0xc8,0x3,0x18,0xb4,0x41,0xbd,0x21,0x5f,0x56,0xd2,0xde,0x6e,0xc6,0x1,0xd9,0x46,0x44,0x97,0x48,0x1a,0xc3,0x3e,0xe0,0x31,0x90,0x3d,0xf6,0xc9,0x1f,0xa0,0xad,0xef,0x9e,0xb5,0x52,0xe9,0x96,0x6,0xc1,0x1b,0x26,0xff,0xc2,0x53,0xb8,0xd1,0x8b,0x2e,0xab,0xe2,0x13,0xda,0x68,0xb0,0xb1,0xf5,0x7e,0x4,0xa3,0xb6,0x38,0x98,0xe8,0xe3,0x58,0x47,0x97,0x6b,0x9e,0x32,0xf8,0x7c,0x75,0xb,0x2b,0xec,0x44,0xf4,0xbd,0x6e,0x6c,0xf3,0x14,0xe9,0x30,0x62,0x17,0xba,0x1b,0xca,0x8a,0x35,0xe3,0xdc,0x9f,0xb4,0xc5,0x87,0x2c,0xbc,0xc3,0x78,0xd5,0xc,0x31,0xeb,0xfb,0x92,0x79,0xe8,0xc8,0x81,0x4,0xa1,0x9a,0x42,0xf0,0x39,0x2e,0x54,0xdf,0x9b,0xb2,0x12,0x9c,0x89,0x6d,0x72,0xc9,0xc2,0x99,0x33,0x74,0x3e,0xae,0xb7,0x7,0x86,0xfd,0x7b,0x25,0xc1,0x63,0x59,0x4b,0x7a,0x60,0x1d,0x7e,0xd8,0xc4,0x85,0x48,0x38,0x56,0xac,0xb6,0x5e,0x58,0xf6,0xc7,0xa9,0x3b,0x93,0x8e,0x71,0x94,0x46,0xf2,0xcf,0xd6,0x8f,0x5c,0xa,0xb5,0x0,0x8c,0x52,0x50,0x95,0x13,0x66,0xe7,0x8d,0x41,0xb8,0x53,0x64,0x22,0x2d,0x29,0xe2,0x8,0xe,0x7f,0x27,0xbe,0x40,0x3a,0xad,0x6f,0x16,0x77,0x98,0xd9,0x5a,0xaf,0xa2,0x91,0x96,0x88,0xcb,0x36,0xe0,0xf,0x84,0xd,0x3,0xdd,0x2,0xd7,0xb3,0xe5,0xf9,0x1a,0x24,0xe4,0xee,0x18,0x57,0xbb,0xbf,0x19,0xcc,0xa6,0xb1,0xd4,0xa3,0x70,0x5d,0x3d,0x5b,0x10,0x26,0xc0,0x7d,0xdb,0xda,0xd0,0x21,0x6a,0x37,0x80,0x9d,0xab,0xb9,0x68,0x47,0x43,0xd1,0xf7,0x55,0xfa,0xe1,0xea,0x3c,0xed,0x76,0xb0,0x51,0xf1,0x11,0xfe,0x34,0x6,0x83,0xd2,0x4e,0x73,0x1c,0xfc,0x9,0xff,0x28,0xe6,0x49,0xde,0xa8,0xa7,0x20,0x2a,0x4d,0x4a,0xd3,0x2f,0x4f,0xf5,0x1,0xcd,0xa5,0x5,0x5f,0xc6,0xef,0x67,0x8b,0x15,0x61,0xaa,0x82,0x90,0x4c,0x3f,0x1f,0x69,0xa4,0x45,0xa0,0xce,0x1e,0x65,0x23,0x6a,0xcc,0x74,0x9,0x5c,0x2c,0xd0,0x91,0xa2,0x4a,0x42,0xb8,0xd3,0xbd,0x4c,0xe2,0x60,0x2a,0x8d,0x27,0x13,0x92,0xba,0xa3,0x31,0xd5,0xe9,0x6f,0x5f,0x6e,0x77,0x4d,0x7,0x72,0x44,0x81,0x55,0xac,0xf3,0x99,0x36,0x39,0x47,0x70,0x1c,0x1a,0x3d,0xf6,0x9a,0x65,0x2f,0x87,0xe6,0xdb,0x80,0x52,0x48,0x1e,0xc2,0x9b,0x98,0x46,0xa1,0x14,0x24,0x76,0x0,0xfd,0xf,0xde,0x3,0xae,0xf7,0xc8,0x9e,0x21,0xd1,0x93,0x8b,0xa0,0x8a,0x26,0x83,0x7f,0x61,0x1f,0xec,0x68,0x50,0xe0,0x3f,0xf8,0x78,0xe7,0xa9,0x7a,0xe4,0x2d,0x8e,0x56,0xcb,0x8f,0x3a,0x40,0x88,0x9d,0xa6,0x6,0xdd,0xd6,0x79,0x66,0xd7,0x6c,0x38,0xa8,0x25,0xff,0xc1,0x18,0x6d,0xfc,0xef,0x86,0x10,0xb5,0xdc,0x95,0xc6,0x5a,0x12,0x97,0xe8,0x1d,0x67,0x8,0xf2,0x5d,0xeb,0x3c,0xb3,0x34,0xca,0xbc,0xe3,0x41,0x57,0xc5,0xfe,0x28,0xee,0xf5,0xa4,0x45,0xf9,0x62,0xea,0x20,0xe5,0x5,0xbe,0x96,0x1,0x75,0x2b,0xb,0x84,0x58,0x51,0xb4,0x7d,0xb0,0x71,0x37,0xda,0xa,0x5e,0xc7,0x3e,0x59,0xe1,0x15,0x3b,0x5b,0x11,0x4b,0xd9,0xb1,0x73,0x9f,0xd2,0xfb,0x22,0xf4,0x9c,0xdf,0x19,0x17,0x1b,0x90,0xc3,0xa7,0xc9,0x16,0xe,0x30,0xf1,0xed,0xaa,0x54,0x6b,0x33,0x7b,0x2,0x2e,0xb9,0xcd,0x4e,0x63,0x8c,0x85,0x82,0xbb,0xb6,0xd4,0x69,0x4,0x32,0xc4,0x35,0xcf,0xce,0x94,0x89,0x7e,0x23,0x7c,0x53,0xbf,0xad,0xc,0x43,0xf0,0xfa,0xd,0xd8,0xaf,0xab,0xc0,0xb7,0xb2,0xa5,0x29,0x4f,0x64,0x49,0x8e,0x49,0x96,0x26,0xc,0xdf,0x91,0xe,0x9,0xf5,0x50,0xfc,0x1e,0x9a,0x69,0x17,0x57,0xe8,0xbe,0x81,0xd6,0xfd,0xe5,0xa7,0x8b,0x76,0x0,0x52,0xd8,0x75,0xa8,0x79,0xf0,0x99,0x8a,0x1b,0xe3,0xaa,0xc3,0x66,0xde,0x4e,0x1a,0xa1,0x6e,0xb7,0x89,0x53,0x70,0xd0,0xeb,0xfe,0x10,0xf,0xa0,0xab,0x20,0xf8,0x5b,0x92,0x36,0x4c,0xf9,0xbd,0x19,0x9f,0xa3,0x47,0x3b,0x1,0x18,0x29,0x51,0xfb,0x5c,0x16,0xd5,0xcc,0xe4,0x65,0xce,0x34,0x3c,0xd4,0x94,0x3a,0xcb,0xa5,0x7f,0x2,0xba,0x1c,0xe7,0xa6,0x5a,0x2a,0xed,0xb4,0x68,0x3e,0x62,0xd7,0x30,0xee,0xf1,0x59,0x13,0xec,0x24,0xf6,0xad,0x90,0x6,0x31,0x4f,0x40,0x80,0x4b,0x6c,0x6a,0xf7,0x32,0x4,0x71,0xef,0x85,0xda,0x23,0xfa,0x15,0x38,0xbb,0xc0,0xcd,0xf4,0xf3,0x45,0x1d,0x22,0xdc,0xcf,0x58,0x74,0xd,0x60,0xbf,0xd1,0xb5,0x9b,0x87,0x46,0x78,0xa9,0xea,0x82,0x54,0xe6,0x6d,0x61,0x6f,0xd3,0xc4,0xc1,0xb6,0x3f,0x12,0x39,0x5f,0x8c,0x86,0x35,0x7a,0xdd,0xd9,0xae,0x7b,0x55,0x8,0xff,0xe2,0xdb,0xc9,0x25,0xa,0x44,0x72,0x1f,0xa2,0xb8,0xb9,0x43,0xb2,0x14,0x8f,0x33,0xd2,0x73,0x93,0x56,0x9c,0xb3,0x21,0x37,0x95,0x83,0x98,0x5e,0x88,0x4a,0x9d,0x2b,0x84,0xca,0xbc,0x42,0xc5,0xe1,0x64,0x2c,0xb0,0x7e,0x11,0x6b,0x9e,0xc7,0xaf,0x3d,0x67,0x8d,0xa4,0xe9,0x5,0x2f,0x48,0xb1,0x28,0x2d,0x4d,0x63,0x97,0xc6,0xb,0xc2,0x27,0x7c,0xac,0x41,0x7,0x3,0x77,0xe0,0xc8,0x2e,0xf2,0x7d,0x5d,0xa4,0x6,0x20,0xb2,0xcd,0x1b,0x10,0xb,0xa0,0x41,0x87,0x1c,0xc5,0xf,0xe0,0x0,0xbf,0x23,0x72,0xf7,0xf8,0xd,0xed,0x82,0xb8,0x17,0xd9,0xe,0xd1,0x56,0x59,0x2f,0x22,0xbb,0xbc,0xdb,0xf0,0x4,0xbe,0xde,0xae,0xf4,0x54,0x3c,0x7a,0x96,0x1e,0x37,0x73,0x5b,0x90,0xe4,0xee,0xce,0xbd,0x61,0x51,0xb4,0x55,0x98,0xd2,0x94,0xef,0x3f,0xb1,0x4f,0xd6,0x8e,0xe7,0x9e,0x5c,0xcb,0xab,0x28,0x69,0x86,0x67,0x60,0x53,0x5e,0x11,0xc7,0x3a,0x79,0xf2,0xfc,0x75,0xfe,0x42,0x26,0xf3,0x2c,0xd5,0xeb,0x8,0x14,0xa6,0xe9,0x1f,0x15,0x3d,0xe8,0x4e,0x4a,0x52,0x25,0x40,0x57,0xaa,0xcc,0xac,0x81,0x8c,0x31,0xd7,0xe1,0xd0,0x21,0x2b,0x2a,0x6c,0x71,0xc6,0x9b,0xb6,0x99,0x48,0x5a,0xcf,0x85,0xc2,0x68,0x77,0xf6,0x46,0x5f,0x30,0xd4,0x8a,0xc,0x8b,0xba,0xa8,0x92,0x29,0x8f,0xec,0x91,0xc9,0xb9,0x74,0x35,0xaf,0x47,0x5d,0xa7,0x58,0x36,0x7,0xa9,0x80,0x7f,0x62,0xca,0x3e,0x3,0xb7,0x65,0xfb,0xad,0x7e,0x27,0xa3,0x7d,0xf1,0x44,0x97,0xe2,0x64,0xa1,0x49,0xb0,0x7c,0x16,0xdc,0xd3,0x95,0xa2,0xff,0xf9,0x13,0xd8,0xc3,0x6f,0x9a,0x66,0xfa,0x84,0x8d,0x9,0x5,0xb5,0x1d,0xda,0x2,0x9d,0x9f,0x4c,0x93,0xc1,0x18,0xe5,0x3b,0xea,0x4b,0xe6,0x2d,0x12,0xc4,0x7b,0x76,0x34,0x45,0x6e,0x89,0x32,0x4d,0xdd,0x1a,0xc0,0xfd,0x24,0x19,0x88,0x63,0xa,0x50,0xf5,0x70,0x39,0xc8,0x1,0xb3,0x6b,0x6a,0x2e,0xa5,0xdf,0x78,0x6d,0xe3,0x43,0x33,0x38,0x83,0x9c,0x6f,0x93,0x66,0xca,0x0,0x84,0x8d,0xf3,0xd3,0x14,0xbc,0xc,0x45,0x96,0x94,0xb,0xec,0x11,0xc8,0x9a,0xef,0x42,0xe3,0x32,0x72,0xcd,0x1b,0x24,0x67,0x4c,0x3d,0x7f,0xd4,0x44,0x3b,0x80,0x2d,0xf4,0xc9,0x13,0x3,0x6a,0x81,0x10,0x30,0x79,0xfc,0x59,0x62,0xba,0x8,0xc1,0xd6,0xac,0x27,0x63,0x4a,0xea,0x64,0x71,0x95,0x8a,0x31,0x3a,0x61,0xcb,0x8c,0xc6,0x56,0x4f,0xff,0x7e,0x5,0x83,0xdd,0x39,0x9b,0xa1,0xb3,0x82,0x98,0xe5,0x86,0x20,0x3c,0x7d,0xb0,0xc0,0xae,0x54,0x4e,0xa6,0xa0,0xe,0x3f,0x51,0xc3,0x6b,0x76,0x89,0x6c,0xbe,0xa,0x37,0x2e,0x77,0xa4,0xf2,0x4d,0xf8,0x74,0xaa,0xa8,0x6d,0xeb,0x9e,0x1f,0x75,0xb9,0x40,0xab,0x9c,0xda,0xd5,0xd1,0x1a,0xf0,0xf6,0x87,0xdf,0x46,0xb8,0xc2,0x55,0x97,0xee,0x8f,0x60,0x21,0xa2,0x57,0x5a,0x69,0x6e,0x70,0x33,0xce,0x18,0xf7,0x7c,0xf5,0xfb,0x25,0xfa,0x2f,0x4b,0x1d,0x1,0xe2,0xdc,0x1c,0x16,0xe0,0xaf,0x43,0x47,0xe1,0x34,0x5e,0x49,0x2c,0x5b,0x88,0xa5,0xc5,0xa3,0xe8,0xde,0x38,0x85,0x23,0x22,0x28,0xd9,0x92,0xcf,0x78,0x65,0x53,0x41,0x90,0xbf,0xbb,0x29,0xf,0xad,0x2,0x19,0x12,0xc4,0x15,0x8e,0x48,0xa9,0x9,0xe9,0x6,0xcc,0xfe,0x7b,0x2a,0xb6,0x8b,0xe4,0x4,0xf1,0x7,0xd0,0x1e,0xb1,0x26,0x50,0x5f,0xd8,0xd2,0xb5,0xb2,0x2b,0xd7,0xb7,0xd,0xf9,0x35,0x5d,0xfd,0xa7,0x3e,0x17,0x9f,0x73,0xed,0x99,0x52,0x7a,0x68,0xb4,0xc7,0xe7,0x91,0x5c,0xbd,0x58,0x36,0xe6,0x9d,0xdb,0x96,0x30,0x88,0xf5,0xa0,0xd0,0x2c,0x6d,0x5e,0xb6,0xbe,0x44,0x2f,0x41,0xb0,0x1e,0x9c,0xd6,0x71,0xdb,0xef,0x6e,0x46,0x5f,0xcd,0x29,0x15,0x93,0xa3,0x92,0x8b,0xb1,0xfb,0x8e,0xb8,0x7d,0xa9,0x50,0xf,0x65,0xca,0xc5,0xbb,0x8c,0xe0,0xe6,0xc1,0xa,0x66,0x99,0xd3,0x7b,0x1a,0x27,0x7c,0xae,0xb4,0xe2,0x3e,0x67,0x64,0xba,0x5d,0xe8,0xd8,0x8a,0xfc,0x1,0xf3,0x22,0xff,0x52,0xb,0x34,0x62,0xdd,0x2d,0x6f,0x77,0x5c,0x76,0xda,0x7f,0x83,0x9d,0xe3,0x10,0x94,0xac,0x1c,0xc3,0x4,0x84,0x1b,0x55,0x86,0x18,0xd1,0x72,0xaa,0x37,0x73,0xc6,0xbc,0x74,0x61,0x5a,0xfa,0x21,0x2a,0x85,0x9a,0x2b,0x90,0xc4,0x54,0xd9,0x3,0x3d,0xe4,0x91,0x0,0x13,0x7a,0xec,0x49,0x20,0x69,0x3a,0xa6,0xee,0x6b,0x14,0xe1,0x9b,0xf4,0xe,0xa1,0x17,0xc0,0x4f,0xc8,0x36,0x40,0x1f,0xbd,0xab,0x39,0x2,0xd4,0x12,0x9,0x58,0xb9,0x5,0x9e,0x16,0xdc,0x19,0xf9,0x42,0x6a,0xfd,0x89,0xd7,0xf7,0x78,0xa4,0xad,0x48,0x81,0x4c,0x8d,0xcb,0x26,0xf6,0xa2,0x3b,0xc2,0xa5,0x1d,0xe9,0xc7,0xa7,0xed,0xb7,0x25,0x4d,0x8f,0x63,0x2e,0x7,0xde,0x8,0x60,0x23,0xe5,0xeb,0xe7,0x6c,0x3f,0x5b,0x35,0xea,0xf2,0xcc,0xd,0x11,0x56,0xa8,0x97,0xcf,0x87,0xfe,0xd2,0x45,0x31,0xb2,0x9f,0x70,0x79,0x7e,0x47,0x4a,0x28,0x95,0xf8,0xce,0x38,0xc9,0x33,0x32,0x68,0x75,0x82,0xdf,0x80,0xaf,0x43,0x51,0xf0,0xbf,0xc,0x6,0xf1,0x24,0x53,0x57,0x3c,0x4b,0x4e,0x59,0xd5,0xb3,0x98,0xb5,0x81,0x46,0x99,0x29,0x3,0xd0,0x9e,0x1,0x6,0xfa,0x5f,0xf3,0x11,0x95,0x66,0x18,0x58,0xe7,0xb1,0x8e,0xd9,0xf2,0xea,0xa8,0x84,0x79,0xf,0x5d,0xd7,0x7a,0xa7,0x76,0xff,0x96,0x85,0x14,0xec,0xa5,0xcc,0x69,0xd1,0x41,0x15,0xae,0x61,0xb8,0x86,0x5c,0x7f,0xdf,0xe4,0xf1,0x1f,0x0,0xaf,0xa4,0x2f,0xf7,0x54,0x9d,0x39,0x43,0xf6,0xb2,0x16,0x90,0xac,0x48,0x34,0xe,0x17,0x26,0x5e,0xf4,0x53,0x19,0xda,0xc3,0xeb,0x6a,0xc1,0x3b,0x33,0xdb,0x9b,0x35,0xc4,0xaa,0x70,0xd,0xb5,0x13,0xe8,0xa9,0x55,0x25,0xe2,0xbb,0x67,0x31,0x6d,0xd8,0x3f,0xe1,0xfe,0x56,0x1c,0xe3,0x2b,0xf9,0xa2,0x9f,0x9,0x3e,0x40,0x4f,0x8f,0x44,0x63,0x65,0xf8,0x3d,0xb,0x7e,0xe0,0x8a,0xd5,0x2c,0xf5,0x1a,0x37,0xb4,0xcf,0xc2,0xfb,0xfc,0x4a,0x12,0x2d,0xd3,0xc0,0x57,0x7b,0x2,0x6f,0xb0,0xde,0xba,0x94,0x88,0x49,0x77,0xa6,0xe5,0x8d,0x5b,0xe9,0x62,0x6e,0x60,0xdc,0xcb,0xce,0xb9,0x30,0x1d,0x36,0x50,0x83,0x89,0x3a,0x75,0xd2,0xd6,0xa1,0x74,0x5a,0x7,0xf0,0xed,0xd4,0xc6,0x2a,0x5,0x4b,0x7d,0x10,0xad,0xb7,0xb6,0x4c,0xbd,0x1b,0x80,0x3c,0xdd,0x7c,0x9c,0x59,0x93,0xbc,0x2e,0x38,0x9a,0x8c,0x97,0x51,0x87,0x45,0x92,0x24,0x8b,0xc5,0xb3,0x4d,0xca,0xee,0x6b,0x23,0xbf,0x71,0x1e,0x64,0x91,0xc8,0xa0,0x32,0x68,0x82,0xab,0xe6,0xa,0x20,0x47,0xbe,0x27,0x22,0x42,0x6c,0x98,0xc9,0x4,0xcd,0x28,0x73,0xa3,0x4e,0x8,0xc,0x78,0xef,0xc7,0x21,0xfd,0x72,0x52,0xdf,0x7d,0x5b,0xc9,0xb6,0x60,0x6b,0x70,0xdb,0x3a,0xfc,0x67,0xbe,0x74,0x9b,0x7b,0xc4,0x58,0x9,0x8c,0x83,0x76,0x96,0xf9,0xc3,0x6c,0xa2,0x75,0xaa,0x2d,0x22,0x54,0x59,0xc0,0xc7,0xa0,0x8b,0x7f,0xc5,0xa5,0xd5,0x8f,0x2f,0x47,0x1,0xed,0x65,0x4c,0x8,0x20,0xeb,0x9f,0x95,0xb5,0xc6,0x1a,0x2a,0xcf,0x2e,0xe3,0xa9,0xef,0x94,0x44,0xca,0x34,0xad,0xf5,0x9c,0xe5,0x27,0xb0,0xd0,0x53,0x12,0xfd,0x1c,0x1b,0x28,0x25,0x6a,0xbc,0x41,0x2,0x89,0x87,0xe,0x85,0x39,0x5d,0x88,0x57,0xae,0x90,0x73,0x6f,0xdd,0x92,0x64,0x6e,0x46,0x93,0x35,0x31,0x29,0x5e,0x3b,0x2c,0xd1,0xb7,0xd7,0xfa,0xf7,0x4a,0xac,0x9a,0xab,0x5a,0x50,0x51,0x17,0xa,0xbd,0xe0,0xcd,0xe2,0x33,0x21,0xb4,0xfe,0xb9,0x13,0xc,0x8d,0x3d,0x24,0x4b,0xaf,0xf1,0x77,0xf0,0xc1,0xd3,0xe9,0x52,0xf4,0x97,0xea,0xb2,0xc2,0xf,0x4e,0xd4,0x3c,0x26,0xdc,0x23,0x4d,0x7c,0xd2,0xfb,0x4,0x19,0xb1,0x45,0x78,0xcc,0x1e,0x80,0xd6,0x5,0x5c,0xd8,0x6,0x8a,0x3f,0xec,0x99,0x1f,0xda,0x32,0xcb,0x7,0x6d,0xa7,0xa8,0xee,0xd9,0x84,0x82,0x68,0xa3,0xb8,0x14,0xe1,0x1d,0x81,0xff,0xf6,0x72,0x7e,0xce,0x66,0xa1,0x79,0xe6,0xe4,0x37,0xe8,0xba,0x63,0x9e,0x40,0x91,0x30,0x9d,0x56,0x69,0xbf,0x0,0xd,0x4f,0x3e,0x15,0xf2,0x49,0x36,0xa6,0x61,0xbb,0x86,0x5f,0x62,0xf3,0x18,0x71,0x2b,0x8e,0xb,0x42,0xb3,0x7a,0xc8,0x10,0x11,0x55,0xde,0xa4,0x3,0x16,0x98,0x38,0x48,0x43,0xf8,0xe7,0x11,0xed,0x18,0xb4,0x7e,0xfa,0xf3,0x8d,0xad,0x6a,0xc2,0x72,0x3b,0xe8,0xea,0x75,0x92,0x6f,0xb6,0xe4,0x91,0x3c,0x9d,0x4c,0xc,0xb3,0x65,0x5a,0x19,0x32,0x43,0x1,0xaa,0x3a,0x45,0xfe,0x53,0x8a,0xb7,0x6d,0x7d,0x14,0xff,0x6e,0x4e,0x7,0x82,0x27,0x1c,0xc4,0x76,0xbf,0xa8,0xd2,0x59,0x1d,0x34,0x94,0x1a,0xf,0xeb,0xf4,0x4f,0x44,0x1f,0xb5,0xf2,0xb8,0x28,0x31,0x81,0x0,0x7b,0xfd,0xa3,0x47,0xe5,0xdf,0xcd,0xfc,0xe6,0x9b,0xf8,0x5e,0x42,0x3,0xce,0xbe,0xd0,0x2a,0x30,0xd8,0xde,0x70,0x41,0x2f,0xbd,0x15,0x8,0xf7,0x12,0xc0,0x74,0x49,0x50,0x9,0xda,0x8c,0x33,0x86,0xa,0xd4,0xd6,0x13,0x95,0xe0,0x61,0xb,0xc7,0x3e,0xd5,0xe2,0xa4,0xab,0xaf,0x64,0x8e,0x88,0xf9,0xa1,0x38,0xc6,0xbc,0x2b,0xe9,0x90,0xf1,0x1e,0x5f,0xdc,0x29,0x24,0x17,0x10,0xe,0x4d,0xb0,0x66,0x89,0x2,0x8b,0x85,0x5b,0x84,0x51,0x35,0x63,0x7f,0x9c,0xa2,0x62,0x68,0x9e,0xd1,0x3d,0x39,0x9f,0x4a,0x20,0x37,0x52,0x25,0xf6,0xdb,0xbb,0xdd,0x96,0xa0,0x46,0xfb,0x5d,0x5c,0x56,0xa7,0xec,0xb1,0x6,0x1b,0x2d,0x3f,0xee,0xc1,0xc5,0x57,0x71,0xd3,0x7c,0x67,0x6c,0xba,0x6b,0xf0,0x36,0xd7,0x77,0x97,0x78,0xb2,0x80,0x5,0x54,0xc8,0xf5,0x9a,0x7a,0x8f,0x79,0xae,0x60,0xcf,0x58,0x2e,0x21,0xa6,0xac,0xcb,0xcc,0x55,0xa9,0xc9,0x73,0x87,0x4b,0x23,0x83,0xd9,0x40,0x69,0xe1,0xd,0x93,0xe7,0x2c,0x4,0x16,0xca,0xb9,0x99,0xef,0x22,0xc3,0x26,0x48,0x98,0xe3,0xa5,0x81,0x27,0x9f,0xe2,0xb7,0xc7,0x3b,0x7a,0x49,0xa1,0xa9,0x53,0x38,0x56,0xa7,0x9,0x8b,0xc1,0x66,0xcc,0xf8,0x79,0x51,0x48,0xda,0x3e,0x2,0x84,0xb4,0x85,0x9c,0xa6,0xec,0x99,0xaf,0x6a,0xbe,0x47,0x18,0x72,0xdd,0xd2,0xac,0x9b,0xf7,0xf1,0xd6,0x1d,0x71,0x8e,0xc4,0x6c,0xd,0x30,0x6b,0xb9,0xa3,0xf5,0x29,0x70,0x73,0xad,0x4a,0xff,0xcf,0x9d,0xeb,0x16,0xe4,0x35,0xe8,0x45,0x1c,0x23,0x75,0xca,0x3a,0x78,0x60,0x4b,0x61,0xcd,0x68,0x94,0x8a,0xf4,0x7,0x83,0xbb,0xb,0xd4,0x13,0x93,0xc,0x42,0x91,0xf,0xc6,0x65,0xbd,0x20,0x64,0xd1,0xab,0x63,0x76,0x4d,0xed,0x36,0x3d,0x92,0x8d,0x3c,0x87,0xd3,0x43,0xce,0x14,0x2a,0xf3,0x86,0x17,0x4,0x6d,0xfb,0x5e,0x37,0x7e,0x2d,0xb1,0xf9,0x7c,0x3,0xf6,0x8c,0xe3,0x19,0xb6,0x0,0xd7,0x58,0xdf,0x21,0x57,0x8,0xaa,0xbc,0x2e,0x15,0xc3,0x5,0x1e,0x4f,0xae,0x12,0x89,0x1,0xcb,0xe,0xee,0x55,0x7d,0xea,0x9e,0xc0,0xe0,0x6f,0xb3,0xba,0x5f,0x96,0x5b,0x9a,0xdc,0x31,0xe1,0xb5,0x2c,0xd5,0xb2,0xa,0xfe,0xd0,0xb0,0xfa,0xa0,0x32,0x5a,0x98,0x74,0x39,0x10,0xc9,0x1f,0x77,0x34,0xf2,0xfc,0xf0,0x7b,0x28,0x4c,0x22,0xfd,0xe5,0xdb,0x1a,0x6,0x41,0xbf,0x80,0xd8,0x90,0xe9,0xc5,0x52,0x26,0xa5,0x88,0x67,0x6e,0x69,0x50,0x5d,0x3f,0x82,0xef,0xd9,0x2f,0xde,0x24,0x25,0x7f,0x62,0x95,0xc8,0x97,0xb8,0x54,0x46,0xe7,0xa8,0x1b,0x11,0xe6,0x33,0x44,0x40,0x2b,0x5c,0x59,0x4e,0xc2,0xa4,0x8f,0xa2,0xe4,0x23,0xfc,0x4c,0x66,0xb5,0xfb,0x64,0x63,0x9f,0x3a,0x96,0x74,0xf0,0x3,0x7d,0x3d,0x82,0xd4,0xeb,0xbc,0x97,0x8f,0xcd,0xe1,0x1c,0x6a,0x38,0xb2,0x1f,0xc2,0x13,0x9a,0xf3,0xe0,0x71,0x89,0xc0,0xa9,0xc,0xb4,0x24,0x70,0xcb,0x4,0xdd,0xe3,0x39,0x1a,0xba,0x81,0x94,0x7a,0x65,0xca,0xc1,0x4a,0x92,0x31,0xf8,0x5c,0x26,0x93,0xd7,0x73,0xf5,0xc9,0x2d,0x51,0x6b,0x72,0x43,0x3b,0x91,0x36,0x7c,0xbf,0xa6,0x8e,0xf,0xa4,0x5e,0x56,0xbe,0xfe,0x50,0xa1,0xcf,0x15,0x68,0xd0,0x76,0x8d,0xcc,0x30,0x40,0x87,0xde,0x2,0x54,0x8,0xbd,0x5a,0x84,0x9b,0x33,0x79,0x86,0x4e,0x9c,0xc7,0xfa,0x6c,0x5b,0x25,0x2a,0xea,0x21,0x6,0x0,0x9d,0x58,0x6e,0x1b,0x85,0xef,0xb0,0x49,0x90,0x7f,0x52,0xd1,0xaa,0xa7,0x9e,0x99,0x2f,0x77,0x48,0xb6,0xa5,0x32,0x1e,0x67,0xa,0xd5,0xbb,0xdf,0xf1,0xed,0x2c,0x12,0xc3,0x80,0xe8,0x3e,0x8c,0x7,0xb,0x5,0xb9,0xae,0xab,0xdc,0x55,0x78,0x53,0x35,0xe6,0xec,0x5f,0x10,0xb7,0xb3,0xc4,0x11,0x3f,0x62,0x95,0x88,0xb1,0xa3,0x4f,0x60,0x2e,0x18,0x75,0xc8,0xd2,0xd3,0x29,0xd8,0x7e,0xe5,0x59,0xb8,0x19,0xf9,0x3c,0xf6,0xd9,0x4b,0x5d,0xff,0xe9,0xf2,0x34,0xe2,0x20,0xf7,0x41,0xee,0xa0,0xd6,0x28,0xaf,0x8b,0xe,0x46,0xda,0x14,0x7b,0x1,0xf4,0xad,0xc5,0x57,0xd,0xe7,0xce,0x83,0x6f,0x45,0x22,0xdb,0x42,0x47,0x27,0x9,0xfd,0xac,0x61,0xa8,0x4d,0x16,0xc6,0x2b,0x6d,0x69,0x1d,0x8a,0xa2,0x44,0x98,0x17,0x37,0x71,0x7b,0x36,0x27,0xc5,0xa8,0x68,0x97,0x52,0x8d,0x62,0xdc,0xba,0xb8,0xcc,0x24,0x32,0xaf,0x2a,0xfc,0x1d,0x60,0x77,0x6f,0xdf,0x2f,0x61,0x16,0x1e,0x47,0xc,0xfa,0xca,0x44,0xe8,0x57,0xb4,0x1b,0x14,0x5f,0xf6,0xda,0x1,0x91,0x3e,0xa7,0x4a,0xe1,0x33,0xa2,0xe7,0x6e,0x41,0xa3,0xbb,0xd3,0x51,0x3,0xeb,0xf8,0xc8,0x30,0x8b,0xe,0xdb,0x9,0xa6,0x67,0x80,0xd5,0x9a,0x4f,0x3b,0x95,0xe4,0x9b,0x74,0x18,0xe0,0xde,0x2b,0x88,0xf3,0x83,0xaa,0x21,0x59,0x15,0x96,0xa5,0x5b,0x85,0x75,0x58,0xbd,0x54,0x39,0xf1,0xf2,0x84,0x7f,0x3d,0x3f,0x9e,0x22,0x5e,0x23,0x43,0x93,0x49,0x20,0x25,0x17,0xfb,0x3c,0xa9,0x76,0xc1,0x4,0x4d,0xa,0xff,0x65,0x50,0x35,0xc6,0x4e,0xe3,0x38,0x92,0x5,0xcb,0xc7,0x7,0xd7,0x29,0x6b,0x5c,0xd,0x56,0xdd,0x26,0x82,0x9f,0xbc,0x70,0xc2,0xb7,0xc3,0xf5,0xc0,0x42,0x90,0x2c,0x5a,0xbe,0xe9,0x6,0x2,0x7a,0xb1,0x81,0x55,0x98,0xcd,0xd8,0xfe,0x46,0x12,0x73,0xec,0x7e,0x19,0xb5,0x4c,0xc4,0x28,0xc9,0xb9,0x10,0x87,0x6a,0xcf,0x8,0x6d,0x45,0xf4,0x6c,0xf,0x48,0x37,0xef,0xee,0x79,0x2d,0x94,0x8a,0xf9,0x31,0xb0,0x8e,0x9c,0x69,0xfd,0x40,0x7c,0x1a,0x1c,0xb2,0xe5,0xe2,0x13,0xe6,0x8c,0xac,0xb6,0xd6,0x72,0x64,0x63,0xd0,0xea,0x53,0x7d,0x89,0xae,0x0,0x1f,0xab,0xed,0x34,0x11,0xa0,0x86,0xb,0x8f,0xd2,0x3a,0x99,0xa1,0x4b,0xd4,0xf7,0xbf,0xf0,0x66,0x2e,0xce,0x9d,0xd9,0x5d,0xd1,0xad,0xb3,0x78,0xa4,0x4e,0xb2,0x47,0xeb,0x21,0xa5,0xac,0xd2,0xf2,0x35,0x9d,0x2d,0x64,0xb7,0xb5,0x2a,0xcd,0x30,0xe9,0xbb,0xce,0x63,0xc2,0x13,0x53,0xec,0x3a,0x5,0x46,0x6d,0x1c,0x5e,0xf5,0x65,0x1a,0xa1,0xc,0xd5,0xe8,0x32,0x22,0x4b,0xa0,0x31,0x11,0x58,0xdd,0x78,0x43,0x9b,0x29,0xe0,0xf7,0x8d,0x6,0x42,0x6b,0xcb,0x45,0x50,0xb4,0xab,0x10,0x1b,0x40,0xea,0xad,0xe7,0x77,0x6e,0xde,0x5f,0x24,0xa2,0xfc,0x18,0xba,0x80,0x92,0xa3,0xb9,0xc4,0xa7,0x1,0x1d,0x5c,0x91,0xe1,0x8f,0x75,0x6f,0x87,0x81,0x2f,0x1e,0x70,0xe2,0x4a,0x57,0xa8,0x4d,0x9f,0x2b,0x16,0xf,0x56,0x85,0xd3,0x6c,0xd9,0x55,0x8b,0x89,0x4c,0xca,0xbf,0x3e,0x54,0x98,0x61,0x8a,0xbd,0xfb,0xf4,0xf0,0x3b,0xd1,0xd7,0xa6,0xfe,0x67,0x99,0xe3,0x74,0xb6,0xcf,0xae,0x41,0x0,0x83,0x76,0x7b,0x48,0x4f,0x51,0x12,0xef,0x39,0xd6,0x5d,0xd4,0xda,0x4,0xdb,0xe,0x6a,0x3c,0x20,0xc3,0xfd,0x3d,0x37,0xc1,0x8e,0x62,0x66,0xc0,0x15,0x7f,0x68,0xd,0x7a,0xa9,0x84,0xe4,0x82,0xc9,0xff,0x19,0xa4,0x2,0x3,0x9,0xf8,0xb3,0xee,0x59,0x44,0x72,0x60,0xb1,0x9e,0x9a,0x8,0x2e,0x8c,0x23,0x38,0x33,0xe5,0x34,0xaf,0x69,0x88,0x28,0xc8,0x27,0xed,0xdf,0x5a,0xb,0x97,0xaa,0xc5,0x25,0xd0,0x26,0xf1,0x3f,0x90,0x7,0x71,0x7e,0xf9,0xf3,0x94,0x93,0xa,0xf6,0x96,0x2c,0xd8,0x14,0x7c,0xdc,0x86,0x1f,0x36,0xbe,0x52,0xcc,0xb8,0x73,0x5b,0x49,0x95,0xe6,0xc6,0xb0,0x7d,0x9c,0x79,0x17,0xc7,0xbc,0xfa,0x2d,0x8b,0x33,0x4e,0x1b,0x6b,0x97,0xd6,0xe5,0xd,0x5,0xff,0x94,0xfa,0xb,0xa5,0x27,0x6d,0xca,0x60,0x54,0xd5,0xfd,0xe4,0x76,0x92,0xae,0x28,0x18,0x29,0x30,0xa,0x40,0x35,0x3,0xc6,0x12,0xeb,0xb4,0xde,0x71,0x7e,0x0,0x37,0x5b,0x5d,0x7a,0xb1,0xdd,0x22,0x68,0xc0,0xa1,0x9c,0xc7,0x15,0xf,0x59,0x85,0xdc,0xdf,0x1,0xe6,0x53,0x63,0x31,0x47,0xba,0x48,0x99,0x44,0xe9,0xb0,0x8f,0xd9,0x66,0x96,0xd4,0xcc,0xe7,0xcd,0x61,0xc4,0x38,0x26,0x58,0xab,0x2f,0x17,0xa7,0x78,0xbf,0x3f,0xa0,0xee,0x3d,0xa3,0x6a,0xc9,0x11,0x8c,0xc8,0x7d,0x7,0xcf,0xda,0xe1,0x41,0x9a,0x91,0x3e,0x21,0x90,0x2b,0x7f,0xef,0x62,0xb8,0x86,0x5f,0x2a,0xbb,0xa8,0xc1,0x57,0xf2,0x9b,0xd2,0x81,0x1d,0x55,0xd0,0xaf,0x5a,0x20,0x4f,0xb5,0x1a,0xac,0x7b,0xf4,0x73,0x8d,0xfb,0xa4,0x6,0x10,0x82,0xb9,0x6f,0xa9,0xb2,0xe3,0x2,0xbe,0x25,0xad,0x67,0xa2,0x42,0xf9,0xd1,0x46,0x32,0x6c,0x4c,0xc3,0x1f,0x16,0xf3,0x3a,0xf7,0x36,0x70,0x9d,0x4d,0x19,0x80,0x79,0x1e,0xa6,0x52,0x7c,0x1c,0x56,0xc,0x9e,0xf6,0x34,0xd8,0x95,0xbc,0x65,0xb3,0xdb,0x98,0x5e,0x50,0x5c,0xd7,0x84,0xe0,0x8e,0x51,0x49,0x77,0xb6,0xaa,0xed,0x13,0x2c,0x74,0x3c,0x45,0x69,0xfe,0x8a,0x9,0x24,0xcb,0xc2,0xc5,0xfc,0xf1,0x93,0x2e,0x43,0x75,0x83,0x72,0x88,0x89,0xd3,0xce,0x39,0x64,0x3b,0x14,0xf8,0xea,0x4b,0x4,0xb7,0xbd,0x4a,0x9f,0xe8,0xec,0x87,0xf0,0xf5,0xe2,0x6e,0x8,0x23,0xe,0xaf,0xf8,0x59,0xa8,0xc6,0xac,0xfc,0xe6,0x38,0x9c,0x29,0x2e,0xa0,0x9a,0x37,0x19,0x33,0xa4,0xde,0x67,0xb3,0xc0,0xfa,0x7b,0xd6,0xc4,0xb7,0x23,0x36,0xa,0x56,0x50,0x9e,0x1,0xf5,0xbd,0x2c,0xba,0x84,0x64,0x93,0xd7,0x9b,0x17,0xf9,0xe7,0xee,0x32,0xe4,0xc3,0x55,0x4a,0xa7,0xe1,0x5b,0x7e,0xcc,0xea,0xc5,0x41,0x70,0x98,0xeb,0xd3,0x3a,0xf6,0xfd,0x88,0xbf,0x89,0x8,0x8a,0x66,0xda,0xf4,0x10,0x4c,0xa3,0x30,0x48,0xd8,0x72,0x81,0x4f,0x4d,0x8d,0x63,0x9d,0x16,0x21,0x1c,0x47,0x6c,0x97,0xd5,0xc8,0x83,0x62,0x5a,0xf3,0x20,0xcd,0x42,0x85,0xf,0x27,0x26,0xbe,0x2,0x45,0xa5,0x7d,0xcb,0xfb,0xd2,0x1f,0x92,0x87,0xc,0xb4,0x39,0x58,0x34,0xa6,0xff,0x53,0x8e,0x6,0xc2,0x61,0xc9,0xb9,0x6b,0xe0,0x5f,0x13,0xef,0xdc,0xcf,0x11,0x12,0x3f,0x1e,0xf7,0x43,0x91,0x2d,0xec,0x9f,0xca,0x5,0xd0,0xdf,0x71,0xd1,0xae,0x52,0x3e,0x94,0xaa,0xb1,0x5d,0xe3,0x76,0x8b,0x3c,0x7,0x4e,0xb5,0x40,0x1a,0x2f,0x8c,0x7f,0xa9,0x4,0xbb,0x73,0xce,0xb8,0x77,0x35,0xd4,0x75,0x14,0x68,0x9,0x69,0x3,0xd9,0x6f,0x6a,0xe5,0x78,0xb6,0x60,0x2a,0x57,0x25,0x3d,0x65,0x95,0x5c,0x2b,0xd,0x54,0xb0,0x46,0x31,0x3b,0x6d,0x7c,0xe2,0x8f,0xdd,0x22,0xc7,0x18,0x96,0x28,0xf2,0xf0,0x6e,0x86,0xe8,0x79,0x24,0xad,0xe9,0xb,0x99,0xf1,0x49,0x1b,0xb2,0xa1,0x7a,0x82,0x44,0xc1,0xe,0x80,0x1d,0xa2,0x51,0xfe,0x15,0x5e,0x90,0xbc,0xdb,0x4b,0xed,0x74,0xab,0x0,0x33,0x91,0xb7,0x25,0x5a,0x8c,0x87,0x9c,0x37,0xd6,0x10,0x8b,0x52,0x98,0x77,0x97,0x28,0xb4,0xe5,0x60,0x6f,0x9a,0x7a,0x15,0x2f,0x80,0x4e,0x99,0x46,0xc1,0xce,0xb8,0xb5,0x2c,0x2b,0x4c,0x67,0x93,0x29,0x49,0x39,0x63,0xc3,0xab,0xed,0x1,0x89,0xa0,0xe4,0xcc,0x7,0x73,0x79,0x59,0x2a,0xf6,0xc6,0x23,0xc2,0xf,0x45,0x3,0x78,0xa8,0x26,0xd8,0x41,0x19,0x70,0x9,0xcb,0x5c,0x3c,0xbf,0xfe,0x11,0xf0,0xf7,0xc4,0xc9,0x86,0x50,0xad,0xee,0x65,0x6b,0xe2,0x69,0xd5,0xb1,0x64,0xbb,0x42,0x7c,0x9f,0x83,0x31,0x7e,0x88,0x82,0xaa,0x7f,0xd9,0xdd,0xc5,0xb2,0xd7,0xc0,0x3d,0x5b,0x3b,0x16,0x1b,0xa6,0x40,0x76,0x47,0xb6,0xbc,0xbd,0xfb,0xe6,0x51,0xc,0x21,0xe,0xdf,0xcd,0x58,0x12,0x55,0xff,0xe0,0x61,0xd1,0xc8,0xa7,0x43,0x1d,0x9b,0x1c,0x2d,0x3f,0x5,0xbe,0x18,0x7b,0x6,0x5e,0x2e,0xe3,0xa2,0x38,0xd0,0xca,0x30,0xcf,0xa1,0x90,0x3e,0x17,0xe8,0xf5,0x5d,0xa9,0x94,0x20,0xf2,0x6c,0x3a,0xe9,0xb0,0x34,0xea,0x66,0xd3,0x0,0x75,0xf3,0x36,0xde,0x27,0xeb,0x81,0x4b,0x44,0x2,0x35,0x68,0x6e,0x84,0x4f,0x54,0xf8,0xd,0xf1,0x6d,0x13,0x1a,0x9e,0x92,0x22,0x8a,0x4d,0x95,0xa,0x8,0xdb,0x4,0x56,0x8f,0x72,0xac,0x7d,0xdc,0x71,0xba,0x85,0x53,0xec,0xe1,0xa3,0xd2,0xf9,0x1e,0xa5,0xda,0x4a,0x8d,0x57,0x6a,0xb3,0x8e,0x1f,0xf4,0x9d,0xc7,0x62,0xe7,0xae,0x5f,0x96,0x24,0xfc,0xfd,0xb9,0x32,0x48,0xef,0xfa,0x74,0xd4,0xa4,0xaf,0x14,0xb,0xb5,0x49,0xbc,0x10,0xda,0x5e,0x57,0x29,0x9,0xce,0x66,0xd6,0x9f,0x4c,0x4e,0xd1,0x36,0xcb,0x12,0x40,0x35,0x98,0x39,0xe8,0xa8,0x17,0xc1,0xfe,0xbd,0x96,0xe7,0xa5,0xe,0x9e,0xe1,0x5a,0xf7,0x2e,0x13,0xc9,0xd9,0xb0,0x5b,0xca,0xea,0xa3,0x26,0x83,0xb8,0x60,0xd2,0x1b,0xc,0x76,0xfd,0xb9,0x90,0x30,0xbe,0xab,0x4f,0x50,0xeb,0xe0,0xbb,0x11,0x56,0x1c,0x8c,0x95,0x25,0xa4,0xdf,0x59,0x7,0xe3,0x41,0x7b,0x69,0x58,0x42,0x3f,0x5c,0xfa,0xe6,0xa7,0x6a,0x1a,0x74,0x8e,0x94,0x7c,0x7a,0xd4,0xe5,0x8b,0x19,0xb1,0xac,0x53,0xb6,0x64,0xd0,0xed,0xf4,0xad,0x7e,0x28,0x97,0x22,0xae,0x70,0x72,0xb7,0x31,0x44,0xc5,0xaf,0x63,0x9a,0x71,0x46,0x0,0xf,0xb,0xc0,0x2a,0x2c,0x5d,0x5,0x9c,0x62,0x18,0x8f,0x4d,0x34,0x55,0xba,0xfb,0x78,0x8d,0x80,0xb3,0xb4,0xaa,0xe9,0x14,0xc2,0x2d,0xa6,0x2f,0x21,0xff,0x20,0xf5,0x91,0xc7,0xdb,0x38,0x6,0xc6,0xcc,0x3a,0x75,0x99,0x9d,0x3b,0xee,0x84,0x93,0xf6,0x81,0x52,0x7f,0x1f,0x79,0x32,0x4,0xe2,0x5f,0xf9,0xf8,0xf2,0x3,0x48,0x15,0xa2,0xbf,0x89,0x9b,0x4a,0x65,0x61,0xf3,0xd5,0x77,0xd8,0xc3,0xc8,0x1e,0xcf,0x54,0x92,0x73,0xd3,0x33,0xdc,0x16,0x24,0xa1,0xf0,0x6c,0x51,0x3e,0xde,0x2b,0xdd,0xa,0xc4,0x6b,0xfc,0x8a,0x85,0x2,0x8,0x6f,0x68,0xf1,0xd,0x6d,0xd7,0x23,0xef,0x87,0x27,0x7d,0xe4,0xcd,0x45,0xa9,0x37,0x43,0x88,0xa0,0xb2,0x6e,0x1d,0x3d,0x4b,0x86,0x67,0x82,0xec,0x3c,0x47,0x1,0x4c,0x62,0xcf,0xf5,0x7b,0x7c,0xc9,0x6d,0xb3,0xa9,0xf9,0x93,0xfd,0xc,0xad,0xfa,0x5,0x3,0x5f,0x63,0x76,0xe2,0x91,0x83,0x2e,0xaf,0x95,0xe6,0x32,0x8b,0xf1,0x66,0x67,0xbb,0xb2,0xac,0x42,0xce,0x82,0xc6,0x31,0xd1,0xef,0x79,0xe8,0xa0,0x54,0xcb,0x86,0xbe,0xcd,0x25,0x14,0x90,0xbf,0x99,0x2b,0xe,0xb4,0xf2,0x1f,0x0,0x96,0xb1,0x1d,0x65,0xf6,0x19,0x45,0xa1,0x8f,0x33,0xdf,0x5d,0xdc,0xea,0xdd,0xa8,0xa3,0x6f,0x9d,0x80,0xc2,0x39,0x12,0x49,0x74,0x43,0xc8,0x36,0xd8,0x18,0x1a,0xd4,0x27,0x8d,0x28,0xf0,0x10,0x57,0xeb,0x73,0x72,0x5a,0xd0,0x17,0x98,0x75,0xa6,0xf,0x37,0xd6,0x53,0xdb,0x6,0xaa,0xf3,0x61,0xd,0x6c,0xe1,0x59,0xd2,0xc7,0x4a,0x87,0xae,0x9e,0xa2,0x4b,0x6a,0x47,0x44,0x9a,0x89,0xba,0x46,0xa,0xb5,0x3e,0xec,0x9c,0x34,0x97,0xff,0xc1,0x6b,0x7,0xfb,0x84,0x24,0x8a,0x85,0x50,0x9f,0xca,0xb9,0x78,0xc4,0x16,0x51,0xfc,0x2a,0xd9,0x7a,0x4f,0x15,0xe0,0x1b,0x52,0x69,0xde,0x23,0xb6,0x8,0xe4,0x3f,0x3a,0x8c,0x56,0x3c,0x5c,0x3d,0x41,0x20,0x81,0x60,0x22,0xed,0x9b,0x26,0xee,0x13,0xe5,0x1,0x58,0x7e,0x9,0xc0,0x30,0x68,0x70,0x2,0x7f,0x35,0xe3,0x2d,0xb0,0xd3,0x3b,0xa5,0xa7,0x7d,0xc3,0x4d,0x92,0x77,0x88,0xda,0xb7,0x29,0x38,0x6e,0x64,0x94,0x11,0xd7,0x2f,0xf4,0xe7,0x4e,0x1c,0xa4,0xcc,0x5e,0xbc,0xf8,0x71,0x2c,0xbd,0x55,0xfe,0x21,0xb8,0x1e,0x8e,0xe9,0xc5,0xb,0x40,0xab,0x4,0xf7,0x48,0xd5,0x5b,0x67,0xa0,0x7f,0xcf,0xe5,0x36,0x78,0xe7,0xe0,0x1c,0xb9,0x15,0xf7,0x73,0x80,0xfe,0xbe,0x1,0x57,0x68,0x3f,0x14,0xc,0x4e,0x62,0x9f,0xe9,0xbb,0x31,0x9c,0x41,0x90,0x19,0x70,0x63,0xf2,0xa,0x43,0x2a,0x8f,0x37,0xa7,0xf3,0x48,0x87,0x5e,0x60,0xba,0x99,0x39,0x2,0x17,0xf9,0xe6,0x49,0x42,0xc9,0x11,0xb2,0x7b,0xdf,0xa5,0x10,0x54,0xf0,0x76,0x4a,0xae,0xd2,0xe8,0xf1,0xc0,0xb8,0x12,0xb5,0xff,0x3c,0x25,0xd,0x8c,0x27,0xdd,0xd5,0x3d,0x7d,0xd3,0x22,0x4c,0x96,0xeb,0x53,0xf5,0xe,0x4f,0xb3,0xc3,0x4,0x5d,0x81,0xd7,0x8b,0x3e,0xd9,0x7,0x18,0xb0,0xfa,0x5,0xcd,0x1f,0x44,0x79,0xef,0xd8,0xa6,0xa9,0x69,0xa2,0x85,0x83,0x1e,0xdb,0xed,0x98,0x6,0x6c,0x33,0xca,0x13,0xfc,0xd1,0x52,0x29,0x24,0x1d,0x1a,0xac,0xf4,0xcb,0x35,0x26,0xb1,0x9d,0xe4,0x89,0x56,0x38,0x5c,0x72,0x6e,0xaf,0x91,0x40,0x3,0x6b,0xbd,0xf,0x84,0x88,0x86,0x3a,0x2d,0x28,0x5f,0xd6,0xfb,0xd0,0xb6,0x65,0x6f,0xdc,0x93,0x34,0x30,0x47,0x92,0xbc,0xe1,0x16,0xb,0x32,0x20,0xcc,0xe3,0xad,0x9b,0xf6,0x4b,0x51,0x50,0xaa,0x5b,0xfd,0x66,0xda,0x3b,0x9a,0x7a,0xbf,0x75,0x5a,0xc8,0xde,0x7c,0x6a,0x71,0xb7,0x61,0xa3,0x74,0xc2,0x6d,0x23,0x55,0xab,0x2c,0x8,0x8d,0xc5,0x59,0x97,0xf8,0x82,0x77,0x2e,0x46,0xd4,0x8e,0x64,0x4d,0x0,0xec,0xc6,0xa1,0x58,0xc1,0xc4,0xa4,0x8a,0x7e,0x2f,0xe2,0x2b,0xce,0x95,0x45,0xa8,0xee,0xea,0x9e,0x9,0x21,0xc7,0x1b,0x94,0xb4,0x9a,0x38,0x1e,0x8c,0xf3,0x25,0x2e,0x35,0x9e,0x7f,0xb9,0x22,0xfb,0x31,0xde,0x3e,0x81,0x1d,0x4c,0xc9,0xc6,0x33,0xd3,0xbc,0x86,0x29,0xe7,0x30,0xef,0x68,0x67,0x11,0x1c,0x85,0x82,0xe5,0xce,0x3a,0x80,0xe0,0x90,0xca,0x6a,0x2,0x44,0xa8,0x20,0x9,0x4d,0x65,0xae,0xda,0xd0,0xf0,0x83,0x5f,0x6f,0x8a,0x6b,0xa6,0xec,0xaa,0xd1,0x1,0x8f,0x71,0xe8,0xb0,0xd9,0xa0,0x62,0xf5,0x95,0x16,0x57,0xb8,0x59,0x5e,0x6d,0x60,0x2f,0xf9,0x4,0x47,0xcc,0xc2,0x4b,0xc0,0x7c,0x18,0xcd,0x12,0xeb,0xd5,0x36,0x2a,0x98,0xd7,0x21,0x2b,0x3,0xd6,0x70,0x74,0x6c,0x1b,0x7e,0x69,0x94,0xf2,0x92,0xbf,0xb2,0xf,0xe9,0xdf,0xee,0x1f,0x15,0x14,0x52,0x4f,0xf8,0xa5,0x88,0xa7,0x76,0x64,0xf1,0xbb,0xfc,0x56,0x49,0xc8,0x78,0x61,0xe,0xea,0xb4,0x32,0xb5,0x84,0x96,0xac,0x17,0xb1,0xd2,0xaf,0xf7,0x87,0x4a,0xb,0x91,0x79,0x63,0x99,0x66,0x8,0x39,0x97,0xbe,0x41,0x5c,0xf4,0x0,0x3d,0x89,0x5b,0xc5,0x93,0x40,0x19,0x9d,0x43,0xcf,0x7a,0xa9,0xdc,0x5a,0x9f,0x77,0x8e,0x42,0x28,0xe2,0xed,0xab,0x9c,0xc1,0xc7,0x2d,0xe6,0xfd,0x51,0xa4,0x58,0xc4,0xba,0xb3,0x37,0x3b,0x8b,0x23,0xe4,0x3c,0xa3,0xa1,0x72,0xad,0xff,0x26,0xdb,0x5,0xd4,0x75,0xd8,0x13,0x2c,0xfa,0x45,0x48,0xa,0x7b,0x50,0xb7,0xc,0x73,0xe3,0x24,0xfe,0xc3,0x1a,0x27,0xb6,0x5d,0x34,0x6e,0xcb,0x4e,0x7,0xf6,0x3f,0x8d,0x55,0x54,0x10,0x9b,0xe1,0x46,0x53,0xdd,0x7d,0xd,0x6,0xbd,0xa2,0x31,0x14,0xae,0xe8,0x5,0x1a,0x8c,0xab,0x9c,0xa4,0xd7,0x3f,0xe,0x8a,0xa5,0x83,0x2b,0xcb,0xf5,0x63,0xf2,0xba,0x4e,0xd1,0x7d,0xa1,0xa8,0xb6,0x58,0xd4,0x98,0xdc,0x34,0xb5,0x8f,0xfc,0x28,0x91,0xeb,0x7c,0x1f,0x19,0x45,0x79,0x6c,0xf8,0x8b,0x99,0xa9,0xb3,0xe3,0x89,0xe7,0x16,0xb7,0xe0,0x56,0x78,0xd5,0xef,0x61,0x66,0xd3,0x77,0xfb,0x43,0xc8,0xdd,0x50,0x9d,0xb4,0x84,0x49,0xc1,0x1c,0xb0,0xe9,0x7b,0x17,0x76,0xca,0xd,0x82,0x6f,0xbc,0x15,0x2d,0xcc,0x32,0xea,0xa,0x4d,0xf1,0x69,0x68,0x40,0xd2,0x2c,0xc2,0x2,0x0,0xce,0x3d,0x97,0x87,0x9a,0xd8,0x23,0x8,0x53,0x6e,0x59,0xc5,0x47,0xc6,0xf0,0xc7,0xb2,0xb9,0x75,0x7,0x7f,0xec,0x3,0x5f,0xbb,0x95,0x29,0x3a,0x9b,0x7a,0x38,0xf7,0x81,0x3c,0xf4,0x25,0x20,0x96,0x4c,0x26,0x46,0x27,0x5b,0x1,0x48,0x73,0xc4,0x39,0xac,0x12,0xfe,0x4b,0xe6,0x30,0xc3,0x60,0x55,0xf,0xfa,0x9f,0x4a,0x85,0xd0,0xa3,0x62,0xde,0xc,0xe5,0xdb,0x71,0x1d,0xe1,0x9e,0x3e,0x90,0x5c,0x10,0xaf,0x24,0xf6,0x86,0x2e,0x8d,0xb8,0x51,0x70,0x5d,0x5e,0x80,0x93,0xa0,0x11,0x5a,0xb1,0x1e,0xed,0x52,0xcf,0x41,0x4f,0xe4,0x3b,0xa2,0x4,0x94,0xf3,0xdf,0xbe,0xd6,0x44,0xa6,0xe2,0x6b,0x36,0xa7,0x8e,0xb,0xcd,0x35,0xee,0xfd,0x54,0x6,0x6d,0x92,0xc0,0xad,0x33,0x22,0x74,0x7e,0xc9,0x21,0xbf,0xbd,0x67,0xd9,0x57,0x88,0x72,0x6a,0x18,0x65,0x2f,0xf9,0x37,0xaa,0x9,0xff,0x1b,0x42,0x64,0x13,0xda,0x2a,0x2d,0x8b,0x33,0x4e,0x1b,0x6b,0x97,0xd6,0xe5,0xd,0x5,0xff,0x94,0xfa,0xb,0xa5,0x27,0x6d,0xca,0x60,0x54,0xd5,0xfd,0xe4,0x76,0x92,0xae,0x28,0x18,0x29,0x30,0xa,0x40,0x35,0x3,0xc6,0x12,0xeb,0xb4,0xde,0x71,0x7e,0x0,0x37,0x5b,0x5d,0x7a,0xb1,0xdd,0x22,0x68,0xc0,0xa1,0x9c,0xc7,0x15,0xf,0x59,0x85,0xdc,0xdf,0x1,0xe6,0x53,0x63,0x31,0x47,0xba,0x48,0x99,0x44,0xe9,0xb0,0x8f,0xd9,0x66,0x96,0xd4,0xcc,0xe7,0xcd,0x61,0xc4,0x38,0x26,0x58,0xab,0x2f,0x17,0xa7,0x78,0xbf,0x3f,0xa0,0xee,0x3d,0xa3,0x6a,0xc9,0x11,0x8c,0xc8,0x7d,0x7,0xcf,0xda,0xe1,0x41,0x9a,0x91,0x3e,0x21,0x90,0x2b,0x7f,0xef,0x62,0xb8,0x86,0x5f,0x2a,0xbb,0xa8,0xc1,0x57,0xf2,0x9b,0xd2,0x81,0x1d,0x55,0xd0,0xaf,0x5a,0x20,0x4f,0xb5,0x1a,0xac,0x7b,0xf4,0x73,0x8d,0xfb,0xa4,0x6,0x10,0x82,0xb9,0x6f,0xa9,0xb2,0xe3,0x2,0xbe,0x25,0xad,0x67,0xa2,0x42,0xf9,0xd1,0x46,0x32,0x6c,0x4c,0xc3,0x1f,0x16,0xf3,0x3a,0xf7,0x36,0x70,0x9d,0x4d,0x19,0x80,0x79,0x1e,0xa6,0x52,0x7c,0x1c,0x56,0xc,0x9e,0xf6,0x34,0xd8,0x95,0xbc,0x65,0xb3,0xdb,0x98,0x5e,0x50,0x5c,0xd7,0x84,0xe0,0x8e,0x51,0x49,0x77,0xb6,0xaa,0xed,0x13,0x2c,0x74,0x3c,0x45,0x69,0xfe,0x8a,0x9,0x24,0xcb,0xc2,0xc5,0xfc,0xf1,0x93,0x2e,0x43,0x75,0x83,0x72,0x88,0x89,0xd3,0xce,0x39,0x64,0x3b,0x14,0xf8,0xea,0x4b,0x4,0xb7,0xbd,0x4a,0x9f,0xe8,0xec,0x87,0xf0,0xf5,0xe2,0x6e,0x8,0x23,0xe,0xfa,0x3d,0xe2,0x52,0x78,0xab,0xe5,0x7a,0x7d,0x81,0x24,0x88,0x6a,0xee,0x1d,0x63,0x23,0x9c,0xca,0xf5,0xa2,0x89,0x91,0xd3,0xff,0x2,0x74,0x26,0xac,0x1,0xdc,0xd,0x84,0xed,0xfe,0x6f,0x97,0xde,0xb7,0x12,0xaa,0x3a,0x6e,0xd5,0x1a,0xc3,0xfd,0x27,0x4,0xa4,0x9f,0x8a,0x64,0x7b,0xd4,0xdf,0x54,0x8c,0x2f,0xe6,0x42,0x38,0x8d,0xc9,0x6d,0xeb,0xd7,0x33,0x4f,0x75,0x6c,0x5d,0x25,0x8f,0x28,0x62,0xa1,0xb8,0x90,0x11,0xba,0x40,0x48,0xa0,0xe0,0x4e,0xbf,0xd1,0xb,0x76,0xce,0x68,0x93,0xd2,0x2e,0x5e,0x99,0xc0,0x1c,0x4a,0x16,0xa3,0x44,0x9a,0x85,0x2d,0x67,0x98,0x50,0x82,0xd9,0xe4,0x72,0x45,0x3b,0x34,0xf4,0x3f,0x18,0x1e,0x83,0x46,0x70,0x5,0x9b,0xf1,0xae,0x57,0x8e,0x61,0x4c,0xcf,0xb4,0xb9,0x80,0x87,0x31,0x69,0x56,0xa8,0xbb,0x2c,0x0,0x79,0x14,0xcb,0xa5,0xc1,0xef,0xf3,0x32,0xc,0xdd,0x9e,0xf6,0x20,0x92,0x19,0x15,0x1b,0xa7,0xb0,0xb5,0xc2,0x4b,0x66,0x4d,0x2b,0xf8,0xf2,0x41,0xe,0xa9,0xad,0xda,0xf,0x21,0x7c,0x8b,0x96,0xaf,0xbd,0x51,0x7e,0x30,0x6,0x6b,0xd6,0xcc,0xcd,0x37,0xc6,0x60,0xfb,0x47,0xa6,0x7,0xe7,0x22,0xe8,0xc7,0x55,0x43,0xe1,0xf7,0xec,0x2a,0xfc,0x3e,0xe9,0x5f,0xf0,0xbe,0xc8,0x36,0xb1,0x95,0x10,0x58,0xc4,0xa,0x65,0x1f,0xea,0xb3,0xdb,0x49,0x13,0xf9,0xd0,0x9d,0x71,0x5b,0x3c,0xc5,0x5c,0x59,0x39,0x17,0xe3,0xb2,0x7f,0xb6,0x53,0x8,0xd8,0x35,0x73,0x77,0x3,0x94,0xbc,0x5a,0x86,0x9,0x29,0x6,0xbe,0x98,0x8d,0xd8,0x15,0xc1,0xf1,0x84,0xc,0xf5,0x59,0x3e,0xac,0x33,0x52,0x48,0x8f,0x2a,0xc7,0x50,0xf9,0x89,0x68,0xaf,0x77,0x8,0x4f,0x2c,0xb4,0x5,0x2d,0x69,0x97,0x47,0x87,0x8b,0x45,0xd2,0x78,0xdf,0xc2,0x66,0x9d,0x16,0x4d,0x1c,0x2b,0x2,0x80,0xb5,0x83,0xf7,0x82,0x30,0xfc,0x3a,0x42,0x46,0xa9,0xfe,0x1a,0x6c,0xd0,0x51,0x74,0xad,0xeb,0x5f,0x40,0xee,0xc9,0xe1,0xd9,0x7a,0x92,0xcf,0x4b,0xc6,0xe0,0x8e,0x6e,0x26,0xb0,0xff,0xb7,0x94,0xb,0xe4,0x38,0xf3,0xed,0x91,0x1d,0x99,0xdd,0xf0,0x71,0xb9,0xca,0xd4,0x6d,0x39,0xae,0x5c,0x5a,0x3c,0x0,0xbd,0x29,0xdc,0xce,0xf6,0xec,0xcc,0xa6,0x53,0xa2,0xa5,0xf2,0x3d,0x13,0xaa,0x90,0x23,0x24,0x32,0x96,0x1f,0x54,0x5b,0xf4,0x17,0xa8,0x4,0x8a,0xa1,0xa,0xe7,0x7e,0xd1,0x41,0x9a,0xb6,0x93,0xfb,0xe3,0x1,0x2e,0xa7,0xe2,0x73,0x4e,0xcb,0x70,0x88,0xb8,0xab,0x43,0x11,0xd7,0x28,0xe8,0x85,0x67,0x76,0x3b,0x31,0x64,0x8c,0xf8,0xfa,0x9c,0x22,0xcd,0x12,0x2f,0x37,0x20,0x5d,0xbc,0x6a,0xef,0x72,0xba,0x4c,0x7,0x5e,0x56,0x21,0x6f,0x9f,0xde,0x7f,0x7d,0x3f,0xc4,0xb2,0xb1,0x79,0x65,0x60,0x9,0xd3,0x3,0x63,0x1e,0x62,0xd,0x44,0x81,0x36,0xe9,0x7c,0xbb,0x57,0xa3,0xe,0x86,0x75,0x10,0x25,0xbf,0x4a,0xf,0xda,0x95,0xc0,0x27,0xe6,0x49,0x9b,0x9e,0xa0,0x58,0x34,0xdb,0xa4,0xd5,0x7b,0x55,0x19,0x61,0xea,0xc3,0xb3,0xc8,0x6b,0x14,0xfd,0x18,0x35,0xc5,0x1b,0xe5,0xd6,0x36,0xca,0x3f,0x93,0x59,0xdd,0xd4,0xaa,0x8a,0x4d,0xe5,0x55,0x1c,0xcf,0xcd,0x52,0xb5,0x48,0x91,0xc3,0xb6,0x1b,0xba,0x6b,0x2b,0x94,0x42,0x7d,0x3e,0x15,0x64,0x26,0x8d,0x1d,0x62,0xd9,0x74,0xad,0x90,0x4a,0x5a,0x33,0xd8,0x49,0x69,0x20,0xa5,0x0,0x3b,0xe3,0x51,0x98,0x8f,0xf5,0x7e,0x3a,0x13,0xb3,0x3d,0x28,0xcc,0xd3,0x68,0x63,0x38,0x92,0xd5,0x9f,0xf,0x16,0xa6,0x27,0x5c,0xda,0x84,0x60,0xc2,0xf8,0xea,0xdb,0xc1,0xbc,0xdf,0x79,0x65,0x24,0xe9,0x99,0xf7,0xd,0x17,0xff,0xf9,0x57,0x66,0x8,0x9a,0x32,0x2f,0xd0,0x35,0xe7,0x53,0x6e,0x77,0x2e,0xfd,0xab,0x14,0xa1,0x2d,0xf3,0xf1,0x34,0xb2,0xc7,0x46,0x2c,0xe0,0x19,0xf2,0xc5,0x83,0x8c,0x88,0x43,0xa9,0xaf,0xde,0x86,0x1f,0xe1,0x9b,0xc,0xce,0xb7,0xd6,0x39,0x78,0xfb,0xe,0x3,0x30,0x37,0x29,0x6a,0x97,0x41,0xae,0x25,0xac,0xa2,0x7c,0xa3,0x76,0x12,0x44,0x58,0xbb,0x85,0x45,0x4f,0xb9,0xf6,0x1a,0x1e,0xb8,0x6d,0x7,0x10,0x75,0x2,0xd1,0xfc,0x9c,0xfa,0xb1,0x87,0x61,0xdc,0x7a,0x7b,0x71,0x80,0xcb,0x96,0x21,0x3c,0xa,0x18,0xc9,0xe6,0xe2,0x70,0x56,0xf4,0x5b,0x40,0x4b,0x9d,0x4c,0xd7,0x11,0xf0,0x50,0xb0,0x5f,0x95,0xa7,0x22,0x73,0xef,0xd2,0xbd,0x5d,0xa8,0x5e,0x89,0x47,0xe8,0x7f,0x9,0x6,0x81,0x8b,0xec,0xeb,0x72,0x8e,0xee,0x54,0xa0,0x6c,0x4,0xa4,0xfe,0x67,0x4e,0xc6,0x2a,0xb4,0xc0,0xb,0x23,0x31,0xed,0x9e,0xbe,0xc8,0x5,0xe4,0x1,0x6f,0xbf,0xc4,0x82,0x29,0x8f,0x37,0x4a,0x1f,0x6f,0x93,0xd2,0xe1,0x9,0x1,0xfb,0x90,0xfe,0xf,0xa1,0x23,0x69,0xce,0x64,0x50,0xd1,0xf9,0xe0,0x72,0x96,0xaa,0x2c,0x1c,0x2d,0x34,0xe,0x44,0x31,0x7,0xc2,0x16,0xef,0xb0,0xda,0x75,0x7a,0x4,0x33,0x5f,0x59,0x7e,0xb5,0xd9,0x26,0x6c,0xc4,0xa5,0x98,0xc3,0x11,0xb,0x5d,0x81,0xd8,0xdb,0x5,0xe2,0x57,0x67,0x35,0x43,0xbe,0x4c,0x9d,0x40,0xed,0xb4,0x8b,0xdd,0x62,0x92,0xd0,0xc8,0xe3,0xc9,0x65,0xc0,0x3c,0x22,0x5c,0xaf,0x2b,0x13,0xa3,0x7c,0xbb,0x3b,0xa4,0xea,0x39,0xa7,0x6e,0xcd,0x15,0x88,0xcc,0x79,0x3,0xcb,0xde,0xe5,0x45,0x9e,0x95,0x3a,0x25,0x94,0x2f,0x7b,0xeb,0x66,0xbc,0x82,0x5b,0x2e,0xbf,0xac,0xc5,0x53,0xf6,0x9f,0xd6,0x85,0x19,0x51,0xd4,0xab,0x5e,0x24,0x4b,0xb1,0x1e,0xa8,0x7f,0xf0,0x77,0x89,0xff,0xa0,0x2,0x14,0x86,0xbd,0x6b,0xad,0xb6,0xe7,0x6,0xba,0x21,0xa9,0x63,0xa6,0x46,0xfd,0xd5,0x42,0x36,0x68,0x48,0xc7,0x1b,0x12,0xf7,0x3e,0xf3,0x32,0x74,0x99,0x49,0x1d,0x84,0x7d,0x1a,0xa2,0x56,0x78,0x18,0x52,0x8,0x9a,0xf2,0x30,0xdc,0x91,0xb8,0x61,0xb7,0xdf,0x9c,0x5a,0x54,0x58,0xd3,0x80,0xe4,0x8a,0x55,0x4d,0x73,0xb2,0xae,0xe9,0x17,0x28,0x70,0x38,0x41,0x6d,0xfa,0x8e,0xd,0x20,0xcf,0xc6,0xc1,0xf8,0xf5,0x97,0x2a,0x47,0x71,0x87,0x76,0x8c,0x8d,0xd7,0xca,0x3d,0x60,0x3f,0x10,0xfc,0xee,0x4f,0x0,0xb3,0xb9,0x4e,0x9b,0xec,0xe8,0x83,0xf4,0xf1,0xe6,0x6a,0xc,0x27,0xa,0x1,0xc6,0x19,0xa9,0x83,0x50,0x1e,0x81,0x86,0x7a,0xdf,0x73,0x91,0x15,0xe6,0x98,0xd8,0x67,0x31,0xe,0x59,0x72,0x6a,0x28,0x4,0xf9,0x8f,0xdd,0x57,0xfa,0x27,0xf6,0x7f,0x16,0x5,0x94,0x6c,0x25,0x4c,0xe9,0x51,0xc1,0x95,0x2e,0xe1,0x38,0x6,0xdc,0xff,0x5f,0x64,0x71,0x9f,0x80,0x2f,0x24,0xaf,0x77,0xd4,0x1d,0xb9,0xc3,0x76,0x32,0x96,0x10,0x2c,0xc8,0xb4,0x8e,0x97,0xa6,0xde,0x74,0xd3,0x99,0x5a,0x43,0x6b,0xea,0x41,0xbb,0xb3,0x5b,0x1b,0xb5,0x44,0x2a,0xf0,0x8d,0x35,0x93,0x68,0x29,0xd5,0xa5,0x62,0x3b,0xe7,0xb1,0xed,0x58,0xbf,0x61,0x7e,0xd6,0x9c,0x63,0xab,0x79,0x22,0x1f,0x89,0xbe,0xc0,0xcf,0xf,0xc4,0xe3,0xe5,0x78,0xbd,0x8b,0xfe,0x60,0xa,0x55,0xac,0x75,0x9a,0xb7,0x34,0x4f,0x42,0x7b,0x7c,0xca,0x92,0xad,0x53,0x40,0xd7,0xfb,0x82,0xef,0x30,0x5e,0x3a,0x14,0x8,0xc9,0xf7,0x26,0x65,0xd,0xdb,0x69,0xe2,0xee,0xe0,0x5c,0x4b,0x4e,0x39,0xb0,0x9d,0xb6,0xd0,0x3,0x9,0xba,0xf5,0x52,0x56,0x21,0xf4,0xda,0x87,0x70,0x6d,0x54,0x46,0xaa,0x85,0xcb,0xfd,0x90,0x2d,0x37,0x36,0xcc,0x3d,0x9b,0x0,0xbc,0x5d,0xfc,0x1c,0xd9,0x13,0x3c,0xae,0xb8,0x1a,0xc,0x17,0xd1,0x7,0xc5,0x12,0xa4,0xb,0x45,0x33,0xcd,0x4a,0x6e,0xeb,0xa3,0x3f,0xf1,0x9e,0xe4,0x11,0x48,0x20,0xb2,0xe8,0x2,0x2b,0x66,0x8a,0xa0,0xc7,0x3e,0xa7,0xa2,0xc2,0xec,0x18,0x49,0x84,0x4d,0xa8,0xf3,0x23,0xce,0x88,0x8c,0xf8,0x6f,0x47,0xa1,0x7d,0xf2,0xd2,0xfc,0x5e,0x78,0xea,0x95,0x43,0x48,0x53,0xf8,0x19,0xdf,0x44,0x9d,0x57,0xb8,0x58,0xe7,0x7b,0x2a,0xaf,0xa0,0x55,0xb5,0xda,0xe0,0x4f,0x81,0x56,0x89,0xe,0x1,0x77,0x7a,0xe3,0xe4,0x83,0xa8,0x5c,0xe6,0x86,0xf6,0xac,0xc,0x64,0x22,0xce,0x46,0x6f,0x2b,0x3,0xc8,0xbc,0xb6,0x96,0xe5,0x39,0x9,0xec,0xd,0xc0,0x8a,0xcc,0xb7,0x67,0xe9,0x17,0x8e,0xd6,0xbf,0xc6,0x4,0x93,0xf3,0x70,0x31,0xde,0x3f,0x38,0xb,0x6,0x49,0x9f,0x62,0x21,0xaa,0xa4,0x2d,0xa6,0x1a,0x7e,0xab,0x74,0x8d,0xb3,0x50,0x4c,0xfe,0xb1,0x47,0x4d,0x65,0xb0,0x16,0x12,0xa,0x7d,0x18,0xf,0xf2,0x94,0xf4,0xd9,0xd4,0x69,0x8f,0xb9,0x88,0x79,0x73,0x72,0x34,0x29,0x9e,0xc3,0xee,0xc1,0x10,0x2,0x97,0xdd,0x9a,0x30,0x2f,0xae,0x1e,0x7,0x68,0x8c,0xd2,0x54,0xd3,0xe2,0xf0,0xca,0x71,0xd7,0xb4,0xc9,0x91,0xe1,0x2c,0x6d,0xf7,0x1f,0x5,0xff,0x0,0x6e,0x5f,0xf1,0xd8,0x27,0x3a,0x92,0x66,0x5b,0xef,0x3d,0xa3,0xf5,0x26,0x7f,0xfb,0x25,0xa9,0x1c,0xcf,0xba,0x3c,0xf9,0x11,0xe8,0x24,0x4e,0x84,0x8b,0xcd,0xfa,0xa7,0xa1,0x4b,0x80,0x9b,0x37,0xc2,0x3e,0xa2,0xdc,0xd5,0x51,0x5d,0xed,0x45,0x82,0x5a,0xc5,0xc7,0x14,0xcb,0x99,0x40,0xbd,0x63,0xb2,0x13,0xbe,0x75,0x4a,0x9c,0x23,0x2e,0x6c,0x1d,0x36,0xd1,0x6a,0x15,0x85,0x42,0x98,0xa5,0x7c,0x41,0xd0,0x3b,0x52,0x8,0xad,0x28,0x61,0x90,0x59,0xeb,0x33,0x32,0x76,0xfd,0x87,0x20,0x35,0xbb,0x1b,0x6b,0x60,0xdb,0xc4,0xa2,0x5e,0xab,0x7,0xcd,0x49,0x40,0x3e,0x1e,0xd9,0x71,0xc1,0x88,0x5b,0x59,0xc6,0x21,0xdc,0x5,0x57,0x22,0x8f,0x2e,0xff,0xbf,0x0,0xd6,0xe9,0xaa,0x81,0xf0,0xb2,0x19,0x89,0xf6,0x4d,0xe0,0x39,0x4,0xde,0xce,0xa7,0x4c,0xdd,0xfd,0xb4,0x31,0x94,0xaf,0x77,0xc5,0xc,0x1b,0x61,0xea,0xae,0x87,0x27,0xa9,0xbc,0x58,0x47,0xfc,0xf7,0xac,0x6,0x41,0xb,0x9b,0x82,0x32,0xb3,0xc8,0x4e,0x10,0xf4,0x56,0x6c,0x7e,0x4f,0x55,0x28,0x4b,0xed,0xf1,0xb0,0x7d,0xd,0x63,0x99,0x83,0x6b,0x6d,0xc3,0xf2,0x9c,0xe,0xa6,0xbb,0x44,0xa1,0x73,0xc7,0xfa,0xe3,0xba,0x69,0x3f,0x80,0x35,0xb9,0x67,0x65,0xa0,0x26,0x53,0xd2,0xb8,0x74,0x8d,0x66,0x51,0x17,0x18,0x1c,0xd7,0x3d,0x3b,0x4a,0x12,0x8b,0x75,0xf,0x98,0x5a,0x23,0x42,0xad,0xec,0x6f,0x9a,0x97,0xa4,0xa3,0xbd,0xfe,0x3,0xd5,0x3a,0xb1,0x38,0x36,0xe8,0x37,0xe2,0x86,0xd0,0xcc,0x2f,0x11,0xd1,0xdb,0x2d,0x62,0x8e,0x8a,0x2c,0xf9,0x93,0x84,0xe1,0x96,0x45,0x68,0x8,0x6e,0x25,0x13,0xf5,0x48,0xee,0xef,0xe5,0x14,0x5f,0x2,0xb5,0xa8,0x9e,0x8c,0x5d,0x72,0x76,0xe4,0xc2,0x60,0xcf,0xd4,0xdf,0x9,0xd8,0x43,0x85,0x64,0xc4,0x24,0xcb,0x1,0x33,0xb6,0xe7,0x7b,0x46,0x29,0xc9,0x3c,0xca,0x1d,0xd3,0x7c,0xeb,0x9d,0x92,0x15,0x1f,0x78,0x7f,0xe6,0x1a,0x7a,0xc0,0x34,0xf8,0x90,0x30,0x6a,0xf3,0xda,0x52,0xbe,0x20,0x54,0x9f,0xb7,0xa5,0x79,0xa,0x2a,0x5c,0x91,0x70,0x95,0xfb,0x2b,0x50,0x16,0xf,0xa9,0x11,0x6c,0x39,0x49,0xb5,0xf4,0xc7,0x2f,0x27,0xdd,0xb6,0xd8,0x29,0x87,0x5,0x4f,0xe8,0x42,0x76,0xf7,0xdf,0xc6,0x54,0xb0,0x8c,0xa,0x3a,0xb,0x12,0x28,0x62,0x17,0x21,0xe4,0x30,0xc9,0x96,0xfc,0x53,0x5c,0x22,0x15,0x79,0x7f,0x58,0x93,0xff,0x0,0x4a,0xe2,0x83,0xbe,0xe5,0x37,0x2d,0x7b,0xa7,0xfe,0xfd,0x23,0xc4,0x71,0x41,0x13,0x65,0x98,0x6a,0xbb,0x66,0xcb,0x92,0xad,0xfb,0x44,0xb4,0xf6,0xee,0xc5,0xef,0x43,0xe6,0x1a,0x4,0x7a,0x89,0xd,0x35,0x85,0x5a,0x9d,0x1d,0x82,0xcc,0x1f,0x81,0x48,0xeb,0x33,0xae,0xea,0x5f,0x25,0xed,0xf8,0xc3,0x63,0xb8,0xb3,0x1c,0x3,0xb2,0x9,0x5d,0xcd,0x40,0x9a,0xa4,0x7d,0x8,0x99,0x8a,0xe3,0x75,0xd0,0xb9,0xf0,0xa3,0x3f,0x77,0xf2,0x8d,0x78,0x2,0x6d,0x97,0x38,0x8e,0x59,0xd6,0x51,0xaf,0xd9,0x86,0x24,0x32,0xa0,0x9b,0x4d,0x8b,0x90,0xc1,0x20,0x9c,0x7,0x8f,0x45,0x80,0x60,0xdb,0xf3,0x64,0x10,0x4e,0x6e,0xe1,0x3d,0x34,0xd1,0x18,0xd5,0x14,0x52,0xbf,0x6f,0x3b,0xa2,0x5b,0x3c,0x84,0x70,0x5e,0x3e,0x74,0x2e,0xbc,0xd4,0x16,0xfa,0xb7,0x9e,0x47,0x91,0xf9,0xba,0x7c,0x72,0x7e,0xf5,0xa6,0xc2,0xac,0x73,0x6b,0x55,0x94,0x88,0xcf,0x31,0xe,0x56,0x1e,0x67,0x4b,0xdc,0xa8,0x2b,0x6,0xe9,0xe0,0xe7,0xde,0xd3,0xb1,0xc,0x61,0x57,0xa1,0x50,0xaa,0xab,0xf1,0xec,0x1b,0x46,0x19,0x36,0xda,0xc8,0x69,0x26,0x95,0x9f,0x68,0xbd,0xca,0xce,0xa5,0xd2,0xd7,0xc0,0x4c,0x2a,0x1,0x2c,0xab,0x6c,0xb3,0x3,0x29,0xfa,0xb4,0x2b,0x2c,0xd0,0x75,0xd9,0x3b,0xbf,0x4c,0x32,0x72,0xcd,0x9b,0xa4,0xf3,0xd8,0xc0,0x82,0xae,0x53,0x25,0x77,0xfd,0x50,0x8d,0x5c,0xd5,0xbc,0xaf,0x3e,0xc6,0x8f,0xe6,0x43,0xfb,0x6b,0x3f,0x84,0x4b,0x92,0xac,0x76,0x55,0xf5,0xce,0xdb,0x35,0x2a,0x85,0x8e,0x5,0xdd,0x7e,0xb7,0x13,0x69,0xdc,0x98,0x3c,0xba,0x86,0x62,0x1e,0x24,0x3d,0xc,0x74,0xde,0x79,0x33,0xf0,0xe9,0xc1,0x40,0xeb,0x11,0x19,0xf1,0xb1,0x1f,0xee,0x80,0x5a,0x27,0x9f,0x39,0xc2,0x83,0x7f,0xf,0xc8,0x91,0x4d,0x1b,0x47,0xf2,0x15,0xcb,0xd4,0x7c,0x36,0xc9,0x1,0xd3,0x88,0xb5,0x23,0x14,0x6a,0x65,0xa5,0x6e,0x49,0x4f,0xd2,0x17,0x21,0x54,0xca,0xa0,0xff,0x6,0xdf,0x30,0x1d,0x9e,0xe5,0xe8,0xd1,0xd6,0x60,0x38,0x7,0xf9,0xea,0x7d,0x51,0x28,0x45,0x9a,0xf4,0x90,0xbe,0xa2,0x63,0x5d,0x8c,0xcf,0xa7,0x71,0xc3,0x48,0x44,0x4a,0xf6,0xe1,0xe4,0x93,0x1a,0x37,0x1c,0x7a,0xa9,0xa3,0x10,0x5f,0xf8,0xfc,0x8b,0x5e,0x70,0x2d,0xda,0xc7,0xfe,0xec,0x0,0x2f,0x61,0x57,0x3a,0x87,0x9d,0x9c,0x66,0x97,0x31,0xaa,0x16,0xf7,0x56,0xb6,0x73,0xb9,0x96,0x4,0x12,0xb0,0xa6,0xbd,0x7b,0xad,0x6f,0xb8,0xe,0xa1,0xef,0x99,0x67,0xe0,0xc4,0x41,0x9,0x95,0x5b,0x34,0x4e,0xbb,0xe2,0x8a,0x18,0x42,0xa8,0x81,0xcc,0x20,0xa,0x6d,0x94,0xd,0x8,0x68,0x46,0xb2,0xe3,0x2e,0xe7,0x2,0x59,0x89,0x64,0x22,0x26,0x52,0xc5,0xed,0xb,0xd7,0x58,0x78,0x89,0x2b,0xd,0x9f,0xe0,0x36,0x3d,0x26,0x8d,0x6c,0xaa,0x31,0xe8,0x22,0xcd,0x2d,0x92,0xe,0x5f,0xda,0xd5,0x20,0xc0,0xaf,0x95,0x3a,0xf4,0x23,0xfc,0x7b,0x74,0x2,0xf,0x96,0x91,0xf6,0xdd,0x29,0x93,0xf3,0x83,0xd9,0x79,0x11,0x57,0xbb,0x33,0x1a,0x5e,0x76,0xbd,0xc9,0xc3,0xe3,0x90,0x4c,0x7c,0x99,0x78,0xb5,0xff,0xb9,0xc2,0x12,0x9c,0x62,0xfb,0xa3,0xca,0xb3,0x71,0xe6,0x86,0x5,0x44,0xab,0x4a,0x4d,0x7e,0x73,0x3c,0xea,0x17,0x54,0xdf,0xd1,0x58,0xd3,0x6f,0xb,0xde,0x1,0xf8,0xc6,0x25,0x39,0x8b,0xc4,0x32,0x38,0x10,0xc5,0x63,0x67,0x7f,0x8,0x6d,0x7a,0x87,0xe1,0x81,0xac,0xa1,0x1c,0xfa,0xcc,0xfd,0xc,0x6,0x7,0x41,0x5c,0xeb,0xb6,0x9b,0xb4,0x65,0x77,0xe2,0xa8,0xef,0x45,0x5a,0xdb,0x6b,0x72,0x1d,0xf9,0xa7,0x21,0xa6,0x97,0x85,0xbf,0x4,0xa2,0xc1,0xbc,0xe4,0x94,0x59,0x18,0x82,0x6a,0x70,0x8a,0x75,0x1b,0x2a,0x84,0xad,0x52,0x4f,0xe7,0x13,0x2e,0x9a,0x48,0xd6,0x80,0x53,0xa,0x8e,0x50,0xdc,0x69,0xba,0xcf,0x49,0x8c,0x64,0x9d,0x51,0x3b,0xf1,0xfe,0xb8,0x8f,0xd2,0xd4,0x3e,0xf5,0xee,0x42,0xb7,0x4b,0xd7,0xa9,0xa0,0x24,0x28,0x98,0x30,0xf7,0x2f,0xb0,0xb2,0x61,0xbe,0xec,0x35,0xc8,0x16,0xc7,0x66,0xcb,0x0,0x3f,0xe9,0x56,0x5b,0x19,0x68,0x43,0xa4,0x1f,0x60,0xf0,0x37,0xed,0xd0,0x9,0x34,0xa5,0x4e,0x27,0x7d,0xd8,0x5d,0x14,0xe5,0x2c,0x9e,0x46,0x47,0x3,0x88,0xf2,0x55,0x40,0xce,0x6e,0x1e,0x15,0xae,0xb1,0xdb,0x27,0xd2,0x7e,0xb4,0x30,0x39,0x47,0x67,0xa0,0x8,0xb8,0xf1,0x22,0x20,0xbf,0x58,0xa5,0x7c,0x2e,0x5b,0xf6,0x57,0x86,0xc6,0x79,0xaf,0x90,0xd3,0xf8,0x89,0xcb,0x60,0xf0,0x8f,0x34,0x99,0x40,0x7d,0xa7,0xb7,0xde,0x35,0xa4,0x84,0xcd,0x48,0xed,0xd6,0xe,0xbc,0x75,0x62,0x18,0x93,0xd7,0xfe,0x5e,0xd0,0xc5,0x21,0x3e,0x85,0x8e,0xd5,0x7f,0x38,0x72,0xe2,0xfb,0x4b,0xca,0xb1,0x37,0x69,0x8d,0x2f,0x15,0x7,0x36,0x2c,0x51,0x32,0x94,0x88,0xc9,0x4,0x74,0x1a,0xe0,0xfa,0x12,0x14,0xba,0x8b,0xe5,0x77,0xdf,0xc2,0x3d,0xd8,0xa,0xbe,0x83,0x9a,0xc3,0x10,0x46,0xf9,0x4c,0xc0,0x1e,0x1c,0xd9,0x5f,0x2a,0xab,0xc1,0xd,0xf4,0x1f,0x28,0x6e,0x61,0x65,0xae,0x44,0x42,0x33,0x6b,0xf2,0xc,0x76,0xe1,0x23,0x5a,0x3b,0xd4,0x95,0x16,0xe3,0xee,0xdd,0xda,0xc4,0x87,0x7a,0xac,0x43,0xc8,0x41,0x4f,0x91,0x4e,0x9b,0xff,0xa9,0xb5,0x56,0x68,0xa8,0xa2,0x54,0x1b,0xf7,0xf3,0x55,0x80,0xea,0xfd,0x98,0xef,0x3c,0x11,0x71,0x17,0x5c,0x6a,0x8c,0x31,0x97,0x96,0x9c,0x6d,0x26,0x7b,0xcc,0xd1,0xe7,0xf5,0x24,0xb,0xf,0x9d,0xbb,0x19,0xb6,0xad,0xa6,0x70,0xa1,0x3a,0xfc,0x1d,0xbd,0x5d,0xb2,0x78,0x4a,0xcf,0x9e,0x2,0x3f,0x50,0xb0,0x45,0xb3,0x64,0xaa,0x5,0x92,0xe4,0xeb,0x6c,0x66,0x1,0x6,0x9f,0x63,0x3,0xb9,0x4d,0x81,0xe9,0x49,0x13,0x8a,0xa3,0x2b,0xc7,0x59,0x2d,0xe6,0xce,0xdc,0x0,0x73,0x53,0x25,0xe8,0x9,0xec,0x82,0x52,0x29,0x6f,0x8f,0x29,0x91,0xec,0xb9,0xc9,0x35,0x74,0x47,0xaf,0xa7,0x5d,0x36,0x58,0xa9,0x7,0x85,0xcf,0x68,0xc2,0xf6,0x77,0x5f,0x46,0xd4,0x30,0xc,0x8a,0xba,0x8b,0x92,0xa8,0xe2,0x97,0xa1,0x64,0xb0,0x49,0x16,0x7c,0xd3,0xdc,0xa2,0x95,0xf9,0xff,0xd8,0x13,0x7f,0x80,0xca,0x62,0x3,0x3e,0x65,0xb7,0xad,0xfb,0x27,0x7e,0x7d,0xa3,0x44,0xf1,0xc1,0x93,0xe5,0x18,0xea,0x3b,0xe6,0x4b,0x12,0x2d,0x7b,0xc4,0x34,0x76,0x6e,0x45,0x6f,0xc3,0x66,0x9a,0x84,0xfa,0x9,0x8d,0xb5,0x5,0xda,0x1d,0x9d,0x2,0x4c,0x9f,0x1,0xc8,0x6b,0xb3,0x2e,0x6a,0xdf,0xa5,0x6d,0x78,0x43,0xe3,0x38,0x33,0x9c,0x83,0x32,0x89,0xdd,0x4d,0xc0,0x1a,0x24,0xfd,0x88,0x19,0xa,0x63,0xf5,0x50,0x39,0x70,0x23,0xbf,0xf7,0x72,0xd,0xf8,0x82,0xed,0x17,0xb8,0xe,0xd9,0x56,0xd1,0x2f,0x59,0x6,0xa4,0xb2,0x20,0x1b,0xcd,0xb,0x10,0x41,0xa0,0x1c,0x87,0xf,0xc5,0x0,0xe0,0x5b,0x73,0xe4,0x90,0xce,0xee,0x61,0xbd,0xb4,0x51,0x98,0x55,0x94,0xd2,0x3f,0xef,0xbb,0x22,0xdb,0xbc,0x4,0xf0,0xde,0xbe,0xf4,0xae,0x3c,0x54,0x96,0x7a,0x37,0x1e,0xc7,0x11,0x79,0x3a,0xfc,0xf2,0xfe,0x75,0x26,0x42,0x2c,0xf3,0xeb,0xd5,0x14,0x8,0x4f,0xb1,0x8e,0xd6,0x9e,0xe7,0xcb,0x5c,0x28,0xab,0x86,0x69,0x60,0x67,0x5e,0x53,0x31,0x8c,0xe1,0xd7,0x21,0xd0,0x2a,0x2b,0x71,0x6c,0x9b,0xc6,0x99,0xb6,0x5a,0x48,0xe9,0xa6,0x15,0x1f,0xe8,0x3d,0x4a,0x4e,0x25,0x52,0x57,0x40,0xcc,0xaa,0x81,0xac,0x55,0x92,0x4d,0xfd,0xd7,0x4,0x4a,0xd5,0xd2,0x2e,0x8b,0x27,0xc5,0x41,0xb2,0xcc,0x8c,0x33,0x65,0x5a,0xd,0x26,0x3e,0x7c,0x50,0xad,0xdb,0x89,0x3,0xae,0x73,0xa2,0x2b,0x42,0x51,0xc0,0x38,0x71,0x18,0xbd,0x5,0x95,0xc1,0x7a,0xb5,0x6c,0x52,0x88,0xab,0xb,0x30,0x25,0xcb,0xd4,0x7b,0x70,0xfb,0x23,0x80,0x49,0xed,0x97,0x22,0x66,0xc2,0x44,0x78,0x9c,0xe0,0xda,0xc3,0xf2,0x8a,0x20,0x87,0xcd,0xe,0x17,0x3f,0xbe,0x15,0xef,0xe7,0xf,0x4f,0xe1,0x10,0x7e,0xa4,0xd9,0x61,0xc7,0x3c,0x7d,0x81,0xf1,0x36,0x6f,0xb3,0xe5,0xb9,0xc,0xeb,0x35,0x2a,0x82,0xc8,0x37,0xff,0x2d,0x76,0x4b,0xdd,0xea,0x94,0x9b,0x5b,0x90,0xb7,0xb1,0x2c,0xe9,0xdf,0xaa,0x34,0x5e,0x1,0xf8,0x21,0xce,0xe3,0x60,0x1b,0x16,0x2f,0x28,0x9e,0xc6,0xf9,0x7,0x14,0x83,0xaf,0xd6,0xbb,0x64,0xa,0x6e,0x40,0x5c,0x9d,0xa3,0x72,0x31,0x59,0x8f,0x3d,0xb6,0xba,0xb4,0x8,0x1f,0x1a,0x6d,0xe4,0xc9,0xe2,0x84,0x57,0x5d,0xee,0xa1,0x6,0x2,0x75,0xa0,0x8e,0xd3,0x24,0x39,0x0,0x12,0xfe,0xd1,0x9f,0xa9,0xc4,0x79,0x63,0x62,0x98,0x69,0xcf,0x54,0xe8,0x9,0xa8,0x48,0x8d,0x47,0x68,0xfa,0xec,0x4e,0x58,0x43,0x85,0x53,0x91,0x46,0xf0,0x5f,0x11,0x67,0x99,0x1e,0x3a,0xbf,0xf7,0x6b,0xa5,0xca,0xb0,0x45,0x1c,0x74,0xe6,0xbc,0x56,0x7f,0x32,0xde,0xf4,0x93,0x6a,0xf3,0xf6,0x96,0xb8,0x4c,0x1d,0xd0,0x19,0xfc,0xa7,0x77,0x9a,0xdc,0xd8,0xac,0x3b,0x13,0xf5,0x29,0xa6,0x86,0x27,0x85,0xa3,0x31,0x4e,0x98,0x93,0x88,0x23,0xc2,0x4,0x9f,0x46,0x8c,0x63,0x83,0x3c,0xa0,0xf1,0x74,0x7b,0x8e,0x6e,0x1,0x3b,0x94,0x5a,0x8d,0x52,0xd5,0xda,0xac,0xa1,0x38,0x3f,0x58,0x73,0x87,0x3d,0x5d,0x2d,0x77,0xd7,0xbf,0xf9,0x15,0x9d,0xb4,0xf0,0xd8,0x13,0x67,0x6d,0x4d,0x3e,0xe2,0xd2,0x37,0xd6,0x1b,0x51,0x17,0x6c,0xbc,0x32,0xcc,0x55,0xd,0x64,0x1d,0xdf,0x48,0x28,0xab,0xea,0x5,0xe4,0xe3,0xd0,0xdd,0x92,0x44,0xb9,0xfa,0x71,0x7f,0xf6,0x7d,0xc1,0xa5,0x70,0xaf,0x56,0x68,0x8b,0x97,0x25,0x6a,0x9c,0x96,0xbe,0x6b,0xcd,0xc9,0xd1,0xa6,0xc3,0xd4,0x29,0x4f,0x2f,0x2,0xf,0xb2,0x54,0x62,0x53,0xa2,0xa8,0xa9,0xef,0xf2,0x45,0x18,0x35,0x1a,0xcb,0xd9,0x4c,0x6,0x41,0xeb,0xf4,0x75,0xc5,0xdc,0xb3,0x57,0x9,0x8f,0x8,0x39,0x2b,0x11,0xaa,0xc,0x6f,0x12,0x4a,0x3a,0xf7,0xb6,0x2c,0xc4,0xde,0x24,0xdb,0xb5,0x84,0x2a,0x3,0xfc,0xe1,0x49,0xbd,0x80,0x34,0xe6,0x78,0x2e,0xfd,0xa4,0x20,0xfe,0x72,0xc7,0x14,0x61,0xe7,0x22,0xca,0x33,0xff,0x95,0x5f,0x50,0x16,0x21,0x7c,0x7a,0x90,0x5b,0x40,0xec,0x19,0xe5,0x79,0x7,0xe,0x8a,0x86,0x36,0x9e,0x59,0x81,0x1e,0x1c,0xcf,0x10,0x42,0x9b,0x66,0xb8,0x69,0xc8,0x65,0xae,0x91,0x47,0xf8,0xf5,0xb7,0xc6,0xed,0xa,0xb1,0xce,0x5e,0x99,0x43,0x7e,0xa7,0x9a,0xb,0xe0,0x89,0xd3,0x76,0xf3,0xba,0x4b,0x82,0x30,0xe8,0xe9,0xad,0x26,0x5c,0xfb,0xee,0x60,0xc0,0xb0,0xbb,0x0,0x1f,0xd7,0x2b,0xde,0x72,0xb8,0x3c,0x35,0x4b,0x6b,0xac,0x4,0xb4,0xfd,0x2e,0x2c,0xb3,0x54,0xa9,0x70,0x22,0x57,0xfa,0x5b,0x8a,0xca,0x75,0xa3,0x9c,0xdf,0xf4,0x85,0xc7,0x6c,0xfc,0x83,0x38,0x95,0x4c,0x71,0xab,0xbb,0xd2,0x39,0xa8,0x88,0xc1,0x44,0xe1,0xda,0x2,0xb0,0x79,0x6e,0x14,0x9f,0xdb,0xf2,0x52,0xdc,0xc9,0x2d,0x32,0x89,0x82,0xd9,0x73,0x34,0x7e,0xee,0xf7,0x47,0xc6,0xbd,0x3b,0x65,0x81,0x23,0x19,0xb,0x3a,0x20,0x5d,0x3e,0x98,0x84,0xc5,0x8,0x78,0x16,0xec,0xf6,0x1e,0x18,0xb6,0x87,0xe9,0x7b,0xd3,0xce,0x31,0xd4,0x6,0xb2,0x8f,0x96,0xcf,0x1c,0x4a,0xf5,0x40,0xcc,0x12,0x10,0xd5,0x53,0x26,0xa7,0xcd,0x1,0xf8,0x13,0x24,0x62,0x6d,0x69,0xa2,0x48,0x4e,0x3f,0x67,0xfe,0x0,0x7a,0xed,0x2f,0x56,0x37,0xd8,0x99,0x1a,0xef,0xe2,0xd1,0xd6,0xc8,0x8b,0x76,0xa0,0x4f,0xc4,0x4d,0x43,0x9d,0x42,0x97,0xf3,0xa5,0xb9,0x5a,0x64,0xa4,0xae,0x58,0x17,0xfb,0xff,0x59,0x8c,0xe6,0xf1,0x94,0xe3,0x30,0x1d,0x7d,0x1b,0x50,0x66,0x80,0x3d,0x9b,0x9a,0x90,0x61,0x2a,0x77,0xc0,0xdd,0xeb,0xf9,0x28,0x7,0x3,0x91,0xb7,0x15,0xba,0xa1,0xaa,0x7c,0xad,0x36,0xf0,0x11,0xb1,0x51,0xbe,0x74,0x46,0xc3,0x92,0xe,0x33,0x5c,0xbc,0x49,0xbf,0x68,0xa6,0x9,0x9e,0xe8,0xe7,0x60,0x6a,0xd,0xa,0x93,0x6f,0xf,0xb5,0x41,0x8d,0xe5,0x45,0x1f,0x86,0xaf,0x27,0xcb,0x55,0x21,0xea,0xc2,0xd0,0xc,0x7f,0x5f,0x29,0xe4,0x5,0xe0,0x8e,0x5e,0x25,0x63,0xcc,0x6a,0xd2,0xaf,0xfa,0x8a,0x76,0x37,0x4,0xec,0xe4,0x1e,0x75,0x1b,0xea,0x44,0xc6,0x8c,0x2b,0x81,0xb5,0x34,0x1c,0x5,0x97,0x73,0x4f,0xc9,0xf9,0xc8,0xd1,0xeb,0xa1,0xd4,0xe2,0x27,0xf3,0xa,0x55,0x3f,0x90,0x9f,0xe1,0xd6,0xba,0xbc,0x9b,0x50,0x3c,0xc3,0x89,0x21,0x40,0x7d,0x26,0xf4,0xee,0xb8,0x64,0x3d,0x3e,0xe0,0x7,0xb2,0x82,0xd0,0xa6,0x5b,0xa9,0x78,0xa5,0x8,0x51,0x6e,0x38,0x87,0x77,0x35,0x2d,0x6,0x2c,0x80,0x25,0xd9,0xc7,0xb9,0x4a,0xce,0xf6,0x46,0x99,0x5e,0xde,0x41,0xf,0xdc,0x42,0x8b,0x28,0xf0,0x6d,0x29,0x9c,0xe6,0x2e,0x3b,0x0,0xa0,0x7b,0x70,0xdf,0xc0,0x71,0xca,0x9e,0xe,0x83,0x59,0x67,0xbe,0xcb,0x5a,0x49,0x20,0xb6,0x13,0x7a,0x33,0x60,0xfc,0xb4,0x31,0x4e,0xbb,0xc1,0xae,0x54,0xfb,0x4d,0x9a,0x15,0x92,0x6c,0x1a,0x45,0xe7,0xf1,0x63,0x58,0x8e,0x48,0x53,0x2,0xe3,0x5f,0xc4,0x4c,0x86,0x43,0xa3,0x18,0x30,0xa7,0xd3,0x8d,0xad,0x22,0xfe,0xf7,0x12,0xdb,0x16,0xd7,0x91,0x7c,0xac,0xf8,0x61,0x98,0xff,0x47,0xb3,0x9d,0xfd,0xb7,0xed,0x7f,0x17,0xd5,0x39,0x74,0x5d,0x84,0x52,0x3a,0x79,0xbf,0xb1,0xbd,0x36,0x65,0x1,0x6f,0xb0,0xa8,0x96,0x57,0x4b,0xc,0xf2,0xcd,0x95,0xdd,0xa4,0x88,0x1f,0x6b,0xe8,0xc5,0x2a,0x23,0x24,0x1d,0x10,0x72,0xcf,0xa2,0x94,0x62,0x93,0x69,0x68,0x32,0x2f,0xd8,0x85,0xda,0xf5,0x19,0xb,0xaa,0xe5,0x56,0x5c,0xab,0x7e,0x9,0xd,0x66,0x11,0x14,0x3,0x8f,0xe9,0xc2,0xef,0xb5,0x72,0xad,0x1d,0x37,0xe4,0xaa,0x35,0x32,0xce,0x6b,0xc7,0x25,0xa1,0x52,0x2c,0x6c,0xd3,0x85,0xba,0xed,0xc6,0xde,0x9c,0xb0,0x4d,0x3b,0x69,0xe3,0x4e,0x93,0x42,0xcb,0xa2,0xb1,0x20,0xd8,0x91,0xf8,0x5d,0xe5,0x75,0x21,0x9a,0x55,0x8c,0xb2,0x68,0x4b,0xeb,0xd0,0xc5,0x2b,0x34,0x9b,0x90,0x1b,0xc3,0x60,0xa9,0xd,0x77,0xc2,0x86,0x22,0xa4,0x98,0x7c,0x0,0x3a,0x23,0x12,0x6a,0xc0,0x67,0x2d,0xee,0xf7,0xdf,0x5e,0xf5,0xf,0x7,0xef,0xaf,0x1,0xf0,0x9e,0x44,0x39,0x81,0x27,0xdc,0x9d,0x61,0x11,0xd6,0x8f,0x53,0x5,0x59,0xec,0xb,0xd5,0xca,0x62,0x28,0xd7,0x1f,0xcd,0x96,0xab,0x3d,0xa,0x74,0x7b,0xbb,0x70,0x57,0x51,0xcc,0x9,0x3f,0x4a,0xd4,0xbe,0xe1,0x18,0xc1,0x2e,0x3,0x80,0xfb,0xf6,0xcf,0xc8,0x7e,0x26,0x19,0xe7,0xf4,0x63,0x4f,0x36,0x5b,0x84,0xea,0x8e,0xa0,0xbc,0x7d,0x43,0x92,0xd1,0xb9,0x6f,0xdd,0x56,0x5a,0x54,0xe8,0xff,0xfa,0x8d,0x4,0x29,0x2,0x64,0xb7,0xbd,0xe,0x41,0xe6,0xe2,0x95,0x40,0x6e,0x33,0xc4,0xd9,0xe0,0xf2,0x1e,0x31,0x7f,0x49,0x24,0x99,0x83,0x82,0x78,0x89,0x2f,0xb4,0x8,0xe9,0x48,0xa8,0x6d,0xa7,0x88,0x1a,0xc,0xae,0xb8,0xa3,0x65,0xb3,0x71,0xa6,0x10,0xbf,0xf1,0x87,0x79,0xfe,0xda,0x5f,0x17,0x8b,0x45,0x2a,0x50,0xa5,0xfc,0x94,0x6,0x5c,0xb6,0x9f,0xd2,0x3e,0x14,0x73,0x8a,0x13,0x16,0x76,0x58,0xac,0xfd,0x30,0xf9,0x1c,0x47,0x97,0x7a,0x3c,0x38,0x4c,0xdb,0xf3,0x15,0xc9,0x46,0x66,0x26,0x84,0xa2,0x30,0x4f,0x99,0x92,0x89,0x22,0xc3,0x5,0x9e,0x47,0x8d,0x62,0x82,0x3d,0xa1,0xf0,0x75,0x7a,0x8f,0x6f,0x0,0x3a,0x95,0x5b,0x8c,0x53,0xd4,0xdb,0xad,0xa0,0x39,0x3e,0x59,0x72,0x86,0x3c,0x5c,0x2c,0x76,0xd6,0xbe,0xf8,0x14,0x9c,0xb5,0xf1,0xd9,0x12,0x66,0x6c,0x4c,0x3f,0xe3,0xd3,0x36,0xd7,0x1a,0x50,0x16,0x6d,0xbd,0x33,0xcd,0x54,0xc,0x65,0x1c,0xde,0x49,0x29,0xaa,0xeb,0x4,0xe5,0xe2,0xd1,0xdc,0x93,0x45,0xb8,0xfb,0x70,0x7e,0xf7,0x7c,0xc0,0xa4,0x71,0xae,0x57,0x69,0x8a,0x96,0x24,0x6b,0x9d,0x97,0xbf,0x6a,0xcc,0xc8,0xd0,0xa7,0xc2,0xd5,0x28,0x4e,0x2e,0x3,0xe,0xb3,0x55,0x63,0x52,0xa3,0xa9,0xa8,0xee,0xf3,0x44,0x19,0x34,0x1b,0xca,0xd8,0x4d,0x7,0x40,0xea,0xf5,0x74,0xc4,0xdd,0xb2,0x56,0x8,0x8e,0x9,0x38,0x2a,0x10,0xab,0xd,0x6e,0x13,0x4b,0x3b,0xf6,0xb7,0x2d,0xc5,0xdf,0x25,0xda,0xb4,0x85,0x2b,0x2,0xfd,0xe0,0x48,0xbc,0x81,0x35,0xe7,0x79,0x2f,0xfc,0xa5,0x21,0xff,0x73,0xc6,0x15,0x60,0xe6,0x23,0xcb,0x32,0xfe,0x94,0x5e,0x51,0x17,0x20,0x7d,0x7b,0x91,0x5a,0x41,0xed,0x18,0xe4,0x78,0x6,0xf,0x8b,0x87,0x37,0x9f,0x58,0x80,0x1f,0x1d,0xce,0x11,0x43,0x9a,0x67,0xb9,0x68,0xc9,0x64,0xaf,0x90,0x46,0xf9,0xf4,0xb6,0xc7,0xec,0xb,0xb0,0xcf,0x5f,0x98,0x42,0x7f,0xa6,0x9b,0xa,0xe1,0x88,0xd2,0x77,0xf2,0xbb,0x4a,0x83,0x31,0xe9,0xe8,0xac,0x27,0x5d,0xfa,0xef,0x61,0xc1,0xb1,0xba,0x1,0x1e,0x99,0x65,0x90,0x3c,0xf6,0x72,0x7b,0x5,0x25,0xe2,0x4a,0xfa,0xb3,0x60,0x62,0xfd,0x1a,0xe7,0x3e,0x6c,0x19,0xb4,0x15,0xc4,0x84,0x3b,0xed,0xd2,0x91,0xba,0xcb,0x89,0x22,0xb2,0xcd,0x76,0xdb,0x2,0x3f,0xe5,0xf5,0x9c,0x77,0xe6,0xc6,0x8f,0xa,0xaf,0x94,0x4c,0xfe,0x37,0x20,0x5a,0xd1,0x95,0xbc,0x1c,0x92,0x87,0x63,0x7c,0xc7,0xcc,0x97,0x3d,0x7a,0x30,0xa0,0xb9,0x9,0x88,0xf3,0x75,0x2b,0xcf,0x6d,0x57,0x45,0x74,0x6e,0x13,0x70,0xd6,0xca,0x8b,0x46,0x36,0x58,0xa2,0xb8,0x50,0x56,0xf8,0xc9,0xa7,0x35,0x9d,0x80,0x7f,0x9a,0x48,0xfc,0xc1,0xd8,0x81,0x52,0x4,0xbb,0xe,0x82,0x5c,0x5e,0x9b,0x1d,0x68,0xe9,0x83,0x4f,0xb6,0x5d,0x6a,0x2c,0x23,0x27,0xec,0x6,0x0,0x71,0x29,0xb0,0x4e,0x34,0xa3,0x61,0x18,0x79,0x96,0xd7,0x54,0xa1,0xac,0x9f,0x98,0x86,0xc5,0x38,0xee,0x1,0x8a,0x3,0xd,0xd3,0xc,0xd9,0xbd,0xeb,0xf7,0x14,0x2a,0xea,0xe0,0x16,0x59,0xb5,0xb1,0x17,0xc2,0xa8,0xbf,0xda,0xad,0x7e,0x53,0x33,0x55,0x1e,0x28,0xce,0x73,0xd5,0xd4,0xde,0x2f,0x64,0x39,0x8e,0x93,0xa5,0xb7,0x66,0x49,0x4d,0xdf,0xf9,0x5b,0xf4,0xef,0xe4,0x32,0xe3,0x78,0xbe,0x5f,0xff,0x1f,0xf0,0x3a,0x8,0x8d,0xdc,0x40,0x7d,0x12,0xf2,0x7,0xf1,0x26,0xe8,0x47,0xd0,0xa6,0xa9,0x2e,0x24,0x43,0x44,0xdd,0x21,0x41,0xfb,0xf,0xc3,0xab,0xb,0x51,0xc8,0xe1,0x69,0x85,0x1b,0x6f,0xa4,0x8c,0x9e,0x42,0x31,0x11,0x67,0xaa,0x4b,0xae,0xc0,0x10,0x6b,0x2d,0xca,0x6c,0xd4,0xa9,0xfc,0x8c,0x70,0x31,0x2,0xea,0xe2,0x18,0x73,0x1d,0xec,0x42,0xc0,0x8a,0x2d,0x87,0xb3,0x32,0x1a,0x3,0x91,0x75,0x49,0xcf,0xff,0xce,0xd7,0xed,0xa7,0xd2,0xe4,0x21,0xf5,0xc,0x53,0x39,0x96,0x99,0xe7,0xd0,0xbc,0xba,0x9d,0x56,0x3a,0xc5,0x8f,0x27,0x46,0x7b,0x20,0xf2,0xe8,0xbe,0x62,0x3b,0x38,0xe6,0x1,0xb4,0x84,0xd6,0xa0,0x5d,0xaf,0x7e,0xa3,0xe,0x57,0x68,0x3e,0x81,0x71,0x33,0x2b,0x0,0x2a,0x86,0x23,0xdf,0xc1,0xbf,0x4c,0xc8,0xf0,0x40,0x9f,0x58,0xd8,0x47,0x9,0xda,0x44,0x8d,0x2e,0xf6,0x6b,0x2f,0x9a,0xe0,0x28,0x3d,0x6,0xa6,0x7d,0x76,0xd9,0xc6,0x77,0xcc,0x98,0x8,0x85,0x5f,0x61,0xb8,0xcd,0x5c,0x4f,0x26,0xb0,0x15,0x7c,0x35,0x66,0xfa,0xb2,0x37,0x48,0xbd,0xc7,0xa8,0x52,0xfd,0x4b,0x9c,0x13,0x94,0x6a,0x1c,0x43,0xe1,0xf7,0x65,0x5e,0x88,0x4e,0x55,0x4,0xe5,0x59,0xc2,0x4a,0x80,0x45,0xa5,0x1e,0x36,0xa1,0xd5,0x8b,0xab,0x24,0xf8,0xf1,0x14,0xdd,0x10,0xd1,0x97,0x7a,0xaa,0xfe,0x67,0x9e,0xf9,0x41,0xb5,0x9b,0xfb,0xb1,0xeb,0x79,0x11,0xd3,0x3f,0x72,0x5b,0x82,0x54,0x3c,0x7f,0xb9,0xb7,0xbb,0x30,0x63,0x7,0x69,0xb6,0xae,0x90,0x51,0x4d,0xa,0xf4,0xcb,0x93,0xdb,0xa2,0x8e,0x19,0x6d,0xee,0xc3,0x2c,0x25,0x22,0x1b,0x16,0x74,0xc9,0xa4,0x92,0x64,0x95,0x6f,0x6e,0x34,0x29,0xde,0x83,0xdc,0xf3,0x1f,0xd,0xac,0xe3,0x50,0x5a,0xad,0x78,0xf,0xb,0x60,0x17,0x12,0x5,0x89,0xef,0xc4,0xe9,0x9f,0x58,0x87,0x37,0x1d,0xce,0x80,0x1f,0x18,0xe4,0x41,0xed,0xf,0x8b,0x78,0x6,0x46,0xf9,0xaf,0x90,0xc7,0xec,0xf4,0xb6,0x9a,0x67,0x11,0x43,0xc9,0x64,0xb9,0x68,0xe1,0x88,0x9b,0xa,0xf2,0xbb,0xd2,0x77,0xcf,0x5f,0xb,0xb0,0x7f,0xa6,0x98,0x42,0x61,0xc1,0xfa,0xef,0x1,0x1e,0xb1,0xba,0x31,0xe9,0x4a,0x83,0x27,0x5d,0xe8,0xac,0x8,0x8e,0xb2,0x56,0x2a,0x10,0x9,0x38,0x40,0xea,0x4d,0x7,0xc4,0xdd,0xf5,0x74,0xdf,0x25,0x2d,0xc5,0x85,0x2b,0xda,0xb4,0x6e,0x13,0xab,0xd,0xf6,0xb7,0x4b,0x3b,0xfc,0xa5,0x79,0x2f,0x73,0xc6,0x21,0xff,0xe0,0x48,0x2,0xfd,0x35,0xe7,0xbc,0x81,0x17,0x20,0x5e,0x51,0x91,0x5a,0x7d,0x7b,0xe6,0x23,0x15,0x60,0xfe,0x94,0xcb,0x32,0xeb,0x4,0x29,0xaa,0xd1,0xdc,0xe5,0xe2,0x54,0xc,0x33,0xcd,0xde,0x49,0x65,0x1c,0x71,0xae,0xc0,0xa4,0x8a,0x96,0x57,0x69,0xb8,0xfb,0x93,0x45,0xf7,0x7c,0x70,0x7e,0xc2,0xd5,0xd0,0xa7,0x2e,0x3,0x28,0x4e,0x9d,0x97,0x24,0x6b,0xcc,0xc8,0xbf,0x6a,0x44,0x19,0xee,0xf3,0xca,0xd8,0x34,0x1b,0x55,0x63,0xe,0xb3,0xa9,0xa8,0x52,0xa3,0x5,0x9e,0x22,0xc3,0x62,0x82,0x47,0x8d,0xa2,0x30,0x26,0x84,0x92,0x89,0x4f,0x99,0x5b,0x8c,0x3a,0x95,0xdb,0xad,0x53,0xd4,0xf0,0x75,0x3d,0xa1,0x6f,0x0,0x7a,0x8f,0xd6,0xbe,0x2c,0x76,0x9c,0xb5,0xf8,0x14,0x3e,0x59,0xa0,0x39,0x3c,0x5c,0x72,0x86,0xd7,0x1a,0xd3,0x36,0x6d,0xbd,0x50,0x16,0x12,0x66,0xf1,0xd9,0x3f,0xe3,0x6c,0x4c,0x9f,0x3d,0x1b,0x89,0xf6,0x20,0x2b,0x30,0x9b,0x7a,0xbc,0x27,0xfe,0x34,0xdb,0x3b,0x84,0x18,0x49,0xcc,0xc3,0x36,0xd6,0xb9,0x83,0x2c,0xe2,0x35,0xea,0x6d,0x62,0x14,0x19,0x80,0x87,0xe0,0xcb,0x3f,0x85,0xe5,0x95,0xcf,0x6f,0x7,0x41,0xad,0x25,0xc,0x48,0x60,0xab,0xdf,0xd5,0xf5,0x86,0x5a,0x6a,0x8f,0x6e,0xa3,0xe9,0xaf,0xd4,0x4,0x8a,0x74,0xed,0xb5,0xdc,0xa5,0x67,0xf0,0x90,0x13,0x52,0xbd,0x5c,0x5b,0x68,0x65,0x2a,0xfc,0x1,0x42,0xc9,0xc7,0x4e,0xc5,0x79,0x1d,0xc8,0x17,0xee,0xd0,0x33,0x2f,0x9d,0xd2,0x24,0x2e,0x6,0xd3,0x75,0x71,0x69,0x1e,0x7b,0x6c,0x91,0xf7,0x97,0xba,0xb7,0xa,0xec,0xda,0xeb,0x1a,0x10,0x11,0x57,0x4a,0xfd,0xa0,0x8d,0xa2,0x73,0x61,0xf4,0xbe,0xf9,0x53,0x4c,0xcd,0x7d,0x64,0xb,0xef,0xb1,0x37,0xb0,0x81,0x93,0xa9,0x12,0xb4,0xd7,0xaa,0xf2,0x82,0x4f,0xe,0x94,0x7c,0x66,0x9c,0x63,0xd,0x3c,0x92,0xbb,0x44,0x59,0xf1,0x5,0x38,0x8c,0x5e,0xc0,0x96,0x45,0x1c,0x98,0x46,0xca,0x7f,0xac,0xd9,0x5f,0x9a,0x72,0x8b,0x47,0x2d,0xe7,0xe8,0xae,0x99,0xc4,0xc2,0x28,0xe3,0xf8,0x54,0xa1,0x5d,0xc1,0xbf,0xb6,0x32,0x3e,0x8e,0x26,0xe1,0x39,0xa6,0xa4,0x77,0xa8,0xfa,0x23,0xde,0x0,0xd1,0x70,0xdd,0x16,0x29,0xff,0x40,0x4d,0xf,0x7e,0x55,0xb2,0x9,0x76,0xe6,0x21,0xfb,0xc6,0x1f,0x22,0xb3,0x58,0x31,0x6b,0xce,0x4b,0x2,0xf3,0x3a,0x88,0x50,0x51,0x15,0x9e,0xe4,0x43,0x56,0xd8,0x78,0x8,0x3,0xb8,0xa7,0xe7,0x1b,0xee,0x42,0x88,0xc,0x5,0x7b,0x5b,0x9c,0x34,0x84,0xcd,0x1e,0x1c,0x83,0x64,0x99,0x40,0x12,0x67,0xca,0x6b,0xba,0xfa,0x45,0x93,0xac,0xef,0xc4,0xb5,0xf7,0x5c,0xcc,0xb3,0x8,0xa5,0x7c,0x41,0x9b,0x8b,0xe2,0x9,0x98,0xb8,0xf1,0x74,0xd1,0xea,0x32,0x80,0x49,0x5e,0x24,0xaf,0xeb,0xc2,0x62,0xec,0xf9,0x1d,0x2,0xb9,0xb2,0xe9,0x43,0x4,0x4e,0xde,0xc7,0x77,0xf6,0x8d,0xb,0x55,0xb1,0x13,0x29,0x3b,0xa,0x10,0x6d,0xe,0xa8,0xb4,0xf5,0x38,0x48,0x26,0xdc,0xc6,0x2e,0x28,0x86,0xb7,0xd9,0x4b,0xe3,0xfe,0x1,0xe4,0x36,0x82,0xbf,0xa6,0xff,0x2c,0x7a,0xc5,0x70,0xfc,0x22,0x20,0xe5,0x63,0x16,0x97,0xfd,0x31,0xc8,0x23,0x14,0x52,0x5d,0x59,0x92,0x78,0x7e,0xf,0x57,0xce,0x30,0x4a,0xdd,0x1f,0x66,0x7,0xe8,0xa9,0x2a,0xdf,0xd2,0xe1,0xe6,0xf8,0xbb,0x46,0x90,0x7f,0xf4,0x7d,0x73,0xad,0x72,0xa7,0xc3,0x95,0x89,0x6a,0x54,0x94,0x9e,0x68,0x27,0xcb,0xcf,0x69,0xbc,0xd6,0xc1,0xa4,0xd3,0x0,0x2d,0x4d,0x2b,0x60,0x56,0xb0,0xd,0xab,0xaa,0xa0,0x51,0x1a,0x47,0xf0,0xed,0xdb,0xc9,0x18,0x37,0x33,0xa1,0x87,0x25,0x8a,0x91,0x9a,0x4c,0x9d,0x6,0xc0,0x21,0x81,0x61,0x8e,0x44,0x76,0xf3,0xa2,0x3e,0x3,0x6c,0x8c,0x79,0x8f,0x58,0x96,0x39,0xae,0xd8,0xd7,0x50,0x5a,0x3d,0x3a,0xa3,0x5f,0x3f,0x85,0x71,0xbd,0xd5,0x75,0x2f,0xb6,0x9f,0x17,0xfb,0x65,0x11,0xda,0xf2,0xe0,0x3c,0x4f,0x6f,0x19,0xd4,0x35,0xd0,0xbe,0x6e,0x15,0x53,0xa7,0x1,0xb9,0xc4,0x91,0xe1,0x1d,0x5c,0x6f,0x87,0x8f,0x75,0x1e,0x70,0x81,0x2f,0xad,0xe7,0x40,0xea,0xde,0x5f,0x77,0x6e,0xfc,0x18,0x24,0xa2,0x92,0xa3,0xba,0x80,0xca,0xbf,0x89,0x4c,0x98,0x61,0x3e,0x54,0xfb,0xf4,0x8a,0xbd,0xd1,0xd7,0xf0,0x3b,0x57,0xa8,0xe2,0x4a,0x2b,0x16,0x4d,0x9f,0x85,0xd3,0xf,0x56,0x55,0x8b,0x6c,0xd9,0xe9,0xbb,0xcd,0x30,0xc2,0x13,0xce,0x63,0x3a,0x5,0x53,0xec,0x1c,0x5e,0x46,0x6d,0x47,0xeb,0x4e,0xb2,0xac,0xd2,0x21,0xa5,0x9d,0x2d,0xf2,0x35,0xb5,0x2a,0x64,0xb7,0x29,0xe0,0x43,0x9b,0x6,0x42,0xf7,0x8d,0x45,0x50,0x6b,0xcb,0x10,0x1b,0xb4,0xab,0x1a,0xa1,0xf5,0x65,0xe8,0x32,0xc,0xd5,0xa0,0x31,0x22,0x4b,0xdd,0x78,0x11,0x58,0xb,0x97,0xdf,0x5a,0x25,0xd0,0xaa,0xc5,0x3f,0x90,0x26,0xf1,0x7e,0xf9,0x7,0x71,0x2e,0x8c,0x9a,0x8,0x33,0xe5,0x23,0x38,0x69,0x88,0x34,0xaf,0x27,0xed,0x28,0xc8,0x73,0x5b,0xcc,0xb8,0xe6,0xc6,0x49,0x95,0x9c,0x79,0xb0,0x7d,0xbc,0xfa,0x17,0xc7,0x93,0xa,0xf3,0x94,0x2c,0xd8,0xf6,0x96,0xdc,0x86,0x14,0x7c,0xbe,0x52,0x1f,0x36,0xef,0x39,0x51,0x12,0xd4,0xda,0xd6,0x5d,0xe,0x6a,0x4,0xdb,0xc3,0xfd,0x3c,0x20,0x67,0x99,0xa6,0xfe,0xb6,0xcf,0xe3,0x74,0x0,0x83,0xae,0x41,0x48,0x4f,0x76,0x7b,0x19,0xa4,0xc9,0xff,0x9,0xf8,0x2,0x3,0x59,0x44,0xb3,0xee,0xb1,0x9e,0x72,0x60,0xc1,0x8e,0x3d,0x37,0xc0,0x15,0x62,0x66,0xd,0x7a,0x7f,0x68,0xe4,0x82,0xa9,0x84,0xb,0xcc,0x13,0xa3,0x89,0x5a,0x14,0x8b,0x8c,0x70,0xd5,0x79,0x9b,0x1f,0xec,0x92,0xd2,0x6d,0x3b,0x4,0x53,0x78,0x60,0x22,0xe,0xf3,0x85,0xd7,0x5d,0xf0,0x2d,0xfc,0x75,0x1c,0xf,0x9e,0x66,0x2f,0x46,0xe3,0x5b,0xcb,0x9f,0x24,0xeb,0x32,0xc,0xd6,0xf5,0x55,0x6e,0x7b,0x95,0x8a,0x25,0x2e,0xa5,0x7d,0xde,0x17,0xb3,0xc9,0x7c,0x38,0x9c,0x1a,0x26,0xc2,0xbe,0x84,0x9d,0xac,0xd4,0x7e,0xd9,0x93,0x50,0x49,0x61,0xe0,0x4b,0xb1,0xb9,0x51,0x11,0xbf,0x4e,0x20,0xfa,0x87,0x3f,0x99,0x62,0x23,0xdf,0xaf,0x68,0x31,0xed,0xbb,0xe7,0x52,0xb5,0x6b,0x74,0xdc,0x96,0x69,0xa1,0x73,0x28,0x15,0x83,0xb4,0xca,0xc5,0x5,0xce,0xe9,0xef,0x72,0xb7,0x81,0xf4,0x6a,0x0,0x5f,0xa6,0x7f,0x90,0xbd,0x3e,0x45,0x48,0x71,0x76,0xc0,0x98,0xa7,0x59,0x4a,0xdd,0xf1,0x88,0xe5,0x3a,0x54,0x30,0x1e,0x2,0xc3,0xfd,0x2c,0x6f,0x7,0xd1,0x63,0xe8,0xe4,0xea,0x56,0x41,0x44,0x33,0xba,0x97,0xbc,0xda,0x9,0x3,0xb0,0xff,0x58,0x5c,0x2b,0xfe,0xd0,0x8d,0x7a,0x67,0x5e,0x4c,0xa0,0x8f,0xc1,0xf7,0x9a,0x27,0x3d,0x3c,0xc6,0x37,0x91,0xa,0xb6,0x57,0xf6,0x16,0xd3,0x19,0x36,0xa4,0xb2,0x10,0x6,0x1d,0xdb,0xd,0xcf,0x18,0xae,0x1,0x4f,0x39,0xc7,0x40,0x64,0xe1,0xa9,0x35,0xfb,0x94,0xee,0x1b,0x42,0x2a,0xb8,0xe2,0x8,0x21,0x6c,0x80,0xaa,0xcd,0x34,0xad,0xa8,0xc8,0xe6,0x12,0x43,0x8e,0x47,0xa2,0xf9,0x29,0xc4,0x82,0x86,0xf2,0x65,0x4d,0xab,0x77,0xf8,0xd8,0xea,0x48,0x6e,0xfc,0x83,0x55,0x5e,0x45,0xee,0xf,0xc9,0x52,0x8b,0x41,0xae,0x4e,0xf1,0x6d,0x3c,0xb9,0xb6,0x43,0xa3,0xcc,0xf6,0x59,0x97,0x40,0x9f,0x18,0x17,0x61,0x6c,0xf5,0xf2,0x95,0xbe,0x4a,0xf0,0x90,0xe0,0xba,0x1a,0x72,0x34,0xd8,0x50,0x79,0x3d,0x15,0xde,0xaa,0xa0,0x80,0xf3,0x2f,0x1f,0xfa,0x1b,0xd6,0x9c,0xda,0xa1,0x71,0xff,0x1,0x98,0xc0,0xa9,0xd0,0x12,0x85,0xe5,0x66,0x27,0xc8,0x29,0x2e,0x1d,0x10,0x5f,0x89,0x74,0x37,0xbc,0xb2,0x3b,0xb0,0xc,0x68,0xbd,0x62,0x9b,0xa5,0x46,0x5a,0xe8,0xa7,0x51,0x5b,0x73,0xa6,0x0,0x4,0x1c,0x6b,0xe,0x19,0xe4,0x82,0xe2,0xcf,0xc2,0x7f,0x99,0xaf,0x9e,0x6f,0x65,0x64,0x22,0x3f,0x88,0xd5,0xf8,0xd7,0x6,0x14,0x81,0xcb,0x8c,0x26,0x39,0xb8,0x8,0x11,0x7e,0x9a,0xc4,0x42,0xc5,0xf4,0xe6,0xdc,0x67,0xc1,0xa2,0xdf,0x87,0xf7,0x3a,0x7b,0xe1,0x9,0x13,0xe9,0x16,0x78,0x49,0xe7,0xce,0x31,0x2c,0x84,0x70,0x4d,0xf9,0x2b,0xb5,0xe3,0x30,0x69,0xed,0x33,0xbf,0xa,0xd9,0xac,0x2a,0xef,0x7,0xfe,0x32,0x58,0x92,0x9d,0xdb,0xec,0xb1,0xb7,0x5d,0x96,0x8d,0x21,0xd4,0x28,0xb4,0xca,0xc3,0x47,0x4b,0xfb,0x53,0x94,0x4c,0xd3,0xd1,0x2,0xdd,0x8f,0x56,0xab,0x75,0xa4,0x5,0xa8,0x63,0x5c,0x8a,0x35,0x38,0x7a,0xb,0x20,0xc7,0x7c,0x3,0x93,0x54,0x8e,0xb3,0x6a,0x57,0xc6,0x2d,0x44,0x1e,0xbb,0x3e,0x77,0x86,0x4f,0xfd,0x25,0x24,0x60,0xeb,0x91,0x36,0x23,0xad,0xd,0x7d,0x76,0xcd,0xd2,0x13,0xef,0x1a,0xb6,0x7c,0xf8,0xf1,0x8f,0xaf,0x68,0xc0,0x70,0x39,0xea,0xe8,0x77,0x90,0x6d,0xb4,0xe6,0x93,0x3e,0x9f,0x4e,0xe,0xb1,0x67,0x58,0x1b,0x30,0x41,0x3,0xa8,0x38,0x47,0xfc,0x51,0x88,0xb5,0x6f,0x7f,0x16,0xfd,0x6c,0x4c,0x5,0x80,0x25,0x1e,0xc6,0x74,0xbd,0xaa,0xd0,0x5b,0x1f,0x36,0x96,0x18,0xd,0xe9,0xf6,0x4d,0x46,0x1d,0xb7,0xf0,0xba,0x2a,0x33,0x83,0x2,0x79,0xff,0xa1,0x45,0xe7,0xdd,0xcf,0xfe,0xe4,0x99,0xfa,0x5c,0x40,0x1,0xcc,0xbc,0xd2,0x28,0x32,0xda,0xdc,0x72,0x43,0x2d,0xbf,0x17,0xa,0xf5,0x10,0xc2,0x76,0x4b,0x52,0xb,0xd8,0x8e,0x31,0x84,0x8,0xd6,0xd4,0x11,0x97,0xe2,0x63,0x9,0xc5,0x3c,0xd7,0xe0,0xa6,0xa9,0xad,0x66,0x8c,0x8a,0xfb,0xa3,0x3a,0xc4,0xbe,0x29,0xeb,0x92,0xf3,0x1c,0x5d,0xde,0x2b,0x26,0x15,0x12,0xc,0x4f,0xb2,0x64,0x8b,0x0,0x89,0x87,0x59,0x86,0x53,0x37,0x61,0x7d,0x9e,0xa0,0x60,0x6a,0x9c,0xd3,0x3f,0x3b,0x9d,0x48,0x22,0x35,0x50,0x27,0xf4,0xd9,0xb9,0xdf,0x94,0xa2,0x44,0xf9,0x5f,0x5e,0x54,0xa5,0xee,0xb3,0x4,0x19,0x2f,0x3d,0xec,0xc3,0xc7,0x55,0x73,0xd1,0x7e,0x65,0x6e,0xb8,0x69,0xf2,0x34,0xd5,0x75,0x95,0x7a,0xb0,0x82,0x7,0x56,0xca,0xf7,0x98,0x78,0x8d,0x7b,0xac,0x62,0xcd,0x5a,0x2c,0x23,0xa4,0xae,0xc9,0xce,0x57,0xab,0xcb,0x71,0x85,0x49,0x21,0x81,0xdb,0x42,0x6b,0xe3,0xf,0x91,0xe5,0x2e,0x6,0x14,0xc8,0xbb,0x9b,0xed,0x20,0xc1,0x24,0x4a,0x9a,0xe1,0xa7,0x18,0xbe,0x6,0x7b,0x2e,0x5e,0xa2,0xe3,0xd0,0x38,0x30,0xca,0xa1,0xcf,0x3e,0x90,0x12,0x58,0xff,0x55,0x61,0xe0,0xc8,0xd1,0x43,0xa7,0x9b,0x1d,0x2d,0x1c,0x5,0x3f,0x75,0x0,0x36,0xf3,0x27,0xde,0x81,0xeb,0x44,0x4b,0x35,0x2,0x6e,0x68,0x4f,0x84,0xe8,0x17,0x5d,0xf5,0x94,0xa9,0xf2,0x20,0x3a,0x6c,0xb0,0xe9,0xea,0x34,0xd3,0x66,0x56,0x4,0x72,0x8f,0x7d,0xac,0x71,0xdc,0x85,0xba,0xec,0x53,0xa3,0xe1,0xf9,0xd2,0xf8,0x54,0xf1,0xd,0x13,0x6d,0x9e,0x1a,0x22,0x92,0x4d,0x8a,0xa,0x95,0xdb,0x8,0x96,0x5f,0xfc,0x24,0xb9,0xfd,0x48,0x32,0xfa,0xef,0xd4,0x74,0xaf,0xa4,0xb,0x14,0xa5,0x1e,0x4a,0xda,0x57,0x8d,0xb3,0x6a,0x1f,0x8e,0x9d,0xf4,0x62,0xc7,0xae,0xe7,0xb4,0x28,0x60,0xe5,0x9a,0x6f,0x15,0x7a,0x80,0x2f,0x99,0x4e,0xc1,0x46,0xb8,0xce,0x91,0x33,0x25,0xb7,0x8c,0x5a,0x9c,0x87,0xd6,0x37,0x8b,0x10,0x98,0x52,0x97,0x77,0xcc,0xe4,0x73,0x7,0x59,0x79,0xf6,0x2a,0x23,0xc6,0xf,0xc2,0x3,0x45,0xa8,0x78,0x2c,0xb5,0x4c,0x2b,0x93,0x67,0x49,0x29,0x63,0x39,0xab,0xc3,0x1,0xed,0xa0,0x89,0x50,0x86,0xee,0xad,0x6b,0x65,0x69,0xe2,0xb1,0xd5,0xbb,0x64,0x7c,0x42,0x83,0x9f,0xd8,0x26,0x19,0x41,0x9,0x70,0x5c,0xcb,0xbf,0x3c,0x11,0xfe,0xf7,0xf0,0xc9,0xc4,0xa6,0x1b,0x76,0x40,0xb6,0x47,0xbd,0xbc,0xe6,0xfb,0xc,0x51,0xe,0x21,0xcd,0xdf,0x7e,0x31,0x82,0x88,0x7f,0xaa,0xdd,0xd9,0xb2,0xc5,0xc0,0xd7,0x5b,0x3d,0x16,0x3b,0xe4,0x23,0xfc,0x4c,0x66,0xb5,0xfb,0x64,0x63,0x9f,0x3a,0x96,0x74,0xf0,0x3,0x7d,0x3d,0x82,0xd4,0xeb,0xbc,0x97,0x8f,0xcd,0xe1,0x1c,0x6a,0x38,0xb2,0x1f,0xc2,0x13,0x9a,0xf3,0xe0,0x71,0x89,0xc0,0xa9,0xc,0xb4,0x24,0x70,0xcb,0x4,0xdd,0xe3,0x39,0x1a,0xba,0x81,0x94,0x7a,0x65,0xca,0xc1,0x4a,0x92,0x31,0xf8,0x5c,0x26,0x93,0xd7,0x73,0xf5,0xc9,0x2d,0x51,0x6b,0x72,0x43,0x3b,0x91,0x36,0x7c,0xbf,0xa6,0x8e,0xf,0xa4,0x5e,0x56,0xbe,0xfe,0x50,0xa1,0xcf,0x15,0x68,0xd0,0x76,0x8d,0xcc,0x30,0x40,0x87,0xde,0x2,0x54,0x8,0xbd,0x5a,0x84,0x9b,0x33,0x79,0x86,0x4e,0x9c,0xc7,0xfa,0x6c,0x5b,0x25,0x2a,0xea,0x21,0x6,0x0,0x9d,0x58,0x6e,0x1b,0x85,0xef,0xb0,0x49,0x90,0x7f,0x52,0xd1,0xaa,0xa7,0x9e,0x99,0x2f,0x77,0x48,0xb6,0xa5,0x32,0x1e,0x67,0xa,0xd5,0xbb,0xdf,0xf1,0xed,0x2c,0x12,0xc3,0x80,0xe8,0x3e,0x8c,0x7,0xb,0x5,0xb9,0xae,0xab,0xdc,0x55,0x78,0x53,0x35,0xe6,0xec,0x5f,0x10,0xb7,0xb3,0xc4,0x11,0x3f,0x62,0x95,0x88,0xb1,0xa3,0x4f,0x60,0x2e,0x18,0x75,0xc8,0xd2,0xd3,0x29,0xd8,0x7e,0xe5,0x59,0xb8,0x19,0xf9,0x3c,0xf6,0xd9,0x4b,0x5d,0xff,0xe9,0xf2,0x34,0xe2,0x20,0xf7,0x41,0xee,0xa0,0xd6,0x28,0xaf,0x8b,0xe,0x46,0xda,0x14,0x7b,0x1,0xf4,0xad,0xc5,0x57,0xd,0xe7,0xce,0x83,0x6f,0x45,0x22,0xdb,0x42,0x47,0x27,0x9,0xfd,0xac,0x61,0xa8,0x4d,0x16,0xc6,0x2b,0x6d,0x69,0x1d,0x8a,0xa2,0x44,0x98,0x17,0x37,0x90,0x32,0x14,0x86,0xf9,0x2f,0x24,0x3f,0x94,0x75,0xb3,0x28,0xf1,0x3b,0xd4,0x34,0x8b,0x17,0x46,0xc3,0xcc,0x39,0xd9,0xb6,0x8c,0x23,0xed,0x3a,0xe5,0x62,0x6d,0x1b,0x16,0x8f,0x88,0xef,0xc4,0x30,0x8a,0xea,0x9a,0xc0,0x60,0x8,0x4e,0xa2,0x2a,0x3,0x47,0x6f,0xa4,0xd0,0xda,0xfa,0x89,0x55,0x65,0x80,0x61,0xac,0xe6,0xa0,0xdb,0xb,0x85,0x7b,0xe2,0xba,0xd3,0xaa,0x68,0xff,0x9f,0x1c,0x5d,0xb2,0x53,0x54,0x67,0x6a,0x25,0xf3,0xe,0x4d,0xc6,0xc8,0x41,0xca,0x76,0x12,0xc7,0x18,0xe1,0xdf,0x3c,0x20,0x92,0xdd,0x2b,0x21,0x9,0xdc,0x7a,0x7e,0x66,0x11,0x74,0x63,0x9e,0xf8,0x98,0xb5,0xb8,0x5,0xe3,0xd5,0xe4,0x15,0x1f,0x1e,0x58,0x45,0xf2,0xaf,0x82,0xad,0x7c,0x6e,0xfb,0xb1,0xf6,0x5c,0x43,0xc2,0x72,0x6b,0x4,0xe0,0xbe,0x38,0xbf,0x8e,0x9c,0xa6,0x1d,0xbb,0xd8,0xa5,0xfd,0x8d,0x40,0x1,0x9b,0x73,0x69,0x93,0x6c,0x2,0x33,0x9d,0xb4,0x4b,0x56,0xfe,0xa,0x37,0x83,0x51,0xcf,0x99,0x4a,0x13,0x97,0x49,0xc5,0x70,0xa3,0xd6,0x50,0x95,0x7d,0x84,0x48,0x22,0xe8,0xe7,0xa1,0x96,0xcb,0xcd,0x27,0xec,0xf7,0x5b,0xae,0x52,0xce,0xb0,0xb9,0x3d,0x31,0x81,0x29,0xee,0x36,0xa9,0xab,0x78,0xa7,0xf5,0x2c,0xd1,0xf,0xde,0x7f,0xd2,0x19,0x26,0xf0,0x4f,0x42,0x0,0x71,0x5a,0xbd,0x6,0x79,0xe9,0x2e,0xf4,0xc9,0x10,0x2d,0xbc,0x57,0x3e,0x64,0xc1,0x44,0xd,0xfc,0x35,0x87,0x5f,0x5e,0x1a,0x91,0xeb,0x4c,0x59,0xd7,0x77,0x7,0xc,0xb7,0xa8,0x23,0xdf,0x2a,0x86,0x4c,0xc8,0xc1,0xbf,0x9f,0x58,0xf0,0x40,0x9,0xda,0xd8,0x47,0xa0,0x5d,0x84,0xd6,0xa3,0xe,0xaf,0x7e,0x3e,0x81,0x57,0x68,0x2b,0x0,0x71,0x33,0x98,0x8,0x77,0xcc,0x61,0xb8,0x85,0x5f,0x4f,0x26,0xcd,0x5c,0x7c,0x35,0xb0,0x15,0x2e,0xf6,0x44,0x8d,0x9a,0xe0,0x6b,0x2f,0x6,0xa6,0x28,0x3d,0xd9,0xc6,0x7d,0x76,0x2d,0x87,0xc0,0x8a,0x1a,0x3,0xb3,0x32,0x49,0xcf,0x91,0x75,0xd7,0xed,0xff,0xce,0xd4,0xa9,0xca,0x6c,0x70,0x31,0xfc,0x8c,0xe2,0x18,0x2,0xea,0xec,0x42,0x73,0x1d,0x8f,0x27,0x3a,0xc5,0x20,0xf2,0x46,0x7b,0x62,0x3b,0xe8,0xbe,0x1,0xb4,0x38,0xe6,0xe4,0x21,0xa7,0xd2,0x53,0x39,0xf5,0xc,0xe7,0xd0,0x96,0x99,0x9d,0x56,0xbc,0xba,0xcb,0x93,0xa,0xf4,0x8e,0x19,0xdb,0xa2,0xc3,0x2c,0x6d,0xee,0x1b,0x16,0x25,0x22,0x3c,0x7f,0x82,0x54,0xbb,0x30,0xb9,0xb7,0x69,0xb6,0x63,0x7,0x51,0x4d,0xae,0x90,0x50,0x5a,0xac,0xe3,0xf,0xb,0xad,0x78,0x12,0x5,0x60,0x17,0xc4,0xe9,0x89,0xef,0xa4,0x92,0x74,0xc9,0x6f,0x6e,0x64,0x95,0xde,0x83,0x34,0x29,0x1f,0xd,0xdc,0xf3,0xf7,0x65,0x43,0xe1,0x4e,0x55,0x5e,0x88,0x59,0xc2,0x4,0xe5,0x45,0xa5,0x4a,0x80,0xb2,0x37,0x66,0xfa,0xc7,0xa8,0x48,0xbd,0x4b,0x9c,0x52,0xfd,0x6a,0x1c,0x13,0x94,0x9e,0xf9,0xfe,0x67,0x9b,0xfb,0x41,0xb5,0x79,0x11,0xb1,0xeb,0x72,0x5b,0xd3,0x3f,0xa1,0xd5,0x1e,0x36,0x24,0xf8,0x8b,0xab,0xdd,0x10,0xf1,0x14,0x7a,0xaa,0xd1,0x97,0xce,0x68,0xd0,0xad,0xf8,0x88,0x74,0x35,0x6,0xee,0xe6,0x1c,0x77,0x19,0xe8,0x46,0xc4,0x8e,0x29,0x83,0xb7,0x36,0x1e,0x7,0x95,0x71,0x4d,0xcb,0xfb,0xca,0xd3,0xe9,0xa3,0xd6,0xe0,0x25,0xf1,0x8,0x57,0x3d,0x92,0x9d,0xe3,0xd4,0xb8,0xbe,0x99,0x52,0x3e,0xc1,0x8b,0x23,0x42,0x7f,0x24,0xf6,0xec,0xba,0x66,0x3f,0x3c,0xe2,0x5,0xb0,0x80,0xd2,0xa4,0x59,0xab,0x7a,0xa7,0xa,0x53,0x6c,0x3a,0x85,0x75,0x37,0x2f,0x4,0x2e,0x82,0x27,0xdb,0xc5,0xbb,0x48,0xcc,0xf4,0x44,0x9b,0x5c,0xdc,0x43,0xd,0xde,0x40,0x89,0x2a,0xf2,0x6f,0x2b,0x9e,0xe4,0x2c,0x39,0x2,0xa2,0x79,0x72,0xdd,0xc2,0x73,0xc8,0x9c,0xc,0x81,0x5b,0x65,0xbc,0xc9,0x58,0x4b,0x22,0xb4,0x11,0x78,0x31,0x62,0xfe,0xb6,0x33,0x4c,0xb9,0xc3,0xac,0x56,0xf9,0x4f,0x98,0x17,0x90,0x6e,0x18,0x47,0xe5,0xf3,0x61,0x5a,0x8c,0x4a,0x51,0x0,0xe1,0x5d,0xc6,0x4e,0x84,0x41,0xa1,0x1a,0x32,0xa5,0xd1,0x8f,0xaf,0x20,0xfc,0xf5,0x10,0xd9,0x14,0xd5,0x93,0x7e,0xae,0xfa,0x63,0x9a,0xfd,0x45,0xb1,0x9f,0xff,0xb5,0xef,0x7d,0x15,0xd7,0x3b,0x76,0x5f,0x86,0x50,0x38,0x7b,0xbd,0xb3,0xbf,0x34,0x67,0x3,0x6d,0xb2,0xaa,0x94,0x55,0x49,0xe,0xf0,0xcf,0x97,0xdf,0xa6,0x8a,0x1d,0x69,0xea,0xc7,0x28,0x21,0x26,0x1f,0x12,0x70,0xcd,0xa0,0x96,0x60,0x91,0x6b,0x6a,0x30,0x2d,0xda,0x87,0xd8,0xf7,0x1b,0x9,0xa8,0xe7,0x54,0x5e,0xa9,0x7c,0xb,0xf,0x64,0x13,0x16,0x1,0x8d,0xeb,0xc0,0xed,0x2,0xc5,0x1a,0xaa,0x80,0x53,0x1d,0x82,0x85,0x79,0xdc,0x70,0x92,0x16,0xe5,0x9b,0xdb,0x64,0x32,0xd,0x5a,0x71,0x69,0x2b,0x7,0xfa,0x8c,0xde,0x54,0xf9,0x24,0xf5,0x7c,0x15,0x6,0x97,0x6f,0x26,0x4f,0xea,0x52,0xc2,0x96,0x2d,0xe2,0x3b,0x5,0xdf,0xfc,0x5c,0x67,0x72,0x9c,0x83,0x2c,0x27,0xac,0x74,0xd7,0x1e,0xba,0xc0,0x75,0x31,0x95,0x13,0x2f,0xcb,0xb7,0x8d,0x94,0xa5,0xdd,0x77,0xd0,0x9a,0x59,0x40,0x68,0xe9,0x42,0xb8,0xb0,0x58,0x18,0xb6,0x47,0x29,0xf3,0x8e,0x36,0x90,0x6b,0x2a,0xd6,0xa6,0x61,0x38,0xe4,0xb2,0xee,0x5b,0xbc,0x62,0x7d,0xd5,0x9f,0x60,0xa8,0x7a,0x21,0x1c,0x8a,0xbd,0xc3,0xcc,0xc,0xc7,0xe0,0xe6,0x7b,0xbe,0x88,0xfd,0x63,0x9,0x56,0xaf,0x76,0x99,0xb4,0x37,0x4c,0x41,0x78,0x7f,0xc9,0x91,0xae,0x50,0x43,0xd4,0xf8,0x81,0xec,0x33,0x5d,0x39,0x17,0xb,0xca,0xf4,0x25,0x66,0xe,0xd8,0x6a,0xe1,0xed,0xe3,0x5f,0x48,0x4d,0x3a,0xb3,0x9e,0xb5,0xd3,0x0,0xa,0xb9,0xf6,0x51,0x55,0x22,0xf7,0xd9,0x84,0x73,0x6e,0x57,0x45,0xa9,0x86,0xc8,0xfe,0x93,0x2e,0x34,0x35,0xcf,0x3e,0x98,0x3,0xbf,0x5e,0xff,0x1f,0xda,0x10,0x3f,0xad,0xbb,0x19,0xf,0x14,0xd2,0x4,0xc6,0x11,0xa7,0x8,0x46,0x30,0xce,0x49,0x6d,0xe8,0xa0,0x3c,0xf2,0x9d,0xe7,0x12,0x4b,0x23,0xb1,0xeb,0x1,0x28,0x65,0x89,0xa3,0xc4,0x3d,0xa4,0xa1,0xc1,0xef,0x1b,0x4a,0x87,0x4e,0xab,0xf0,0x20,0xcd,0x8b,0x8f,0xfb,0x6c,0x44,0xa2,0x7e,0xf1,0xd1,0x3a,0x98,0xbe,0x2c,0x53,0x85,0x8e,0x95,0x3e,0xdf,0x19,0x82,0x5b,0x91,0x7e,0x9e,0x21,0xbd,0xec,0x69,0x66,0x93,0x73,0x1c,0x26,0x89,0x47,0x90,0x4f,0xc8,0xc7,0xb1,0xbc,0x25,0x22,0x45,0x6e,0x9a,0x20,0x40,0x30,0x6a,0xca,0xa2,0xe4,0x8,0x80,0xa9,0xed,0xc5,0xe,0x7a,0x70,0x50,0x23,0xff,0xcf,0x2a,0xcb,0x6,0x4c,0xa,0x71,0xa1,0x2f,0xd1,0x48,0x10,0x79,0x0,0xc2,0x55,0x35,0xb6,0xf7,0x18,0xf9,0xfe,0xcd,0xc0,0x8f,0x59,0xa4,0xe7,0x6c,0x62,0xeb,0x60,0xdc,0xb8,0x6d,0xb2,0x4b,0x75,0x96,0x8a,0x38,0x77,0x81,0x8b,0xa3,0x76,0xd0,0xd4,0xcc,0xbb,0xde,0xc9,0x34,0x52,0x32,0x1f,0x12,0xaf,0x49,0x7f,0x4e,0xbf,0xb5,0xb4,0xf2,0xef,0x58,0x5,0x28,0x7,0xd6,0xc4,0x51,0x1b,0x5c,0xf6,0xe9,0x68,0xd8,0xc1,0xae,0x4a,0x14,0x92,0x15,0x24,0x36,0xc,0xb7,0x11,0x72,0xf,0x57,0x27,0xea,0xab,0x31,0xd9,0xc3,0x39,0xc6,0xa8,0x99,0x37,0x1e,0xe1,0xfc,0x54,0xa0,0x9d,0x29,0xfb,0x65,0x33,0xe0,0xb9,0x3d,0xe3,0x6f,0xda,0x9,0x7c,0xfa,0x3f,0xd7,0x2e,0xe2,0x88,0x42,0x4d,0xb,0x3c,0x61,0x67,0x8d,0x46,0x5d,0xf1,0x4,0xf8,0x64,0x1a,0x13,0x97,0x9b,0x2b,0x83,0x44,0x9c,0x3,0x1,0xd2,0xd,0x5f,0x86,0x7b,0xa5,0x74,0xd5,0x78,0xb3,0x8c,0x5a,0xe5,0xe8,0xaa,0xdb,0xf0,0x17,0xac,0xd3,0x43,0x84,0x5e,0x63,0xba,0x87,0x16,0xfd,0x94,0xce,0x6b,0xee,0xa7,0x56,0x9f,0x2d,0xf5,0xf4,0xb0,0x3b,0x41,0xe6,0xf3,0x7d,0xdd,0xad,0xa6,0x1d,0x2,0x6d,0x91,0x64,0xc8,0x2,0x86,0x8f,0xf1,0xd1,0x16,0xbe,0xe,0x47,0x94,0x96,0x9,0xee,0x13,0xca,0x98,0xed,0x40,0xe1,0x30,0x70,0xcf,0x19,0x26,0x65,0x4e,0x3f,0x7d,0xd6,0x46,0x39,0x82,0x2f,0xf6,0xcb,0x11,0x1,0x68,0x83,0x12,0x32,0x7b,0xfe,0x5b,0x60,0xb8,0xa,0xc3,0xd4,0xae,0x25,0x61,0x48,0xe8,0x66,0x73,0x97,0x88,0x33,0x38,0x63,0xc9,0x8e,0xc4,0x54,0x4d,0xfd,0x7c,0x7,0x81,0xdf,0x3b,0x99,0xa3,0xb1,0x80,0x9a,0xe7,0x84,0x22,0x3e,0x7f,0xb2,0xc2,0xac,0x56,0x4c,0xa4,0xa2,0xc,0x3d,0x53,0xc1,0x69,0x74,0x8b,0x6e,0xbc,0x8,0x35,0x2c,0x75,0xa6,0xf0,0x4f,0xfa,0x76,0xa8,0xaa,0x6f,0xe9,0x9c,0x1d,0x77,0xbb,0x42,0xa9,0x9e,0xd8,0xd7,0xd3,0x18,0xf2,0xf4,0x85,0xdd,0x44,0xba,0xc0,0x57,0x95,0xec,0x8d,0x62,0x23,0xa0,0x55,0x58,0x6b,0x6c,0x72,0x31,0xcc,0x1a,0xf5,0x7e,0xf7,0xf9,0x27,0xf8,0x2d,0x49,0x1f,0x3,0xe0,0xde,0x1e,0x14,0xe2,0xad,0x41,0x45,0xe3,0x36,0x5c,0x4b,0x2e,0x59,0x8a,0xa7,0xc7,0xa1,0xea,0xdc,0x3a,0x87,0x21,0x20,0x2a,0xdb,0x90,0xcd,0x7a,0x67,0x51,0x43,0x92,0xbd,0xb9,0x2b,0xd,0xaf,0x0,0x1b,0x10,0xc6,0x17,0x8c,0x4a,0xab,0xb,0xeb,0x4,0xce,0xfc,0x79,0x28,0xb4,0x89,0xe6,0x6,0xf3,0x5,0xd2,0x1c,0xb3,0x24,0x52,0x5d,0xda,0xd0,0xb7,0xb0,0x29,0xd5,0xb5,0xf,0xfb,0x37,0x5f,0xff,0xa5,0x3c,0x15,0x9d,0x71,0xef,0x9b,0x50,0x78,0x6a,0xb6,0xc5,0xe5,0x93,0x5e,0xbf,0x5a,0x34,0xe4,0x9f,0xd9,0xc8,0x6e,0xd6,0xab,0xfe,0x8e,0x72,0x33,0x0,0xe8,0xe0,0x1a,0x71,0x1f,0xee,0x40,0xc2,0x88,0x2f,0x85,0xb1,0x30,0x18,0x1,0x93,0x77,0x4b,0xcd,0xfd,0xcc,0xd5,0xef,0xa5,0xd0,0xe6,0x23,0xf7,0xe,0x51,0x3b,0x94,0x9b,0xe5,0xd2,0xbe,0xb8,0x9f,0x54,0x38,0xc7,0x8d,0x25,0x44,0x79,0x22,0xf0,0xea,0xbc,0x60,0x39,0x3a,0xe4,0x3,0xb6,0x86,0xd4,0xa2,0x5f,0xad,0x7c,0xa1,0xc,0x55,0x6a,0x3c,0x83,0x73,0x31,0x29,0x2,0x28,0x84,0x21,0xdd,0xc3,0xbd,0x4e,0xca,0xf2,0x42,0x9d,0x5a,0xda,0x45,0xb,0xd8,0x46,0x8f,0x2c,0xf4,0x69,0x2d,0x98,0xe2,0x2a,0x3f,0x4,0xa4,0x7f,0x74,0xdb,0xc4,0x75,0xce,0x9a,0xa,0x87,0x5d,0x63,0xba,0xcf,0x5e,0x4d,0x24,0xb2,0x17,0x7e,0x37,0x64,0xf8,0xb0,0x35,0x4a,0xbf,0xc5,0xaa,0x50,0xff,0x49,0x9e,0x11,0x96,0x68,0x1e,0x41,0xe3,0xf5,0x67,0x5c,0x8a,0x4c,0x57,0x6,0xe7,0x5b,0xc0,0x48,0x82,0x47,0xa7,0x1c,0x34,0xa3,0xd7,0x89,0xa9,0x26,0xfa,0xf3,0x16,0xdf,0x12,0xd3,0x95,0x78,0xa8,0xfc,0x65,0x9c,0xfb,0x43,0xb7,0x99,0xf9,0xb3,0xe9,0x7b,0x13,0xd1,0x3d,0x70,0x59,0x80,0x56,0x3e,0x7d,0xbb,0xb5,0xb9,0x32,0x61,0x5,0x6b,0xb4,0xac,0x92,0x53,0x4f,0x8,0xf6,0xc9,0x91,0xd9,0xa0,0x8c,0x1b,0x6f,0xec,0xc1,0x2e,0x27,0x20,0x19,0x14,0x76,0xcb,0xa6,0x90,0x66,0x97,0x6d,0x6c,0x36,0x2b,0xdc,0x81,0xde,0xf1,0x1d,0xf,0xae,0xe1,0x52,0x58,0xaf,0x7a,0xd,0x9,0x62,0x15,0x10,0x7,0x8b,0xed,0xc6,0xeb,0xf3,0x4d,0xc3,0x1c,0x5d,0xb5,0x2b,0x29,0xa7,0xb6,0xe0,0xea,0xf9,0x6,0x54,0x39,0xf0,0x87,0x4e,0xbe,0x9d,0x6b,0x8f,0xd6,0xbb,0x6d,0xa3,0x3e,0xe6,0xfe,0x8c,0xf1,0x90,0x0,0x67,0x4b,0xdb,0x70,0xaf,0x36,0x79,0xc6,0x5b,0xd5,0x85,0xce,0x25,0x8a,0x7a,0x69,0xc0,0x92,0x1a,0x9f,0x59,0xa1,0x76,0xff,0xa2,0x33,0x2a,0x42,0xd0,0x32,0x75,0xa,0xaa,0x4,0x71,0x4f,0xe5,0x89,0x37,0xf6,0x4a,0x98,0xb,0xde,0x11,0x44,0xca,0x14,0x7,0x34,0x2c,0xc5,0xe4,0xc9,0x62,0x12,0xba,0x19,0xc8,0x84,0x3b,0xb0,0xb2,0xd2,0xb3,0xcf,0xb1,0xb4,0x2,0xd8,0x63,0x15,0xa8,0x60,0xae,0xf,0xee,0xac,0xf4,0xc1,0x9b,0x6e,0xdf,0x72,0xa4,0x57,0xad,0x38,0x86,0x6a,0x95,0xdc,0xe7,0x50,0x9c,0xc7,0xfa,0xcd,0x13,0xe,0x4c,0xb7,0x94,0x5a,0xa9,0x3,0x46,0xb8,0x56,0x96,0xcb,0x2f,0x1,0xbd,0x93,0xeb,0x78,0x97,0x53,0x26,0x2d,0xe1,0x51,0xd3,0x52,0x64,0x7d,0xef,0x83,0xe2,0xdd,0x55,0x88,0x24,0xc4,0x9,0x20,0x10,0x6f,0xd7,0x5c,0x49,0x65,0xfd,0xfc,0xd4,0xa6,0x7e,0x9e,0xd9,0x28,0x81,0xb9,0x58,0x5e,0x99,0x16,0xfb,0xf8,0x6c,0x1f,0xd,0x8b,0x8d,0xd1,0xed,0xbc,0x5,0x7f,0xe8,0xa0,0x21,0x1b,0x68,0xf5,0xf2,0x47,0xe3,0xc2,0xec,0x41,0x7b,0x73,0x82,0x23,0x74,0x3d,0x27,0x77,0x1d,0x9a,0x1e,0x31,0x17,0x8,0x30,0x43,0xab,0x91,0x8e,0x18,0x3f,0xa5,0x80,0x3a,0x7c,0xcc,0x40,0xc,0x48,0xe9,0x35,0x3c,0x22,0x66,0x2e,0xda,0x45,0xbf,0x5f,0x61,0xf7,0xb0,0x12,0x34,0xa6,0xd9,0xf,0x4,0x1f,0xb4,0x55,0x93,0x8,0xd1,0x1b,0xf4,0x14,0xab,0x37,0x66,0xe3,0xec,0x19,0xf9,0x96,0xac,0x3,0xcd,0x1a,0xc5,0x42,0x4d,0x3b,0x36,0xaf,0xa8,0xcf,0xe4,0x10,0xaa,0xca,0xba,0xe0,0x40,0x28,0x6e,0x82,0xa,0x23,0x67,0x4f,0x84,0xf0,0xfa,0xda,0xa9,0x75,0x45,0xa0,0x41,0x8c,0xc6,0x80,0xfb,0x2b,0xa5,0x5b,0xc2,0x9a,0xf3,0x8a,0x48,0xdf,0xbf,0x3c,0x7d,0x92,0x73,0x74,0x47,0x4a,0x5,0xd3,0x2e,0x6d,0xe6,0xe8,0x61,0xea,0x56,0x32,0xe7,0x38,0xc1,0xff,0x1c,0x0,0xb2,0xfd,0xb,0x1,0x29,0xfc,0x5a,0x5e,0x46,0x31,0x54,0x43,0xbe,0xd8,0xb8,0x95,0x98,0x25,0xc3,0xf5,0xc4,0x35,0x3f,0x3e,0x78,0x65,0xd2,0x8f,0xa2,0x8d,0x5c,0x4e,0xdb,0x91,0xd6,0x7c,0x63,0xe2,0x52,0x4b,0x24,0xc0,0x9e,0x18,0x9f,0xae,0xbc,0x86,0x3d,0x9b,0xf8,0x85,0xdd,0xad,0x60,0x21,0xbb,0x53,0x49,0xb3,0x4c,0x22,0x13,0xbd,0x94,0x6b,0x76,0xde,0x2a,0x17,0xa3,0x71,0xef,0xb9,0x6a,0x33,0xb7,0x69,0xe5,0x50,0x83,0xf6,0x70,0xb5,0x5d,0xa4,0x68,0x2,0xc8,0xc7,0x81,0xb6,0xeb,0xed,0x7,0xcc,0xd7,0x7b,0x8e,0x72,0xee,0x90,0x99,0x1d,0x11,0xa1,0x9,0xce,0x16,0x89,0x8b,0x58,0x87,0xd5,0xc,0xf1,0x2f,0xfe,0x5f,0xf2,0x39,0x6,0xd0,0x6f,0x62,0x20,0x51,0x7a,0x9d,0x26,0x59,0xc9,0xe,0xd4,0xe9,0x30,0xd,0x9c,0x77,0x1e,0x44,0xe1,0x64,0x2d,0xdc,0x15,0xa7,0x7f,0x7e,0x3a,0xb1,0xcb,0x6c,0x79,0xf7,0x57,0x27,0x2c,0x97,0x88,0xd,0xf1,0x4,0xa8,0x62,0xe6,0xef,0x91,0xb1,0x76,0xde,0x6e,0x27,0xf4,0xf6,0x69,0x8e,0x73,0xaa,0xf8,0x8d,0x20,0x81,0x50,0x10,0xaf,0x79,0x46,0x5,0x2e,0x5f,0x1d,0xb6,0x26,0x59,0xe2,0x4f,0x96,0xab,0x71,0x61,0x8,0xe3,0x72,0x52,0x1b,0x9e,0x3b,0x0,0xd8,0x6a,0xa3,0xb4,0xce,0x45,0x1,0x28,0x88,0x6,0x13,0xf7,0xe8,0x53,0x58,0x3,0xa9,0xee,0xa4,0x34,0x2d,0x9d,0x1c,0x67,0xe1,0xbf,0x5b,0xf9,0xc3,0xd1,0xe0,0xfa,0x87,0xe4,0x42,0x5e,0x1f,0xd2,0xa2,0xcc,0x36,0x2c,0xc4,0xc2,0x6c,0x5d,0x33,0xa1,0x9,0x14,0xeb,0xe,0xdc,0x68,0x55,0x4c,0x15,0xc6,0x90,0x2f,0x9a,0x16,0xc8,0xca,0xf,0x89,0xfc,0x7d,0x17,0xdb,0x22,0xc9,0xfe,0xb8,0xb7,0xb3,0x78,0x92,0x94,0xe5,0xbd,0x24,0xda,0xa0,0x37,0xf5,0x8c,0xed,0x2,0x43,0xc0,0x35,0x38,0xb,0xc,0x12,0x51,0xac,0x7a,0x95,0x1e,0x97,0x99,0x47,0x98,0x4d,0x29,0x7f,0x63,0x80,0xbe,0x7e,0x74,0x82,0xcd,0x21,0x25,0x83,0x56,0x3c,0x2b,0x4e,0x39,0xea,0xc7,0xa7,0xc1,0x8a,0xbc,0x5a,0xe7,0x41,0x40,0x4a,0xbb,0xf0,0xad,0x1a,0x7,0x31,0x23,0xf2,0xdd,0xd9,0x4b,0x6d,0xcf,0x60,0x7b,0x70,0xa6,0x77,0xec,0x2a,0xcb,0x6b,0x8b,0x64,0xae,0x9c,0x19,0x48,0xd4,0xe9,0x86,0x66,0x93,0x65,0xb2,0x7c,0xd3,0x44,0x32,0x3d,0xba,0xb0,0xd7,0xd0,0x49,0xb5,0xd5,0x6f,0x9b,0x57,0x3f,0x9f,0xc5,0x5c,0x75,0xfd,0x11,0x8f,0xfb,0x30,0x18,0xa,0xd6,0xa5,0x85,0xf3,0x3e,0xdf,0x3a,0x54,0x84,0xff,0xb9,0x7a,0xdb,0x3a,0x78,0xb7,0xc1,0x7c,0xb4,0x65,0x60,0xd6,0xc,0x66,0x6,0x67,0x1b,0x41,0x8,0x33,0x84,0x79,0xec,0x52,0xbe,0xb,0xa6,0x70,0x83,0x20,0x15,0x4f,0xba,0xdf,0xa,0xc5,0x90,0xe3,0x22,0x9e,0x4c,0xa5,0x9b,0x31,0x5d,0xa1,0xde,0x7e,0xd0,0x1c,0x50,0xef,0x64,0xb6,0xc6,0x6e,0xcd,0xf8,0x11,0x30,0x1d,0x1e,0xc0,0xd3,0xe0,0x51,0x1a,0xf1,0x5e,0xad,0x12,0x8f,0x1,0xf,0xa4,0x7b,0xe2,0x44,0xd4,0xb3,0x9f,0xfe,0x96,0x4,0xe6,0xa2,0x2b,0x76,0xe7,0xce,0x4b,0x8d,0x75,0xae,0xbd,0x14,0x46,0x2d,0xd2,0x80,0xed,0x73,0x62,0x34,0x3e,0x89,0x61,0xff,0xfd,0x27,0x99,0x17,0xc8,0x32,0x2a,0x58,0x25,0x6f,0xb9,0x77,0xea,0x49,0xbf,0x5b,0x2,0x24,0x53,0x9a,0x6a,0x71,0x54,0xee,0xa8,0x45,0x5a,0xcc,0xeb,0xdc,0xe4,0x97,0x7f,0x4e,0xca,0xe5,0xc3,0x6b,0x8b,0xb5,0x23,0xb2,0xfa,0xe,0x91,0x3d,0xe1,0xe8,0xf6,0x18,0x94,0xd8,0x9c,0x74,0xf5,0xcf,0xbc,0x68,0xd1,0xab,0x3c,0x5f,0x59,0x5,0x39,0x2c,0xb8,0xcb,0xd9,0xe9,0xf3,0xa3,0xc9,0xa7,0x56,0xf7,0xa0,0x16,0x38,0x95,0xaf,0x21,0x26,0x93,0x37,0xbb,0x3,0x88,0x9d,0x10,0xdd,0xf4,0xc4,0x9,0x81,0x5c,0xf0,0xa9,0x3b,0x57,0x36,0x8a,0x4d,0xc2,0x2f,0xfc,0x55,0x6d,0x8c,0x72,0xaa,0x4a,0xd,0xb1,0x29,0x28,0x0,0x92,0x6c,0x82,0x42,0x40,0x8e,0x7d,0xd7,0xc7,0xda,0x98,0x63,0x48,0x13,0x2e,0x19,0x85,0x7,0x86,0xb0,0x87,0xf2,0xf9,0x35,0x47,0x3f,0xac,0x43,0x1f,0xfb,0xd5,0x69,0x53,0x94,0x4b,0xfb,0xd1,0x2,0x4c,0xd3,0xd4,0x28,0x8d,0x21,0xc3,0x47,0xb4,0xca,0x8a,0x35,0x63,0x5c,0xb,0x20,0x38,0x7a,0x56,0xab,0xdd,0x8f,0x5,0xa8,0x75,0xa4,0x2d,0x44,0x57,0xc6,0x3e,0x77,0x1e,0xbb,0x3,0x93,0xc7,0x7c,0xb3,0x6a,0x54,0x8e,0xad,0xd,0x36,0x23,0xcd,0xd2,0x7d,0x76,0xfd,0x25,0x86,0x4f,0xeb,0x91,0x24,0x60,0xc4,0x42,0x7e,0x9a,0xe6,0xdc,0xc5,0xf4,0x8c,0x26,0x81,0xcb,0x8,0x11,0x39,0xb8,0x13,0xe9,0xe1,0x9,0x49,0xe7,0x16,0x78,0xa2,0xdf,0x67,0xc1,0x3a,0x7b,0x87,0xf7,0x30,0x69,0xb5,0xe3,0xbf,0xa,0xed,0x33,0x2c,0x84,0xce,0x31,0xf9,0x2b,0x70,0x4d,0xdb,0xec,0x92,0x9d,0x5d,0x96,0xb1,0xb7,0x2a,0xef,0xd9,0xac,0x32,0x58,0x7,0xfe,0x27,0xc8,0xe5,0x66,0x1d,0x10,0x29,0x2e,0x98,0xc0,0xff,0x1,0x12,0x85,0xa9,0xd0,0xbd,0x62,0xc,0x68,0x46,0x5a,0x9b,0xa5,0x74,0x37,0x5f,0x89,0x3b,0xb0,0xbc,0xb2,0xe,0x19,0x1c,0x6b,0xe2,0xcf,0xe4,0x82,0x51,0x5b,0xe8,0xa7,0x0,0x4,0x73,0xa6,0x88,0xd5,0x22,0x3f,0x6,0x14,0xf8,0xd7,0x99,0xaf,0xc2,0x7f,0x65,0x64,0x9e,0x6f,0xc9,0x52,0xee,0xf,0xae,0x4e,0x8b,0x41,0x6e,0xfc,0xea,0x48,0x5e,0x45,0x83,0x55,0x97,0x40,0xf6,0x59,0x17,0x61,0x9f,0x18,0x3c,0xb9,0xf1,0x6d,0xa3,0xcc,0xb6,0x43,0x1a,0x72,0xe0,0xba,0x50,0x79,0x34,0xd8,0xf2,0x95,0x6c,0xf5,0xf0,0x90,0xbe,0x4a,0x1b,0xd6,0x1f,0xfa,0xa1,0x71,0x9c,0xda,0xde,0xaa,0x3d,0x15,0xf3,0x2f,0xa0,0x80,0x63,0xc1,0xe7,0x75,0xa,0xdc,0xd7,0xcc,0x67,0x86,0x40,0xdb,0x2,0xc8,0x27,0xc7,0x78,0xe4,0xb5,0x30,0x3f,0xca,0x2a,0x45,0x7f,0xd0,0x1e,0xc9,0x16,0x91,0x9e,0xe8,0xe5,0x7c,0x7b,0x1c,0x37,0xc3,0x79,0x19,0x69,0x33,0x93,0xfb,0xbd,0x51,0xd9,0xf0,0xb4,0x9c,0x57,0x23,0x29,0x9,0x7a,0xa6,0x96,0x73,0x92,0x5f,0x15,0x53,0x28,0xf8,0x76,0x88,0x11,0x49,0x20,0x59,0x9b,0xc,0x6c,0xef,0xae,0x41,0xa0,0xa7,0x94,0x99,0xd6,0x0,0xfd,0xbe,0x35,0x3b,0xb2,0x39,0x85,0xe1,0x34,0xeb,0x12,0x2c,0xcf,0xd3,0x61,0x2e,0xd8,0xd2,0xfa,0x2f,0x89,0x8d,0x95,0xe2,0x87,0x90,0x6d,0xb,0x6b,0x46,0x4b,0xf6,0x10,0x26,0x17,0xe6,0xec,0xed,0xab,0xb6,0x1,0x5c,0x71,0x5e,0x8f,0x9d,0x8,0x42,0x5,0xaf,0xb0,0x31,0x81,0x98,0xf7,0x13,0x4d,0xcb,0x4c,0x7d,0x6f,0x55,0xee,0x48,0x2b,0x56,0xe,0x7e,0xb3,0xf2,0x68,0x80,0x9a,0x60,0x9f,0xf1,0xc0,0x6e,0x47,0xb8,0xa5,0xd,0xf9,0xc4,0x70,0xa2,0x3c,0x6a,0xb9,0xe0,0x64,0xba,0x36,0x83,0x50,0x25,0xa3,0x66,0x8e,0x77,0xbb,0xd1,0x1b,0x14,0x52,0x65,0x38,0x3e,0xd4,0x1f,0x4,0xa8,0x5d,0xa1,0x3d,0x43,0x4a,0xce,0xc2,0x72,0xda,0x1d,0xc5,0x5a,0x58,0x8b,0x54,0x6,0xdf,0x22,0xfc,0x2d,0x8c,0x21,0xea,0xd5,0x3,0xbc,0xb1,0xf3,0x82,0xa9,0x4e,0xf5,0x8a,0x1a,0xdd,0x7,0x3a,0xe3,0xde,0x4f,0xa4,0xcd,0x97,0x32,0xb7,0xfe,0xf,0xc6,0x74,0xac,0xad,0xe9,0x62,0x18,0xbf,0xaa,0x24,0x84,0xf4,0xff,0x44,0x5b,0x9c,0xb9,0x60,0x26,0x92,0x8d,0x23,0x4,0x2c,0x14,0xb7,0x5f,0x2,0x86,0xb,0x2d,0x43,0xa3,0xeb,0x7d,0x32,0x7a,0x59,0xc6,0x29,0xf5,0x3e,0x20,0x5c,0xd0,0x54,0x10,0x3d,0xbc,0x74,0x7,0x19,0xa0,0xf4,0x63,0x91,0x97,0xf1,0xcd,0x70,0xe4,0x11,0x3,0x3b,0x21,0x1,0x6b,0x9e,0x6f,0x68,0x3f,0xf0,0xde,0x67,0x5d,0xee,0xe9,0xff,0x5b,0xcb,0x73,0x55,0x40,0x15,0xd8,0xc,0x3c,0x49,0xc1,0x38,0x94,0xf3,0x61,0xfe,0x9f,0x85,0x42,0xe7,0xa,0x9d,0x34,0x44,0xa5,0x62,0xba,0xc5,0x82,0xe1,0x79,0xc8,0xe0,0xa4,0x5a,0x8a,0x4a,0x46,0x88,0x1f,0xb5,0x12,0xf,0xab,0x50,0xdb,0x80,0xd1,0xe6,0xcf,0x4d,0x78,0x4e,0x3a,0x4f,0xfd,0x31,0xf7,0x8f,0x8b,0x64,0x33,0xd7,0xa1,0x1d,0x13,0xb2,0xb0,0xf2,0x9,0x7f,0x7c,0xb4,0xa8,0xad,0xc4,0x1e,0xce,0xae,0xd3,0xaf,0xc0,0x89,0x4c,0xfb,0x24,0xb1,0x76,0x9a,0x6e,0xc3,0x4b,0xb8,0xdd,0xe8,0x72,0x87,0xc2,0x17,0x58,0xd,0xea,0x2b,0x84,0x56,0x53,0x6d,0x95,0xf9,0x16,0x69,0x18,0xb6,0x98,0xd4,0xac,0x27,0xe,0x7e,0x5,0xa6,0xd9,0x30,0xd5,0xf8,0x8,0xd6,0x28,0x1b,0xd2,0x99,0x96,0x39,0xda,0x65,0xc9,0x47,0x6c,0xc7,0x2a,0xb3,0x1c,0x8c,0x57,0x7b,0x5e,0x36,0x2e,0xcc,0xe3,0x6a,0x2f,0xbe,0x83,0x6,0xbd,0x45,0x75,0x66,0x8e,0xdc,0x1a,0xe5,0x25,0x48,0xaa,0xbb,0xf6,0xfc,0xa9,0x41,0x35,0x37,0x51,0xef,0x0,0xdf,0xe2,0xfa,0xed,0x90,0x71,0xa7,0x22,0xbf,0x77,0x81,0xca,0x93,0x9b,0xec,0xa2,0x52,0xa1,0x7,0xbf,0xc2,0x97,0xe7,0x1b,0x5a,0x69,0x81,0x89,0x73,0x18,0x76,0x87,0x29,0xab,0xe1,0x46,0xec,0xd8,0x59,0x71,0x68,0xfa,0x1e,0x22,0xa4,0x94,0xa5,0xbc,0x86,0xcc,0xb9,0x8f,0x4a,0x9e,0x67,0x38,0x52,0xfd,0xf2,0x8c,0xbb,0xd7,0xd1,0xf6,0x3d,0x51,0xae,0xe4,0x4c,0x2d,0x10,0x4b,0x99,0x83,0xd5,0x9,0x50,0x53,0x8d,0x6a,0xdf,0xef,0xbd,0xcb,0x36,0xc4,0x15,0xc8,0x65,0x3c,0x3,0x55,0xea,0x1a,0x58,0x40,0x6b,0x41,0xed,0x48,0xb4,0xaa,0xd4,0x27,0xa3,0x9b,0x2b,0xf4,0x33,0xb3,0x2c,0x62,0xb1,0x2f,0xe6,0x45,0x9d,0x0,0x44,0xf1,0x8b,0x43,0x56,0x6d,0xcd,0x16,0x1d,0xb2,0xad,0x1c,0xa7,0xf3,0x63,0xee,0x34,0xa,0xd3,0xa6,0x37,0x24,0x4d,0xdb,0x7e,0x17,0x5e,0xd,0x91,0xd9,0x5c,0x23,0xd6,0xac,0xc3,0x39,0x96,0x20,0xf7,0x78,0xff,0x1,0x77,0x28,0x8a,0x9c,0xe,0x35,0xe3,0x25,0x3e,0x6f,0x8e,0x32,0xa9,0x21,0xeb,0x2e,0xce,0x75,0x5d,0xca,0xbe,0xe0,0xc0,0x4f,0x93,0x9a,0x7f,0xb6,0x7b,0xba,0xfc,0x11,0xc1,0x95,0xc,0xf5,0x92,0x2a,0xde,0xf0,0x90,0xda,0x80,0x12,0x7a,0xb8,0x54,0x19,0x30,0xe9,0x3f,0x57,0x14,0xd2,0xdc,0xd0,0x5b,0x8,0x6c,0x2,0xdd,0xc5,0xfb,0x3a,0x26,0x61,0x9f,0xa0,0xf8,0xb0,0xc9,0xe5,0x72,0x6,0x85,0xa8,0x47,0x4e,0x49,0x70,0x7d,0x1f,0xa2,0xcf,0xf9,0xf,0xfe,0x4,0x5,0x5f,0x42,0xb5,0xe8,0xb7,0x98,0x74,0x66,0xc7,0x88,0x3b,0x31,0xc6,0x13,0x64,0x60,0xb,0x7c,0x79,0x6e,0xe2,0x84,0xaf,0x82,0x28,0xef,0x30,0x80,0xaa,0x79,0x37,0xa8,0xaf,0x53,0xf6,0x5a,0xb8,0x3c,0xcf,0xb1,0xf1,0x4e,0x18,0x27,0x70,0x5b,0x43,0x1,0x2d,0xd0,0xa6,0xf4,0x7e,0xd3,0xe,0xdf,0x56,0x3f,0x2c,0xbd,0x45,0xc,0x65,0xc0,0x78,0xe8,0xbc,0x7,0xc8,0x11,0x2f,0xf5,0xd6,0x76,0x4d,0x58,0xb6,0xa9,0x6,0xd,0x86,0x5e,0xfd,0x34,0x90,0xea,0x5f,0x1b,0xbf,0x39,0x5,0xe1,0x9d,0xa7,0xbe,0x8f,0xf7,0x5d,0xfa,0xb0,0x73,0x6a,0x42,0xc3,0x68,0x92,0x9a,0x72,0x32,0x9c,0x6d,0x3,0xd9,0xa4,0x1c,0xba,0x41,0x0,0xfc,0x8c,0x4b,0x12,0xce,0x98,0xc4,0x71,0x96,0x48,0x57,0xff,0xb5,0x4a,0x82,0x50,0xb,0x36,0xa0,0x97,0xe9,0xe6,0x26,0xed,0xca,0xcc,0x51,0x94,0xa2,0xd7,0x49,0x23,0x7c,0x85,0x5c,0xb3,0x9e,0x1d,0x66,0x6b,0x52,0x55,0xe3,0xbb,0x84,0x7a,0x69,0xfe,0xd2,0xab,0xc6,0x19,0x77,0x13,0x3d,0x21,0xe0,0xde,0xf,0x4c,0x24,0xf2,0x40,0xcb,0xc7,0xc9,0x75,0x62,0x67,0x10,0x99,0xb4,0x9f,0xf9,0x2a,0x20,0x93,0xdc,0x7b,0x7f,0x8,0xdd,0xf3,0xae,0x59,0x44,0x7d,0x6f,0x83,0xac,0xe2,0xd4,0xb9,0x4,0x1e,0x1f,0xe5,0x14,0xb2,0x29,0x95,0x74,0xd5,0x35,0xf0,0x3a,0x15,0x87,0x91,0x33,0x25,0x3e,0xf8,0x2e,0xec,0x3b,0x8d,0x22,0x6c,0x1a,0xe4,0x63,0x47,0xc2,0x8a,0x16,0xd8,0xb7,0xcd,0x38,0x61,0x9,0x9b,0xc1,0x2b,0x2,0x4f,0xa3,0x89,0xee,0x17,0x8e,0x8b,0xeb,0xc5,0x31,0x60,0xad,0x64,0x81,0xda,0xa,0xe7,0xa1,0xa5,0xd1,0x46,0x6e,0x88,0x54,0xdb,0xfb,0xc8,0x1a,0xb5,0x74,0x93,0xc6,0x89,0x5c,0x28,0x86,0xf7,0x88,0x67,0xb,0xf3,0xcd,0x38,0x9b,0xe0,0x90,0xb9,0x32,0x4a,0x6,0x85,0xb6,0x48,0x96,0x66,0x4b,0xae,0x47,0x2a,0xe2,0xe1,0x97,0x6c,0x2e,0x2c,0x8d,0x31,0x4d,0x30,0x50,0x80,0x5a,0x33,0x36,0x4,0xe8,0x2f,0xba,0x65,0xd2,0x17,0x5e,0x19,0xec,0x76,0x43,0x26,0xd5,0x5d,0xf0,0x62,0x68,0x25,0x34,0xd6,0xbb,0x7b,0x84,0x41,0x9e,0x71,0xcf,0xa9,0xab,0xdf,0x37,0x21,0xbc,0x39,0xef,0xe,0x73,0x64,0x7c,0xcc,0x3c,0x72,0x5,0xd,0x54,0x1f,0xe9,0xd9,0x57,0xfb,0x44,0xa7,0x8,0x7,0x4c,0xe5,0xc9,0x12,0x82,0x2d,0xb4,0x59,0xf2,0x20,0xb1,0xf4,0x7d,0x52,0xb0,0xa8,0xc0,0x42,0x10,0xf8,0xeb,0xdb,0x23,0x98,0x1d,0xfd,0x6a,0x3e,0x87,0x99,0xea,0x22,0xa3,0x9d,0x8f,0x7a,0xee,0x53,0x6f,0x9,0xf,0xa1,0xf6,0xf1,0x0,0xf5,0x9f,0xbf,0xa5,0xc5,0x61,0x77,0x70,0xc3,0xf9,0x40,0x6e,0x9a,0xbd,0x13,0xc,0xb8,0xfe,0x27,0x2,0xb3,0x95,0x18,0x9c,0xc1,0x29,0x8a,0xb2,0x58,0xc7,0xe4,0xac,0xe3,0x75,0x3d,0xdd,0x8e,0xca,0x4e,0xc2,0xbe,0xa0,0x6b,0xb7,0x2b,0x81,0x16,0xd8,0xd4,0x14,0xc4,0x3a,0x78,0x4f,0x1e,0x45,0xce,0x35,0x91,0x8c,0xaf,0x63,0xd1,0xa4,0xd0,0xe6,0xd3,0x51,0x83,0x3f,0x49,0xad,0xfa,0x15,0x11,0x69,0xa2,0x92,0x46,0x8b,0xde,0xcb,0xed,0x55,0x1,0x60,0xff,0x6d,0xa,0xa6,0x5f,0xd7,0x3b,0xda,0xaa,0x3,0x94,0x79,0xdc,0x1b,0x7e,0x56,0xe7,0x7f,0x1c,0x5b,0x24,0xfc,0xf0,0xc,0xf9,0x55,0x9f,0x1b,0x12,0x6c,0x4c,0x8b,0x23,0x93,0xda,0x9,0xb,0x94,0x73,0x8e,0x57,0x5,0x70,0xdd,0x7c,0xad,0xed,0x52,0x84,0xbb,0xf8,0xd3,0xa2,0xe0,0x4b,0xdb,0xa4,0x1f,0xb2,0x6b,0x56,0x8c,0x9c,0xf5,0x1e,0x8f,0xaf,0xe6,0x63,0xc6,0xfd,0x25,0x97,0x5e,0x49,0x33,0xb8,0xfc,0xd5,0x75,0xfb,0xee,0xa,0x15,0xae,0xa5,0xfe,0x54,0x13,0x59,0xc9,0xd0,0x60,0xe1,0x9a,0x1c,0x42,0xa6,0x4,0x3e,0x2c,0x1d,0x7,0x7a,0x19,0xbf,0xa3,0xe2,0x2f,0x5f,0x31,0xcb,0xd1,0x39,0x3f,0x91,0xa0,0xce,0x5c,0xf4,0xe9,0x16,0xf3,0x21,0x95,0xa8,0xb1,0xe8,0x3b,0x6d,0xd2,0x67,0xeb,0x35,0x37,0xf2,0x74,0x1,0x80,0xea,0x26,0xdf,0x34,0x3,0x45,0x4a,0x4e,0x85,0x6f,0x69,0x18,0x40,0xd9,0x27,0x5d,0xca,0x8,0x71,0x10,0xff,0xbe,0x3d,0xc8,0xc5,0xf6,0xf1,0xef,0xac,0x51,0x87,0x68,0xe3,0x6a,0x64,0xba,0x65,0xb0,0xd4,0x82,0x9e,0x7d,0x43,0x83,0x89,0x7f,0x30,0xdc,0xd8,0x7e,0xab,0xc1,0xd6,0xb3,0xc4,0x17,0x3a,0x5a,0x3c,0x77,0x41,0xa7,0x1a,0xbc,0xbd,0xb7,0x46,0xd,0x50,0xe7,0xfa,0xcc,0xde,0xf,0x20,0x24,0xb6,0x90,0x32,0x9d,0x86,0x8d,0x5b,0x8a,0x11,0xd7,0x36,0x96,0x76,0x99,0x53,0x61,0xe4,0xb5,0x29,0x14,0x7b,0x9b,0x6e,0x98,0x4f,0x81,0x2e,0xb9,0xcf,0xc0,0x47,0x4d,0x2a,0x2d,0xb4,0x48,0x28,0x92,0x66,0xaa,0xc2,0x62,0x38,0xa1,0x88,0x0,0xec,0x72,0x6,0xcd,0xe5,0xf7,0x2b,0x58,0x78,0xe,0xc3,0x22,0xc7,0xa9,0x79,0x2,0x44,0x8f,0x29,0x91,0xec,0xb9,0xc9,0x35,0x74,0x47,0xaf,0xa7,0x5d,0x36,0x58,0xa9,0x7,0x85,0xcf,0x68,0xc2,0xf6,0x77,0x5f,0x46,0xd4,0x30,0xc,0x8a,0xba,0x8b,0x92,0xa8,0xe2,0x97,0xa1,0x64,0xb0,0x49,0x16,0x7c,0xd3,0xdc,0xa2,0x95,0xf9,0xff,0xd8,0x13,0x7f,0x80,0xca,0x62,0x3,0x3e,0x65,0xb7,0xad,0xfb,0x27,0x7e,0x7d,0xa3,0x44,0xf1,0xc1,0x93,0xe5,0x18,0xea,0x3b,0xe6,0x4b,0x12,0x2d,0x7b,0xc4,0x34,0x76,0x6e,0x45,0x6f,0xc3,0x66,0x9a,0x84,0xfa,0x9,0x8d,0xb5,0x5,0xda,0x1d,0x9d,0x2,0x4c,0x9f,0x1,0xc8,0x6b,0xb3,0x2e,0x6a,0xdf,0xa5,0x6d,0x78,0x43,0xe3,0x38,0x33,0x9c,0x83,0x32,0x89,0xdd,0x4d,0xc0,0x1a,0x24,0xfd,0x88,0x19,0xa,0x63,0xf5,0x50,0x39,0x70,0x23,0xbf,0xf7,0x72,0xd,0xf8,0x82,0xed,0x17,0xb8,0xe,0xd9,0x56,0xd1,0x2f,0x59,0x6,0xa4,0xb2,0x20,0x1b,0xcd,0xb,0x10,0x41,0xa0,0x1c,0x87,0xf,0xc5,0x0,0xe0,0x5b,0x73,0xe4,0x90,0xce,0xee,0x61,0xbd,0xb4,0x51,0x98,0x55,0x94,0xd2,0x3f,0xef,0xbb,0x22,0xdb,0xbc,0x4,0xf0,0xde,0xbe,0xf4,0xae,0x3c,0x54,0x96,0x7a,0x37,0x1e,0xc7,0x11,0x79,0x3a,0xfc,0xf2,0xfe,0x75,0x26,0x42,0x2c,0xf3,0xeb,0xd5,0x14,0x8,0x4f,0xb1,0x8e,0xd6,0x9e,0xe7,0xcb,0x5c,0x28,0xab,0x86,0x69,0x60,0x67,0x5e,0x53,0x31,0x8c,0xe1,0xd7,0x21,0xd0,0x2a,0x2b,0x71,0x6c,0x9b,0xc6,0x99,0xb6,0x5a,0x48,0xe9,0xa6,0x15,0x1f,0xe8,0x3d,0x4a,0x4e,0x25,0x52,0x57,0x40,0xcc,0xaa,0x81,0xac,0xa7,0x25,0x10,0x26,0x52,0x27,0x95,0x59,0x9f,0xe7,0xe3,0xc,0x5b,0xbf,0xc9,0x75,0xcc,0x32,0xe2,0x22,0x2e,0xe0,0x77,0xdd,0x7a,0x67,0xc3,0x38,0xb3,0xe8,0xb9,0x8e,0xed,0x2a,0x8f,0x62,0xf5,0x5c,0x2c,0xcd,0xa,0xd2,0xad,0xea,0x89,0x11,0xa0,0x88,0xa3,0x1b,0x3d,0x28,0x7d,0xb0,0x64,0x54,0x21,0xa9,0x50,0xfc,0x9b,0x9,0x96,0xf7,0x53,0x49,0x69,0x3,0xf6,0x7,0x0,0x57,0x98,0xb6,0xf,0x35,0x86,0x81,0x97,0x33,0x55,0xd4,0x1c,0x6f,0x71,0xc8,0x9c,0xb,0xf9,0xff,0x99,0xa5,0x18,0x8c,0x79,0x6b,0x2b,0xcb,0x83,0x15,0x5a,0x12,0x31,0xae,0x41,0x9d,0x56,0x48,0x34,0xb8,0x3c,0x78,0xf4,0xd1,0x8,0x4e,0xfa,0xe5,0x4b,0x6c,0x44,0x7c,0xdf,0x37,0x6a,0xee,0x63,0x45,0x8a,0x92,0x85,0xf8,0x19,0xcf,0x4a,0xd7,0x1f,0xe9,0xa2,0xfb,0xf3,0x84,0xca,0x3a,0x72,0x8d,0x4d,0x20,0xc2,0xd3,0x9e,0x94,0xc1,0x29,0x5d,0x5f,0x39,0x87,0x68,0xb7,0x36,0x5e,0x46,0xa4,0x8b,0x2,0x47,0xd6,0xeb,0x6e,0xd5,0x2d,0x1d,0xe,0xe6,0xb4,0xba,0xf1,0xfe,0x51,0xb2,0xd,0xa1,0x2f,0x4,0xaf,0x42,0xdb,0x74,0xe4,0x3f,0x13,0xf0,0xbc,0xc4,0x4f,0x66,0x16,0x6d,0xce,0xb1,0x58,0xbd,0x90,0x60,0xbe,0x40,0x73,0xaa,0x7f,0x30,0x65,0x82,0x43,0xec,0x3e,0x3b,0x5,0xfd,0x91,0x7e,0x1,0x70,0xde,0xa8,0xe1,0x24,0x93,0x4c,0xd9,0x1e,0xf2,0x6,0xab,0x23,0xd0,0xb5,0x80,0x1a,0xef,0x7b,0xda,0xd8,0x9a,0x61,0x17,0x14,0xdc,0xc0,0xc5,0xac,0x76,0xa6,0xc6,0xbb,0xc7,0x7e,0xdc,0xfa,0x68,0x17,0xc1,0xca,0xd1,0x7a,0x9b,0x5d,0xc6,0x1f,0xd5,0x3a,0xda,0x65,0xf9,0xa8,0x2d,0x22,0xd7,0x37,0x58,0x62,0xcd,0x3,0xd4,0xb,0x8c,0x83,0xf5,0xf8,0x61,0x66,0x1,0x2a,0xde,0x64,0x4,0x74,0x2e,0x8e,0xe6,0xa0,0x4c,0xc4,0xed,0xa9,0x81,0x4a,0x3e,0x34,0x14,0x67,0xbb,0x8b,0x6e,0x8f,0x42,0x8,0x4e,0x35,0xe5,0x6b,0x95,0xc,0x54,0x3d,0x44,0x86,0x11,0x71,0xf2,0xb3,0x5c,0xbd,0xba,0x89,0x84,0xcb,0x1d,0xe0,0xa3,0x28,0x26,0xaf,0x24,0x98,0xfc,0x29,0xf6,0xf,0x31,0xd2,0xce,0x7c,0x33,0xc5,0xcf,0xe7,0x32,0x94,0x90,0x88,0xff,0x9a,0x8d,0x70,0x16,0x76,0x5b,0x56,0xeb,0xd,0x3b,0xa,0xfb,0xf1,0xf0,0xb6,0xab,0x1c,0x41,0x6c,0x43,0x92,0x80,0x15,0x5f,0x18,0xb2,0xad,0x2c,0x9c,0x85,0xea,0xe,0x50,0xd6,0x51,0x60,0x72,0x48,0xf3,0x55,0x36,0x4b,0x13,0x63,0xae,0xef,0x75,0x9d,0x87,0x7d,0x82,0xec,0xdd,0x73,0x5a,0xa5,0xb8,0x10,0xe4,0xd9,0x6d,0xbf,0x21,0x77,0xa4,0xfd,0x79,0xa7,0x2b,0x9e,0x4d,0x38,0xbe,0x7b,0x93,0x6a,0xa6,0xcc,0x6,0x9,0x4f,0x78,0x25,0x23,0xc9,0x2,0x19,0xb5,0x40,0xbc,0x20,0x5e,0x57,0xd3,0xdf,0x6f,0xc7,0x0,0xd8,0x47,0x45,0x96,0x49,0x1b,0xc2,0x3f,0xe1,0x30,0x91,0x3c,0xf7,0xc8,0x1e,0xa1,0xac,0xee,0x9f,0xb4,0x53,0xe8,0x97,0x7,0xc0,0x1a,0x27,0xfe,0xc3,0x52,0xb9,0xd0,0x8a,0x2f,0xaa,0xe3,0x12,0xdb,0x69,0xb1,0xb0,0xf4,0x7f,0x5,0xa2,0xb7,0x39,0x99,0xe9,0xe2,0x59,0x46,0x54,0xa8,0x5d,0xf1,0x3b,0xbf,0xb6,0xc8,0xe8,0x2f,0x87,0x37,0x7e,0xad,0xaf,0x30,0xd7,0x2a,0xf3,0xa1,0xd4,0x79,0xd8,0x9,0x49,0xf6,0x20,0x1f,0x5c,0x77,0x6,0x44,0xef,0x7f,0x0,0xbb,0x16,0xcf,0xf2,0x28,0x38,0x51,0xba,0x2b,0xb,0x42,0xc7,0x62,0x59,0x81,0x33,0xfa,0xed,0x97,0x1c,0x58,0x71,0xd1,0x5f,0x4a,0xae,0xb1,0xa,0x1,0x5a,0xf0,0xb7,0xfd,0x6d,0x74,0xc4,0x45,0x3e,0xb8,0xe6,0x2,0xa0,0x9a,0x88,0xb9,0xa3,0xde,0xbd,0x1b,0x7,0x46,0x8b,0xfb,0x95,0x6f,0x75,0x9d,0x9b,0x35,0x4,0x6a,0xf8,0x50,0x4d,0xb2,0x57,0x85,0x31,0xc,0x15,0x4c,0x9f,0xc9,0x76,0xc3,0x4f,0x91,0x93,0x56,0xd0,0xa5,0x24,0x4e,0x82,0x7b,0x90,0xa7,0xe1,0xee,0xea,0x21,0xcb,0xcd,0xbc,0xe4,0x7d,0x83,0xf9,0x6e,0xac,0xd5,0xb4,0x5b,0x1a,0x99,0x6c,0x61,0x52,0x55,0x4b,0x8,0xf5,0x23,0xcc,0x47,0xce,0xc0,0x1e,0xc1,0x14,0x70,0x26,0x3a,0xd9,0xe7,0x27,0x2d,0xdb,0x94,0x78,0x7c,0xda,0xf,0x65,0x72,0x17,0x60,0xb3,0x9e,0xfe,0x98,0xd3,0xe5,0x3,0xbe,0x18,0x19,0x13,0xe2,0xa9,0xf4,0x43,0x5e,0x68,0x7a,0xab,0x84,0x80,0x12,0x34,0x96,0x39,0x22,0x29,0xff,0x2e,0xb5,0x73,0x92,0x32,0xd2,0x3d,0xf7,0xc5,0x40,0x11,0x8d,0xb0,0xdf,0x3f,0xca,0x3c,0xeb,0x25,0x8a,0x1d,0x6b,0x64,0xe3,0xe9,0x8e,0x89,0x10,0xec,0x8c,0x36,0xc2,0xe,0x66,0xc6,0x9c,0x5,0x2c,0xa4,0x48,0xd6,0xa2,0x69,0x41,0x53,0x8f,0xfc,0xdc,0xaa,0x67,0x86,0x63,0xd,0xdd,0xa6,0xe0}; + +uint32_t table_s9[] = {0x7cba6f01,0x2c06b734,0x220ec640,0x72b21e75,0x82c46d87,0xd278b5b2,0xdc70c4c6,0x8ccc1cf3,0xa4a8a905,0xf4147130,0xfa1c0044,0xaaa0d871,0x5ad6ab83,0xa6a73b6,0x46202c2,0x54dedaf7,0x2854fa3e,0x78e8220b,0x76e0537f,0x265c8b4a,0xd62af8b8,0x8696208d,0x889e51f9,0xd82289cc,0xf0463c3a,0xa0fae40f,0xaef2957b,0xfe4e4d4e,0xe383ebc,0x5e84e689,0x508c97fd,0x304fc8,0x613fde08,0x3183063d,0x3f8b7749,0x6f37af7c,0x9f41dc8e,0xcffd04bb,0xc1f575cf,0x9149adfa,0xb92d180c,0xe991c039,0xe799b14d,0xb7256978,0x47531a8a,0x17efc2bf,0x19e7b3cb,0x495b6bfe,0x35d14b37,0x656d9302,0x6b65e276,0x3bd93a43,0xcbaf49b1,0x9b139184,0x951be0f0,0xc5a738c5,0xedc38d33,0xbd7f5506,0xb3772472,0xe3cbfc47,0x13bd8fb5,0x43015780,0x4d0926f4,0x1db5fec1,0x8ab92d9,0x58174aec,0x561f3b98,0x6a3e3ad,0xf6d5905f,0xa669486a,0xa861391e,0xf8dde12b,0xd0b954dd,0x80058ce8,0x8e0dfd9c,0xdeb125a9,0x2ec7565b,0x7e7b8e6e,0x7073ff1a,0x20cf272f,0x5c4507e6,0xcf9dfd3,0x2f1aea7,0x524d7692,0xa23b0560,0xf287dd55,0xfc8fac21,0xac337414,0x8457c1e2,0xd4eb19d7,0xdae368a3,0x8a5fb096,0x7a29c364,0x2a951b51,0x249d6a25,0x7421b210,0x152e23d0,0x4592fbe5,0x4b9a8a91,0x1b2652a4,0xeb502156,0xbbecf963,0xb5e48817,0xe5585022,0xcd3ce5d4,0x9d803de1,0x93884c95,0xc33494a0,0x3342e752,0x63fe3f67,0x6df64e13,0x3d4a9626,0x41c0b6ef,0x117c6eda,0x1f741fae,0x4fc8c79b,0xbfbeb469,0xef026c5c,0xe10a1d28,0xb1b6c51d,0x99d270eb,0xc96ea8de,0xc766d9aa,0x97da019f,0x67ac726d,0x3710aa58,0x3918db2c,0x69a40319,0xec5d851c,0xbce15d29,0xb2e92c5d,0xe255f468,0x1223879a,0x429f5faf,0x4c972edb,0x1c2bf6ee,0x344f4318,0x64f39b2d,0x6afbea59,0x3a47326c,0xca31419e,0x9a8d99ab,0x9485e8df,0xc43930ea,0xb8b31023,0xe80fc816,0xe607b962,0xb6bb6157,0x46cd12a5,0x1671ca90,0x1879bbe4,0x48c563d1,0x60a1d627,0x301d0e12,0x3e157f66,0x6ea9a753,0x9edfd4a1,0xce630c94,0xc06b7de0,0x90d7a5d5,0xf1d83415,0xa164ec20,0xaf6c9d54,0xffd04561,0xfa63693,0x5f1aeea6,0x51129fd2,0x1ae47e7,0x29caf211,0x79762a24,0x777e5b50,0x27c28365,0xd7b4f097,0x870828a2,0x890059d6,0xd9bc81e3,0xa536a12a,0xf58a791f,0xfb82086b,0xab3ed05e,0x5b48a3ac,0xbf47b99,0x5fc0aed,0x5540d2d8,0x7d24672e,0x2d98bf1b,0x2390ce6f,0x732c165a,0x835a65a8,0xd3e6bd9d,0xddeecce9,0x8d5214dc,0x984c78c4,0xc8f0a0f1,0xc6f8d185,0x964409b0,0x66327a42,0x368ea277,0x3886d303,0x683a0b36,0x405ebec0,0x10e266f5,0x1eea1781,0x4e56cfb4,0xbe20bc46,0xee9c6473,0xe0941507,0xb028cd32,0xcca2edfb,0x9c1e35ce,0x921644ba,0xc2aa9c8f,0x32dcef7d,0x62603748,0x6c68463c,0x3cd49e09,0x14b02bff,0x440cf3ca,0x4a0482be,0x1ab85a8b,0xeace2979,0xba72f14c,0xb47a8038,0xe4c6580d,0x85c9c9cd,0xd57511f8,0xdb7d608c,0x8bc1b8b9,0x7bb7cb4b,0x2b0b137e,0x2503620a,0x75bfba3f,0x5ddb0fc9,0xd67d7fc,0x36fa688,0x53d37ebd,0xa3a50d4f,0xf319d57a,0xfd11a40e,0xadad7c3b,0xd1275cf2,0x819b84c7,0x8f93f5b3,0xdf2f2d86,0x2f595e74,0x7fe58641,0x71edf735,0x21512f00,0x9359af6,0x598942c3,0x578133b7,0x73deb82,0xf74b9870,0xa7f74045,0xa9ff3131,0xf943e904,0xcdbd827d,0x7165b72d,0x7914c323,0xc5ccf673,0xb3bf0483,0xf6731d3,0x71645dd,0xbbce708d,0xdf7b86a5,0x63a3b3f5,0x6bd2c7fb,0xd70af2ab,0xa179005b,0x1da1350b,0x15d04105,0xa9087455,0x2328bd29,0x9ff08879,0x9781fc77,0x2b59c927,0x5d2a3bd7,0xe1f20e87,0xe9837a89,0x555b4fd9,0x31eeb9f1,0x8d368ca1,0x8547f8af,0x399fcdff,0x4fec3f0f,0xf3340a5f,0xfb457e51,0x479d4b01,0x480c8b60,0xf4d4be30,0xfca5ca3e,0x407dff6e,0x360e0d9e,0x8ad638ce,0x82a74cc0,0x3e7f7990,0x5aca8fb8,0xe612bae8,0xee63cee6,0x52bbfbb6,0x24c80946,0x98103c16,0x90614818,0x2cb97d48,0xa699b434,0x1a418164,0x1230f56a,0xaee8c03a,0xd89b32ca,0x6443079a,0x6c327394,0xd0ea46c4,0xb45fb0ec,0x88785bc,0xf6f1b2,0xbc2ec4e2,0xca5d3612,0x76850342,0x7ef4774c,0xc22c421c,0xdc405a09,0x60986f59,0x68e91b57,0xd4312e07,0xa242dcf7,0x1e9ae9a7,0x16eb9da9,0xaa33a8f9,0xce865ed1,0x725e6b81,0x7a2f1f8f,0xc6f72adf,0xb084d82f,0xc5ced7f,0x42d9971,0xb8f5ac21,0x32d5655d,0x8e0d500d,0x867c2403,0x3aa41153,0x4cd7e3a3,0xf00fd6f3,0xf87ea2fd,0x44a697ad,0x20136185,0x9ccb54d5,0x94ba20db,0x2862158b,0x5e11e77b,0xe2c9d22b,0xeab8a625,0x56609375,0x59f15314,0xe5296644,0xed58124a,0x5180271a,0x27f3d5ea,0x9b2be0ba,0x935a94b4,0x2f82a1e4,0x4b3757cc,0xf7ef629c,0xff9e1692,0x434623c2,0x3535d132,0x89ede462,0x819c906c,0x3d44a53c,0xb7646c40,0xbbc5910,0x3cd2d1e,0xbf15184e,0xc966eabe,0x75bedfee,0x7dcfabe0,0xc1179eb0,0xa5a26898,0x197a5dc8,0x110b29c6,0xadd31c96,0xdba0ee66,0x6778db36,0x6f09af38,0xd3d19a68,0x2a579fed,0x968faabd,0x9efedeb3,0x2226ebe3,0x54551913,0xe88d2c43,0xe0fc584d,0x5c246d1d,0x38919b35,0x8449ae65,0x8c38da6b,0x30e0ef3b,0x46931dcb,0xfa4b289b,0xf23a5c95,0x4ee269c5,0xc4c2a0b9,0x781a95e9,0x706be1e7,0xccb3d4b7,0xbac02647,0x6181317,0xe696719,0xb2b15249,0xd604a461,0x6adc9131,0x62ade53f,0xde75d06f,0xa806229f,0x14de17cf,0x1caf63c1,0xa0775691,0xafe696f0,0x133ea3a0,0x1b4fd7ae,0xa797e2fe,0xd1e4100e,0x6d3c255e,0x654d5150,0xd9956400,0xbd209228,0x1f8a778,0x989d376,0xb551e626,0xc32214d6,0x7ffa2186,0x778b5588,0xcb5360d8,0x4173a9a4,0xfdab9cf4,0xf5dae8fa,0x4902ddaa,0x3f712f5a,0x83a91a0a,0x8bd86e04,0x37005b54,0x53b5ad7c,0xef6d982c,0xe71cec22,0x5bc4d972,0x2db72b82,0x916f1ed2,0x991e6adc,0x25c65f8c,0x3baa4799,0x877272c9,0x8f0306c7,0x33db3397,0x45a8c167,0xf970f437,0xf1018039,0x4dd9b569,0x296c4341,0x95b47611,0x9dc5021f,0x211d374f,0x576ec5bf,0xebb6f0ef,0xe3c784e1,0x5f1fb1b1,0xd53f78cd,0x69e74d9d,0x61963993,0xdd4e0cc3,0xab3dfe33,0x17e5cb63,0x1f94bf6d,0xa34c8a3d,0xc7f97c15,0x7b214945,0x73503d4b,0xcf88081b,0xb9fbfaeb,0x523cfbb,0xd52bbb5,0xb18a8ee5,0xbe1b4e84,0x2c37bd4,0xab20fda,0xb66a3a8a,0xc019c87a,0x7cc1fd2a,0x74b08924,0xc868bc74,0xacdd4a5c,0x10057f0c,0x18740b02,0xa4ac3e52,0xd2dfcca2,0x6e07f9f2,0x66768dfc,0xdaaeb8ac,0x508e71d0,0xec564480,0xe427308e,0x58ff05de,0x2e8cf72e,0x9254c27e,0x9a25b670,0x26fd8320,0x42487508,0xfe904058,0xf6e13456,0x4a390106,0x3c4af3f6,0x8092c6a6,0x88e3b2a8,0x343b87f8,0xd78d63dd,0xfb83361,0x7ecc3d69,0xa6f96dd5,0xd50b9da3,0xd3ecd1f,0x7c4ac317,0xa47f93ab,0x1189bbcf,0xc9bceb73,0xb8c8e57b,0x60fdb5c7,0x130f45b1,0xcb3a150d,0xba4e1b05,0x627b4bb9,0x42b23733,0x9a87678f,0xebf36987,0x33c6393b,0x4034c94d,0x980199f1,0xe97597f9,0x3140c745,0x84b6ef21,0x5c83bf9d,0x2df7b195,0xf5c2e129,0x8630115f,0x5e0541e3,0x2f714feb,0xf7441f57,0x66847e58,0xbeb12ee4,0xcfc520ec,0x17f07050,0x64028026,0xbc37d09a,0xcd43de92,0x15768e2e,0xa080a64a,0x78b5f6f6,0x9c1f8fe,0xd1f4a842,0xa2065834,0x7a330888,0xb470680,0xd372563c,0xf3bb2ab6,0x2b8e7a0a,0x5afa7402,0x82cf24be,0xf13dd4c8,0x29088474,0x587c8a7c,0x8049dac0,0x35bff2a4,0xed8aa218,0x9cfeac10,0x44cbfcac,0x37390cda,0xef0c5c66,0x9e78526e,0x464d02d2,0x2a5517cc,0xf2604770,0x83144978,0x5b2119c4,0x28d3e9b2,0xf0e6b90e,0x8192b706,0x59a7e7ba,0xec51cfde,0x34649f62,0x4510916a,0x9d25c1d6,0xeed731a0,0x36e2611c,0x47966f14,0x9fa33fa8,0xbf6a4322,0x675f139e,0x162b1d96,0xce1e4d2a,0xbdecbd5c,0x65d9ede0,0x14ade3e8,0xcc98b354,0x796e9b30,0xa15bcb8c,0xd02fc584,0x81a9538,0x7be8654e,0xa3dd35f2,0xd2a93bfa,0xa9c6b46,0x9b5c0a49,0x43695af5,0x321d54fd,0xea280441,0x99daf437,0x41efa48b,0x309baa83,0xe8aefa3f,0x5d58d25b,0x856d82e7,0xf4198cef,0x2c2cdc53,0x5fde2c25,0x87eb7c99,0xf69f7291,0x2eaa222d,0xe635ea7,0xd6560e1b,0xa7220013,0x7f1750af,0xce5a0d9,0xd4d0f065,0xa5a4fe6d,0x7d91aed1,0xc86786b5,0x1052d609,0x6126d801,0xb91388bd,0xcae178cb,0x12d42877,0x63a0267f,0xbb9576c3,0x3d90f33a,0xe5a5a386,0x94d1ad8e,0x4ce4fd32,0x3f160d44,0xe7235df8,0x965753f0,0x4e62034c,0xfb942b28,0x23a17b94,0x52d5759c,0x8ae02520,0xf912d556,0x212785ea,0x50538be2,0x8866db5e,0xa8afa7d4,0x709af768,0x1eef960,0xd9dba9dc,0xaa2959aa,0x721c0916,0x368071e,0xdb5d57a2,0x6eab7fc6,0xb69e2f7a,0xc7ea2172,0x1fdf71ce,0x6c2d81b8,0xb418d104,0xc56cdf0c,0x1d598fb0,0x8c99eebf,0x54acbe03,0x25d8b00b,0xfdede0b7,0x8e1f10c1,0x562a407d,0x275e4e75,0xff6b1ec9,0x4a9d36ad,0x92a86611,0xe3dc6819,0x3be938a5,0x481bc8d3,0x902e986f,0xe15a9667,0x396fc6db,0x19a6ba51,0xc193eaed,0xb0e7e4e5,0x68d2b459,0x1b20442f,0xc3151493,0xb2611a9b,0x6a544a27,0xdfa26243,0x79732ff,0x76e33cf7,0xaed66c4b,0xdd249c3d,0x511cc81,0x7465c289,0xac509235,0xc048872b,0x187dd797,0x6909d99f,0xb13c8923,0xc2ce7955,0x1afb29e9,0x6b8f27e1,0xb3ba775d,0x64c5f39,0xde790f85,0xaf0d018d,0x77385131,0x4caa147,0xdcfff1fb,0xad8bfff3,0x75beaf4f,0x5577d3c5,0x8d428379,0xfc368d71,0x2403ddcd,0x57f12dbb,0x8fc47d07,0xfeb0730f,0x268523b3,0x93730bd7,0x4b465b6b,0x3a325563,0xe20705df,0x91f5f5a9,0x49c0a515,0x38b4ab1d,0xe081fba1,0x71419aae,0xa974ca12,0xd800c41a,0x3594a6,0x73c764d0,0xabf2346c,0xda863a64,0x2b36ad8,0xb74542bc,0x6f701200,0x1e041c08,0xc6314cb4,0xb5c3bcc2,0x6df6ec7e,0x1c82e276,0xc4b7b2ca,0xe47ece40,0x3c4b9efc,0x4d3f90f4,0x950ac048,0xe6f8303e,0x3ecd6082,0x4fb96e8a,0x978c3e36,0x227a1652,0xfa4f46ee,0x8b3b48e6,0x530e185a,0x20fce82c,0xf8c9b890,0x89bdb698,0x5188e624,0x52ae490,0x307a5848,0x44745039,0x7124ece1,0x83d49a92,0xb684264a,0xc28a2e3b,0xf7da92e3,0x1f2f656,0x34a24a8e,0x40ac42ff,0x75fcfe27,0x870c8854,0xb25c348c,0xc6523cfd,0xf3028025,0x3a7e0a05,0xf2eb6dd,0x7b20beac,0x4e700274,0xbc807407,0x89d0c8df,0xfddec0ae,0xc88e7c76,0x3ea618c3,0xbf6a41b,0x7ff8ac6a,0x4aa810b2,0xb85866c1,0x8d08da19,0xf906d268,0xcc566eb0,0xc376121,0x3967ddf9,0x4d69d588,0x78396950,0x8ac91f23,0xbf99a3fb,0xcb97ab8a,0xfec71752,0x8ef73e7,0x3dbfcf3f,0x49b1c74e,0x7ce17b96,0x8e110de5,0xbb41b13d,0xcf4fb94c,0xfa1f0594,0x33638fb4,0x633336c,0x723d3b1d,0x476d87c5,0xb59df1b6,0x80cd4d6e,0xf4c3451f,0xc193f9c7,0x37bb9d72,0x2eb21aa,0x76e529db,0x43b59503,0xb145e370,0x84155fa8,0xf01b57d9,0xc54beb01,0xdd5ef56d,0xe80e49b5,0x9c0041c4,0xa950fd1c,0x5ba08b6f,0x6ef037b7,0x1afe3fc6,0x2fae831e,0xd986e7ab,0xecd65b73,0x98d85302,0xad88efda,0x5f7899a9,0x6a282571,0x1e262d00,0x2b7691d8,0xe20a1bf8,0xd75aa720,0xa354af51,0x96041389,0x64f465fa,0x51a4d922,0x25aad153,0x10fa6d8b,0xe6d2093e,0xd382b5e6,0xa78cbd97,0x92dc014f,0x602c773c,0x557ccbe4,0x2172c395,0x14227f4d,0xd44370dc,0xe113cc04,0x951dc475,0xa04d78ad,0x52bd0ede,0x67edb206,0x13e3ba77,0x26b306af,0xd09b621a,0xe5cbdec2,0x91c5d6b3,0xa4956a6b,0x56651c18,0x6335a0c0,0x173ba8b1,0x226b1469,0xeb179e49,0xde472291,0xaa492ae0,0x9f199638,0x6de9e04b,0x58b95c93,0x2cb754e2,0x19e7e83a,0xefcf8c8f,0xda9f3057,0xae913826,0x9bc184fe,0x6931f28d,0x5c614e55,0x286f4624,0x1d3ffafc,0x18ba037a,0x2deabfa2,0x59e4b7d3,0x6cb40b0b,0x9e447d78,0xab14c1a0,0xdf1ac9d1,0xea4a7509,0x1c6211bc,0x2932ad64,0x5d3ca515,0x686c19cd,0x9a9c6fbe,0xafccd366,0xdbc2db17,0xee9267cf,0x27eeedef,0x12be5137,0x66b05946,0x53e0e59e,0xa11093ed,0x94402f35,0xe04e2744,0xd51e9b9c,0x2336ff29,0x166643f1,0x62684b80,0x5738f758,0xa5c8812b,0x90983df3,0xe4963582,0xd1c6895a,0x11a786cb,0x24f73a13,0x50f93262,0x65a98eba,0x9759f8c9,0xa2094411,0xd6074c60,0xe357f0b8,0x157f940d,0x202f28d5,0x542120a4,0x61719c7c,0x9381ea0f,0xa6d156d7,0xd2df5ea6,0xe78fe27e,0x2ef3685e,0x1ba3d486,0x6faddcf7,0x5afd602f,0xa80d165c,0x9d5daa84,0xe953a2f5,0xdc031e2d,0x2a2b7a98,0x1f7bc640,0x6b75ce31,0x5e2572e9,0xacd5049a,0x9985b842,0xed8bb033,0xd8db0ceb,0xc0ce1287,0xf59eae5f,0x8190a62e,0xb4c01af6,0x46306c85,0x7360d05d,0x76ed82c,0x323e64f4,0xc4160041,0xf146bc99,0x8548b4e8,0xb0180830,0x42e87e43,0x77b8c29b,0x3b6caea,0x36e67632,0xff9afc12,0xcaca40ca,0xbec448bb,0x8b94f463,0x79648210,0x4c343ec8,0x383a36b9,0xd6a8a61,0xfb42eed4,0xce12520c,0xba1c5a7d,0x8f4ce6a5,0x7dbc90d6,0x48ec2c0e,0x3ce2247f,0x9b298a7,0xc9d39736,0xfc832bee,0x888d239f,0xbddd9f47,0x4f2de934,0x7a7d55ec,0xe735d9d,0x3b23e145,0xcd0b85f0,0xf85b3928,0x8c553159,0xb9058d81,0x4bf5fbf2,0x7ea5472a,0xaab4f5b,0x3ffbf383,0xf68779a3,0xc3d7c57b,0xb7d9cd0a,0x828971d2,0x707907a1,0x4529bb79,0x3127b308,0x4770fd0,0xf25f6b65,0xc70fd7bd,0xb301dfcc,0x86516314,0x74a11567,0x41f1a9bf,0x35ffa1ce,0xaf1d16}; + +unsigned char table_s10[] = {0x54,0x67,0xc5,0x1a,0x53,0x9,0xa6,0xeb,0xac,0x7,0xc2,0xe7,0x6c,0xa7,0x8d,0x7b,0xc1,0x83,0x2a,0x6,0x51,0x21,0xb7,0x36,0x52,0xe6,0x74,0x14,0x99,0x8e,0xf,0x17,0x55,0x4f,0x48,0x35,0xc,0xe3,0x3f,0x2e,0x42,0x97,0x82,0x1f,0x84,0xe,0x4d,0x7f,0xe4,0x81,0xc3,0xbf,0xa1,0xa9,0xaf,0x1c,0x57,0xd4,0x28,0x7e,0xb4,0x18,0x66,0x41,0xcc,0x95,0x45,0x70,0x90,0xe9,0x8f,0xb3,0xe5,0xbd,0x3e,0x8c,0x3c,0xbb,0xa0,0xfc,0x3a,0x9c,0x65,0xca,0x5b,0x4e,0x34,0x4,0x4c,0x2b,0x1d,0x30,0xda,0x3b,0xa3,0x8a,0xf1,0x93,0xe0,0xc6,0x77,0x7a,0x5d,0x92,0x6a,0xf4,0x76,0xcf,0x23,0x2c,0x40,0x4b,0xb6,0xde,0xd,0x39,0x56,0x20,0xe2,0x5e,0x44,0xea,0xfe,0x25,0x9b,0x62,0xb9,0x31,0xf2,0xd9,0xcb,0x61,0xee,0x1e,0xd1,0x80,0xa5,0xc9,0x24,0xd7,0xe8,0x12,0xed,0x3d,0xe1,0x8,0x5c,0x38,0xba,0xd3,0x64,0xb5,0x26,0xd2,0xaa,0x91,0xbe,0x16,0x6b,0x5,0x6d,0xfb,0xdf,0x5f,0x19,0x4a,0x75,0x89,0xd6,0xf8,0x9a,0x22,0x85,0xd8,0x33,0xd0,0x3,0x68,0x87,0x13,0xb1,0xdb,0xc7,0x43,0x1,0x9d,0xf9,0xb8,0xd5,0xa4,0xf6,0xfa,0x46,0x2f,0x6e,0x73,0xc4,0x8b,0x94,0x71,0xb2,0xec,0x27,0x11,0xa,0xc8,0x6f,0xae,0x69,0x96,0xce,0x2,0x10,0x15,0x59,0x7d,0xfd,0xdd,0xb,0xb0,0xef,0xff,0x2d,0xa8,0x7c,0x9e,0x9f,0x98,0xa2,0x88,0xad,0x37,0xab,0xf0,0x50,0xdc,0x0,0x86,0xf7,0x79,0x5a,0x58,0xf5,0x60,0xc0,0x63,0x29,0xf3,0x78,0x32,0x72,0xbc,0x49,0x47,0x1b,0xcd,0xee,0xc3,0xf5,0x92,0x54,0x7d,0xe5,0x4,0x14,0xbb,0x42,0xe4,0xda,0xea,0x90,0x85,0x52,0xe0,0x63,0x3b,0x22,0x7e,0x65,0xe2,0xae,0x9b,0x4b,0x12,0x6d,0x51,0x37,0x4e,0xfb,0x20,0x34,0x9a,0xef,0x67,0xbc,0x45,0xe7,0xd3,0x0,0x68,0x80,0x3c,0xfe,0x88,0x11,0xa8,0x2a,0xb4,0x95,0x9e,0xf2,0xfd,0x18,0x3e,0x4d,0x2f,0x4c,0x83,0xa4,0xa9,0xca,0xaa,0x38,0x8c,0xc9,0xd1,0x50,0x47,0xd8,0xf4,0x5d,0x1f,0xe8,0x69,0xff,0x8f,0x39,0x1c,0xd9,0x72,0xa5,0x53,0x79,0xb2,0xc4,0x1b,0xb9,0x8a,0x35,0x78,0xd7,0x8d,0xa0,0xf6,0xa,0x89,0x9f,0xb8,0xc6,0x6a,0x61,0x1d,0x5f,0x3a,0xc2,0x71,0x77,0x7f,0xc1,0x5c,0x49,0x9c,0xa1,0x93,0xd0,0x5a,0xeb,0x96,0x91,0x8b,0xf0,0xe1,0x3d,0xd2,0x6e,0xd5,0x3,0x23,0x76,0xf3,0x21,0x31,0xdc,0x10,0x48,0xb7,0xa3,0x87,0xcb,0xce,0xcf,0xf9,0x32,0x6c,0x70,0xb1,0x16,0xd4,0xad,0xb0,0xf1,0x98,0xaf,0x4a,0x55,0x1a,0x62,0xac,0xec,0xa6,0x13,0xc5,0x99,0x97,0xbe,0x2b,0x86,0x84,0x2d,0xf7,0xbd,0x1e,0x2,0x8e,0x2e,0x75,0xa7,0x29,0x58,0xde,0x46,0x41,0x40,0xa2,0xe9,0x73,0x56,0x7c,0x4f,0x74,0xc,0xf8,0xdb,0xb5,0xc8,0x60,0xe6,0x82,0xd6,0x3f,0x6b,0xba,0xd,0x64,0x9,0xfa,0x17,0x7b,0xe3,0x33,0xcc,0x36,0xbf,0x15,0x7,0x2c,0x5e,0xf,0xc0,0x30,0x66,0x27,0x43,0xdf,0x24,0x28,0x7a,0xb,0xcd,0x59,0xb6,0xdd,0x9d,0x19,0x5,0x6f,0xfc,0x44,0x26,0x8,0xe,0xed,0x6,0x5b,0x81,0x1,0x25,0xb3,0x57,0xab,0x94,0xc7,0x26,0xcf,0x16,0x72,0xfd,0x94,0x9b,0x4a,0xfc,0x8,0xbf,0x84,0x38,0x90,0x2b,0x45,0xf7,0xdc,0x4f,0xe5,0x30,0xc0,0xae,0xff,0xe7,0x8b,0xf9,0xa,0x3c,0xc6,0x13,0xc3,0x46,0x2d,0x3d,0xa9,0xf5,0x9f,0x6d,0xe9,0xb3,0x2f,0x96,0xd7,0x8a,0xfb,0xd4,0xd8,0xd5,0x43,0x71,0xf1,0x64,0x37,0xa7,0x5b,0xd6,0xf8,0xc,0xb4,0xf6,0xab,0xfe,0x1d,0xb8,0x47,0x2c,0xe0,0x3b,0x3e,0x53,0x77,0xf3,0xd3,0x9e,0x25,0xd1,0xc1,0x86,0x3,0x1,0x68,0x5d,0x40,0xa5,0xea,0x5f,0xba,0xc2,0x9c,0x3f,0x9,0xe6,0x24,0x80,0x41,0x76,0x74,0x4e,0xdb,0x4d,0xee,0xdd,0x7,0x1c,0x56,0x92,0x5c,0x69,0x67,0xe3,0x35,0xb0,0x52,0xb6,0xb1,0xa6,0x8c,0x19,0x83,0xde,0x85,0xf2,0x7e,0xa8,0x2e,0x57,0xd9,0xad,0xef,0x28,0x4,0xf,0x7f,0x18,0x99,0xc8,0x7c,0x3a,0x5a,0xa0,0xb7,0x39,0x21,0x49,0x7a,0x34,0xeb,0x27,0x7d,0xc5,0x88,0x29,0x82,0xc9,0xec,0x89,0x42,0x55,0xa3,0xaf,0xca,0x91,0xed,0x87,0x8f,0x32,0x81,0xfa,0x79,0x50,0x6,0x36,0x9a,0x6f,0x48,0x61,0x7b,0x1b,0x66,0xcd,0x22,0x0,0x11,0xb9,0x6c,0x31,0xac,0x20,0xaa,0x51,0x63,0xb2,0x14,0xe4,0x4b,0x60,0x75,0x2a,0x1a,0x5,0x62,0x1e,0x33,0x15,0xf4,0xa4,0x8d,0xbb,0xe2,0x5e,0x6b,0xc7,0xbe,0x9d,0xa1,0x93,0xcb,0xa2,0x10,0x95,0x12,0xd2,0x8e,0xf0,0x98,0x17,0x23,0xe,0x78,0x70,0xcc,0xc4,0x6a,0xb,0xd0,0x4c,0xb5,0x1f,0x97,0xbd,0xdf,0xe8,0xce,0x54,0x59,0xbc,0x73,0xda,0x44,0xe1,0x58,0x2,0xd,0x65,0x6e,0x3,0xac,0x5c,0xfa,0x52,0x62,0x3d,0x28,0x7b,0x56,0x2a,0x4d,0xc5,0xec,0xbc,0x5d,0x23,0x16,0xaa,0xf3,0xe9,0xd5,0xf6,0x8f,0x58,0xea,0x83,0xdb,0xc6,0x9a,0x5a,0xdd,0x6b,0x5f,0xd0,0xb8,0x84,0x38,0x30,0x46,0x98,0x43,0x22,0x8c,0xdf,0x57,0xfd,0x4,0x86,0xa0,0x97,0xf5,0x3b,0xf4,0x11,0x1c,0x10,0xa9,0xc,0x92,0x26,0x2d,0x45,0x4a,0x4c,0x60,0xa7,0xe5,0xd1,0x50,0x37,0x47,0x12,0x72,0x34,0x80,0x69,0x71,0xff,0xe8,0xa3,0x7c,0x32,0x1,0xc0,0x8d,0x35,0x6f,0xa4,0x81,0xca,0x61,0xeb,0x1d,0xa,0xc1,0xa5,0xd9,0x82,0xe7,0xc9,0x7a,0xc7,0xcf,0x4e,0x18,0x31,0xb2,0x0,0x27,0xd2,0x7e,0x2e,0x53,0x33,0x29,0x59,0x48,0x6a,0x85,0xe4,0x79,0x24,0xf1,0x2b,0x19,0xe2,0x68,0xa8,0x64,0xf,0xf0,0x3f,0x1b,0x76,0x73,0x6d,0xd6,0x9b,0xbb,0x4b,0xce,0x89,0x99,0x8,0x15,0x20,0x49,0xf2,0x17,0xa2,0xed,0x41,0x77,0xd4,0x8a,0x9,0xc8,0x6c,0xae,0x93,0x6,0x3c,0x3e,0x4f,0x95,0xa6,0x5,0x14,0xda,0x1e,0x54,0x7d,0xab,0x2f,0x21,0xf9,0xfe,0x1a,0xf8,0xcb,0x51,0xc4,0xee,0x36,0xba,0xcd,0x96,0x91,0x1f,0x66,0xe0,0x3a,0x5e,0x87,0x6e,0x2,0xd3,0xdc,0xb5,0xcc,0xf7,0x40,0xb4,0xd,0x63,0xd8,0x70,0xad,0x7,0x94,0xbf,0xb7,0xe6,0x88,0x78,0x42,0xb1,0xc3,0xaf,0x8b,0x5b,0x8e,0x74,0xe1,0x75,0x65,0xe,0xa1,0x25,0xd7,0xbd,0x9f,0xde,0x67,0xfb,0x90,0x9c,0xb3,0xc2,0xb9,0x39,0xb,0x9d,0x13,0xef,0x7f,0x2c,0xfc,0x44,0xb0,0x9e,0x55,0xb6,0xe3,0xbe,0xe4,0xd7,0x75,0xaa,0xe3,0xb9,0x16,0x5b,0x1c,0xb7,0x72,0x57,0xdc,0x17,0x3d,0xcb,0x71,0x33,0x9a,0xb6,0xe1,0x91,0x7,0x86,0xe2,0x56,0xc4,0xa4,0x29,0x3e,0xbf,0xa7,0xe5,0xff,0xf8,0x85,0xbc,0x53,0x8f,0x9e,0xf2,0x27,0x32,0xaf,0x34,0xbe,0xfd,0xcf,0x54,0x31,0x73,0xf,0x11,0x19,0x1f,0xac,0xe7,0x64,0x98,0xce,0x4,0xa8,0xd6,0xf1,0x7c,0x25,0xf5,0xc0,0x20,0x59,0x3f,0x3,0x55,0xd,0x8e,0x3c,0x8c,0xb,0x10,0x4c,0x8a,0x2c,0xd5,0x7a,0xeb,0xfe,0x84,0xb4,0xfc,0x9b,0xad,0x80,0x6a,0x8b,0x13,0x3a,0x41,0x23,0x50,0x76,0xc7,0xca,0xed,0x22,0xda,0x44,0xc6,0x7f,0x93,0x9c,0xf0,0xfb,0x6,0x6e,0xbd,0x89,0xe6,0x90,0x52,0xee,0xf4,0x5a,0x4e,0x95,0x2b,0xd2,0x9,0x81,0x42,0x69,0x7b,0xd1,0x5e,0xae,0x61,0x30,0x15,0x79,0x94,0x67,0x58,0xa2,0x5d,0x8d,0x51,0xb8,0xec,0x88,0xa,0x63,0xd4,0x5,0x96,0x62,0x1a,0x21,0xe,0xa6,0xdb,0xb5,0xdd,0x4b,0x6f,0xef,0xa9,0xfa,0xc5,0x39,0x66,0x48,0x2a,0x92,0x35,0x68,0x83,0x60,0xb3,0xd8,0x37,0xa3,0x1,0x6b,0x77,0xf3,0xb1,0x2d,0x49,0x8,0x65,0x14,0x46,0x4a,0xf6,0x9f,0xde,0xc3,0x74,0x3b,0x24,0xc1,0x2,0x5c,0x97,0xa1,0xba,0x78,0xdf,0x1e,0xd9,0x26,0x7e,0xb2,0xa0,0xa5,0xe9,0xcd,0x4d,0x6d,0xbb,0x0,0x5f,0x4f,0x9d,0x18,0xcc,0x2e,0x2f,0x28,0x12,0x38,0x1d,0x87,0x1b,0x40,0xe0,0x6c,0xb0,0x36,0x47,0xc9,0xea,0xe8,0x45,0xd0,0x70,0xd3,0x99,0x43,0xc8,0x82,0xc2,0xc,0xf9,0xf7,0xab,0x7d,0x3d,0x10,0x26,0x41,0x87,0xae,0x36,0xd7,0xc7,0x68,0x91,0x37,0x9,0x39,0x43,0x56,0x81,0x33,0xb0,0xe8,0xf1,0xad,0xb6,0x31,0x7d,0x48,0x98,0xc1,0xbe,0x82,0xe4,0x9d,0x28,0xf3,0xe7,0x49,0x3c,0xb4,0x6f,0x96,0x34,0x0,0xd3,0xbb,0x53,0xef,0x2d,0x5b,0xc2,0x7b,0xf9,0x67,0x46,0x4d,0x21,0x2e,0xcb,0xed,0x9e,0xfc,0x9f,0x50,0x77,0x7a,0x19,0x79,0xeb,0x5f,0x1a,0x2,0x83,0x94,0xb,0x27,0x8e,0xcc,0x3b,0xba,0x2c,0x5c,0xea,0xcf,0xa,0xa1,0x76,0x80,0xaa,0x61,0x17,0xc8,0x6a,0x59,0xe6,0xab,0x4,0x5e,0x73,0x25,0xd9,0x5a,0x4c,0x6b,0x15,0xb9,0xb2,0xce,0x8c,0xe9,0x11,0xa2,0xa4,0xac,0x12,0x8f,0x9a,0x4f,0x72,0x40,0x3,0x89,0x38,0x45,0x42,0x58,0x23,0x32,0xee,0x1,0xbd,0x6,0xd0,0xf0,0xa5,0x20,0xf2,0xe2,0xf,0xc3,0x9b,0x64,0x70,0x54,0x18,0x1d,0x1c,0x2a,0xe1,0xbf,0xa3,0x62,0xc5,0x7,0x7e,0x63,0x22,0x4b,0x7c,0x99,0x86,0xc9,0xb1,0x7f,0x3f,0x75,0xc0,0x16,0x4a,0x44,0x6d,0xf8,0x55,0x57,0xfe,0x24,0x6e,0xcd,0xd1,0x5d,0xfd,0xa6,0x74,0xfa,0x8b,0xd,0x95,0x92,0x93,0x71,0x3a,0xa0,0x85,0xaf,0x9c,0xa7,0xdf,0x2b,0x8,0x66,0x1b,0xb3,0x35,0x51,0x5,0xec,0xb8,0x69,0xde,0xb7,0xda,0x29,0xc4,0xa8,0x30,0xe0,0x1f,0xe5,0x6c,0xc6,0xd4,0xff,0x8d,0xdc,0x13,0xe3,0xb5,0xf4,0x90,0xc,0xf7,0xfb,0xa9,0xd8,0x1e,0x8a,0x65,0xe,0x4e,0xca,0xd6,0xbc,0x2f,0x97,0xf5,0xdb,0xdd,0x3e,0xd5,0x88,0x52,0xd2,0xf6,0x60,0x84,0x78,0x47,0x14,0x2c,0xc5,0x1c,0x78,0xf7,0x9e,0x91,0x40,0xf6,0x2,0xb5,0x8e,0x32,0x9a,0x21,0x4f,0xfd,0xd6,0x45,0xef,0x3a,0xca,0xa4,0xf5,0xed,0x81,0xf3,0x0,0x36,0xcc,0x19,0xc9,0x4c,0x27,0x37,0xa3,0xff,0x95,0x67,0xe3,0xb9,0x25,0x9c,0xdd,0x80,0xf1,0xde,0xd2,0xdf,0x49,0x7b,0xfb,0x6e,0x3d,0xad,0x51,0xdc,0xf2,0x6,0xbe,0xfc,0xa1,0xf4,0x17,0xb2,0x4d,0x26,0xea,0x31,0x34,0x59,0x7d,0xf9,0xd9,0x94,0x2f,0xdb,0xcb,0x8c,0x9,0xb,0x62,0x57,0x4a,0xaf,0xe0,0x55,0xb0,0xc8,0x96,0x35,0x3,0xec,0x2e,0x8a,0x4b,0x7c,0x7e,0x44,0xd1,0x47,0xe4,0xd7,0xd,0x16,0x5c,0x98,0x56,0x63,0x6d,0xe9,0x3f,0xba,0x58,0xbc,0xbb,0xac,0x86,0x13,0x89,0xd4,0x8f,0xf8,0x74,0xa2,0x24,0x5d,0xd3,0xa7,0xe5,0x22,0xe,0x5,0x75,0x12,0x93,0xc2,0x76,0x30,0x50,0xaa,0xbd,0x33,0x2b,0x43,0x70,0x3e,0xe1,0x2d,0x77,0xcf,0x82,0x23,0x88,0xc3,0xe6,0x83,0x48,0x5f,0xa9,0xa5,0xc0,0x9b,0xe7,0x8d,0x85,0x38,0x8b,0xf0,0x73,0x5a,0xc,0x3c,0x90,0x65,0x42,0x6b,0x71,0x11,0x6c,0xc7,0x28,0xa,0x1b,0xb3,0x66,0x3b,0xa6,0x2a,0xa0,0x5b,0x69,0xb8,0x1e,0xee,0x41,0x6a,0x7f,0x20,0x10,0xf,0x68,0x14,0x39,0x1f,0xfe,0xae,0x87,0xb1,0xe8,0x54,0x61,0xcd,0xb4,0x97,0xab,0x99,0xc1,0xa8,0x1a,0x9f,0x18,0xd8,0x84,0xfa,0x92,0x1d,0x29,0x4,0x72,0x7a,0xc6,0xce,0x60,0x1,0xda,0x46,0xbf,0x15,0x9d,0xb7,0xd5,0xe2,0xc4,0x5e,0x53,0xb6,0x79,0xd0,0x4e,0xeb,0x52,0x8,0x7,0x6f,0x64,0x9d,0x32,0xc2,0x64,0xcc,0xfc,0xa3,0xb6,0xe5,0xc8,0xb4,0xd3,0x5b,0x72,0x22,0xc3,0xbd,0x88,0x34,0x6d,0x77,0x4b,0x68,0x11,0xc6,0x74,0x1d,0x45,0x58,0x4,0xc4,0x43,0xf5,0xc1,0x4e,0x26,0x1a,0xa6,0xae,0xd8,0x6,0xdd,0xbc,0x12,0x41,0xc9,0x63,0x9a,0x18,0x3e,0x9,0x6b,0xa5,0x6a,0x8f,0x82,0x8e,0x37,0x92,0xc,0xb8,0xb3,0xdb,0xd4,0xd2,0xfe,0x39,0x7b,0x4f,0xce,0xa9,0xd9,0x8c,0xec,0xaa,0x1e,0xf7,0xef,0x61,0x76,0x3d,0xe2,0xac,0x9f,0x5e,0x13,0xab,0xf1,0x3a,0x1f,0x54,0xff,0x75,0x83,0x94,0x5f,0x3b,0x47,0x1c,0x79,0x57,0xe4,0x59,0x51,0xd0,0x86,0xaf,0x2c,0x9e,0xb9,0x4c,0xe0,0xb0,0xcd,0xad,0xb7,0xc7,0xd6,0xf4,0x1b,0x7a,0xe7,0xba,0x6f,0xb5,0x87,0x7c,0xf6,0x36,0xfa,0x91,0x6e,0xa1,0x85,0xe8,0xed,0xf3,0x48,0x5,0x25,0xd5,0x50,0x17,0x7,0x96,0x8b,0xbe,0xd7,0x6c,0x89,0x3c,0x73,0xdf,0xe9,0x4a,0x14,0x97,0x56,0xf2,0x30,0xd,0x98,0xa2,0xa0,0xd1,0xb,0x38,0x9b,0x8a,0x44,0x80,0xca,0xe3,0x35,0xb1,0xbf,0x67,0x60,0x84,0x66,0x55,0xcf,0x5a,0x70,0xa8,0x24,0x53,0x8,0xf,0x81,0xf8,0x7e,0xa4,0xc0,0x19,0xf0,0x9c,0x4d,0x42,0x2b,0x52,0x69,0xde,0x2a,0x93,0xfd,0x46,0xee,0x33,0x99,0xa,0x21,0x29,0x78,0x16,0xe6,0xdc,0x2f,0x5d,0x31,0x15,0xc5,0x10,0xea,0x7f,0xeb,0xfb,0x90,0x3f,0xbb,0x49,0x23,0x1,0x40,0xf9,0x65,0xe,0x2,0x2d,0x5c,0x27,0xa7,0x95,0x3,0x8d,0x71,0xe1,0xb2,0x62,0xda,0x2e,0x0,0xcb,0x28,0x7d,0x20,0x86,0xb5,0x17,0xc8,0x81,0xdb,0x74,0x39,0x7e,0xd5,0x10,0x35,0xbe,0x75,0x5f,0xa9,0x13,0x51,0xf8,0xd4,0x83,0xf3,0x65,0xe4,0x80,0x34,0xa6,0xc6,0x4b,0x5c,0xdd,0xc5,0x87,0x9d,0x9a,0xe7,0xde,0x31,0xed,0xfc,0x90,0x45,0x50,0xcd,0x56,0xdc,0x9f,0xad,0x36,0x53,0x11,0x6d,0x73,0x7b,0x7d,0xce,0x85,0x6,0xfa,0xac,0x66,0xca,0xb4,0x93,0x1e,0x47,0x97,0xa2,0x42,0x3b,0x5d,0x61,0x37,0x6f,0xec,0x5e,0xee,0x69,0x72,0x2e,0xe8,0x4e,0xb7,0x18,0x89,0x9c,0xe6,0xd6,0x9e,0xf9,0xcf,0xe2,0x8,0xe9,0x71,0x58,0x23,0x41,0x32,0x14,0xa5,0xa8,0x8f,0x40,0xb8,0x26,0xa4,0x1d,0xf1,0xfe,0x92,0x99,0x64,0xc,0xdf,0xeb,0x84,0xf2,0x30,0x8c,0x96,0x38,0x2c,0xf7,0x49,0xb0,0x6b,0xe3,0x20,0xb,0x19,0xb3,0x3c,0xcc,0x3,0x52,0x77,0x1b,0xf6,0x5,0x3a,0xc0,0x3f,0xef,0x33,0xda,0x8e,0xea,0x68,0x1,0xb6,0x67,0xf4,0x0,0x78,0x43,0x6c,0xc4,0xb9,0xd7,0xbf,0x29,0xd,0x8d,0xcb,0x98,0xa7,0x5b,0x4,0x2a,0x48,0xf0,0x57,0xa,0xe1,0x2,0xd1,0xba,0x55,0xc1,0x63,0x9,0x15,0x91,0xd3,0x4f,0x2b,0x6a,0x7,0x76,0x24,0x28,0x94,0xfd,0xbc,0xa1,0x16,0x59,0x46,0xa3,0x60,0x3e,0xf5,0xc3,0xd8,0x1a,0xbd,0x7c,0xbb,0x44,0x1c,0xd0,0xc2,0xc7,0x8b,0xaf,0x2f,0xf,0xd9,0x62,0x3d,0x2d,0xff,0x7a,0xae,0x4c,0x4d,0x4a,0x70,0x5a,0x7f,0xe5,0x79,0x22,0x82,0xe,0xd2,0x54,0x25,0xab,0x88,0x8a,0x27,0xb2,0x12,0xb1,0xfb,0x21,0xaa,0xe0,0xa0,0x6e,0x9b,0x95,0xc9,0x1f,0xcd,0xe0,0xd6,0xb1,0x77,0x5e,0xc6,0x27,0x37,0x98,0x61,0xc7,0xf9,0xc9,0xb3,0xa6,0x71,0xc3,0x40,0x18,0x1,0x5d,0x46,0xc1,0x8d,0xb8,0x68,0x31,0x4e,0x72,0x14,0x6d,0xd8,0x3,0x17,0xb9,0xcc,0x44,0x9f,0x66,0xc4,0xf0,0x23,0x4b,0xa3,0x1f,0xdd,0xab,0x32,0x8b,0x9,0x97,0xb6,0xbd,0xd1,0xde,0x3b,0x1d,0x6e,0xc,0x6f,0xa0,0x87,0x8a,0xe9,0x89,0x1b,0xaf,0xea,0xf2,0x73,0x64,0xfb,0xd7,0x7e,0x3c,0xcb,0x4a,0xdc,0xac,0x1a,0x3f,0xfa,0x51,0x86,0x70,0x5a,0x91,0xe7,0x38,0x9a,0xa9,0x16,0x5b,0xf4,0xae,0x83,0xd5,0x29,0xaa,0xbc,0x9b,0xe5,0x49,0x42,0x3e,0x7c,0x19,0xe1,0x52,0x54,0x5c,0xe2,0x7f,0x6a,0xbf,0x82,0xb0,0xf3,0x79,0xc8,0xb5,0xb2,0xa8,0xd3,0xc2,0x1e,0xf1,0x4d,0xf6,0x20,0x0,0x55,0xd0,0x2,0x12,0xff,0x33,0x6b,0x94,0x80,0xa4,0xe8,0xed,0xec,0xda,0x11,0x4f,0x53,0x92,0x35,0xf7,0x8e,0x93,0xd2,0xbb,0x8c,0x69,0x76,0x39,0x41,0x8f,0xcf,0x85,0x30,0xe6,0xba,0xb4,0x9d,0x8,0xa5,0xa7,0xe,0xd4,0x9e,0x3d,0x21,0xad,0xd,0x56,0x84,0xa,0x7b,0xfd,0x65,0x62,0x63,0x81,0xca,0x50,0x75,0x5f,0x6c,0x57,0x2f,0xdb,0xf8,0x96,0xeb,0x43,0xc5,0xa1,0xf5,0x1c,0x48,0x99,0x2e,0x47,0x2a,0xd9,0x34,0x58,0xc0,0x10,0xef,0x15,0x9c,0x36,0x24,0xf,0x7d,0x2c,0xe3,0x13,0x45,0x4,0x60,0xfc,0x7,0xb,0x59,0x28,0xee,0x7a,0x95,0xfe,0xbe,0x3a,0x26,0x4c,0xdf,0x67,0x5,0x2b,0x2d,0xce,0x25,0x78,0xa2,0x22,0x6,0x90,0x74,0x88,0xb7,0xe4,0x76,0x9f,0x46,0x22,0xad,0xc4,0xcb,0x1a,0xac,0x58,0xef,0xd4,0x68,0xc0,0x7b,0x15,0xa7,0x8c,0x1f,0xb5,0x60,0x90,0xfe,0xaf,0xb7,0xdb,0xa9,0x5a,0x6c,0x96,0x43,0x93,0x16,0x7d,0x6d,0xf9,0xa5,0xcf,0x3d,0xb9,0xe3,0x7f,0xc6,0x87,0xda,0xab,0x84,0x88,0x85,0x13,0x21,0xa1,0x34,0x67,0xf7,0xb,0x86,0xa8,0x5c,0xe4,0xa6,0xfb,0xae,0x4d,0xe8,0x17,0x7c,0xb0,0x6b,0x6e,0x3,0x27,0xa3,0x83,0xce,0x75,0x81,0x91,0xd6,0x53,0x51,0x38,0xd,0x10,0xf5,0xba,0xf,0xea,0x92,0xcc,0x6f,0x59,0xb6,0x74,0xd0,0x11,0x26,0x24,0x1e,0x8b,0x1d,0xbe,0x8d,0x57,0x4c,0x6,0xc2,0xc,0x39,0x37,0xb3,0x65,0xe0,0x2,0xe6,0xe1,0xf6,0xdc,0x49,0xd3,0x8e,0xd5,0xa2,0x2e,0xf8,0x7e,0x7,0x89,0xfd,0xbf,0x78,0x54,0x5f,0x2f,0x48,0xc9,0x98,0x2c,0x6a,0xa,0xf0,0xe7,0x69,0x71,0x19,0x2a,0x64,0xbb,0x77,0x2d,0x95,0xd8,0x79,0xd2,0x99,0xbc,0xd9,0x12,0x5,0xf3,0xff,0x9a,0xc1,0xbd,0xd7,0xdf,0x62,0xd1,0xaa,0x29,0x0,0x56,0x66,0xca,0x3f,0x18,0x31,0x2b,0x4b,0x36,0x9d,0x72,0x50,0x41,0xe9,0x3c,0x61,0xfc,0x70,0xfa,0x1,0x33,0xe2,0x44,0xb4,0x1b,0x30,0x25,0x7a,0x4a,0x55,0x32,0x4e,0x63,0x45,0xa4,0xf4,0xdd,0xeb,0xb2,0xe,0x3b,0x97,0xee,0xcd,0xf1,0xc3,0x9b,0xf2,0x40,0xc5,0x42,0x82,0xde,0xa0,0xc8,0x47,0x73,0x5e,0x28,0x20,0x9c,0x94,0x3a,0x5b,0x80,0x1c,0xe5,0x4f,0xc7,0xed,0x8f,0xb8,0x9e,0x4,0x9,0xec,0x23,0x8a,0x14,0xb1,0x8,0x52,0x5d,0x35,0x3e,0xc4,0x6b,0x9b,0x3d,0x95,0xa5,0xfa,0xef,0xbc,0x91,0xed,0x8a,0x2,0x2b,0x7b,0x9a,0xe4,0xd1,0x6d,0x34,0x2e,0x12,0x31,0x48,0x9f,0x2d,0x44,0x1c,0x1,0x5d,0x9d,0x1a,0xac,0x98,0x17,0x7f,0x43,0xff,0xf7,0x81,0x5f,0x84,0xe5,0x4b,0x18,0x90,0x3a,0xc3,0x41,0x67,0x50,0x32,0xfc,0x33,0xd6,0xdb,0xd7,0x6e,0xcb,0x55,0xe1,0xea,0x82,0x8d,0x8b,0xa7,0x60,0x22,0x16,0x97,0xf0,0x80,0xd5,0xb5,0xf3,0x47,0xae,0xb6,0x38,0x2f,0x64,0xbb,0xf5,0xc6,0x7,0x4a,0xf2,0xa8,0x63,0x46,0xd,0xa6,0x2c,0xda,0xcd,0x6,0x62,0x1e,0x45,0x20,0xe,0xbd,0x0,0x8,0x89,0xdf,0xf6,0x75,0xc7,0xe0,0x15,0xb9,0xe9,0x94,0xf4,0xee,0x9e,0x8f,0xad,0x42,0x23,0xbe,0xe3,0x36,0xec,0xde,0x25,0xaf,0x6f,0xa3,0xc8,0x37,0xf8,0xdc,0xb1,0xb4,0xaa,0x11,0x5c,0x7c,0x8c,0x9,0x4e,0x5e,0xcf,0xd2,0xe7,0x8e,0x35,0xd0,0x65,0x2a,0x86,0xb0,0x13,0x4d,0xce,0xf,0xab,0x69,0x54,0xc1,0xfb,0xf9,0x88,0x52,0x61,0xc2,0xd3,0x1d,0xd9,0x93,0xba,0x6c,0xe8,0xe6,0x3e,0x39,0xdd,0x3f,0xc,0x96,0x3,0x29,0xf1,0x7d,0xa,0x51,0x56,0xd8,0xa1,0x27,0xfd,0x99,0x40,0xa9,0xc5,0x14,0x1b,0x72,0xb,0x30,0x87,0x73,0xca,0xa4,0x1f,0xb7,0x6a,0xc0,0x53,0x78,0x70,0x21,0x4f,0xbf,0x85,0x76,0x4,0x68,0x4c,0x9c,0x49,0xb3,0x26,0xb2,0xa2,0xc9,0x66,0xe2,0x10,0x7a,0x58,0x19,0xa0,0x3c,0x57,0x5b,0x74,0x5,0x7e,0xfe,0xcc,0x5a,0xd4,0x28,0xb8,0xeb,0x3b,0x83,0x77,0x59,0x92,0x71,0x24,0x79,0xf,0x3c,0x9e,0x41,0x8,0x52,0xfd,0xb0,0xf7,0x5c,0x99,0xbc,0x37,0xfc,0xd6,0x20,0x9a,0xd8,0x71,0x5d,0xa,0x7a,0xec,0x6d,0x9,0xbd,0x2f,0x4f,0xc2,0xd5,0x54,0x4c,0xe,0x14,0x13,0x6e,0x57,0xb8,0x64,0x75,0x19,0xcc,0xd9,0x44,0xdf,0x55,0x16,0x24,0xbf,0xda,0x98,0xe4,0xfa,0xf2,0xf4,0x47,0xc,0x8f,0x73,0x25,0xef,0x43,0x3d,0x1a,0x97,0xce,0x1e,0x2b,0xcb,0xb2,0xd4,0xe8,0xbe,0xe6,0x65,0xd7,0x67,0xe0,0xfb,0xa7,0x61,0xc7,0x3e,0x91,0x0,0x15,0x6f,0x5f,0x17,0x70,0x46,0x6b,0x81,0x60,0xf8,0xd1,0xaa,0xc8,0xbb,0x9d,0x2c,0x21,0x6,0xc9,0x31,0xaf,0x2d,0x94,0x78,0x77,0x1b,0x10,0xed,0x85,0x56,0x62,0xd,0x7b,0xb9,0x5,0x1f,0xb1,0xa5,0x7e,0xc0,0x39,0xe2,0x6a,0xa9,0x82,0x90,0x3a,0xb5,0x45,0x8a,0xdb,0xfe,0x92,0x7f,0x8c,0xb3,0x49,0xb6,0x66,0xba,0x53,0x7,0x63,0xe1,0x88,0x3f,0xee,0x7d,0x89,0xf1,0xca,0xe5,0x4d,0x30,0x5e,0x36,0xa0,0x84,0x4,0x42,0x11,0x2e,0xd2,0x8d,0xa3,0xc1,0x79,0xde,0x83,0x68,0x8b,0x58,0x33,0xdc,0x48,0xea,0x80,0x9c,0x18,0x5a,0xc6,0xa2,0xe3,0x8e,0xff,0xad,0xa1,0x1d,0x74,0x35,0x28,0x9f,0xd0,0xcf,0x2a,0xe9,0xb7,0x7c,0x4a,0x51,0x93,0x34,0xf5,0x32,0xcd,0x95,0x59,0x4b,0x4e,0x2,0x26,0xa6,0x86,0x50,0xeb,0xb4,0xa4,0x76,0xf3,0x27,0xc5,0xc4,0xc3,0xf9,0xd3,0xf6,0x6c,0xf0,0xab,0xb,0x87,0x5b,0xdd,0xac,0x22,0x1,0x3,0xae,0x3b,0x9b,0x38,0x72,0xa8,0x23,0x69,0x29,0xe7,0x12,0x1c,0x40,0x96,0xae,0x83,0xb5,0xd2,0x14,0x3d,0xa5,0x44,0x54,0xfb,0x2,0xa4,0x9a,0xaa,0xd0,0xc5,0x12,0xa0,0x23,0x7b,0x62,0x3e,0x25,0xa2,0xee,0xdb,0xb,0x52,0x2d,0x11,0x77,0xe,0xbb,0x60,0x74,0xda,0xaf,0x27,0xfc,0x5,0xa7,0x93,0x40,0x28,0xc0,0x7c,0xbe,0xc8,0x51,0xe8,0x6a,0xf4,0xd5,0xde,0xb2,0xbd,0x58,0x7e,0xd,0x6f,0xc,0xc3,0xe4,0xe9,0x8a,0xea,0x78,0xcc,0x89,0x91,0x10,0x7,0x98,0xb4,0x1d,0x5f,0xa8,0x29,0xbf,0xcf,0x79,0x5c,0x99,0x32,0xe5,0x13,0x39,0xf2,0x84,0x5b,0xf9,0xca,0x75,0x38,0x97,0xcd,0xe0,0xb6,0x4a,0xc9,0xdf,0xf8,0x86,0x2a,0x21,0x5d,0x1f,0x7a,0x82,0x31,0x37,0x3f,0x81,0x1c,0x9,0xdc,0xe1,0xd3,0x90,0x1a,0xab,0xd6,0xd1,0xcb,0xb0,0xa1,0x7d,0x92,0x2e,0x95,0x43,0x63,0x36,0xb3,0x61,0x71,0x9c,0x50,0x8,0xf7,0xe3,0xc7,0x8b,0x8e,0x8f,0xb9,0x72,0x2c,0x30,0xf1,0x56,0x94,0xed,0xf0,0xb1,0xd8,0xef,0xa,0x15,0x5a,0x22,0xec,0xac,0xe6,0x53,0x85,0xd9,0xd7,0xfe,0x6b,0xc6,0xc4,0x6d,0xb7,0xfd,0x5e,0x42,0xce,0x6e,0x35,0xe7,0x69,0x18,0x9e,0x6,0x1,0x0,0xe2,0xa9,0x33,0x16,0x3c,0xf,0x34,0x4c,0xb8,0x9b,0xf5,0x88,0x20,0xa6,0xc2,0x96,0x7f,0x2b,0xfa,0x4d,0x24,0x49,0xba,0x57,0x3b,0xa3,0x73,0x8c,0x76,0xff,0x55,0x47,0x6c,0x1e,0x4f,0x80,0x70,0x26,0x67,0x3,0x9f,0x64,0x68,0x3a,0x4b,0x8d,0x19,0xf6,0x9d,0xdd,0x59,0x45,0x2f,0xbc,0x4,0x66,0x48,0x4e,0xad,0x46,0x1b,0xc1,0x41,0x65,0xf3,0x17,0xeb,0xd4,0x87,0x11,0xf8,0x21,0x45,0xca,0xa3,0xac,0x7d,0xcb,0x3f,0x88,0xb3,0xf,0xa7,0x1c,0x72,0xc0,0xeb,0x78,0xd2,0x7,0xf7,0x99,0xc8,0xd0,0xbc,0xce,0x3d,0xb,0xf1,0x24,0xf4,0x71,0x1a,0xa,0x9e,0xc2,0xa8,0x5a,0xde,0x84,0x18,0xa1,0xe0,0xbd,0xcc,0xe3,0xef,0xe2,0x74,0x46,0xc6,0x53,0x0,0x90,0x6c,0xe1,0xcf,0x3b,0x83,0xc1,0x9c,0xc9,0x2a,0x8f,0x70,0x1b,0xd7,0xc,0x9,0x64,0x40,0xc4,0xe4,0xa9,0x12,0xe6,0xf6,0xb1,0x34,0x36,0x5f,0x6a,0x77,0x92,0xdd,0x68,0x8d,0xf5,0xab,0x8,0x3e,0xd1,0x13,0xb7,0x76,0x41,0x43,0x79,0xec,0x7a,0xd9,0xea,0x30,0x2b,0x61,0xa5,0x6b,0x5e,0x50,0xd4,0x2,0x87,0x65,0x81,0x86,0x91,0xbb,0x2e,0xb4,0xe9,0xb2,0xc5,0x49,0x9f,0x19,0x60,0xee,0x9a,0xd8,0x1f,0x33,0x38,0x48,0x2f,0xae,0xff,0x4b,0xd,0x6d,0x97,0x80,0xe,0x16,0x7e,0x4d,0x3,0xdc,0x10,0x4a,0xf2,0xbf,0x1e,0xb5,0xfe,0xdb,0xbe,0x75,0x62,0x94,0x98,0xfd,0xa6,0xda,0xb0,0xb8,0x5,0xb6,0xcd,0x4e,0x67,0x31,0x1,0xad,0x58,0x7f,0x56,0x4c,0x2c,0x51,0xfa,0x15,0x37,0x26,0x8e,0x5b,0x6,0x9b,0x17,0x9d,0x66,0x54,0x85,0x23,0xd3,0x7c,0x57,0x42,0x1d,0x2d,0x32,0x55,0x29,0x4,0x22,0xc3,0x93,0xba,0x8c,0xd5,0x69,0x5c,0xf0,0x89,0xaa,0x96,0xa4,0xfc,0x95,0x27,0xa2,0x25,0xe5,0xb9,0xc7,0xaf,0x20,0x14,0x39,0x4f,0x47,0xfb,0xf3,0x5d,0x3c,0xe7,0x7b,0x82,0x28,0xa0,0x8a,0xe8,0xdf,0xf9,0x63,0x6e,0x8b,0x44,0xed,0x73,0xd6,0x6f,0x35,0x3a,0x52,0x59,0x93,0x3c,0xcc,0x6a,0xc2,0xf2,0xad,0xb8,0xeb,0xc6,0xba,0xdd,0x55,0x7c,0x2c,0xcd,0xb3,0x86,0x3a,0x63,0x79,0x45,0x66,0x1f,0xc8,0x7a,0x13,0x4b,0x56,0xa,0xca,0x4d,0xfb,0xcf,0x40,0x28,0x14,0xa8,0xa0,0xd6,0x8,0xd3,0xb2,0x1c,0x4f,0xc7,0x6d,0x94,0x16,0x30,0x7,0x65,0xab,0x64,0x81,0x8c,0x80,0x39,0x9c,0x2,0xb6,0xbd,0xd5,0xda,0xdc,0xf0,0x37,0x75,0x41,0xc0,0xa7,0xd7,0x82,0xe2,0xa4,0x10,0xf9,0xe1,0x6f,0x78,0x33,0xec,0xa2,0x91,0x50,0x1d,0xa5,0xff,0x34,0x11,0x5a,0xf1,0x7b,0x8d,0x9a,0x51,0x35,0x49,0x12,0x77,0x59,0xea,0x57,0x5f,0xde,0x88,0xa1,0x22,0x90,0xb7,0x42,0xee,0xbe,0xc3,0xa3,0xb9,0xc9,0xd8,0xfa,0x15,0x74,0xe9,0xb4,0x61,0xbb,0x89,0x72,0xf8,0x38,0xf4,0x9f,0x60,0xaf,0x8b,0xe6,0xe3,0xfd,0x46,0xb,0x2b,0xdb,0x5e,0x19,0x9,0x98,0x85,0xb0,0xd9,0x62,0x87,0x32,0x7d,0xd1,0xe7,0x44,0x1a,0x99,0x58,0xfc,0x3e,0x3,0x96,0xac,0xae,0xdf,0x5,0x36,0x95,0x84,0x4a,0x8e,0xc4,0xed,0x3b,0xbf,0xb1,0x69,0x6e,0x8a,0x68,0x5b,0xc1,0x54,0x7e,0xa6,0x2a,0x5d,0x6,0x1,0x8f,0xf6,0x70,0xaa,0xce,0x17,0xfe,0x92,0x43,0x4c,0x25,0x5c,0x67,0xd0,0x24,0x9d,0xf3,0x48,0xe0,0x3d,0x97,0x4,0x2f,0x27,0x76,0x18,0xe8,0xd2,0x21,0x53,0x3f,0x1b,0xcb,0x1e,0xe4,0x71,0xe5,0xf5,0x9e,0x31,0xb5,0x47,0x2d,0xf,0x4e,0xf7,0x6b,0x0,0xc,0x23,0x52,0x29,0xa9,0x9b,0xd,0x83,0x7f,0xef,0xbc,0x6c,0xd4,0x20,0xe,0xc5,0x26,0x73,0x2e}; diff --git a/lib/playfair/playfair.c b/lib/playfair/playfair.c new file mode 100755 index 0000000..782c17e --- /dev/null +++ b/lib/playfair/playfair.c @@ -0,0 +1,31 @@ +#include + +#include "playfair.h" + +void generate_key_schedule(unsigned char* key_material, uint32_t key_schedule[11][4]); +void generate_session_key(unsigned char* oldSap, unsigned char* messageIn, unsigned char* sessionKey); +void cycle(unsigned char* block, uint32_t key_schedule[11][4]); +void z_xor(unsigned char* in, unsigned char* out, int blocks); +void x_xor(unsigned char* in, unsigned char* out, int blocks); + +extern unsigned char default_sap[]; + +void playfair_decrypt(unsigned char* message3, unsigned char* cipherText, unsigned char* keyOut) +{ + unsigned char* chunk1 = &cipherText[16]; + unsigned char* chunk2 = &cipherText[56]; + int i; + unsigned char blockIn[16]; + unsigned char sapKey[16]; + uint32_t key_schedule[11][4]; + generate_session_key(default_sap, message3, sapKey); + generate_key_schedule(sapKey, key_schedule); + z_xor(chunk2, blockIn, 1); + cycle(blockIn, key_schedule); + for (i = 0; i < 16; i++) { + keyOut[i] = blockIn[i] ^ chunk1[i]; + } + x_xor(keyOut, keyOut, 1); + z_xor(keyOut, keyOut, 1); +} + diff --git a/lib/playfair/playfair.h b/lib/playfair/playfair.h new file mode 100755 index 0000000..5909a99 --- /dev/null +++ b/lib/playfair/playfair.h @@ -0,0 +1,6 @@ +#ifndef PLAYFAIR_H +#define PLAYFAIR_H + +void playfair_decrypt(unsigned char* message3, unsigned char* cipherText, unsigned char* keyOut); + +#endif diff --git a/lib/playfair/sap_hash.c b/lib/playfair/sap_hash.c new file mode 100755 index 0000000..9e7ae85 --- /dev/null +++ b/lib/playfair/sap_hash.c @@ -0,0 +1,96 @@ +#include +#include +#include + +#define printf(...) (void)0; + +void garble(unsigned char*, unsigned char*, unsigned char*, unsigned char*, unsigned char*); + +unsigned char rol8(unsigned char input, int count) +{ + return ((input << count) & 0xff) | (input & 0xff) >> (8-count); +} + +uint32_t rol8x(unsigned char input, int count) +{ + return ((input << count)) | (input) >> (8-count); +} + + +void sap_hash(unsigned char* blockIn, unsigned char* keyOut) +{ + uint32_t* block_words = (uint32_t*)blockIn; + uint32_t* out_words = (uint32_t*)keyOut; + unsigned char buffer0[20] = {0x96, 0x5F, 0xC6, 0x53, 0xF8, 0x46, 0xCC, 0x18, 0xDF, 0xBE, 0xB2, 0xF8, 0x38, 0xD7, 0xEC, 0x22, 0x03, 0xD1, 0x20, 0x8F}; + unsigned char buffer1[210]; + unsigned char buffer2[35] = {0x43, 0x54, 0x62, 0x7A, 0x18, 0xC3, 0xD6, 0xB3, 0x9A, 0x56, 0xF6, 0x1C, 0x14, 0x3F, 0x0C, 0x1D, 0x3B, 0x36, 0x83, 0xB1, 0x39, 0x51, 0x4A, 0xAA, 0x09, 0x3E, 0xFE, 0x44, 0xAF, 0xDE, 0xC3, 0x20, 0x9D, 0x42, 0x3A}; + unsigned char buffer3[132]; + unsigned char buffer4[21] = {0xED, 0x25, 0xD1, 0xBB, 0xBC, 0x27, 0x9F, 0x02, 0xA2, 0xA9, 0x11, 0x00, 0x0C, 0xB3, 0x52, 0xC0, 0xBD, 0xE3, 0x1B, 0x49, 0xC7}; + int i0_index[11] = {18, 22, 23, 0, 5, 19, 32, 31, 10, 21, 30}; + uint8_t w,x,y,z; + int i, j; + + // Load the input into the buffer + for (i = 0; i < 210; i++) + { + // We need to swap the byte order around so it is the right endianness + uint32_t in_word = block_words[((i % 64)>>2)]; + uint32_t in_byte = (in_word >> ((3-(i % 4)) << 3)) & 0xff; + buffer1[i] = in_byte; + } + // Next a scrambling + for (i = 0; i < 840; i++) + { + // We have to do unsigned, 32-bit modulo, or we get the wrong indices + x = buffer1[((i-155) & 0xffffffff) % 210]; + y = buffer1[((i-57) & 0xffffffff) % 210]; + z = buffer1[((i-13) & 0xffffffff) % 210]; + w = buffer1[(i & 0xffffffff) % 210]; + buffer1[i % 210] = (rol8(y, 5) + (rol8(z, 3) ^ w) - rol8(x,7)) & 0xff; + } + printf("Garbling...\n"); + // I have no idea what this is doing (yet), but it gives the right output + garble(buffer0, buffer1, buffer2, buffer3, buffer4); + + // Fill the output with 0xE1 + for (i = 0; i < 16; i++) + keyOut[i] = 0xE1; + + // Now we use all the buffers we have calculated to grind out the output. First buffer3 + for (i = 0; i < 11; i++) + { + // Note that this is addition (mod 255) and not XOR + // Also note that we only use certain indices + // And that index 3 is hard-coded to be 0x3d (Maybe we can hack this up by changing buffer3[0] to be 0xdc? + if (i == 3) + keyOut[i] = 0x3d; + else + keyOut[i] = ((keyOut[i] + buffer3[i0_index[i] * 4]) & 0xff); + } + + // Then buffer0 + for (i = 0; i < 20; i++) + keyOut[i % 16] ^= buffer0[i]; + + // Then buffer2 + for (i = 0; i < 35; i++) + keyOut[i % 16] ^= buffer2[i]; + + // Do buffer1 + for (i = 0; i < 210; i++) + keyOut[(i % 16)] ^= buffer1[i]; + + + // Now we do a kind of reverse-scramble + for (j = 0; j < 16; j++) + { + for (i = 0; i < 16; i++) + { + x = keyOut[((i-7) & 0xffffffff) % 16]; + y = keyOut[i % 16]; + z = keyOut[((i-37) & 0xffffffff) % 16]; + w = keyOut[((i-177) & 0xffffffff) % 16]; + keyOut[i] = rol8(x, 1) ^ y ^ rol8(z, 6) ^ rol8(w, 5); + } + } +} diff --git a/lib/plist/CMakeLists.txt b/lib/plist/CMakeLists.txt new file mode 100755 index 0000000..b81a0f0 --- /dev/null +++ b/lib/plist/CMakeLists.txt @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 3.4.1) +aux_source_directory(. plist_src) +set(DIR_SRCS ${plist_src}) +add_library( plist + STATIC + ${DIR_SRCS}) \ No newline at end of file diff --git a/lib/plist/base64.c b/lib/plist/base64.c new file mode 100755 index 0000000..ee02356 --- /dev/null +++ b/lib/plist/base64.c @@ -0,0 +1,119 @@ +/* + * base64.c + * base64 encode/decode implementation + * + * Copyright (c) 2011 Nikias Bassen, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include +#include "base64.h" + +static const char base64_str[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +static const char base64_pad = '='; + +static const signed char base64_table[256] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -2, -1, -1, + -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, + -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 +}; + +size_t base64encode(char *outbuf, const unsigned char *buf, size_t size) +{ + if (!outbuf || !buf || (size <= 0)) { + return 0; + } + + size_t n = 0; + size_t m = 0; + unsigned char input[3]; + unsigned int output[4]; + while (n < size) { + input[0] = buf[n]; + input[1] = (n+1 < size) ? buf[n+1] : 0; + input[2] = (n+2 < size) ? buf[n+2] : 0; + output[0] = input[0] >> 2; + output[1] = ((input[0] & 3) << 4) + (input[1] >> 4); + output[2] = ((input[1] & 15) << 2) + (input[2] >> 6); + output[3] = input[2] & 63; + outbuf[m++] = base64_str[(int)output[0]]; + outbuf[m++] = base64_str[(int)output[1]]; + outbuf[m++] = (n+1 < size) ? base64_str[(int)output[2]] : base64_pad; + outbuf[m++] = (n+2 < size) ? base64_str[(int)output[3]] : base64_pad; + n+=3; + } + outbuf[m] = 0; // 0-termination! + return m; +} + +unsigned char *base64decode(const char *buf, size_t *size) +{ + if (!buf || !size) return NULL; + size_t len = (*size > 0) ? *size : strlen(buf); + if (len <= 0) return NULL; + unsigned char *outbuf = (unsigned char*)malloc((len/4)*3+3); + const char *ptr = buf; + int p = 0; + int wv, w1, w2, w3, w4; + int tmpval[4]; + int tmpcnt = 0; + + do { + while (ptr < buf+len && (*ptr == ' ' || *ptr == '\t' || *ptr == '\n' || *ptr == '\r')) { + ptr++; + } + if (*ptr == '\0' || ptr >= buf+len) { + break; + } + if ((wv = base64_table[(int)(unsigned char)*ptr++]) == -1) { + continue; + } + tmpval[tmpcnt++] = wv; + if (tmpcnt == 4) { + tmpcnt = 0; + w1 = tmpval[0]; + w2 = tmpval[1]; + w3 = tmpval[2]; + w4 = tmpval[3]; + + if (w1 >= 0 && w2 >= 0) { + outbuf[p++] = (unsigned char)(((w1 << 2) + (w2 >> 4)) & 0xFF); + } + if (w2 >= 0 && w3 >= 0) { + outbuf[p++] = (unsigned char)(((w2 << 4) + (w3 >> 2)) & 0xFF); + } + if (w3 >= 0 && w4 >= 0) { + outbuf[p++] = (unsigned char)(((w3 << 6) + w4) & 0xFF); + } + } + } while (1); + + outbuf[p] = 0; + *size = p; + return outbuf; +} diff --git a/lib/plist/base64.h b/lib/plist/base64.h new file mode 100755 index 0000000..58b8396 --- /dev/null +++ b/lib/plist/base64.h @@ -0,0 +1,28 @@ +/* + * base64.h + * base64 encode/decode implementation + * + * Copyright (c) 2011 Nikias Bassen, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef BASE64_H +#define BASE64_H +#include + +size_t base64encode(char *outbuf, const unsigned char *buf, size_t size); +unsigned char *base64decode(const char *buf, size_t *size); + +#endif diff --git a/lib/plist/bplist.c b/lib/plist/bplist.c new file mode 100755 index 0000000..3636e27 --- /dev/null +++ b/lib/plist/bplist.c @@ -0,0 +1,1381 @@ +/* + * bplist.c + * Binary plist implementation + * + * Copyright (c) 2011-2017 Nikias Bassen, All Rights Reserved. + * Copyright (c) 2008-2010 Jonathan Beck, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include + +#include "plist/plist.h" +#include "plist.h" +#include "hashtable.h" +#include "bytearray.h" +#include "ptrarray.h" + +#include "node.h" + +/* Magic marker and size. */ +#define BPLIST_MAGIC ((uint8_t*)"bplist") +#define BPLIST_MAGIC_SIZE 6 + +#define BPLIST_VERSION ((uint8_t*)"00") +#define BPLIST_VERSION_SIZE 2 + +typedef struct __attribute__((packed)) { + uint8_t unused[6]; + uint8_t offset_size; + uint8_t ref_size; + uint64_t num_objects; + uint64_t root_object_index; + uint64_t offset_table_offset; +} bplist_trailer_t; + +enum +{ + BPLIST_NULL = 0x00, + BPLIST_FALSE = 0x08, + BPLIST_TRUE = 0x09, + BPLIST_FILL = 0x0F, /* will be used for length grabbing */ + BPLIST_UINT = 0x10, + BPLIST_REAL = 0x20, + BPLIST_DATE = 0x30, + BPLIST_DATA = 0x40, + BPLIST_STRING = 0x50, + BPLIST_UNICODE = 0x60, + BPLIST_UNK_0x70 = 0x70, + BPLIST_UID = 0x80, + BPLIST_ARRAY = 0xA0, + BPLIST_SET = 0xC0, + BPLIST_DICT = 0xD0, + BPLIST_MASK = 0xF0 +}; + +union plist_uint_ptr +{ + const void *src; + uint8_t *u8ptr; + uint16_t *u16ptr; + uint32_t *u32ptr; + uint64_t *u64ptr; +}; + +#define get_unaligned(ptr) \ + ({ \ + struct __attribute__((packed)) { \ + typeof(*(ptr)) __v; \ + } *__p = (void *) (ptr); \ + __p->__v; \ + }) + + +#ifndef bswap16 +#define bswap16(x) ((((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8)) +#endif + +#ifndef bswap32 +#define bswap32(x) ((((x) & 0xFF000000) >> 24) \ + | (((x) & 0x00FF0000) >> 8) \ + | (((x) & 0x0000FF00) << 8) \ + | (((x) & 0x000000FF) << 24)) +#endif + +#ifndef bswap64 +#define bswap64(x) ((((x) & 0xFF00000000000000ull) >> 56) \ + | (((x) & 0x00FF000000000000ull) >> 40) \ + | (((x) & 0x0000FF0000000000ull) >> 24) \ + | (((x) & 0x000000FF00000000ull) >> 8) \ + | (((x) & 0x00000000FF000000ull) << 8) \ + | (((x) & 0x0000000000FF0000ull) << 24) \ + | (((x) & 0x000000000000FF00ull) << 40) \ + | (((x) & 0x00000000000000FFull) << 56)) +#endif + +#ifndef be16toh +#ifdef __BIG_ENDIAN__ +#define be16toh(x) (x) +#else +#define be16toh(x) bswap16(x) +#endif +#endif + +#ifndef be32toh +#ifdef __BIG_ENDIAN__ +#define be32toh(x) (x) +#else +#define be32toh(x) bswap32(x) +#endif +#endif + +#ifndef be64toh +#ifdef __BIG_ENDIAN__ +#define be64toh(x) (x) +#else +#define be64toh(x) bswap64(x) +#endif +#endif + +#ifdef __BIG_ENDIAN__ +#define beNtoh(x,n) (x >> ((8-n) << 3)) +#else +#define beNtoh(x,n) be64toh(x << ((8-n) << 3)) +#endif + +#define UINT_TO_HOST(x, n) \ + ({ \ + union plist_uint_ptr __up; \ + __up.src = (n > 8) ? x + (n - 8) : x; \ + (n >= 8 ? be64toh( get_unaligned(__up.u64ptr) ) : \ + (n == 4 ? be32toh( get_unaligned(__up.u32ptr) ) : \ + (n == 2 ? be16toh( get_unaligned(__up.u16ptr) ) : \ + (n == 1 ? *__up.u8ptr : \ + beNtoh( get_unaligned(__up.u64ptr), n) \ + )))); \ + }) + +#define get_needed_bytes(x) \ + ( ((uint64_t)x) < (1ULL << 8) ? 1 : \ + ( ((uint64_t)x) < (1ULL << 16) ? 2 : \ + ( ((uint64_t)x) < (1ULL << 24) ? 3 : \ + ( ((uint64_t)x) < (1ULL << 32) ? 4 : 8)))) + +#define get_real_bytes(x) (x == (float) x ? sizeof(float) : sizeof(double)) + +#if (defined(__LITTLE_ENDIAN__) \ + && !defined(__FLOAT_WORD_ORDER__)) \ + || (defined(__FLOAT_WORD_ORDER__) \ + && __FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__) +#define float_bswap64(x) bswap64(x) +#define float_bswap32(x) bswap32(x) +#else +#define float_bswap64(x) (x) +#define float_bswap32(x) (x) +#endif + +#ifndef __has_builtin +#define __has_builtin(x) 0 +#endif + +#if __has_builtin(__builtin_umulll_overflow) || __GNUC__ >= 5 +#define uint64_mul_overflow(a, b, r) __builtin_umulll_overflow(a, b, (unsigned long long*)r) +#else +static int uint64_mul_overflow(uint64_t a, uint64_t b, uint64_t *res) +{ + *res = a * b; + return (a > UINT64_MAX / b); +} +#endif + +#define NODE_IS_ROOT(x) (((node_t*)x)->isRoot) + +struct bplist_data { + const char* data; + uint64_t size; + uint64_t num_objects; + uint8_t ref_size; + uint8_t offset_size; + const char* offset_table; + uint32_t level; + plist_t used_indexes; +}; + +#ifdef DEBUG +static int plist_bin_debug = 0; +#define PLIST_BIN_ERR(...) if (plist_bin_debug) { fprintf(stderr, "libplist[binparser] ERROR: " __VA_ARGS__); } +#else +#define PLIST_BIN_ERR(...) +#endif + +void plist_bin_init(void) +{ + /* init binary plist stuff */ +#ifdef DEBUG + char *env_debug = getenv("PLIST_BIN_DEBUG"); + if (env_debug && !strcmp(env_debug, "1")) { + plist_bin_debug = 1; + } +#endif +} + +void plist_bin_deinit(void) +{ + /* deinit binary plist stuff */ +} + +static plist_t parse_bin_node_at_index(struct bplist_data *bplist, uint32_t node_index); + +static plist_t parse_uint_node(const char **bnode, uint8_t size) +{ + plist_data_t data = plist_new_plist_data(); + + size = 1 << size; // make length less misleading + switch (size) + { + case sizeof(uint8_t): + case sizeof(uint16_t): + case sizeof(uint32_t): + case sizeof(uint64_t): + data->length = sizeof(uint64_t); + break; + case 16: + data->length = size; + break; + default: + free(data); + PLIST_BIN_ERR("%s: Invalid byte size for integer node\n", __func__); + return NULL; + }; + + data->intval = UINT_TO_HOST(*bnode, size); + + (*bnode) += size; + data->type = PLIST_UINT; + + return node_create(NULL, data); +} + +static plist_t parse_real_node(const char **bnode, uint8_t size) +{ + plist_data_t data = plist_new_plist_data(); + uint8_t buf[8]; + + size = 1 << size; // make length less misleading + switch (size) + { + case sizeof(uint32_t): + *(uint32_t*)buf = float_bswap32(get_unaligned((uint32_t*)*bnode)); + data->realval = *(float *) buf; + break; + case sizeof(uint64_t): + *(uint64_t*)buf = float_bswap64(get_unaligned((uint64_t*)*bnode)); + data->realval = *(double *) buf; + break; + default: + free(data); + PLIST_BIN_ERR("%s: Invalid byte size for real node\n", __func__); + return NULL; + } + data->type = PLIST_REAL; + data->length = sizeof(double); + + return node_create(NULL, data); +} + +static plist_t parse_date_node(const char **bnode, uint8_t size) +{ + plist_t node = parse_real_node(bnode, size); + plist_data_t data = plist_get_data(node); + + data->type = PLIST_DATE; + + return node; +} + +static plist_t parse_string_node(const char **bnode, uint64_t size) +{ + plist_data_t data = plist_new_plist_data(); + + data->type = PLIST_STRING; + data->strval = (char *) malloc(sizeof(char) * (size + 1)); + if (!data->strval) { + plist_free_data(data); + PLIST_BIN_ERR("%s: Could not allocate %" PRIu64 " bytes\n", __func__, sizeof(char) * (size + 1)); + return NULL; + } + memcpy(data->strval, *bnode, size); + data->strval[size] = '\0'; + data->length = strlen(data->strval); + + return node_create(NULL, data); +} + +static char *plist_utf16be_to_utf8(uint16_t *unistr, long len, long *items_read, long *items_written) +{ + if (!unistr || (len <= 0)) return NULL; + char *outbuf; + int p = 0; + long i = 0; + + uint16_t wc; + uint32_t w; + int read_lead_surrogate = 0; + + outbuf = (char*)malloc(4*(len+1)); + if (!outbuf) { + PLIST_BIN_ERR("%s: Could not allocate %" PRIu64 " bytes\n", __func__, (uint64_t)(4*(len+1))); + return NULL; + } + + while (i < len) { + wc = be16toh(get_unaligned(unistr + i)); + i++; + if (wc >= 0xD800 && wc <= 0xDBFF) { + if (!read_lead_surrogate) { + read_lead_surrogate = 1; + w = 0x010000 + ((wc & 0x3FF) << 10); + } else { + // This is invalid, the next 16 bit char should be a trail surrogate. + // Handling error by skipping. + read_lead_surrogate = 0; + } + } else if (wc >= 0xDC00 && wc <= 0xDFFF) { + if (read_lead_surrogate) { + read_lead_surrogate = 0; + w = w | (wc & 0x3FF); + outbuf[p++] = (char)(0xF0 + ((w >> 18) & 0x7)); + outbuf[p++] = (char)(0x80 + ((w >> 12) & 0x3F)); + outbuf[p++] = (char)(0x80 + ((w >> 6) & 0x3F)); + outbuf[p++] = (char)(0x80 + (w & 0x3F)); + } else { + // This is invalid. A trail surrogate should always follow a lead surrogate. + // Handling error by skipping + } + } else if (wc >= 0x800) { + outbuf[p++] = (char)(0xE0 + ((wc >> 12) & 0xF)); + outbuf[p++] = (char)(0x80 + ((wc >> 6) & 0x3F)); + outbuf[p++] = (char)(0x80 + (wc & 0x3F)); + } else if (wc >= 0x80) { + outbuf[p++] = (char)(0xC0 + ((wc >> 6) & 0x1F)); + outbuf[p++] = (char)(0x80 + (wc & 0x3F)); + } else { + outbuf[p++] = (char)(wc & 0x7F); + } + } + if (items_read) { + *items_read = i; + } + if (items_written) { + *items_written = p; + } + outbuf[p] = 0; + + return outbuf; +} + +static plist_t parse_unicode_node(const char **bnode, uint64_t size) +{ + plist_data_t data = plist_new_plist_data(); + char *tmpstr = NULL; + long items_read = 0; + long items_written = 0; + + data->type = PLIST_STRING; + + tmpstr = plist_utf16be_to_utf8((uint16_t*)(*bnode), size, &items_read, &items_written); + if (!tmpstr) { + plist_free_data(data); + return NULL; + } + tmpstr[items_written] = '\0'; + + data->type = PLIST_STRING; + data->strval = realloc(tmpstr, items_written+1); + if (!data->strval) + data->strval = tmpstr; + data->length = items_written; + return node_create(NULL, data); +} + +static plist_t parse_data_node(const char **bnode, uint64_t size) +{ + plist_data_t data = plist_new_plist_data(); + + data->type = PLIST_DATA; + data->length = size; + data->buff = (uint8_t *) malloc(sizeof(uint8_t) * size); + if (!data->strval) { + plist_free_data(data); + PLIST_BIN_ERR("%s: Could not allocate %" PRIu64 " bytes\n", __func__, sizeof(uint8_t) * size); + return NULL; + } + memcpy(data->buff, *bnode, sizeof(uint8_t) * size); + + return node_create(NULL, data); +} + +static plist_t parse_dict_node(struct bplist_data *bplist, const char** bnode, uint64_t size) +{ + uint64_t j; + uint64_t str_i = 0, str_j = 0; + uint64_t index1, index2; + plist_data_t data = plist_new_plist_data(); + const char *index1_ptr = NULL; + const char *index2_ptr = NULL; + + data->type = PLIST_DICT; + data->length = size; + + plist_t node = node_create(NULL, data); + + for (j = 0; j < data->length; j++) { + str_i = j * bplist->ref_size; + str_j = (j + size) * bplist->ref_size; + index1_ptr = (*bnode) + str_i; + index2_ptr = (*bnode) + str_j; + + if ((index1_ptr < bplist->data || index1_ptr + bplist->ref_size > bplist->offset_table) || + (index2_ptr < bplist->data || index2_ptr + bplist->ref_size > bplist->offset_table)) { + plist_free(node); + PLIST_BIN_ERR("%s: dict entry %" PRIu64 " is outside of valid range\n", __func__, j); + return NULL; + } + + index1 = UINT_TO_HOST(index1_ptr, bplist->ref_size); + index2 = UINT_TO_HOST(index2_ptr, bplist->ref_size); + + if (index1 >= bplist->num_objects) { + plist_free(node); + PLIST_BIN_ERR("%s: dict entry %" PRIu64 ": key index (%" PRIu64 ") must be smaller than the number of objects (%" PRIu64 ")\n", __func__, j, index1, bplist->num_objects); + return NULL; + } + if (index2 >= bplist->num_objects) { + plist_free(node); + PLIST_BIN_ERR("%s: dict entry %" PRIu64 ": value index (%" PRIu64 ") must be smaller than the number of objects (%" PRIu64 ")\n", __func__, j, index1, bplist->num_objects); + return NULL; + } + + /* process key node */ + plist_t key = parse_bin_node_at_index(bplist, index1); + if (!key) { + plist_free(node); + return NULL; + } + + if (plist_get_data(key)->type != PLIST_STRING) { + PLIST_BIN_ERR("%s: dict entry %" PRIu64 ": invalid node type for key\n", __func__, j); + plist_free(key); + plist_free(node); + return NULL; + } + + /* enforce key type */ + plist_get_data(key)->type = PLIST_KEY; + if (!plist_get_data(key)->strval) { + PLIST_BIN_ERR("%s: dict entry %" PRIu64 ": key must not be NULL\n", __func__, j); + plist_free(key); + plist_free(node); + return NULL; + } + + /* process value node */ + plist_t val = parse_bin_node_at_index(bplist, index2); + if (!val) { + plist_free(key); + plist_free(node); + return NULL; + } + + node_attach(node, key); + node_attach(node, val); + } + + return node; +} + +static plist_t parse_array_node(struct bplist_data *bplist, const char** bnode, uint64_t size) +{ + uint64_t j; + uint64_t str_j = 0; + uint64_t index1; + plist_data_t data = plist_new_plist_data(); + const char *index1_ptr = NULL; + + data->type = PLIST_ARRAY; + data->length = size; + + plist_t node = node_create(NULL, data); + + for (j = 0; j < data->length; j++) { + str_j = j * bplist->ref_size; + index1_ptr = (*bnode) + str_j; + + if (index1_ptr < bplist->data || index1_ptr + bplist->ref_size > bplist->offset_table) { + plist_free(node); + PLIST_BIN_ERR("%s: array item %" PRIu64 " is outside of valid range\n", __func__, j); + return NULL; + } + + index1 = UINT_TO_HOST(index1_ptr, bplist->ref_size); + + if (index1 >= bplist->num_objects) { + plist_free(node); + PLIST_BIN_ERR("%s: array item %" PRIu64 " object index (%" PRIu64 ") must be smaller than the number of objects (%" PRIu64 ")\n", __func__, j, index1, bplist->num_objects); + return NULL; + } + + /* process value node */ + plist_t val = parse_bin_node_at_index(bplist, index1); + if (!val) { + plist_free(node); + return NULL; + } + + node_attach(node, val); + } + + return node; +} + +static plist_t parse_uid_node(const char **bnode, uint8_t size) +{ + plist_data_t data = plist_new_plist_data(); + size = size + 1; + data->intval = UINT_TO_HOST(*bnode, size); + if (data->intval > UINT32_MAX) { + PLIST_BIN_ERR("%s: value %" PRIu64 " too large for UID node (must be <= %u)\n", __func__, (uint64_t)data->intval, UINT32_MAX); + free(data); + return NULL; + } + + (*bnode) += size; + data->type = PLIST_UID; + data->length = sizeof(uint64_t); + + return node_create(NULL, data); +} + +static plist_t parse_bin_node(struct bplist_data *bplist, const char** object) +{ + uint16_t type = 0; + uint64_t size = 0; + uint64_t pobject = 0; + uint64_t poffset_table = (uint64_t)(uintptr_t)bplist->offset_table; + + if (!object) + return NULL; + + type = (**object) & BPLIST_MASK; + size = (**object) & BPLIST_FILL; + (*object)++; + + if (size == BPLIST_FILL) { + switch (type) { + case BPLIST_DATA: + case BPLIST_STRING: + case BPLIST_UNICODE: + case BPLIST_ARRAY: + case BPLIST_SET: + case BPLIST_DICT: + { + uint16_t next_size = **object & BPLIST_FILL; + if ((**object & BPLIST_MASK) != BPLIST_UINT) { + PLIST_BIN_ERR("%s: invalid size node type for node type 0x%02x: found 0x%02x, expected 0x%02x\n", __func__, type, **object & BPLIST_MASK, BPLIST_UINT); + return NULL; + } + (*object)++; + next_size = 1 << next_size; + if (*object + next_size > bplist->offset_table) { + PLIST_BIN_ERR("%s: size node data bytes for node type 0x%02x point outside of valid range\n", __func__, type); + return NULL; + } + size = UINT_TO_HOST(*object, next_size); + (*object) += next_size; + break; + } + default: + break; + } + } + + pobject = (uint64_t)(uintptr_t)*object; + + switch (type) + { + + case BPLIST_NULL: + switch (size) + { + + case BPLIST_TRUE: + { + plist_data_t data = plist_new_plist_data(); + data->type = PLIST_BOOLEAN; + data->boolval = TRUE; + data->length = 1; + return node_create(NULL, data); + } + + case BPLIST_FALSE: + { + plist_data_t data = plist_new_plist_data(); + data->type = PLIST_BOOLEAN; + data->boolval = FALSE; + data->length = 1; + return node_create(NULL, data); + } + + case BPLIST_NULL: + default: + return NULL; + } + + case BPLIST_UINT: + if (pobject + (uint64_t)(1 << size) > poffset_table) { + PLIST_BIN_ERR("%s: BPLIST_UINT data bytes point outside of valid range\n", __func__); + return NULL; + } + return parse_uint_node(object, size); + + case BPLIST_REAL: + if (pobject + (uint64_t)(1 << size) > poffset_table) { + PLIST_BIN_ERR("%s: BPLIST_REAL data bytes point outside of valid range\n", __func__); + return NULL; + } + return parse_real_node(object, size); + + case BPLIST_DATE: + if (3 != size) { + PLIST_BIN_ERR("%s: invalid data size for BPLIST_DATE node\n", __func__); + return NULL; + } + if (pobject + (uint64_t)(1 << size) > poffset_table) { + PLIST_BIN_ERR("%s: BPLIST_DATE data bytes point outside of valid range\n", __func__); + return NULL; + } + return parse_date_node(object, size); + + case BPLIST_DATA: + if (pobject + size < pobject || pobject + size > poffset_table) { + PLIST_BIN_ERR("%s: BPLIST_DATA data bytes point outside of valid range\n", __func__); + return NULL; + } + return parse_data_node(object, size); + + case BPLIST_STRING: + if (pobject + size < pobject || pobject + size > poffset_table) { + PLIST_BIN_ERR("%s: BPLIST_STRING data bytes point outside of valid range\n", __func__); + return NULL; + } + return parse_string_node(object, size); + + case BPLIST_UNICODE: + if (size*2 < size) { + PLIST_BIN_ERR("%s: Integer overflow when calculating BPLIST_UNICODE data size.\n", __func__); + return NULL; + } + if (pobject + size*2 < pobject || pobject + size*2 > poffset_table) { + PLIST_BIN_ERR("%s: BPLIST_UNICODE data bytes point outside of valid range\n", __func__); + return NULL; + } + return parse_unicode_node(object, size); + + case BPLIST_SET: + case BPLIST_ARRAY: + if (pobject + size < pobject || pobject + size > poffset_table) { + PLIST_BIN_ERR("%s: BPLIST_ARRAY data bytes point outside of valid range\n", __func__); + return NULL; + } + return parse_array_node(bplist, object, size); + + case BPLIST_UID: + if (pobject + size+1 > poffset_table) { + PLIST_BIN_ERR("%s: BPLIST_UID data bytes point outside of valid range\n", __func__); + return NULL; + } + return parse_uid_node(object, size); + + case BPLIST_DICT: + if (pobject + size < pobject || pobject + size > poffset_table) { + PLIST_BIN_ERR("%s: BPLIST_DICT data bytes point outside of valid range\n", __func__); + return NULL; + } + return parse_dict_node(bplist, object, size); + + default: + PLIST_BIN_ERR("%s: unexpected node type 0x%02x\n", __func__, type); + return NULL; + } + return NULL; +} + +static plist_t parse_bin_node_at_index(struct bplist_data *bplist, uint32_t node_index) +{ + int i = 0; + const char* ptr = NULL; + plist_t plist = NULL; + const char* idx_ptr = NULL; + + if (node_index >= bplist->num_objects) { + PLIST_BIN_ERR("node index (%u) must be smaller than the number of objects (%" PRIu64 ")\n", node_index, bplist->num_objects); + return NULL; + } + + idx_ptr = bplist->offset_table + node_index * bplist->offset_size; + if (idx_ptr < bplist->offset_table || + idx_ptr >= bplist->offset_table + bplist->num_objects * bplist->offset_size) { + PLIST_BIN_ERR("node index %u points outside of valid range\n", node_index); + return NULL; + } + + ptr = bplist->data + UINT_TO_HOST(idx_ptr, bplist->offset_size); + /* make sure the node offset is in a sane range */ + if ((ptr < bplist->data) || (ptr >= bplist->offset_table)) { + PLIST_BIN_ERR("offset for node index %u points outside of valid range\n", node_index); + return NULL; + } + + /* store node_index for current recursion level */ + if (plist_array_get_size(bplist->used_indexes) < bplist->level+1) { + while (plist_array_get_size(bplist->used_indexes) < bplist->level+1) { + plist_array_append_item(bplist->used_indexes, plist_new_uint(node_index)); + } + } else { + plist_array_set_item(bplist->used_indexes, plist_new_uint(node_index), bplist->level); + } + + /* recursion check */ + if (bplist->level > 0) { + for (i = bplist->level-1; i >= 0; i--) { + plist_t node_i = plist_array_get_item(bplist->used_indexes, i); + plist_t node_level = plist_array_get_item(bplist->used_indexes, bplist->level); + if (plist_compare_node_value(node_i, node_level)) { + PLIST_BIN_ERR("recursion detected in binary plist\n"); + return NULL; + } + } + } + + /* finally parse node */ + bplist->level++; + plist = parse_bin_node(bplist, &ptr); + bplist->level--; + return plist; +} + +PLIST_API void plist_from_bin(const char *plist_bin, uint32_t length, plist_t * plist) +{ + bplist_trailer_t *trailer = NULL; + uint8_t offset_size = 0; + uint8_t ref_size = 0; + uint64_t num_objects = 0; + uint64_t root_object = 0; + const char *offset_table = NULL; + uint64_t offset_table_size = 0; + const char *start_data = NULL; + const char *end_data = NULL; + + //first check we have enough data + if (!(length >= BPLIST_MAGIC_SIZE + BPLIST_VERSION_SIZE + sizeof(bplist_trailer_t))) { + PLIST_BIN_ERR("plist data is to small to hold a binary plist\n"); + return; + } + //check that plist_bin in actually a plist + if (memcmp(plist_bin, BPLIST_MAGIC, BPLIST_MAGIC_SIZE) != 0) { + PLIST_BIN_ERR("bplist magic mismatch\n"); + return; + } + //check for known version + if (memcmp(plist_bin + BPLIST_MAGIC_SIZE, BPLIST_VERSION, BPLIST_VERSION_SIZE) != 0) { + PLIST_BIN_ERR("unsupported binary plist version '%.2s\n", plist_bin+BPLIST_MAGIC_SIZE); + return; + } + + start_data = plist_bin + BPLIST_MAGIC_SIZE + BPLIST_VERSION_SIZE; + end_data = plist_bin + length - sizeof(bplist_trailer_t); + + //now parse trailer + trailer = (bplist_trailer_t*)end_data; + + offset_size = trailer->offset_size; + ref_size = trailer->ref_size; + num_objects = be64toh(trailer->num_objects); + root_object = be64toh(trailer->root_object_index); + offset_table = (char *)(plist_bin + be64toh(trailer->offset_table_offset)); + + if (num_objects == 0) { + PLIST_BIN_ERR("number of objects must be larger than 0\n"); + return; + } + + if (offset_size == 0) { + PLIST_BIN_ERR("offset size in trailer must be larger than 0\n"); + return; + } + + if (ref_size == 0) { + PLIST_BIN_ERR("object reference size in trailer must be larger than 0\n"); + return; + } + + if (root_object >= num_objects) { + PLIST_BIN_ERR("root object index (%" PRIu64 ") must be smaller than number of objects (%" PRIu64 ")\n", root_object, num_objects); + return; + } + + if (offset_table < start_data || offset_table >= end_data) { + PLIST_BIN_ERR("offset table offset points outside of valid range\n"); + return; + } + + if (uint64_mul_overflow(num_objects, offset_size, &offset_table_size)) { + PLIST_BIN_ERR("integer overflow when calculating offset table size\n"); + return; + } + + if ((offset_table + offset_table_size < offset_table) || (offset_table + offset_table_size > end_data)) { + PLIST_BIN_ERR("offset table points outside of valid range\n"); + return; + } + + struct bplist_data bplist; + bplist.data = plist_bin; + bplist.size = length; + bplist.num_objects = num_objects; + bplist.ref_size = ref_size; + bplist.offset_size = offset_size; + bplist.offset_table = offset_table; + bplist.level = 0; + bplist.used_indexes = plist_new_array(); + + if (!bplist.used_indexes) { + PLIST_BIN_ERR("failed to create array to hold used node indexes. Out of memory?\n"); + return; + } + + *plist = parse_bin_node_at_index(&bplist, root_object); + + plist_free(bplist.used_indexes); +} + +static unsigned int plist_data_hash(const void* key) +{ + plist_data_t data = plist_get_data((plist_t) key); + + unsigned int hash = data->type; + unsigned int i = 0; + + char *buff = NULL; + unsigned int size = 0; + + switch (data->type) + { + case PLIST_BOOLEAN: + case PLIST_UINT: + case PLIST_REAL: + case PLIST_DATE: + case PLIST_UID: + buff = (char *) &data->intval; //works also for real as we use an union + size = 8; + break; + case PLIST_KEY: + case PLIST_STRING: + buff = data->strval; + size = data->length; + break; + case PLIST_DATA: + case PLIST_ARRAY: + case PLIST_DICT: + //for these types only hash pointer + buff = (char *) &key; + size = sizeof(const void*); + break; + default: + break; + } + + // now perform hash using djb2 hashing algorithm + // see: http://www.cse.yorku.ca/~oz/hash.html + hash += 5381; + for (i = 0; i < size; buff++, i++) { + hash = ((hash << 5) + hash) + *buff; + } + + return hash; +} + +struct serialize_s +{ + ptrarray_t* objects; + hashtable_t* ref_table; +}; + +static void serialize_plist(node_t* node, void* data) +{ + uint64_t *index_val = NULL; + struct serialize_s *ser = (struct serialize_s *) data; + uint64_t current_index = ser->objects->len; + + //first check that node is not yet in objects + void* val = hash_table_lookup(ser->ref_table, node); + if (val) + { + //data is already in table + return; + } + //insert new ref + index_val = (uint64_t *) malloc(sizeof(uint64_t)); + assert(index_val != NULL); + *index_val = current_index; + hash_table_insert(ser->ref_table, node, index_val); + + //now append current node to object array + ptr_array_add(ser->objects, node); + + //now recurse on children + node_t *ch; + for (ch = node_first_child(node); ch; ch = node_next_sibling(ch)) { + serialize_plist(ch, data); + } + + return; +} + +#define Log2(x) (x == 8 ? 3 : (x == 4 ? 2 : (x == 2 ? 1 : 0))) + +static void write_int(bytearray_t * bplist, uint64_t val) +{ + int size = get_needed_bytes(val); + uint8_t sz; + //do not write 3bytes int node + if (size == 3) + size++; + sz = BPLIST_UINT | Log2(size); + + val = be64toh(val); + byte_array_append(bplist, &sz, 1); + byte_array_append(bplist, (uint8_t*)&val + (8-size), size); +} + +static void write_uint(bytearray_t * bplist, uint64_t val) +{ + uint8_t sz = BPLIST_UINT | 4; + uint64_t zero = 0; + + val = be64toh(val); + byte_array_append(bplist, &sz, 1); + byte_array_append(bplist, &zero, sizeof(uint64_t)); + byte_array_append(bplist, &val, sizeof(uint64_t)); +} + +static void write_real(bytearray_t * bplist, double val) +{ + int size = get_real_bytes(val); //cheat to know used space + uint8_t buff[16]; + buff[7] = BPLIST_REAL | Log2(size); + if (size == sizeof(float)) { + float floatval = (float)val; + *(uint32_t*)(buff+8) = float_bswap32(*(uint32_t*)&floatval); + } else { + *(uint64_t*)(buff+8) = float_bswap64(*(uint64_t*)&val); + } + byte_array_append(bplist, buff+7, size+1); +} + +static void write_date(bytearray_t * bplist, double val) +{ + uint8_t buff[16]; + buff[7] = BPLIST_DATE | 3; + *(uint64_t*)(buff+8) = float_bswap64(*(uint64_t*)&val); + byte_array_append(bplist, buff+7, 9); +} + +static void write_raw_data(bytearray_t * bplist, uint8_t mark, uint8_t * val, uint64_t size) +{ + uint8_t marker = mark | (size < 15 ? size : 0xf); + byte_array_append(bplist, &marker, sizeof(uint8_t)); + if (size >= 15) { + write_int(bplist, size); + } + if (BPLIST_UNICODE==mark) size <<= 1; + byte_array_append(bplist, val, size); +} + +static void write_data(bytearray_t * bplist, uint8_t * val, uint64_t size) +{ + write_raw_data(bplist, BPLIST_DATA, val, size); +} + +static void write_string(bytearray_t * bplist, char *val, uint64_t size) +{ + write_raw_data(bplist, BPLIST_STRING, (uint8_t *) val, size); +} + +static uint16_t *plist_utf8_to_utf16be(char *unistr, long size, long *items_read, long *items_written) +{ + uint16_t *outbuf; + int p = 0; + long i = 0; + + unsigned char c0; + unsigned char c1; + unsigned char c2; + unsigned char c3; + + uint32_t w; + + outbuf = (uint16_t*)malloc(((size*2)+1)*sizeof(uint16_t)); + if (!outbuf) { + PLIST_BIN_ERR("%s: Could not allocate %" PRIu64 " bytes\n", __func__, (uint64_t)((size*2)+1)*sizeof(uint16_t)); + return NULL; + } + + while (i < size) { + c0 = unistr[i]; + c1 = (i < size-1) ? unistr[i+1] : 0; + c2 = (i < size-2) ? unistr[i+2] : 0; + c3 = (i < size-3) ? unistr[i+3] : 0; + if ((c0 >= 0xF0) && (i < size-3) && (c1 >= 0x80) && (c2 >= 0x80) && (c3 >= 0x80)) { + // 4 byte sequence. Need to generate UTF-16 surrogate pair + w = ((((c0 & 7) << 18) + ((c1 & 0x3F) << 12) + ((c2 & 0x3F) << 6) + (c3 & 0x3F)) & 0x1FFFFF) - 0x010000; + outbuf[p++] = be16toh(0xD800 + (w >> 10)); + outbuf[p++] = be16toh(0xDC00 + (w & 0x3FF)); + i+=4; + } else if ((c0 >= 0xE0) && (i < size-2) && (c1 >= 0x80) && (c2 >= 0x80)) { + // 3 byte sequence + outbuf[p++] = be16toh(((c2 & 0x3F) + ((c1 & 3) << 6)) + (((c1 >> 2) & 15) << 8) + ((c0 & 15) << 12)); + i+=3; + } else if ((c0 >= 0xC0) && (i < size-1) && (c1 >= 0x80)) { + // 2 byte sequence + outbuf[p++] = be16toh(((c1 & 0x3F) + ((c0 & 3) << 6)) + (((c0 >> 2) & 7) << 8)); + i+=2; + } else if (c0 < 0x80) { + // 1 byte sequence + outbuf[p++] = be16toh(c0); + i+=1; + } else { + // invalid character + PLIST_BIN_ERR("%s: invalid utf8 sequence in string at index %lu\n", __func__, i); + break; + } + } + if (items_read) { + *items_read = i; + } + if (items_written) { + *items_written = p; + } + outbuf[p] = 0; + + return outbuf; +} + +static void write_unicode(bytearray_t * bplist, char *val, uint64_t size) +{ + long items_read = 0; + long items_written = 0; + uint16_t *unicodestr = NULL; + + unicodestr = plist_utf8_to_utf16be(val, size, &items_read, &items_written); + write_raw_data(bplist, BPLIST_UNICODE, (uint8_t*)unicodestr, items_written); + free(unicodestr); +} + +static void write_array(bytearray_t * bplist, node_t* node, hashtable_t* ref_table, uint8_t ref_size) +{ + node_t* cur = NULL; + uint64_t i = 0; + + uint64_t size = node_n_children(node); + uint8_t marker = BPLIST_ARRAY | (size < 15 ? size : 0xf); + byte_array_append(bplist, &marker, sizeof(uint8_t)); + if (size >= 15) { + write_int(bplist, size); + } + + for (i = 0, cur = node_first_child(node); cur && i < size; cur = node_next_sibling(cur), i++) { + uint64_t idx = *(uint64_t *) (hash_table_lookup(ref_table, cur)); + idx = be64toh(idx); + byte_array_append(bplist, (uint8_t*)&idx + (sizeof(uint64_t) - ref_size), ref_size); + } +} + +static void write_dict(bytearray_t * bplist, node_t* node, hashtable_t* ref_table, uint8_t ref_size) +{ + node_t* cur = NULL; + uint64_t i = 0; + + uint64_t size = node_n_children(node) / 2; + uint8_t marker = BPLIST_DICT | (size < 15 ? size : 0xf); + byte_array_append(bplist, &marker, sizeof(uint8_t)); + if (size >= 15) { + write_int(bplist, size); + } + + for (i = 0, cur = node_first_child(node); cur && i < size; cur = node_next_sibling(node_next_sibling(cur)), i++) { + uint64_t idx1 = *(uint64_t *) (hash_table_lookup(ref_table, cur)); + idx1 = be64toh(idx1); + byte_array_append(bplist, (uint8_t*)&idx1 + (sizeof(uint64_t) - ref_size), ref_size); + } + + for (i = 0, cur = node_first_child(node); cur && i < size; cur = node_next_sibling(node_next_sibling(cur)), i++) { + uint64_t idx2 = *(uint64_t *) (hash_table_lookup(ref_table, cur->next)); + idx2 = be64toh(idx2); + byte_array_append(bplist, (uint8_t*)&idx2 + (sizeof(uint64_t) - ref_size), ref_size); + } +} + +static void write_uid(bytearray_t * bplist, uint64_t val) +{ + val = (uint32_t)val; + int size = get_needed_bytes(val); + uint8_t sz; + //do not write 3bytes int node + if (size == 3) + size++; + sz = BPLIST_UID | (size-1); // yes, this is what Apple does... + + val = be64toh(val); + byte_array_append(bplist, &sz, 1); + byte_array_append(bplist, (uint8_t*)&val + (8-size), size); +} + +static int is_ascii_string(char* s, int len) +{ + int ret = 1, i = 0; + for(i = 0; i < len; i++) + { + if ( !isascii( s[i] ) ) + { + ret = 0; + break; + } + } + return ret; +} + +PLIST_API void plist_to_bin(plist_t plist, char **plist_bin, uint32_t * length) +{ + ptrarray_t* objects = NULL; + hashtable_t* ref_table = NULL; + struct serialize_s ser_s; + uint8_t offset_size = 0; + uint8_t ref_size = 0; + uint64_t num_objects = 0; + uint64_t root_object = 0; + uint64_t offset_table_index = 0; + bytearray_t *bplist_buff = NULL; + uint64_t i = 0; + uint8_t *buff = NULL; + uint64_t *offsets = NULL; + bplist_trailer_t trailer; + uint64_t objects_len = 0; + uint64_t buff_len = 0; + + //check for valid input + if (!plist || !plist_bin || *plist_bin || !length) + return; + + //list of objects + objects = ptr_array_new(4096); + //hashtable to write only once same nodes + ref_table = hash_table_new(plist_data_hash, plist_data_compare, free); + + //serialize plist + ser_s.objects = objects; + ser_s.ref_table = ref_table; + serialize_plist(plist, &ser_s); + + //now stream to output buffer + offset_size = 0; //unknown yet + objects_len = objects->len; + ref_size = get_needed_bytes(objects_len); + num_objects = objects->len; + root_object = 0; //root is first in list + offset_table_index = 0; //unknown yet + + //figure out the storage size required + size_t req = 0; + for (i = 0; i < num_objects; i++) + { + node_t* node = ptr_array_index(objects, i); + plist_data_t data = plist_get_data(node); + uint64_t size; + uint8_t bsize; + switch (data->type) + { + case PLIST_BOOLEAN: + req += 1; + break; + case PLIST_KEY: + case PLIST_STRING: + req += 1; + if (data->length >= 15) { + bsize = get_needed_bytes(data->length); + if (bsize == 3) bsize = 4; + req += 1; + req += bsize; + } + if ( is_ascii_string(data->strval, data->length) ) + { + req += data->length; + } + else + { + req += data->length * 2; + } + break; + case PLIST_REAL: + size = get_real_bytes(data->realval); + req += 1; + req += size; + break; + case PLIST_DATE: + req += 9; + break; + case PLIST_ARRAY: + size = node_n_children(node); + req += 1; + if (size >= 15) { + bsize = get_needed_bytes(size); + if (bsize == 3) bsize = 4; + req += 1; + req += bsize; + } + req += size * ref_size; + break; + case PLIST_DICT: + size = node_n_children(node) / 2; + req += 1; + if (size >= 15) { + bsize = get_needed_bytes(size); + if (bsize == 3) bsize = 4; + req += 1; + req += bsize; + } + req += size * 2 * ref_size; + break; + default: + size = data->length; + req += 1; + if (size >= 15) { + bsize = get_needed_bytes(size); + if (bsize == 3) bsize = 4; + req += 1; + req += bsize; + } + req += data->length; + break; + } + } + // add size of magic + req += BPLIST_MAGIC_SIZE; + req += BPLIST_VERSION_SIZE; + // add size of offset table + req += get_needed_bytes(req) * num_objects; + // add size of trailer + req += sizeof(bplist_trailer_t); + + //setup a dynamic bytes array to store bplist in + bplist_buff = byte_array_new(req); + + //set magic number and version + byte_array_append(bplist_buff, BPLIST_MAGIC, BPLIST_MAGIC_SIZE); + byte_array_append(bplist_buff, BPLIST_VERSION, BPLIST_VERSION_SIZE); + + //write objects and table + offsets = (uint64_t *) malloc(num_objects * sizeof(uint64_t)); + assert(offsets != NULL); + for (i = 0; i < num_objects; i++) + { + + plist_data_t data = plist_get_data(ptr_array_index(objects, i)); + offsets[i] = bplist_buff->len; + + switch (data->type) + { + case PLIST_BOOLEAN: + buff = (uint8_t *) malloc(sizeof(uint8_t)); + buff[0] = data->boolval ? BPLIST_TRUE : BPLIST_FALSE; + byte_array_append(bplist_buff, buff, sizeof(uint8_t)); + free(buff); + break; + + case PLIST_UINT: + if (data->length == 16) { + write_uint(bplist_buff, data->intval); + } else { + write_int(bplist_buff, data->intval); + } + break; + + case PLIST_REAL: + write_real(bplist_buff, data->realval); + break; + + case PLIST_KEY: + case PLIST_STRING: + if ( is_ascii_string(data->strval, data->length) ) + { + write_string(bplist_buff, data->strval, data->length); + } + else + { + write_unicode(bplist_buff, data->strval, data->length); + } + break; + case PLIST_DATA: + write_data(bplist_buff, data->buff, data->length); + break; + case PLIST_ARRAY: + write_array(bplist_buff, ptr_array_index(objects, i), ref_table, ref_size); + break; + case PLIST_DICT: + write_dict(bplist_buff, ptr_array_index(objects, i), ref_table, ref_size); + break; + case PLIST_DATE: + write_date(bplist_buff, data->realval); + break; + case PLIST_UID: + write_uid(bplist_buff, data->intval); + break; + default: + break; + } + } + + //free intermediate objects + ptr_array_free(objects); + hash_table_destroy(ref_table); + + //write offsets + buff_len = bplist_buff->len; + offset_size = get_needed_bytes(buff_len); + offset_table_index = bplist_buff->len; + for (i = 0; i < num_objects; i++) { + uint64_t offset = be64toh(offsets[i]); + byte_array_append(bplist_buff, (uint8_t*)&offset + (sizeof(uint64_t) - offset_size), offset_size); + } + free(offsets); + + //setup trailer + memset(trailer.unused, '\0', sizeof(trailer.unused)); + trailer.offset_size = offset_size; + trailer.ref_size = ref_size; + trailer.num_objects = be64toh(num_objects); + trailer.root_object_index = be64toh(root_object); + trailer.offset_table_offset = be64toh(offset_table_index); + + byte_array_append(bplist_buff, &trailer, sizeof(bplist_trailer_t)); + + //set output buffer and size + *plist_bin = bplist_buff->data; + *length = bplist_buff->len; + + bplist_buff->data = NULL; // make sure we don't free the output buffer + byte_array_free(bplist_buff); +} diff --git a/lib/plist/bytearray.c b/lib/plist/bytearray.c new file mode 100755 index 0000000..7d0549b --- /dev/null +++ b/lib/plist/bytearray.c @@ -0,0 +1,61 @@ +/* + * bytearray.c + * simple byte array implementation + * + * Copyright (c) 2011 Nikias Bassen, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include +#include "bytearray.h" + +#define PAGE_SIZE 4096 + +bytearray_t *byte_array_new(size_t initial) +{ + bytearray_t *a = (bytearray_t*)malloc(sizeof(bytearray_t)); + a->capacity = (initial > PAGE_SIZE) ? (initial+(PAGE_SIZE-1)) & (~(PAGE_SIZE-1)) : PAGE_SIZE; + a->data = malloc(a->capacity); + a->len = 0; + return a; +} + +void byte_array_free(bytearray_t *ba) +{ + if (!ba) return; + if (ba->data) { + free(ba->data); + } + free(ba); +} + +void byte_array_grow(bytearray_t *ba, size_t amount) +{ + size_t increase = (amount > PAGE_SIZE) ? (amount+(PAGE_SIZE-1)) & (~(PAGE_SIZE-1)) : PAGE_SIZE; + ba->data = realloc(ba->data, ba->capacity + increase); + ba->capacity += increase; +} + +void byte_array_append(bytearray_t *ba, void *buf, size_t len) +{ + if (!ba || !ba->data || (len <= 0)) return; + size_t remaining = ba->capacity-ba->len; + if (len > remaining) { + size_t needed = len - remaining; + byte_array_grow(ba, needed); + } + memcpy(((char*)ba->data) + ba->len, buf, len); + ba->len += len; +} diff --git a/lib/plist/bytearray.h b/lib/plist/bytearray.h new file mode 100755 index 0000000..312e2aa --- /dev/null +++ b/lib/plist/bytearray.h @@ -0,0 +1,36 @@ +/* + * bytearray.h + * header file for simple byte array implementation + * + * Copyright (c) 2011 Nikias Bassen, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef BYTEARRAY_H +#define BYTEARRAY_H +#include + +typedef struct bytearray_t { + void *data; + size_t len; + size_t capacity; +} bytearray_t; + +bytearray_t *byte_array_new(size_t initial); +void byte_array_free(bytearray_t *ba); +void byte_array_grow(bytearray_t *ba, size_t amount); +void byte_array_append(bytearray_t *ba, void *buf, size_t len); + +#endif diff --git a/lib/plist/cnary.c b/lib/plist/cnary.c new file mode 100755 index 0000000..07321fc --- /dev/null +++ b/lib/plist/cnary.c @@ -0,0 +1,46 @@ +/* + * cnary.c + * + * Created on: Mar 9, 2011 + * Author: posixninja + * + * Copyright (c) 2011 Joshua Hill. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#include "node.h" + +int main(int argc, char* argv[]) { + puts("Creating root node"); + node_t* root = node_create(NULL, NULL); + + puts("Creating child 1 node"); + node_t* one = node_create(root, NULL); + puts("Creating child 2 node"); + node_t* two = node_create(root, NULL); + + puts("Creating child 3 node"); + node_t* three = node_create(one, NULL); + + puts("Debugging root node"); + node_debug(root); + + puts("Destroying root node"); + node_destroy(root); + return 0; +} diff --git a/lib/plist/hashtable.c b/lib/plist/hashtable.c new file mode 100755 index 0000000..dd6dbfc --- /dev/null +++ b/lib/plist/hashtable.c @@ -0,0 +1,140 @@ +/* + * hashtable.c + * really simple hash table implementation + * + * Copyright (c) 2011-2016 Nikias Bassen, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "hashtable.h" + +hashtable_t* hash_table_new(hash_func_t hash_func, compare_func_t compare_func, free_func_t free_func) +{ + hashtable_t* ht = (hashtable_t*)malloc(sizeof(hashtable_t)); + int i; + for (i = 0; i < 4096; i++) { + ht->entries[i] = NULL; + } + ht->count = 0; + ht->hash_func = hash_func; + ht->compare_func = compare_func; + ht->free_func = free_func; + return ht; +} + +void hash_table_destroy(hashtable_t *ht) +{ + if (!ht) return; + + int i = 0; + for (i = 0; i < 4096; i++) { + if (ht->entries[i]) { + hashentry_t* e = ht->entries[i]; + while (e) { + if (ht->free_func) { + ht->free_func(e->value); + } + hashentry_t* old = e; + e = e->next; + free(old); + } + } + } + free(ht); +} + +void hash_table_insert(hashtable_t* ht, void *key, void *value) +{ + if (!ht || !key) return; + + unsigned int hash = ht->hash_func(key); + + int idx0 = hash & 0xFFF; + + // get the idx0 list + hashentry_t* e = ht->entries[idx0]; + while (e) { + if (ht->compare_func(e->key, key)) { + // element already present. replace value. + e->value = value; + return; + } + e = e->next; + } + + // if we get here, the element is not yet in the list. + + // make a new entry. + hashentry_t* entry = (hashentry_t*)malloc(sizeof(hashentry_t)); + entry->key = key; + entry->value = value; + if (!ht->entries[idx0]) { + // first entry + entry->next = NULL; + } else { + // add to list + entry->next = ht->entries[idx0]; + } + ht->entries[idx0] = entry; + ht->count++; +} + +void* hash_table_lookup(hashtable_t* ht, void *key) +{ + if (!ht || !key) return NULL; + unsigned int hash = ht->hash_func(key); + + int idx0 = hash & 0xFFF; + + hashentry_t* e = ht->entries[idx0]; + while (e) { + if (ht->compare_func(e->key, key)) { + return e->value; + } + e = e->next; + } + return NULL; +} + +void hash_table_remove(hashtable_t* ht, void *key) +{ + if (!ht || !key) return; + + unsigned int hash = ht->hash_func(key); + + int idx0 = hash & 0xFFF; + + // get the idx0 list + hashentry_t* e = ht->entries[idx0]; + hashentry_t* last = e; + while (e) { + if (ht->compare_func(e->key, key)) { + // found element, remove it from the list + hashentry_t* old = e; + if (e == ht->entries[idx0]) { + ht->entries[idx0] = e->next; + } else { + last->next = e->next; + } + if (ht->free_func) { + ht->free_func(old->value); + } + free(old); + return; + } + last = e; + e = e->next; + } +} diff --git a/lib/plist/hashtable.h b/lib/plist/hashtable.h new file mode 100755 index 0000000..42d7b93 --- /dev/null +++ b/lib/plist/hashtable.h @@ -0,0 +1,50 @@ +/* + * hashtable.h + * header file for really simple hash table implementation + * + * Copyright (c) 2011-2016 Nikias Bassen, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef HASHTABLE_H +#define HASHTABLE_H +#include + +typedef struct hashentry_t { + void *key; + void *value; + void *next; +} hashentry_t; + +typedef unsigned int(*hash_func_t)(const void* key); +typedef int (*compare_func_t)(const void *a, const void *b); +typedef void (*free_func_t)(void *ptr); + +typedef struct hashtable_t { + hashentry_t *entries[4096]; + size_t count; + hash_func_t hash_func; + compare_func_t compare_func; + free_func_t free_func; +} hashtable_t; + +hashtable_t* hash_table_new(hash_func_t hash_func, compare_func_t compare_func, free_func_t free_func); +void hash_table_destroy(hashtable_t *ht); + +void hash_table_insert(hashtable_t* ht, void *key, void *value); +void* hash_table_lookup(hashtable_t* ht, void *key); +void hash_table_remove(hashtable_t* ht, void *key); + +#endif diff --git a/lib/plist/list.c b/lib/plist/list.c new file mode 100755 index 0000000..2f05347 --- /dev/null +++ b/lib/plist/list.c @@ -0,0 +1,47 @@ +/* + * list.c + * + * Created on: Mar 8, 2011 + * Author: posixninja + * + * Copyright (c) 2011 Joshua Hill. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#include "list.h" + +void list_init(list_t* list) { + list->next = NULL; + list->prev = list; +} + + +void list_destroy(list_t* list) { + if(list) { + free(list); + } +} + +int list_add(list_t* list, object_t* object) { + return -1; +} + +int list_remove(list_t* list, object_t* object) { + return -1; +} diff --git a/lib/plist/list.h b/lib/plist/list.h new file mode 100755 index 0000000..6b18e6f --- /dev/null +++ b/lib/plist/list.h @@ -0,0 +1,40 @@ +/* + * list.h + * + * Created on: Mar 8, 2011 + * Author: posixninja + * + * Copyright (c) 2011 Joshua Hill. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef LIST_H_ +#define LIST_H_ + +#include "object.h" + +typedef struct list_t { + void* next; + void* prev; +} list_t; + +void list_init(struct list_t* list); +void list_destroy(struct list_t* list); + +int list_add(struct list_t* list, struct object_t* object); +int list_remove(struct list_t* list, struct object_t* object); + +#endif /* LIST_H_ */ diff --git a/lib/plist/node.c b/lib/plist/node.c new file mode 100755 index 0000000..c24ca7a --- /dev/null +++ b/lib/plist/node.c @@ -0,0 +1,216 @@ +/* + * node.c + * + * Created on: Mar 7, 2011 + * Author: posixninja + * + * Copyright (c) 2011 Joshua Hill. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include +#include +#include + +#include "node.h" +#include "node_list.h" + +void node_destroy(node_t* node) { + if(!node) return; + + if (node->children && node->children->count > 0) { + node_t* ch; + while ((ch = node->children->begin)) { + node_list_remove(node->children, ch); + node_destroy(ch); + } + } + node_list_destroy(node->children); + node->children = NULL; + + free(node); +} + +node_t* node_create(node_t* parent, void* data) { + int error = 0; + + node_t* node = (node_t*) malloc(sizeof(node_t)); + if(node == NULL) { + return NULL; + } + memset(node, '\0', sizeof(node_t)); + + node->data = data; + node->next = NULL; + node->prev = NULL; + node->count = 0; + node->parent = NULL; + node->children = NULL; + + // Pass NULL to create a root node + if(parent != NULL) { + // This is a child node so attach it to it's parent + error = node_attach(parent, node); + if(error < 0) { + // Unable to attach nodes + printf("ERROR: %d \"Unable to attach nodes\"\n", error); + node_destroy(node); + return NULL; + } + } + + return node; +} + +int node_attach(node_t* parent, node_t* child) { + if (!parent || !child) return -1; + child->parent = parent; + if(!parent->children) { + parent->children = node_list_create(); + } + int res = node_list_add(parent->children, child); + if (res == 0) { + parent->count++; + } + return res; +} + +int node_detach(node_t* parent, node_t* child) { + if (!parent || !child) return -1; + int node_index = node_list_remove(parent->children, child); + if (node_index >= 0) { + parent->count--; + } + return node_index; +} + +int node_insert(node_t* parent, unsigned int node_index, node_t* child) +{ + if (!parent || !child) return -1; + child->parent = parent; + if(!parent->children) { + parent->children = node_list_create(); + } + int res = node_list_insert(parent->children, node_index, child); + if (res == 0) { + parent->count++; + } + return res; +} + +static void _node_debug(node_t* node, unsigned int depth) { + unsigned int i = 0; + node_t* current = NULL; + for(i = 0; i < depth; i++) { + printf("\t"); + } + if(!node->parent) { + printf("ROOT\n"); + } + + if(!node->children && node->parent) { + printf("LEAF\n"); + } else { + if(node->parent) { + printf("NODE\n"); + } + for (current = node_first_child(node); current; current = node_next_sibling(current)) { + _node_debug(current, depth+1); + } + } + +} + +void node_debug(node_t* node) +{ + _node_debug(node, 0); +} + +unsigned int node_n_children(struct node_t* node) +{ + if (!node) return 0; + return node->count; +} + +node_t* node_nth_child(struct node_t* node, unsigned int n) +{ + if (!node || !node->children || !node->children->begin) return NULL; + unsigned int node_index = 0; + int found = 0; + node_t *ch; + for (ch = node_first_child(node); ch; ch = node_next_sibling(ch)) { + if (node_index++ == n) { + found = 1; + break; + } + } + if (!found) { + return NULL; + } + return ch; +} + +node_t* node_first_child(struct node_t* node) +{ + if (!node || !node->children) return NULL; + return node->children->begin; +} + +node_t* node_prev_sibling(struct node_t* node) +{ + if (!node) return NULL; + return node->prev; +} + +node_t* node_next_sibling(struct node_t* node) +{ + if (!node) return NULL; + return node->next; +} + +int node_child_position(struct node_t* parent, node_t* child) +{ + if (!parent || !parent->children || !parent->children->begin || !child) return -1; + int node_index = 0; + int found = 0; + node_t *ch; + for (ch = node_first_child(parent); ch; ch = node_next_sibling(ch)) { + if (ch == child) { + found = 1; + break; + } + node_index++; + } + if (!found) { + return -1; + } + return node_index; +} + +node_t* node_copy_deep(node_t* node, copy_func_t copy_func) +{ + if (!node) return NULL; + void *data = NULL; + if (copy_func) { + data = copy_func(node->data); + } + node_t* copy = node_create(NULL, data); + node_t* ch; + for (ch = node_first_child(node); ch; ch = node_next_sibling(ch)) { + node_t* cc = node_copy_deep(ch, copy_func); + node_attach(copy, cc); + } + return copy; +} diff --git a/lib/plist/node.h b/lib/plist/node.h new file mode 100755 index 0000000..7e9da50 --- /dev/null +++ b/lib/plist/node.h @@ -0,0 +1,65 @@ +/* + * node.h + * + * Created on: Mar 7, 2011 + * Author: posixninja + * + * Copyright (c) 2011 Joshua Hill. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef NODE_H_ +#define NODE_H_ + +#include "object.h" + +#define NODE_TYPE 1; + +struct node_list_t; + +// This class implements the abstract iterator class +typedef struct node_t { + // Super class + struct node_t* next; + struct node_t* prev; + unsigned int count; + + // Local Members + void *data; + struct node_t* parent; + struct node_list_t* children; +} node_t; + +void node_destroy(struct node_t* node); +struct node_t* node_create(struct node_t* parent, void* data); + +int node_attach(struct node_t* parent, struct node_t* child); +int node_detach(struct node_t* parent, struct node_t* child); +int node_insert(struct node_t* parent, unsigned int index, struct node_t* child); + +unsigned int node_n_children(struct node_t* node); +node_t* node_nth_child(struct node_t* node, unsigned int n); +node_t* node_first_child(struct node_t* node); +node_t* node_prev_sibling(struct node_t* node); +node_t* node_next_sibling(struct node_t* node); +int node_child_position(struct node_t* parent, node_t* child); + +typedef void* (*copy_func_t)(const void *src); +node_t* node_copy_deep(node_t* node, copy_func_t copy_func); + +void node_debug(struct node_t* node); + +#endif /* NODE_H_ */ diff --git a/lib/plist/node_list.c b/lib/plist/node_list.c new file mode 100755 index 0000000..dd143bb --- /dev/null +++ b/lib/plist/node_list.c @@ -0,0 +1,154 @@ +/* + * node_list.c + * + * Created on: Mar 8, 2011 + * Author: posixninja + * + * Copyright (c) 2011 Joshua Hill. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include + +#include "list.h" +#include "node.h" +#include "node_list.h" + +void node_list_destroy(node_list_t* list) { + if(list != NULL) { + list_destroy((list_t*) list); + } +} + +node_list_t* node_list_create() { + node_list_t* list = (node_list_t*) malloc(sizeof(node_list_t)); + if(list == NULL) { + return NULL; + } + memset(list, '\0', sizeof(node_list_t)); + + // Initialize structure + list_init((list_t*) list); + list->count = 0; + return list; +} + +int node_list_add(node_list_t* list, node_t* node) { + if (!list || !node) return -1; + + // Find the last element in the list + node_t* last = list->end; + + // Setup our new node as the new last element + node->next = NULL; + node->prev = last; + + // Set the next element of our old "last" element + if (last) { + // but only if the node list is not empty + last->next = node; + } + + // Set the lists prev to the new last element + list->end = node; + + // Increment our node count for this list + list->count++; + return 0; +} + +int node_list_insert(node_list_t* list, unsigned int node_index, node_t* node) { + if (!list || !node) return -1; + if (node_index >= list->count) { + return node_list_add(list, node); + } + + // Get the first element in the list + node_t* cur = list->begin; + + unsigned int pos = 0; + node_t* prev = NULL; + + if (node_index > 0) { + while (pos < node_index) { + prev = cur; + cur = cur->next; + pos++; + } + } + + if (prev) { + // Set previous node + node->prev = prev; + // Set next node of our new node to next node of the previous node + node->next = prev->next; + // Set next node of previous node to our new node + prev->next = node; + } else { + node->prev = NULL; + // get old first element in list + node->next = list->begin; + // set new node as first element in list + list->begin = node; + } + + if (node->next == NULL) { + // Set the lists prev to the new last element + list->end = node; + } else { + // set prev of the new next element to our node + node->next->prev = node; + } + + // Increment our node count for this list + list->count++; + return 0; +} + +int node_list_remove(node_list_t* list, node_t* node) { + if (!list || !node) return -1; + if (list->count == 0) return -1; + + int node_index = 0; + node_t* n; + for (n = list->begin; n; n = n->next) { + if (node == n) { + node_t* newnode = node->next; + if (node->prev) { + node->prev->next = newnode; + if (newnode) { + newnode->prev = node->prev; + } else { + // last element in the list + list->end = node->prev; + } + } else { + // we just removed the first element + if (newnode) { + newnode->prev = NULL; + } + list->begin = newnode; + } + list->count--; + return node_index; + } + node_index++; + } + return -1; +} + diff --git a/lib/plist/node_list.h b/lib/plist/node_list.h new file mode 100755 index 0000000..380916e --- /dev/null +++ b/lib/plist/node_list.h @@ -0,0 +1,47 @@ +/* + * node_list.h + * + * Created on: Mar 8, 2011 + * Author: posixninja + * + * Copyright (c) 2011 Joshua Hill. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef NODE_LIST_H_ +#define NODE_LIST_H_ + +struct node_t; + +// This class implements the list_t abstract class +typedef struct node_list_t { + // list_t members + struct node_t* begin; + struct node_t* end; + + // node_list_t members + unsigned int count; + +} node_list_t; + +void node_list_destroy(struct node_list_t* list); +struct node_list_t* node_list_create(); + +int node_list_add(node_list_t* list, node_t* node); +int node_list_insert(node_list_t* list, unsigned int index, node_t* node); +int node_list_remove(node_list_t* list, node_t* node); + +#endif /* NODE_LIST_H_ */ diff --git a/lib/plist/object.h b/lib/plist/object.h new file mode 100755 index 0000000..b0a8cd8 --- /dev/null +++ b/lib/plist/object.h @@ -0,0 +1,41 @@ +/* + * object.h + * + * Created on: Mar 8, 2011 + * Author: posixninja + * + * Copyright (c) 2011 Joshua Hill. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef OBJECT_H_ +#define OBJECT_H_ + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +typedef struct object_t { + void* value; + unsigned int type; + unsigned int size; +} object_t; + +#endif /* OBJECT_H_ */ diff --git a/lib/plist/plist.c b/lib/plist/plist.c new file mode 100755 index 0000000..dbeafd1 --- /dev/null +++ b/lib/plist/plist.c @@ -0,0 +1,963 @@ +/* + * plist.c + * Builds plist XML structures + * + * Copyright (c) 2009-2016 Nikias Bassen All Rights Reserved. + * Copyright (c) 2010-2015 Martin Szulecki All Rights Reserved. + * Copyright (c) 2008 Zach C. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +#include +#include +#include "plist.h" +#include +#include +#include + +#ifdef WIN32 +#include +#else +#include +#endif + +#include "node.h" +#include "hashtable.h" + +extern void plist_xml_init(void); +extern void plist_xml_deinit(void); +extern void plist_bin_init(void); +extern void plist_bin_deinit(void); + +static void internal_plist_init(void) +{ + plist_bin_init(); + plist_xml_init(); +} + +static void internal_plist_deinit(void) +{ + plist_bin_deinit(); + plist_xml_deinit(); +} + +#ifdef WIN32 + +typedef volatile struct { + LONG lock; + int state; +} thread_once_t; + +static thread_once_t init_once = {0, 0}; +static thread_once_t deinit_once = {0, 0}; + +void thread_once(thread_once_t *once_control, void (*init_routine)(void)) +{ + while (InterlockedExchange(&(once_control->lock), 1) != 0) { + Sleep(1); + } + if (!once_control->state) { + once_control->state = 1; + init_routine(); + } + InterlockedExchange(&(once_control->lock), 0); +} + +BOOL WINAPI DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpReserved) +{ + switch (dwReason) { + case DLL_PROCESS_ATTACH: + thread_once(&init_once, internal_plist_init); + break; + case DLL_PROCESS_DETACH: + thread_once(&deinit_once, internal_plist_deinit); + break; + default: + break; + } + return 1; +} + +#else + +static pthread_once_t init_once = PTHREAD_ONCE_INIT; +static pthread_once_t deinit_once = PTHREAD_ONCE_INIT; + +static void __attribute__((constructor)) libplist_initialize(void) +{ + pthread_once(&init_once, internal_plist_init); +} + +static void __attribute__((destructor)) libplist_deinitialize(void) +{ + pthread_once(&deinit_once, internal_plist_deinit); +} + +#endif + + +PLIST_API int plist_is_binary(const char *plist_data, uint32_t length) +{ + if (length < 8) { + return 0; + } + + return (memcmp(plist_data, "bplist00", 8) == 0); +} + + +PLIST_API void plist_from_memory(const char *plist_data, uint32_t length, plist_t * plist) +{ + if (length < 8) { + *plist = NULL; + return; + } + + if (plist_is_binary(plist_data, length)) { + plist_from_bin(plist_data, length, plist); + } else { + plist_from_xml(plist_data, length, plist); + } +} + +plist_t plist_new_node(plist_data_t data) +{ + return (plist_t) node_create(NULL, data); +} + +plist_data_t plist_get_data(const plist_t node) +{ + if (!node) + return NULL; + return ((node_t*)node)->data; +} + +plist_data_t plist_new_plist_data(void) +{ + plist_data_t data = (plist_data_t) calloc(sizeof(struct plist_data_s), 1); + return data; +} + +static unsigned int dict_key_hash(const void *data) +{ + plist_data_t keydata = (plist_data_t)data; + unsigned int hash = 5381; + size_t i; + char *str = keydata->strval; + for (i = 0; i < keydata->length; str++, i++) { + hash = ((hash << 5) + hash) + *str; + } + return hash; +} + +static int dict_key_compare(const void* a, const void* b) +{ + plist_data_t data_a = (plist_data_t)a; + plist_data_t data_b = (plist_data_t)b; + if (data_a->strval == NULL || data_b->strval == NULL) { + return FALSE; + } + if (data_a->length != data_b->length) { + return FALSE; + } + return (strcmp(data_a->strval, data_b->strval) == 0) ? TRUE : FALSE; +} + +void plist_free_data(plist_data_t data) +{ + if (data) + { + switch (data->type) + { + case PLIST_KEY: + case PLIST_STRING: + free(data->strval); + break; + case PLIST_DATA: + free(data->buff); + break; + case PLIST_DICT: + hash_table_destroy(data->hashtable); + break; + default: + break; + } + free(data); + } +} + +static int plist_free_node(node_t* node) +{ + plist_data_t data = NULL; + int node_index = node_detach(node->parent, node); + data = plist_get_data(node); + plist_free_data(data); + node->data = NULL; + + node_t *ch; + for (ch = node_first_child(node); ch; ) { + node_t *next = node_next_sibling(ch); + plist_free_node(ch); + ch = next; + } + + node_destroy(node); + + return node_index; +} + +PLIST_API plist_t plist_new_dict(void) +{ + plist_data_t data = plist_new_plist_data(); + data->type = PLIST_DICT; + return plist_new_node(data); +} + +PLIST_API plist_t plist_new_array(void) +{ + plist_data_t data = plist_new_plist_data(); + data->type = PLIST_ARRAY; + return plist_new_node(data); +} + +//These nodes should not be handled by users +static plist_t plist_new_key(const char *val) +{ + plist_data_t data = plist_new_plist_data(); + data->type = PLIST_KEY; + data->strval = strdup(val); + data->length = strlen(val); + return plist_new_node(data); +} + +PLIST_API plist_t plist_new_string(const char *val) +{ + plist_data_t data = plist_new_plist_data(); + data->type = PLIST_STRING; + data->strval = strdup(val); + data->length = strlen(val); + return plist_new_node(data); +} + +PLIST_API plist_t plist_new_bool(uint8_t val) +{ + plist_data_t data = plist_new_plist_data(); + data->type = PLIST_BOOLEAN; + data->boolval = val; + data->length = sizeof(uint8_t); + return plist_new_node(data); +} + +PLIST_API plist_t plist_new_uint(uint64_t val) +{ + plist_data_t data = plist_new_plist_data(); + data->type = PLIST_UINT; + data->intval = val; + data->length = sizeof(uint64_t); + return plist_new_node(data); +} + +PLIST_API plist_t plist_new_uid(uint64_t val) +{ + plist_data_t data = plist_new_plist_data(); + data->type = PLIST_UID; + data->intval = val; + data->length = sizeof(uint64_t); + return plist_new_node(data); +} + +PLIST_API plist_t plist_new_real(double val) +{ + plist_data_t data = plist_new_plist_data(); + data->type = PLIST_REAL; + data->realval = val; + data->length = sizeof(double); + return plist_new_node(data); +} + +PLIST_API plist_t plist_new_data(const char *val, uint64_t length) +{ + plist_data_t data = plist_new_plist_data(); + data->type = PLIST_DATA; + data->buff = (uint8_t *) malloc(length); + memcpy(data->buff, val, length); + data->length = length; + return plist_new_node(data); +} + +PLIST_API plist_t plist_new_date(int32_t sec, int32_t usec) +{ + plist_data_t data = plist_new_plist_data(); + data->type = PLIST_DATE; + data->realval = (double)sec + (double)usec / 1000000; + data->length = sizeof(double); + return plist_new_node(data); +} + +PLIST_API void plist_free(plist_t plist) +{ + if (plist) + { + plist_free_node(plist); + } +} + +static void plist_copy_node(node_t *node, void *parent_node_ptr) +{ + plist_type node_type = PLIST_NONE; + plist_t newnode = NULL; + plist_data_t data = plist_get_data(node); + plist_data_t newdata = plist_new_plist_data(); + + assert(data); // plist should always have data + + memcpy(newdata, data, sizeof(struct plist_data_s)); + + node_type = plist_get_node_type(node); + switch (node_type) { + case PLIST_DATA: + newdata->buff = (uint8_t *) malloc(data->length); + memcpy(newdata->buff, data->buff, data->length); + break; + case PLIST_KEY: + case PLIST_STRING: + newdata->strval = strdup((char *) data->strval); + break; + case PLIST_DICT: + if (data->hashtable) { + hashtable_t* ht = hash_table_new(dict_key_hash, dict_key_compare, NULL); + assert(ht); + plist_t current = NULL; + for (current = (plist_t)node_first_child(node); + ht && current; + current = (plist_t)node_next_sibling(node_next_sibling(current))) + { + hash_table_insert(ht, ((node_t*)current)->data, node_next_sibling(current)); + } + newdata->hashtable = ht; + } + break; + default: + break; + } + newnode = plist_new_node(newdata); + + if (*(plist_t*)parent_node_ptr) + { + node_attach(*(plist_t*)parent_node_ptr, newnode); + } + else + { + *(plist_t*)parent_node_ptr = newnode; + } + + node_t *ch; + for (ch = node_first_child(node); ch; ch = node_next_sibling(ch)) { + plist_copy_node(ch, &newnode); + } +} + +PLIST_API plist_t plist_copy(plist_t node) +{ + plist_t copied = NULL; + plist_copy_node(node, &copied); + return copied; +} + +PLIST_API uint32_t plist_array_get_size(plist_t node) +{ + uint32_t ret = 0; + if (node && PLIST_ARRAY == plist_get_node_type(node)) + { + ret = node_n_children(node); + } + return ret; +} + +PLIST_API plist_t plist_array_get_item(plist_t node, uint32_t n) +{ + plist_t ret = NULL; + if (node && PLIST_ARRAY == plist_get_node_type(node)) + { + ret = (plist_t)node_nth_child(node, n); + } + return ret; +} + +PLIST_API uint32_t plist_array_get_item_index(plist_t node) +{ + plist_t father = plist_get_parent(node); + if (PLIST_ARRAY == plist_get_node_type(father)) + { + return node_child_position(father, node); + } + return 0; +} + +PLIST_API void plist_array_set_item(plist_t node, plist_t item, uint32_t n) +{ + if (node && PLIST_ARRAY == plist_get_node_type(node)) + { + plist_t old_item = plist_array_get_item(node, n); + if (old_item) + { + int idx = plist_free_node(old_item); + if (idx < 0) { + node_attach(node, item); + } else { + node_insert(node, idx, item); + } + } + } + return; +} + +PLIST_API void plist_array_append_item(plist_t node, plist_t item) +{ + if (node && PLIST_ARRAY == plist_get_node_type(node)) + { + node_attach(node, item); + } + return; +} + +PLIST_API void plist_array_insert_item(plist_t node, plist_t item, uint32_t n) +{ + if (node && PLIST_ARRAY == plist_get_node_type(node)) + { + node_insert(node, n, item); + } + return; +} + +PLIST_API void plist_array_remove_item(plist_t node, uint32_t n) +{ + if (node && PLIST_ARRAY == plist_get_node_type(node)) + { + plist_t old_item = plist_array_get_item(node, n); + if (old_item) + { + plist_free(old_item); + } + } + return; +} + +PLIST_API uint32_t plist_dict_get_size(plist_t node) +{ + uint32_t ret = 0; + if (node && PLIST_DICT == plist_get_node_type(node)) + { + ret = node_n_children(node) / 2; + } + return ret; +} + +PLIST_API void plist_dict_new_iter(plist_t node, plist_dict_iter *iter) +{ + if (iter && *iter == NULL) + { + *iter = malloc(sizeof(node_t*)); + *((node_t**)(*iter)) = node_first_child(node); + } + return; +} + +PLIST_API void plist_dict_next_item(plist_t node, plist_dict_iter iter, char **key, plist_t *val) +{ + node_t** iter_node = (node_t**)iter; + + if (key) + { + *key = NULL; + } + if (val) + { + *val = NULL; + } + + if (node && PLIST_DICT == plist_get_node_type(node) && *iter_node) + { + if (key) + { + plist_get_key_val((plist_t)(*iter_node), key); + } + *iter_node = node_next_sibling(*iter_node); + if (val) + { + *val = (plist_t)(*iter_node); + } + *iter_node = node_next_sibling(*iter_node); + } + return; +} + +PLIST_API void plist_dict_get_item_key(plist_t node, char **key) +{ + plist_t father = plist_get_parent(node); + if (PLIST_DICT == plist_get_node_type(father)) + { + plist_get_key_val( (plist_t) node_prev_sibling(node), key); + } +} + +PLIST_API plist_t plist_dict_get_item(plist_t node, const char* key) +{ + plist_t ret = NULL; + + if (node && PLIST_DICT == plist_get_node_type(node)) + { + plist_data_t data = plist_get_data(node); + hashtable_t *ht = (hashtable_t*)data->hashtable; + if (ht) { + struct plist_data_s sdata; + sdata.strval = (char*)key; + sdata.length = strlen(key); + ret = (plist_t)hash_table_lookup(ht, &sdata); + } else { + plist_t current = NULL; + for (current = (plist_t)node_first_child(node); + current; + current = (plist_t)node_next_sibling(node_next_sibling(current))) + { + data = plist_get_data(current); + assert( PLIST_KEY == plist_get_node_type(current) ); + + if (data && !strcmp(key, data->strval)) + { + ret = (plist_t)node_next_sibling(current); + break; + } + } + } + } + return ret; +} + +PLIST_API void plist_dict_set_item(plist_t node, const char* key, plist_t item) +{ + if (node && PLIST_DICT == plist_get_node_type(node)) { + node_t* old_item = plist_dict_get_item(node, key); + plist_t key_node = NULL; + if (old_item) { + int idx = plist_free_node(old_item); + if (idx < 0) { + node_attach(node, item); + } else { + node_insert(node, idx, item); + } + key_node = node_prev_sibling(item); + } else { + key_node = plist_new_key(key); + node_attach(node, key_node); + node_attach(node, item); + } + + hashtable_t *ht = ((plist_data_t)((node_t*)node)->data)->hashtable; + if (ht) { + /* store pointer to item in hash table */ + hash_table_insert(ht, (plist_data_t)((node_t*)key_node)->data, item); + } else { + if (((node_t*)node)->count > 500) { + /* make new hash table */ + ht = hash_table_new(dict_key_hash, dict_key_compare, NULL); + /* calculate the hashes for all entries we have so far */ + plist_t current = NULL; + for (current = (plist_t)node_first_child(node); + ht && current; + current = (plist_t)node_next_sibling(node_next_sibling(current))) + { + hash_table_insert(ht, ((node_t*)current)->data, node_next_sibling(current)); + } + ((plist_data_t)((node_t*)node)->data)->hashtable = ht; + } + } + } + return; +} + +PLIST_API void plist_dict_insert_item(plist_t node, const char* key, plist_t item) +{ + plist_dict_set_item(node, key, item); +} + +PLIST_API void plist_dict_remove_item(plist_t node, const char* key) +{ + if (node && PLIST_DICT == plist_get_node_type(node)) + { + plist_t old_item = plist_dict_get_item(node, key); + if (old_item) + { + plist_t key_node = node_prev_sibling(old_item); + hashtable_t* ht = ((plist_data_t)((node_t*)node)->data)->hashtable; + if (ht) { + hash_table_remove(ht, ((node_t*)key_node)->data); + } + plist_free(key_node); + plist_free(old_item); + } + } + return; +} + +PLIST_API void plist_dict_merge(plist_t *target, plist_t source) +{ + if (!target || !*target || (plist_get_node_type(*target) != PLIST_DICT) || !source || (plist_get_node_type(source) != PLIST_DICT)) + return; + + char* key = NULL; + plist_dict_iter it = NULL; + plist_t subnode = NULL; + plist_dict_new_iter(source, &it); + if (!it) + return; + + do { + plist_dict_next_item(source, it, &key, &subnode); + if (!key) + break; + + plist_dict_set_item(*target, key, plist_copy(subnode)); + free(key); + key = NULL; + } while (1); + free(it); +} + +PLIST_API plist_t plist_access_pathv(plist_t plist, uint32_t length, va_list v) +{ + plist_t current = plist; + plist_type type = PLIST_NONE; + uint32_t i = 0; + + for (i = 0; i < length && current; i++) + { + type = plist_get_node_type(current); + + if (type == PLIST_ARRAY) + { + uint32_t n = va_arg(v, uint32_t); + current = plist_array_get_item(current, n); + } + else if (type == PLIST_DICT) + { + const char* key = va_arg(v, const char*); + current = plist_dict_get_item(current, key); + } + } + return current; +} + +PLIST_API plist_t plist_access_path(plist_t plist, uint32_t length, ...) +{ + plist_t ret = NULL; + va_list v; + + va_start(v, length); + ret = plist_access_pathv(plist, length, v); + va_end(v); + return ret; +} + +static void plist_get_type_and_value(plist_t node, plist_type * type, void *value, uint64_t * length) +{ + plist_data_t data = NULL; + + if (!node) + return; + + data = plist_get_data(node); + + *type = data->type; + *length = data->length; + + switch (*type) + { + case PLIST_BOOLEAN: + *((char *) value) = data->boolval; + break; + case PLIST_UINT: + case PLIST_UID: + *((uint64_t *) value) = data->intval; + break; + case PLIST_REAL: + case PLIST_DATE: + *((double *) value) = data->realval; + break; + case PLIST_KEY: + case PLIST_STRING: + *((char **) value) = strdup(data->strval); + break; + case PLIST_DATA: + *((uint8_t **) value) = (uint8_t *) malloc(*length * sizeof(uint8_t)); + memcpy(*((uint8_t **) value), data->buff, *length * sizeof(uint8_t)); + break; + case PLIST_ARRAY: + case PLIST_DICT: + default: + break; + } +} + +PLIST_API plist_t plist_get_parent(plist_t node) +{ + return node ? (plist_t) ((node_t*) node)->parent : NULL; +} + +PLIST_API plist_type plist_get_node_type(plist_t node) +{ + if (node) + { + plist_data_t data = plist_get_data(node); + if (data) + return data->type; + } + return PLIST_NONE; +} + +PLIST_API void plist_get_key_val(plist_t node, char **val) +{ + plist_type type = plist_get_node_type(node); + uint64_t length = 0; + if (PLIST_KEY == type) + plist_get_type_and_value(node, &type, (void *) val, &length); + assert(length == strlen(*val)); +} + +PLIST_API void plist_get_string_val(plist_t node, char **val) +{ + plist_type type = plist_get_node_type(node); + uint64_t length = 0; + if (PLIST_STRING == type) + plist_get_type_and_value(node, &type, (void *) val, &length); + assert(length == strlen(*val)); +} + +PLIST_API void plist_get_bool_val(plist_t node, uint8_t * val) +{ + plist_type type = plist_get_node_type(node); + uint64_t length = 0; + if (PLIST_BOOLEAN == type) + plist_get_type_and_value(node, &type, (void *) val, &length); + assert(length == sizeof(uint8_t)); +} + +PLIST_API void plist_get_uint_val(plist_t node, uint64_t * val) +{ + plist_type type = plist_get_node_type(node); + uint64_t length = 0; + if (PLIST_UINT == type) + plist_get_type_and_value(node, &type, (void *) val, &length); + assert(length == sizeof(uint64_t) || length == 16); +} + +PLIST_API void plist_get_uid_val(plist_t node, uint64_t * val) +{ + plist_type type = plist_get_node_type(node); + uint64_t length = 0; + if (PLIST_UID == type) + plist_get_type_and_value(node, &type, (void *) val, &length); + assert(length == sizeof(uint64_t)); +} + +PLIST_API void plist_get_real_val(plist_t node, double *val) +{ + plist_type type = plist_get_node_type(node); + uint64_t length = 0; + if (PLIST_REAL == type) + plist_get_type_and_value(node, &type, (void *) val, &length); + assert(length == sizeof(double)); +} + +PLIST_API void plist_get_data_val(plist_t node, char **val, uint64_t * length) +{ + plist_type type = plist_get_node_type(node); + if (PLIST_DATA == type) + plist_get_type_and_value(node, &type, (void *) val, length); +} + +PLIST_API void plist_get_date_val(plist_t node, int32_t * sec, int32_t * usec) +{ + plist_type type = plist_get_node_type(node); + uint64_t length = 0; + double val = 0; + if (PLIST_DATE == type) + plist_get_type_and_value(node, &type, (void *) &val, &length); + assert(length == sizeof(double)); + *sec = (int32_t)val; + *usec = (int32_t)fabs((val - (int64_t)val) * 1000000); +} + +int plist_data_compare(const void *a, const void *b) +{ + plist_data_t val_a = NULL; + plist_data_t val_b = NULL; + + if (!a || !b) + return FALSE; + + if (!((node_t*) a)->data || !((node_t*) b)->data) + return FALSE; + + val_a = plist_get_data((plist_t) a); + val_b = plist_get_data((plist_t) b); + + if (val_a->type != val_b->type) + return FALSE; + + switch (val_a->type) + { + case PLIST_BOOLEAN: + case PLIST_UINT: + case PLIST_REAL: + case PLIST_DATE: + case PLIST_UID: + if (val_a->length != val_b->length) + return FALSE; + if (val_a->intval == val_b->intval) //it is an union so this is sufficient + return TRUE; + else + return FALSE; + + case PLIST_KEY: + case PLIST_STRING: + if (!strcmp(val_a->strval, val_b->strval)) + return TRUE; + else + return FALSE; + + case PLIST_DATA: + if (val_a->length != val_b->length) + return FALSE; + if (!memcmp(val_a->buff, val_b->buff, val_a->length)) + return TRUE; + else + return FALSE; + case PLIST_ARRAY: + case PLIST_DICT: + //compare pointer + if (a == b) + return TRUE; + else + return FALSE; + break; + default: + break; + } + return FALSE; +} + +PLIST_API char plist_compare_node_value(plist_t node_l, plist_t node_r) +{ + return plist_data_compare(node_l, node_r); +} + +static void plist_set_element_val(plist_t node, plist_type type, const void *value, uint64_t length) +{ + //free previous allocated buffer + plist_data_t data = plist_get_data(node); + assert(data); // a node should always have data attached + + switch (data->type) + { + case PLIST_KEY: + case PLIST_STRING: + free(data->strval); + data->strval = NULL; + break; + case PLIST_DATA: + free(data->buff); + data->buff = NULL; + break; + default: + break; + } + + //now handle value + + data->type = type; + data->length = length; + + switch (type) + { + case PLIST_BOOLEAN: + data->boolval = *((char *) value); + break; + case PLIST_UINT: + case PLIST_UID: + data->intval = *((uint64_t *) value); + break; + case PLIST_REAL: + case PLIST_DATE: + data->realval = *((double *) value); + break; + case PLIST_KEY: + case PLIST_STRING: + data->strval = strdup((char *) value); + break; + case PLIST_DATA: + data->buff = (uint8_t *) malloc(length); + memcpy(data->buff, value, length); + break; + case PLIST_ARRAY: + case PLIST_DICT: + default: + break; + } +} + +PLIST_API void plist_set_key_val(plist_t node, const char *val) +{ + plist_set_element_val(node, PLIST_KEY, val, strlen(val)); +} + +PLIST_API void plist_set_string_val(plist_t node, const char *val) +{ + plist_set_element_val(node, PLIST_STRING, val, strlen(val)); +} + +PLIST_API void plist_set_bool_val(plist_t node, uint8_t val) +{ + plist_set_element_val(node, PLIST_BOOLEAN, &val, sizeof(uint8_t)); +} + +PLIST_API void plist_set_uint_val(plist_t node, uint64_t val) +{ + plist_set_element_val(node, PLIST_UINT, &val, sizeof(uint64_t)); +} + +PLIST_API void plist_set_uid_val(plist_t node, uint64_t val) +{ + plist_set_element_val(node, PLIST_UID, &val, sizeof(uint64_t)); +} + +PLIST_API void plist_set_real_val(plist_t node, double val) +{ + plist_set_element_val(node, PLIST_REAL, &val, sizeof(double)); +} + +PLIST_API void plist_set_data_val(plist_t node, const char *val, uint64_t length) +{ + plist_set_element_val(node, PLIST_DATA, val, length); +} + +PLIST_API void plist_set_date_val(plist_t node, int32_t sec, int32_t usec) +{ + double val = (double)sec + (double)usec / 1000000; + plist_set_element_val(node, PLIST_DATE, &val, sizeof(struct timeval)); +} + diff --git a/lib/plist/plist.h b/lib/plist/plist.h new file mode 100755 index 0000000..7bf62a8 --- /dev/null +++ b/lib/plist/plist.h @@ -0,0 +1,74 @@ +/* + * plist.h + * contains structures and the like for plists + * + * Copyright (c) 2008 Zach C. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef PLIST_H +#define PLIST_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "plist/plist.h" + +#include +#include +#include + +#ifdef _MSC_VER +#pragma warning(disable:4996) +#pragma warning(disable:4244) +#endif + +#ifdef WIN32 + #define PLIST_API __declspec( dllexport ) +#else + #ifdef HAVE_FVISIBILITY + #define PLIST_API __attribute__((visibility("default"))) + #else + #define PLIST_API + #endif +#endif + +struct plist_data_s +{ + union + { + char boolval; + uint64_t intval; + double realval; + char *strval; + uint8_t *buff; + void *hashtable; + }; + uint64_t length; + plist_type type; +}; + +typedef struct plist_data_s *plist_data_t; + +plist_t plist_new_node(plist_data_t data); +plist_data_t plist_get_data(const plist_t node); +plist_data_t plist_new_plist_data(void); +void plist_free_data(plist_data_t data); +int plist_data_compare(const void *a, const void *b); + + +#endif diff --git a/lib/plist/plist/plist.h b/lib/plist/plist/plist.h new file mode 100755 index 0000000..e817b4b --- /dev/null +++ b/lib/plist/plist/plist.h @@ -0,0 +1,686 @@ +/** + * @file plist/plist.h + * @brief Main include of libplist + * \internal + * + * Copyright (c) 2008 Jonathan Beck All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef LIBPLIST_H +#define LIBPLIST_H + +#ifdef __cplusplus +extern "C" +{ +#endif + +#ifdef _MSC_VER + typedef __int8 int8_t; + typedef __int16 int16_t; + typedef __int32 int32_t; + typedef __int64 int64_t; + + typedef unsigned __int8 uint8_t; + typedef unsigned __int16 uint16_t; + typedef unsigned __int32 uint32_t; + typedef unsigned __int64 uint64_t; + +#else +#include +#endif + +#ifdef __llvm__ + #if defined(__has_extension) + #if (__has_extension(attribute_deprecated_with_message)) + #ifndef PLIST_WARN_DEPRECATED + #define PLIST_WARN_DEPRECATED(x) __attribute__((deprecated(x))) + #endif + #else + #ifndef PLIST_WARN_DEPRECATED + #define PLIST_WARN_DEPRECATED(x) __attribute__((deprecated)) + #endif + #endif + #else + #ifndef PLIST_WARN_DEPRECATED + #define PLIST_WARN_DEPRECATED(x) __attribute__((deprecated)) + #endif + #endif +#elif (__GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 5))) + #ifndef PLIST_WARN_DEPRECATED + #define PLIST_WARN_DEPRECATED(x) __attribute__((deprecated(x))) + #endif +#elif defined(_MSC_VER) + #ifndef PLIST_WARN_DEPRECATED + #define PLIST_WARN_DEPRECATED(x) __declspec(deprecated(x)) + #endif +#else + #define PLIST_WARN_DEPRECATED(x) + #pragma message("WARNING: You need to implement DEPRECATED for this compiler") +#endif + +#include +#include + + /** + * \mainpage libplist : A library to handle Apple Property Lists + * \defgroup PublicAPI Public libplist API + */ + /*@{*/ + + + /** + * The basic plist abstract data type. + */ + typedef void *plist_t; + + /** + * The plist dictionary iterator. + */ + typedef void *plist_dict_iter; + + /** + * The enumeration of plist node types. + */ + typedef enum + { + PLIST_BOOLEAN, /**< Boolean, scalar type */ + PLIST_UINT, /**< Unsigned integer, scalar type */ + PLIST_REAL, /**< Real, scalar type */ + PLIST_STRING, /**< ASCII string, scalar type */ + PLIST_ARRAY, /**< Ordered array, structured type */ + PLIST_DICT, /**< Unordered dictionary (key/value pair), structured type */ + PLIST_DATE, /**< Date, scalar type */ + PLIST_DATA, /**< Binary data, scalar type */ + PLIST_KEY, /**< Key in dictionaries (ASCII String), scalar type */ + PLIST_UID, /**< Special type used for 'keyed encoding' */ + PLIST_NONE /**< No type */ + } plist_type; + + + /******************************************** + * * + * Creation & Destruction * + * * + ********************************************/ + + /** + * Create a new root plist_t type #PLIST_DICT + * + * @return the created plist + * @sa #plist_type + */ + plist_t plist_new_dict(void); + + /** + * Create a new root plist_t type #PLIST_ARRAY + * + * @return the created plist + * @sa #plist_type + */ + plist_t plist_new_array(void); + + /** + * Create a new plist_t type #PLIST_STRING + * + * @param val the sting value, encoded in UTF8. + * @return the created item + * @sa #plist_type + */ + plist_t plist_new_string(const char *val); + + /** + * Create a new plist_t type #PLIST_BOOLEAN + * + * @param val the boolean value, 0 is false, other values are true. + * @return the created item + * @sa #plist_type + */ + plist_t plist_new_bool(uint8_t val); + + /** + * Create a new plist_t type #PLIST_UINT + * + * @param val the unsigned integer value + * @return the created item + * @sa #plist_type + */ + plist_t plist_new_uint(uint64_t val); + + /** + * Create a new plist_t type #PLIST_REAL + * + * @param val the real value + * @return the created item + * @sa #plist_type + */ + plist_t plist_new_real(double val); + + /** + * Create a new plist_t type #PLIST_DATA + * + * @param val the binary buffer + * @param length the length of the buffer + * @return the created item + * @sa #plist_type + */ + plist_t plist_new_data(const char *val, uint64_t length); + + /** + * Create a new plist_t type #PLIST_DATE + * + * @param sec the number of seconds since 01/01/2001 + * @param usec the number of microseconds + * @return the created item + * @sa #plist_type + */ + plist_t plist_new_date(int32_t sec, int32_t usec); + + /** + * Create a new plist_t type #PLIST_UID + * + * @param val the unsigned integer value + * @return the created item + * @sa #plist_type + */ + plist_t plist_new_uid(uint64_t val); + + /** + * Destruct a plist_t node and all its children recursively + * + * @param plist the plist to free + */ + void plist_free(plist_t plist); + + /** + * Return a copy of passed node and it's children + * + * @param node the plist to copy + * @return copied plist + */ + plist_t plist_copy(plist_t node); + + + /******************************************** + * * + * Array functions * + * * + ********************************************/ + + /** + * Get size of a #PLIST_ARRAY node. + * + * @param node the node of type #PLIST_ARRAY + * @return size of the #PLIST_ARRAY node + */ + uint32_t plist_array_get_size(plist_t node); + + /** + * Get the nth item in a #PLIST_ARRAY node. + * + * @param node the node of type #PLIST_ARRAY + * @param n the index of the item to get. Range is [0, array_size[ + * @return the nth item or NULL if node is not of type #PLIST_ARRAY + */ + plist_t plist_array_get_item(plist_t node, uint32_t n); + + /** + * Get the index of an item. item must be a member of a #PLIST_ARRAY node. + * + * @param node the node + * @return the node index + */ + uint32_t plist_array_get_item_index(plist_t node); + + /** + * Set the nth item in a #PLIST_ARRAY node. + * The previous item at index n will be freed using #plist_free + * + * @param node the node of type #PLIST_ARRAY + * @param item the new item at index n. The array is responsible for freeing item when it is no longer needed. + * @param n the index of the item to get. Range is [0, array_size[. Assert if n is not in range. + */ + void plist_array_set_item(plist_t node, plist_t item, uint32_t n); + + /** + * Append a new item at the end of a #PLIST_ARRAY node. + * + * @param node the node of type #PLIST_ARRAY + * @param item the new item. The array is responsible for freeing item when it is no longer needed. + */ + void plist_array_append_item(plist_t node, plist_t item); + + /** + * Insert a new item at position n in a #PLIST_ARRAY node. + * + * @param node the node of type #PLIST_ARRAY + * @param item the new item to insert. The array is responsible for freeing item when it is no longer needed. + * @param n The position at which the node will be stored. Range is [0, array_size[. Assert if n is not in range. + */ + void plist_array_insert_item(plist_t node, plist_t item, uint32_t n); + + /** + * Remove an existing position in a #PLIST_ARRAY node. + * Removed position will be freed using #plist_free. + * + * @param node the node of type #PLIST_ARRAY + * @param n The position to remove. Range is [0, array_size[. Assert if n is not in range. + */ + void plist_array_remove_item(plist_t node, uint32_t n); + + /******************************************** + * * + * Dictionary functions * + * * + ********************************************/ + + /** + * Get size of a #PLIST_DICT node. + * + * @param node the node of type #PLIST_DICT + * @return size of the #PLIST_DICT node + */ + uint32_t plist_dict_get_size(plist_t node); + + /** + * Create an iterator of a #PLIST_DICT node. + * The allocated iterator should be freed with the standard free function. + * + * @param node the node of type #PLIST_DICT + * @param iter iterator of the #PLIST_DICT node + */ + void plist_dict_new_iter(plist_t node, plist_dict_iter *iter); + + /** + * Increment iterator of a #PLIST_DICT node. + * + * @param node the node of type #PLIST_DICT + * @param iter iterator of the dictionary + * @param key a location to store the key, or NULL. The caller is responsible + * for freeing the the returned string. + * @param val a location to store the value, or NULL. The caller should *not* + * free the returned value. + */ + void plist_dict_next_item(plist_t node, plist_dict_iter iter, char **key, plist_t *val); + + /** + * Get key associated to an item. Item must be member of a dictionary + * + * @param node the node + * @param key a location to store the key. The caller is responsible for freeing the returned string. + */ + void plist_dict_get_item_key(plist_t node, char **key); + + /** + * Get the nth item in a #PLIST_DICT node. + * + * @param node the node of type #PLIST_DICT + * @param key the identifier of the item to get. + * @return the item or NULL if node is not of type #PLIST_DICT. The caller should not free + * the returned node. + */ + plist_t plist_dict_get_item(plist_t node, const char* key); + + /** + * Set item identified by key in a #PLIST_DICT node. + * The previous item identified by key will be freed using #plist_free. + * If there is no item for the given key a new item will be inserted. + * + * @param node the node of type #PLIST_DICT + * @param item the new item associated to key + * @param key the identifier of the item to set. + */ + void plist_dict_set_item(plist_t node, const char* key, plist_t item); + + /** + * Insert a new item into a #PLIST_DICT node. + * + * @deprecated Deprecated. Use plist_dict_set_item instead. + * + * @param node the node of type #PLIST_DICT + * @param item the new item to insert + * @param key The identifier of the item to insert. + */ + PLIST_WARN_DEPRECATED("use plist_dict_set_item instead") + void plist_dict_insert_item(plist_t node, const char* key, plist_t item); + + /** + * Remove an existing position in a #PLIST_DICT node. + * Removed position will be freed using #plist_free + * + * @param node the node of type #PLIST_DICT + * @param key The identifier of the item to remove. Assert if identifier is not present. + */ + void plist_dict_remove_item(plist_t node, const char* key); + + /** + * Merge a dictionary into another. This will add all key/value pairs + * from the source dictionary to the target dictionary, overwriting + * any existing key/value pairs that are already present in target. + * + * @param target pointer to an existing node of type #PLIST_DICT + * @param source node of type #PLIST_DICT that should be merged into target + */ + void plist_dict_merge(plist_t *target, plist_t source); + + + /******************************************** + * * + * Getters * + * * + ********************************************/ + + /** + * Get the parent of a node + * + * @param node the parent (NULL if node is root) + */ + plist_t plist_get_parent(plist_t node); + + /** + * Get the #plist_type of a node. + * + * @param node the node + * @return the type of the node + */ + plist_type plist_get_node_type(plist_t node); + + /** + * Get the value of a #PLIST_KEY node. + * This function does nothing if node is not of type #PLIST_KEY + * + * @param node the node + * @param val a pointer to a C-string. This function allocates the memory, + * caller is responsible for freeing it. + */ + void plist_get_key_val(plist_t node, char **val); + + /** + * Get the value of a #PLIST_STRING node. + * This function does nothing if node is not of type #PLIST_STRING + * + * @param node the node + * @param val a pointer to a C-string. This function allocates the memory, + * caller is responsible for freeing it. Data is UTF-8 encoded. + */ + void plist_get_string_val(plist_t node, char **val); + + /** + * Get the value of a #PLIST_BOOLEAN node. + * This function does nothing if node is not of type #PLIST_BOOLEAN + * + * @param node the node + * @param val a pointer to a uint8_t variable. + */ + void plist_get_bool_val(plist_t node, uint8_t * val); + + /** + * Get the value of a #PLIST_UINT node. + * This function does nothing if node is not of type #PLIST_UINT + * + * @param node the node + * @param val a pointer to a uint64_t variable. + */ + void plist_get_uint_val(plist_t node, uint64_t * val); + + /** + * Get the value of a #PLIST_REAL node. + * This function does nothing if node is not of type #PLIST_REAL + * + * @param node the node + * @param val a pointer to a double variable. + */ + void plist_get_real_val(plist_t node, double *val); + + /** + * Get the value of a #PLIST_DATA node. + * This function does nothing if node is not of type #PLIST_DATA + * + * @param node the node + * @param val a pointer to an unallocated char buffer. This function allocates the memory, + * caller is responsible for freeing it. + * @param length the length of the buffer + */ + void plist_get_data_val(plist_t node, char **val, uint64_t * length); + + /** + * Get the value of a #PLIST_DATE node. + * This function does nothing if node is not of type #PLIST_DATE + * + * @param node the node + * @param sec a pointer to an int32_t variable. Represents the number of seconds since 01/01/2001. + * @param usec a pointer to an int32_t variable. Represents the number of microseconds + */ + void plist_get_date_val(plist_t node, int32_t * sec, int32_t * usec); + + /** + * Get the value of a #PLIST_UID node. + * This function does nothing if node is not of type #PLIST_UID + * + * @param node the node + * @param val a pointer to a uint64_t variable. + */ + void plist_get_uid_val(plist_t node, uint64_t * val); + + + /******************************************** + * * + * Setters * + * * + ********************************************/ + + /** + * Set the value of a node. + * Forces type of node to #PLIST_KEY + * + * @param node the node + * @param val the key value + */ + void plist_set_key_val(plist_t node, const char *val); + + /** + * Set the value of a node. + * Forces type of node to #PLIST_STRING + * + * @param node the node + * @param val the string value. The string is copied when set and will be + * freed by the node. + */ + void plist_set_string_val(plist_t node, const char *val); + + /** + * Set the value of a node. + * Forces type of node to #PLIST_BOOLEAN + * + * @param node the node + * @param val the boolean value + */ + void plist_set_bool_val(plist_t node, uint8_t val); + + /** + * Set the value of a node. + * Forces type of node to #PLIST_UINT + * + * @param node the node + * @param val the unsigned integer value + */ + void plist_set_uint_val(plist_t node, uint64_t val); + + /** + * Set the value of a node. + * Forces type of node to #PLIST_REAL + * + * @param node the node + * @param val the real value + */ + void plist_set_real_val(plist_t node, double val); + + /** + * Set the value of a node. + * Forces type of node to #PLIST_DATA + * + * @param node the node + * @param val the binary buffer. The buffer is copied when set and will + * be freed by the node. + * @param length the length of the buffer + */ + void plist_set_data_val(plist_t node, const char *val, uint64_t length); + + /** + * Set the value of a node. + * Forces type of node to #PLIST_DATE + * + * @param node the node + * @param sec the number of seconds since 01/01/2001 + * @param usec the number of microseconds + */ + void plist_set_date_val(plist_t node, int32_t sec, int32_t usec); + + /** + * Set the value of a node. + * Forces type of node to #PLIST_UID + * + * @param node the node + * @param val the unsigned integer value + */ + void plist_set_uid_val(plist_t node, uint64_t val); + + + /******************************************** + * * + * Import & Export * + * * + ********************************************/ + + /** + * Export the #plist_t structure to XML format. + * + * @param plist the root node to export + * @param plist_xml a pointer to a C-string. This function allocates the memory, + * caller is responsible for freeing it. Data is UTF-8 encoded. + * @param length a pointer to an uint32_t variable. Represents the length of the allocated buffer. + */ + void plist_to_xml(plist_t plist, char **plist_xml, uint32_t * length); + + /** + * Export the #plist_t structure to binary format. + * + * @param plist the root node to export + * @param plist_bin a pointer to a char* buffer. This function allocates the memory, + * caller is responsible for freeing it. + * @param length a pointer to an uint32_t variable. Represents the length of the allocated buffer. + */ + void plist_to_bin(plist_t plist, char **plist_bin, uint32_t * length); + + /** + * Import the #plist_t structure from XML format. + * + * @param plist_xml a pointer to the xml buffer. + * @param length length of the buffer to read. + * @param plist a pointer to the imported plist. + */ + void plist_from_xml(const char *plist_xml, uint32_t length, plist_t * plist); + + /** + * Import the #plist_t structure from binary format. + * + * @param plist_bin a pointer to the xml buffer. + * @param length length of the buffer to read. + * @param plist a pointer to the imported plist. + */ + void plist_from_bin(const char *plist_bin, uint32_t length, plist_t * plist); + + /** + * Import the #plist_t structure from memory data. + * This method will look at the first bytes of plist_data + * to determine if plist_data contains a binary or XML plist. + * + * @param plist_data a pointer to the memory buffer containing plist data. + * @param length length of the buffer to read. + * @param plist a pointer to the imported plist. + */ + void plist_from_memory(const char *plist_data, uint32_t length, plist_t * plist); + + /** + * Test if in-memory plist data is binary or XML + * This method will look at the first bytes of plist_data + * to determine if plist_data contains a binary or XML plist. + * This method is not validating the whole memory buffer to check if the + * content is truly a plist, it's only using some heuristic on the first few + * bytes of plist_data. + * + * @param plist_data a pointer to the memory buffer containing plist data. + * @param length length of the buffer to read. + * @return 1 if the buffer is a binary plist, 0 otherwise. + */ + int plist_is_binary(const char *plist_data, uint32_t length); + + /******************************************** + * * + * Utils * + * * + ********************************************/ + + /** + * Get a node from its path. Each path element depends on the associated father node type. + * For Dictionaries, var args are casted to const char*, for arrays, var args are caster to uint32_t + * Search is breath first order. + * + * @param plist the node to access result from. + * @param length length of the path to access + * @return the value to access. + */ + plist_t plist_access_path(plist_t plist, uint32_t length, ...); + + /** + * Variadic version of #plist_access_path. + * + * @param plist the node to access result from. + * @param length length of the path to access + * @param v list of array's index and dic'st key + * @return the value to access. + */ + plist_t plist_access_pathv(plist_t plist, uint32_t length, va_list v); + + /** + * Compare two node values + * + * @param node_l left node to compare + * @param node_r rigth node to compare + * @return TRUE is type and value match, FALSE otherwise. + */ + char plist_compare_node_value(plist_t node_l, plist_t node_r); + + #define _PLIST_IS_TYPE(__plist, __plist_type) (__plist && (plist_get_node_type(__plist) == PLIST_##__plist_type)) + + /* Helper macros for the different plist types */ + #define PLIST_IS_BOOLEAN(__plist) _PLIST_IS_TYPE(__plist, BOOLEAN) + #define PLIST_IS_UINT(__plist) _PLIST_IS_TYPE(__plist, UINT) + #define PLIST_IS_REAL(__plist) _PLIST_IS_TYPE(__plist, REAL) + #define PLIST_IS_STRING(__plist) _PLIST_IS_TYPE(__plist, STRING) + #define PLIST_IS_ARRAY(__plist) _PLIST_IS_TYPE(__plist, ARRAY) + #define PLIST_IS_DICT(__plist) _PLIST_IS_TYPE(__plist, DICT) + #define PLIST_IS_DATE(__plist) _PLIST_IS_TYPE(__plist, DATE) + #define PLIST_IS_DATA(__plist) _PLIST_IS_TYPE(__plist, DATA) + #define PLIST_IS_KEY(__plist) _PLIST_IS_TYPE(__plist, KEY) + #define PLIST_IS_UID(__plist) _PLIST_IS_TYPE(__plist, UID) + + /*@}*/ + +#ifdef __cplusplus +} +#endif +#endif diff --git a/lib/plist/ptrarray.c b/lib/plist/ptrarray.c new file mode 100755 index 0000000..eb17d28 --- /dev/null +++ b/lib/plist/ptrarray.c @@ -0,0 +1,61 @@ +/* + * ptrarray.c + * simple pointer array implementation + * + * Copyright (c) 2011 Nikias Bassen, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "ptrarray.h" + +ptrarray_t *ptr_array_new(int capacity) +{ + ptrarray_t *pa = (ptrarray_t*)malloc(sizeof(ptrarray_t)); + pa->pdata = (void**)malloc(sizeof(void*) * capacity); + pa->capacity = capacity; + pa->capacity_step = (capacity > 4096) ? 4096 : capacity; + pa->len = 0; + return pa; +} + +void ptr_array_free(ptrarray_t *pa) +{ + if (!pa) return; + if (pa->pdata) { + free(pa->pdata); + } + free(pa); +} + +void ptr_array_add(ptrarray_t *pa, void *data) +{ + if (!pa || !pa->pdata || !data) return; + size_t remaining = pa->capacity-pa->len; + if (remaining == 0) { + pa->pdata = realloc(pa->pdata, sizeof(void*) * (pa->capacity + pa->capacity_step)); + pa->capacity += pa->capacity_step; + } + pa->pdata[pa->len] = data; + pa->len++; +} + +void* ptr_array_index(ptrarray_t *pa, size_t array_index) +{ + if (!pa) return NULL; + if (array_index >= pa->len) { + return NULL; + } + return pa->pdata[array_index]; +} diff --git a/lib/plist/ptrarray.h b/lib/plist/ptrarray.h new file mode 100755 index 0000000..e8a3c88 --- /dev/null +++ b/lib/plist/ptrarray.h @@ -0,0 +1,36 @@ +/* + * ptrarray.h + * header file for simple pointer array implementation + * + * Copyright (c) 2011 Nikias Bassen, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef PTRARRAY_H +#define PTRARRAY_H +#include + +typedef struct ptrarray_t { + void **pdata; + size_t len; + size_t capacity; + size_t capacity_step; +} ptrarray_t; + +ptrarray_t *ptr_array_new(int capacity); +void ptr_array_free(ptrarray_t *pa); +void ptr_array_add(ptrarray_t *pa, void *data); +void* ptr_array_index(ptrarray_t *pa, size_t index); +#endif diff --git a/lib/plist/strbuf.h b/lib/plist/strbuf.h new file mode 100755 index 0000000..0d28edf --- /dev/null +++ b/lib/plist/strbuf.h @@ -0,0 +1,34 @@ +/* + * strbuf.h + * header file for simple string buffer, using the bytearray as underlying + * structure. + * + * Copyright (c) 2016 Nikias Bassen, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef STRBUF_H +#define STRBUF_H +#include +#include "bytearray.h" + +typedef struct bytearray_t strbuf_t; + +#define str_buf_new(__sz) byte_array_new(__sz) +#define str_buf_free(__ba) byte_array_free(__ba) +#define str_buf_grow(__ba, __am) byte_array_grow(__ba, __am) +#define str_buf_append(__ba, __str, __len) byte_array_append(__ba, (void*)(__str), __len) + +#endif diff --git a/lib/plist/time64.c b/lib/plist/time64.c new file mode 100755 index 0000000..8c08caf --- /dev/null +++ b/lib/plist/time64.c @@ -0,0 +1,812 @@ +/* + +Copyright (c) 2007-2010 Michael G Schwern + +This software originally derived from Paul Sheer's pivotal_gmtime_r.c. + +The MIT License: + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +/* + +Programmers who have available to them 64-bit time values as a 'long +long' type can use localtime64_r() and gmtime64_r() which correctly +converts the time even on 32-bit systems. Whether you have 64-bit time +values will depend on the operating system. + +localtime64_r() is a 64-bit equivalent of localtime_r(). + +gmtime64_r() is a 64-bit equivalent of gmtime_r(). + +*/ + +#include +#include +#include +#include +#include +#include +#include "time64.h" +#include "time64_limits.h" + + +static const char days_in_month[2][12] = { + {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, + {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, +}; + +static const short julian_days_by_month[2][12] = { + {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}, + {0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335}, +}; + +static char wday_name[7][4] = { + "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" +}; + +static char mon_name[12][4] = { + "Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" +}; + +static const short length_of_year[2] = { 365, 366 }; + +/* Some numbers relating to the gregorian cycle */ +static const Year years_in_gregorian_cycle = 400; +#define days_in_gregorian_cycle ((365 * 400) + 100 - 4 + 1) +static const Time64_T seconds_in_gregorian_cycle = days_in_gregorian_cycle * 60LL * 60LL * 24LL; + +/* Year range we can trust the time funcitons with */ +#define MAX_SAFE_YEAR 2037 +#define MIN_SAFE_YEAR 1971 + +/* 28 year Julian calendar cycle */ +#define SOLAR_CYCLE_LENGTH 28 + +/* Year cycle from MAX_SAFE_YEAR down. */ +static const short safe_years_high[SOLAR_CYCLE_LENGTH] = { + 2016, 2017, 2018, 2019, + 2020, 2021, 2022, 2023, + 2024, 2025, 2026, 2027, + 2028, 2029, 2030, 2031, + 2032, 2033, 2034, 2035, + 2036, 2037, 2010, 2011, + 2012, 2013, 2014, 2015 +}; + +/* Year cycle from MIN_SAFE_YEAR up */ +static const int safe_years_low[SOLAR_CYCLE_LENGTH] = { + 1996, 1997, 1998, 1971, + 1972, 1973, 1974, 1975, + 1976, 1977, 1978, 1979, + 1980, 1981, 1982, 1983, + 1984, 1985, 1986, 1987, + 1988, 1989, 1990, 1991, + 1992, 1993, 1994, 1995, +}; + +/* This isn't used, but it's handy to look at */ +#if 0 +static const char dow_year_start[SOLAR_CYCLE_LENGTH] = { + 5, 0, 1, 2, /* 0 2016 - 2019 */ + 3, 5, 6, 0, /* 4 */ + 1, 3, 4, 5, /* 8 1996 - 1998, 1971*/ + 6, 1, 2, 3, /* 12 1972 - 1975 */ + 4, 6, 0, 1, /* 16 */ + 2, 4, 5, 6, /* 20 2036, 2037, 2010, 2011 */ + 0, 2, 3, 4 /* 24 2012, 2013, 2014, 2015 */ +}; +#endif + +/* Let's assume people are going to be looking for dates in the future. + Let's provide some cheats so you can skip ahead. + This has a 4x speed boost when near 2008. +*/ +/* Number of days since epoch on Jan 1st, 2008 GMT */ +#define CHEAT_DAYS (1199145600 / 24 / 60 / 60) +#define CHEAT_YEARS 108 + +#define IS_LEAP(n) ((!(((n) + 1900) % 400) || (!(((n) + 1900) % 4) && (((n) + 1900) % 100))) != 0) +#define WRAP(a,b,m) ((a) = ((a) < 0 ) ? ((b)--, (a) + (m)) : (a)) + +#ifdef USE_SYSTEM_LOCALTIME +# define SHOULD_USE_SYSTEM_LOCALTIME(a) ( \ + (a) <= SYSTEM_LOCALTIME_MAX && \ + (a) >= SYSTEM_LOCALTIME_MIN \ +) +#else +# define SHOULD_USE_SYSTEM_LOCALTIME(a) (0) +#endif + +#ifdef USE_SYSTEM_GMTIME +# define SHOULD_USE_SYSTEM_GMTIME(a) ( \ + (a) <= SYSTEM_GMTIME_MAX && \ + (a) >= SYSTEM_GMTIME_MIN \ +) +#else +# define SHOULD_USE_SYSTEM_GMTIME(a) (0) +#endif + +/* Multi varadic macros are a C99 thing, alas */ +#ifdef TIME_64_DEBUG +# define TIME64_TRACE(format) (fprintf(stderr, format)) +# define TIME64_TRACE1(format, var1) (fprintf(stderr, format, var1)) +# define TIME64_TRACE2(format, var1, var2) (fprintf(stderr, format, var1, var2)) +# define TIME64_TRACE3(format, var1, var2, var3) (fprintf(stderr, format, var1, var2, var3)) +#else +# define TIME64_TRACE(format) ((void)0) +# define TIME64_TRACE1(format, var1) ((void)0) +# define TIME64_TRACE2(format, var1, var2) ((void)0) +# define TIME64_TRACE3(format, var1, var2, var3) ((void)0) +#endif + + +static int is_exception_century(Year year) +{ + int is_exception = ((year % 100 == 0) && !(year % 400 == 0)); + TIME64_TRACE1("# is_exception_century: %s\n", is_exception ? "yes" : "no"); + + return(is_exception); +} + + +/* Compare two dates. + The result is like cmp. + Ignores things like gmtoffset and dst +*/ +static int cmp_date( const struct TM* left, const struct tm* right ) { + if( left->tm_year > right->tm_year ) + return 1; + else if( left->tm_year < right->tm_year ) + return -1; + + if( left->tm_mon > right->tm_mon ) + return 1; + else if( left->tm_mon < right->tm_mon ) + return -1; + + if( left->tm_mday > right->tm_mday ) + return 1; + else if( left->tm_mday < right->tm_mday ) + return -1; + + if( left->tm_hour > right->tm_hour ) + return 1; + else if( left->tm_hour < right->tm_hour ) + return -1; + + if( left->tm_min > right->tm_min ) + return 1; + else if( left->tm_min < right->tm_min ) + return -1; + + if( left->tm_sec > right->tm_sec ) + return 1; + else if( left->tm_sec < right->tm_sec ) + return -1; + + return 0; +} + + +/* Check if a date is safely inside a range. + The intention is to check if its a few days inside. +*/ +static int date_in_safe_range( const struct TM* date, const struct tm* min, const struct tm* max ) { + if( cmp_date(date, min) == -1 ) + return 0; + + if( cmp_date(date, max) == 1 ) + return 0; + + return 1; +} + + +/* timegm() is not in the C or POSIX spec, but it is such a useful + extension I would be remiss in leaving it out. Also I need it + for localtime64() +*/ +Time64_T timegm64(const struct TM *date) { + Time64_T days = 0; + Time64_T seconds = 0; + Year year; + Year orig_year = (Year)date->tm_year; + int cycles = 0; + + if( orig_year > 100 ) { + cycles = (orig_year - 100) / 400; + orig_year -= cycles * 400; + days += (Time64_T)cycles * days_in_gregorian_cycle; + } + else if( orig_year < -300 ) { + cycles = (orig_year - 100) / 400; + orig_year -= cycles * 400; + days += (Time64_T)cycles * days_in_gregorian_cycle; + } + TIME64_TRACE3("# timegm/ cycles: %d, days: %lld, orig_year: %lld\n", cycles, days, orig_year); + + if( orig_year > 70 ) { + year = 70; + while( year < orig_year ) { + days += length_of_year[IS_LEAP(year)]; + year++; + } + } + else if ( orig_year < 70 ) { + year = 69; + do { + days -= length_of_year[IS_LEAP(year)]; + year--; + } while( year >= orig_year ); + } + + days += julian_days_by_month[IS_LEAP(orig_year)][date->tm_mon]; + days += date->tm_mday - 1; + + seconds = days * 60 * 60 * 24; + + seconds += date->tm_hour * 60 * 60; + seconds += date->tm_min * 60; + seconds += date->tm_sec; + + return(seconds); +} + + +static int check_tm(struct TM *tm) +{ + /* Don't forget leap seconds */ + assert(tm->tm_sec >= 0); + assert(tm->tm_sec <= 61); + + assert(tm->tm_min >= 0); + assert(tm->tm_min <= 59); + + assert(tm->tm_hour >= 0); + assert(tm->tm_hour <= 23); + + assert(tm->tm_mday >= 1); + assert(tm->tm_mday <= days_in_month[IS_LEAP(tm->tm_year)][tm->tm_mon]); + + assert(tm->tm_mon >= 0); + assert(tm->tm_mon <= 11); + + assert(tm->tm_wday >= 0); + assert(tm->tm_wday <= 6); + + assert(tm->tm_yday >= 0); + assert(tm->tm_yday <= length_of_year[IS_LEAP(tm->tm_year)]); + +#ifdef HAVE_TM_TM_GMTOFF + assert(tm->tm_gmtoff >= -24 * 60 * 60); + assert(tm->tm_gmtoff <= 24 * 60 * 60); +#endif + + return 1; +} + + +/* The exceptional centuries without leap years cause the cycle to + shift by 16 +*/ +static Year cycle_offset(Year year) +{ + const Year start_year = 2000; + Year year_diff = year - start_year; + Year exceptions; + + if( year > start_year ) + year_diff--; + + exceptions = year_diff / 100; + exceptions -= year_diff / 400; + + TIME64_TRACE3("# year: %lld, exceptions: %lld, year_diff: %lld\n", + year, exceptions, year_diff); + + return exceptions * 16; +} + +/* For a given year after 2038, pick the latest possible matching + year in the 28 year calendar cycle. + + A matching year... + 1) Starts on the same day of the week. + 2) Has the same leap year status. + + This is so the calendars match up. + + Also the previous year must match. When doing Jan 1st you might + wind up on Dec 31st the previous year when doing a -UTC time zone. + + Finally, the next year must have the same start day of week. This + is for Dec 31st with a +UTC time zone. + It doesn't need the same leap year status since we only care about + January 1st. +*/ +static int safe_year(const Year year) +{ + int safe_year= (int)year; + Year year_cycle; + + if( year >= MIN_SAFE_YEAR && year <= MAX_SAFE_YEAR ) { + return safe_year; + } + + year_cycle = year + cycle_offset(year); + + /* safe_years_low is off from safe_years_high by 8 years */ + if( year < MIN_SAFE_YEAR ) + year_cycle -= 8; + + /* Change non-leap xx00 years to an equivalent */ + if( is_exception_century(year) ) + year_cycle += 11; + + /* Also xx01 years, since the previous year will be wrong */ + if( is_exception_century(year - 1) ) + year_cycle += 17; + + year_cycle %= SOLAR_CYCLE_LENGTH; + if( year_cycle < 0 ) + year_cycle = SOLAR_CYCLE_LENGTH + year_cycle; + + assert( year_cycle >= 0 ); + assert( year_cycle < SOLAR_CYCLE_LENGTH ); + if( year < MIN_SAFE_YEAR ) + safe_year = safe_years_low[year_cycle]; + else if( year > MAX_SAFE_YEAR ) + safe_year = safe_years_high[year_cycle]; + else + assert(0); + + TIME64_TRACE3("# year: %lld, year_cycle: %lld, safe_year: %d\n", + year, year_cycle, safe_year); + + assert(safe_year <= MAX_SAFE_YEAR && safe_year >= MIN_SAFE_YEAR); + + return safe_year; +} + + +void copy_tm_to_TM64(const struct tm *src, struct TM *dest) { + if( src == NULL ) { + memset(dest, 0, sizeof(*dest)); + } + else { +# ifdef USE_TM64 + dest->tm_sec = src->tm_sec; + dest->tm_min = src->tm_min; + dest->tm_hour = src->tm_hour; + dest->tm_mday = src->tm_mday; + dest->tm_mon = src->tm_mon; + dest->tm_year = (Year)src->tm_year; + dest->tm_wday = src->tm_wday; + dest->tm_yday = src->tm_yday; + dest->tm_isdst = src->tm_isdst; + +# ifdef HAVE_TM_TM_GMTOFF + dest->tm_gmtoff = src->tm_gmtoff; +# endif + +# ifdef HAVE_TM_TM_ZONE + dest->tm_zone = src->tm_zone; +# endif + +# else + /* They're the same type */ + memcpy(dest, src, sizeof(*dest)); +# endif + } +} + + +void copy_TM64_to_tm(const struct TM *src, struct tm *dest) { + if( src == NULL ) { + memset(dest, 0, sizeof(*dest)); + } + else { +# ifdef USE_TM64 + dest->tm_sec = src->tm_sec; + dest->tm_min = src->tm_min; + dest->tm_hour = src->tm_hour; + dest->tm_mday = src->tm_mday; + dest->tm_mon = src->tm_mon; + dest->tm_year = (int)src->tm_year; + dest->tm_wday = src->tm_wday; + dest->tm_yday = src->tm_yday; + dest->tm_isdst = src->tm_isdst; + +# ifdef HAVE_TM_TM_GMTOFF + dest->tm_gmtoff = src->tm_gmtoff; +# endif + +# ifdef HAVE_TM_TM_ZONE + dest->tm_zone = src->tm_zone; +# endif + +# else + /* They're the same type */ + memcpy(dest, src, sizeof(*dest)); +# endif + } +} + + +#ifndef HAVE_LOCALTIME_R +/* Simulate localtime_r() to the best of our ability */ +static struct tm * fake_localtime_r(const time_t *time, struct tm *result) { + const struct tm *static_result = localtime(time); + + assert(result != NULL); + + if( static_result == NULL ) { + memset(result, 0, sizeof(*result)); + return NULL; + } + else { + memcpy(result, static_result, sizeof(*result)); + return result; + } +} +#endif + + +#ifndef HAVE_GMTIME_R +/* Simulate gmtime_r() to the best of our ability */ +static struct tm * fake_gmtime_r(const time_t *time, struct tm *result) { + const struct tm *static_result = gmtime(time); + + assert(result != NULL); + + if( static_result == NULL ) { + memset(result, 0, sizeof(*result)); + return NULL; + } + else { + memcpy(result, static_result, sizeof(*result)); + return result; + } +} +#endif + + +static Time64_T seconds_between_years(Year left_year, Year right_year) { + int increment = (left_year > right_year) ? 1 : -1; + Time64_T seconds = 0; + int cycles; + + if( left_year > 2400 ) { + cycles = (left_year - 2400) / 400; + left_year -= cycles * 400; + seconds += cycles * seconds_in_gregorian_cycle; + } + else if( left_year < 1600 ) { + cycles = (left_year - 1600) / 400; + left_year += cycles * 400; + seconds += cycles * seconds_in_gregorian_cycle; + } + + while( left_year != right_year ) { + seconds += length_of_year[IS_LEAP(right_year - 1900)] * 60 * 60 * 24; + right_year += increment; + } + + return seconds * increment; +} + + +Time64_T mktime64(struct TM *input_date) { + struct tm safe_date; + struct TM date; + Time64_T time; + Year year = input_date->tm_year + 1900; + + if( date_in_safe_range(input_date, &SYSTEM_MKTIME_MIN, &SYSTEM_MKTIME_MAX) ) + { + copy_TM64_to_tm(input_date, &safe_date); + time = (Time64_T)mktime(&safe_date); + + /* Correct the possibly out of bound input date */ + copy_tm_to_TM64(&safe_date, input_date); + return time; + } + + /* Have to make the year safe in date else it won't fit in safe_date */ + date = *input_date; + date.tm_year = safe_year(year) - 1900; + copy_TM64_to_tm(&date, &safe_date); + + time = (Time64_T)mktime(&safe_date); + + /* Correct the user's possibly out of bound input date */ + copy_tm_to_TM64(&safe_date, input_date); + + time += seconds_between_years(year, (Year)(safe_date.tm_year + 1900)); + + return time; +} + + +/* Because I think mktime() is a crappy name */ +Time64_T timelocal64(struct TM *date) { + return mktime64(date); +} + + +struct TM *gmtime64_r (const Time64_T *in_time, struct TM *p) +{ + int v_tm_sec, v_tm_min, v_tm_hour, v_tm_mon, v_tm_wday; + Time64_T v_tm_tday; + int leap; + Time64_T m; + Time64_T time = *in_time; + Year year = 70; + int cycles = 0; + + assert(p != NULL); + + /* Use the system gmtime() if time_t is small enough */ + if( SHOULD_USE_SYSTEM_GMTIME(*in_time) ) { + time_t safe_time = (time_t)*in_time; + struct tm safe_date; + GMTIME_R(&safe_time, &safe_date); + + copy_tm_to_TM64(&safe_date, p); + assert(check_tm(p)); + + return p; + } + +#ifdef HAVE_TM_TM_GMTOFF + p->tm_gmtoff = 0; +#endif + p->tm_isdst = 0; + +#ifdef HAVE_TM_TM_ZONE + p->tm_zone = (char*)"UTC"; +#endif + + v_tm_sec = (int)(time % 60); + time /= 60; + v_tm_min = (int)(time % 60); + time /= 60; + v_tm_hour = (int)(time % 24); + time /= 24; + v_tm_tday = time; + + WRAP (v_tm_sec, v_tm_min, 60); + WRAP (v_tm_min, v_tm_hour, 60); + WRAP (v_tm_hour, v_tm_tday, 24); + + v_tm_wday = (int)((v_tm_tday + 4) % 7); + if (v_tm_wday < 0) + v_tm_wday += 7; + m = v_tm_tday; + + if (m >= CHEAT_DAYS) { + year = CHEAT_YEARS; + m -= CHEAT_DAYS; + } + + if (m >= 0) { + /* Gregorian cycles, this is huge optimization for distant times */ + cycles = (int)(m / (Time64_T) days_in_gregorian_cycle); + if( cycles ) { + m -= (cycles * (Time64_T) days_in_gregorian_cycle); + year += (cycles * years_in_gregorian_cycle); + } + + /* Years */ + leap = IS_LEAP (year); + while (m >= (Time64_T) length_of_year[leap]) { + m -= (Time64_T) length_of_year[leap]; + year++; + leap = IS_LEAP (year); + } + + /* Months */ + v_tm_mon = 0; + while (m >= (Time64_T) days_in_month[leap][v_tm_mon]) { + m -= (Time64_T) days_in_month[leap][v_tm_mon]; + v_tm_mon++; + } + } else { + year--; + + /* Gregorian cycles */ + cycles = (int)((m / (Time64_T) days_in_gregorian_cycle) + 1); + if( cycles ) { + m -= (cycles * (Time64_T) days_in_gregorian_cycle); + year += (cycles * years_in_gregorian_cycle); + } + + /* Years */ + leap = IS_LEAP (year); + while (m < (Time64_T) -length_of_year[leap]) { + m += (Time64_T) length_of_year[leap]; + year--; + leap = IS_LEAP (year); + } + + /* Months */ + v_tm_mon = 11; + while (m < (Time64_T) -days_in_month[leap][v_tm_mon]) { + m += (Time64_T) days_in_month[leap][v_tm_mon]; + v_tm_mon--; + } + m += (Time64_T) days_in_month[leap][v_tm_mon]; + } + + p->tm_year = year; + if( p->tm_year != year ) { +#ifdef EOVERFLOW + errno = EOVERFLOW; +#endif + return NULL; + } + + /* At this point m is less than a year so casting to an int is safe */ + p->tm_mday = (int) m + 1; + p->tm_yday = julian_days_by_month[leap][v_tm_mon] + (int)m; + p->tm_sec = v_tm_sec; + p->tm_min = v_tm_min; + p->tm_hour = v_tm_hour; + p->tm_mon = v_tm_mon; + p->tm_wday = v_tm_wday; + + assert(check_tm(p)); + + return p; +} + + +struct TM *localtime64_r (const Time64_T *time, struct TM *local_tm) +{ + time_t safe_time; + struct tm safe_date; + struct TM gm_tm; + Year orig_year; + int month_diff; + + assert(local_tm != NULL); + + /* Use the system localtime() if time_t is small enough */ + if( SHOULD_USE_SYSTEM_LOCALTIME(*time) ) { + safe_time = (time_t)*time; + + TIME64_TRACE1("Using system localtime for %lld\n", *time); + + LOCALTIME_R(&safe_time, &safe_date); + + copy_tm_to_TM64(&safe_date, local_tm); + assert(check_tm(local_tm)); + + return local_tm; + } + + if( gmtime64_r(time, &gm_tm) == NULL ) { + TIME64_TRACE1("gmtime64_r returned null for %lld\n", *time); + return NULL; + } + + orig_year = gm_tm.tm_year; + + if (gm_tm.tm_year > (2037 - 1900) || + gm_tm.tm_year < (1970 - 1900) + ) + { + TIME64_TRACE1("Mapping tm_year %lld to safe_year\n", (Year)gm_tm.tm_year); + gm_tm.tm_year = safe_year((Year)(gm_tm.tm_year + 1900)) - 1900; + } + + safe_time = (time_t)timegm64(&gm_tm); + if( LOCALTIME_R(&safe_time, &safe_date) == NULL ) { + TIME64_TRACE1("localtime_r(%d) returned NULL\n", (int)safe_time); + return NULL; + } + + copy_tm_to_TM64(&safe_date, local_tm); + + local_tm->tm_year = orig_year; + if( local_tm->tm_year != orig_year ) { + TIME64_TRACE2("tm_year overflow: tm_year %lld, orig_year %lld\n", + (Year)local_tm->tm_year, (Year)orig_year); + +#ifdef EOVERFLOW + errno = EOVERFLOW; +#endif + return NULL; + } + + + month_diff = local_tm->tm_mon - gm_tm.tm_mon; + + /* When localtime is Dec 31st previous year and + gmtime is Jan 1st next year. + */ + if( month_diff == 11 ) { + local_tm->tm_year--; + } + + /* When localtime is Jan 1st, next year and + gmtime is Dec 31st, previous year. + */ + if( month_diff == -11 ) { + local_tm->tm_year++; + } + + /* GMT is Jan 1st, xx01 year, but localtime is still Dec 31st + in a non-leap xx00. There is one point in the cycle + we can't account for which the safe xx00 year is a leap + year. So we need to correct for Dec 31st comming out as + the 366th day of the year. + */ + if( !IS_LEAP(local_tm->tm_year) && local_tm->tm_yday == 365 ) + local_tm->tm_yday--; + + assert(check_tm(local_tm)); + + return local_tm; +} + + +static int valid_tm_wday( const struct TM* date ) { + if( 0 <= date->tm_wday && date->tm_wday <= 6 ) + return 1; + else + return 0; +} + +static int valid_tm_mon( const struct TM* date ) { + if( 0 <= date->tm_mon && date->tm_mon <= 11 ) + return 1; + else + return 0; +} + + +char *asctime64_r( const struct TM* date, char *result ) { + /* I figure everything else can be displayed, even hour 25, but if + these are out of range we walk off the name arrays */ + if( !valid_tm_wday(date) || !valid_tm_mon(date) ) + return NULL; + + sprintf(result, TM64_ASCTIME_FORMAT, + wday_name[date->tm_wday], + mon_name[date->tm_mon], + date->tm_mday, date->tm_hour, + date->tm_min, date->tm_sec, + 1900 + date->tm_year); + + return result; +} + + +char *ctime64_r( const Time64_T* time, char* result ) { + struct TM date; + + localtime64_r( time, &date ); + return asctime64_r( &date, result ); +} + diff --git a/lib/plist/time64.h b/lib/plist/time64.h new file mode 100755 index 0000000..bf174c6 --- /dev/null +++ b/lib/plist/time64.h @@ -0,0 +1,81 @@ +#ifndef TIME64_H +# define TIME64_H + +#include +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +/* Set our custom types */ +typedef long long Int64; +typedef Int64 Time64_T; +typedef Int64 Year; + + +/* A copy of the tm struct but with a 64 bit year */ +struct TM64 { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + Year tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; + +#ifdef HAVE_TM_TM_GMTOFF + long tm_gmtoff; +#endif + +#ifdef HAVE_TM_TM_ZONE + char *tm_zone; +#endif +}; + + +/* Decide which tm struct to use */ +#ifdef USE_TM64 +#define TM TM64 +#else +#define TM tm +#endif + + +/* Declare public functions */ +struct TM *gmtime64_r (const Time64_T *, struct TM *); +struct TM *localtime64_r (const Time64_T *, struct TM *); + +char *asctime64_r (const struct TM *, char *); + +char *ctime64_r (const Time64_T*, char*); + +Time64_T timegm64 (const struct TM *); +Time64_T mktime64 (struct TM *); +Time64_T timelocal64 (struct TM *); + + +/* Not everyone has gm/localtime_r(), provide a replacement */ +#ifdef HAVE_LOCALTIME_R +# define LOCALTIME_R(clock, result) localtime_r(clock, result) +#else +# define LOCALTIME_R(clock, result) fake_localtime_r(clock, result) +#endif +#ifdef HAVE_GMTIME_R +# define GMTIME_R(clock, result) gmtime_r(clock, result) +#else +# define GMTIME_R(clock, result) fake_gmtime_r(clock, result) +#endif + + +/* Use a different asctime format depending on how big the year is */ +#ifdef USE_TM64 + #define TM64_ASCTIME_FORMAT "%.3s %.3s%3d %.2d:%.2d:%.2d %lld\n" +#else + #define TM64_ASCTIME_FORMAT "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n" +#endif + +void copy_tm_to_TM64(const struct tm *src, struct TM *dest); +void copy_TM64_to_tm(const struct TM *src, struct tm *dest); + +#endif diff --git a/lib/plist/time64_limits.h b/lib/plist/time64_limits.h new file mode 100755 index 0000000..1151cf2 --- /dev/null +++ b/lib/plist/time64_limits.h @@ -0,0 +1,97 @@ +/* + Maximum and minimum inputs your system's respective time functions + can correctly handle. time64.h will use your system functions if + the input falls inside these ranges and corresponding USE_SYSTEM_* + constant is defined. +*/ + +#ifndef TIME64_LIMITS_H +#define TIME64_LIMITS_H + +#include + +/* Max/min for localtime() */ +#define SYSTEM_LOCALTIME_MAX 2147483647 +#define SYSTEM_LOCALTIME_MIN -2147483647-1 + +/* Max/min for gmtime() */ +#define SYSTEM_GMTIME_MAX 2147483647 +#define SYSTEM_GMTIME_MIN -2147483647-1 + +/* Max/min for mktime() */ +static const struct tm SYSTEM_MKTIME_MAX = { + 7, + 14, + 19, + 18, + 0, + 138, + 1, + 17, + 0 +#ifdef HAVE_TM_TM_GMTOFF + ,-28800 +#endif +#ifdef HAVE_TM_TM_ZONE + ,(char*)"PST" +#endif +}; + +static const struct tm SYSTEM_MKTIME_MIN = { + 52, + 45, + 12, + 13, + 11, + 1, + 5, + 346, + 0 +#ifdef HAVE_TM_TM_GMTOFF + ,-28800 +#endif +#ifdef HAVE_TM_TM_ZONE + ,(char*)"PST" +#endif +}; + +/* Max/min for timegm() */ +#ifdef HAVE_TIMEGM +static const struct tm SYSTEM_TIMEGM_MAX = { + 7, + 14, + 3, + 19, + 0, + 138, + 2, + 18, + 0 + #ifdef HAVE_TM_TM_GMTOFF + ,0 + #endif + #ifdef HAVE_TM_TM_ZONE + ,(char*)"UTC" + #endif +}; + +static const struct tm SYSTEM_TIMEGM_MIN = { + 52, + 45, + 20, + 13, + 11, + 1, + 5, + 346, + 0 + #ifdef HAVE_TM_TM_GMTOFF + ,0 + #endif + #ifdef HAVE_TM_TM_ZONE + ,(char*)"UTC" + #endif +}; +#endif /* HAVE_TIMEGM */ + +#endif /* TIME64_LIMITS_H */ diff --git a/lib/plist/xplist.c b/lib/plist/xplist.c new file mode 100755 index 0000000..639e044 --- /dev/null +++ b/lib/plist/xplist.c @@ -0,0 +1,1438 @@ +/* + * xplist.c + * XML plist implementation + * + * Copyright (c) 2010-2017 Nikias Bassen All Rights Reserved. + * Copyright (c) 2010-2015 Martin Szulecki All Rights Reserved. + * Copyright (c) 2008 Jonathan Beck All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#ifdef HAVE_STRPTIME +#define _XOPEN_SOURCE 600 +#endif + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "node.h" +#include "node_list.h" + +#include "plist.h" +#include "base64.h" +#include "strbuf.h" +#include "time64.h" + +#define XPLIST_KEY "key" +#define XPLIST_KEY_LEN 3 +#define XPLIST_FALSE "false" +#define XPLIST_FALSE_LEN 5 +#define XPLIST_TRUE "true" +#define XPLIST_TRUE_LEN 4 +#define XPLIST_INT "integer" +#define XPLIST_INT_LEN 7 +#define XPLIST_REAL "real" +#define XPLIST_REAL_LEN 4 +#define XPLIST_DATE "date" +#define XPLIST_DATE_LEN 4 +#define XPLIST_DATA "data" +#define XPLIST_DATA_LEN 4 +#define XPLIST_STRING "string" +#define XPLIST_STRING_LEN 6 +#define XPLIST_ARRAY "array" +#define XPLIST_ARRAY_LEN 5 +#define XPLIST_DICT "dict" +#define XPLIST_DICT_LEN 4 + +#define MAC_EPOCH 978307200 + +#define MAX_DATA_BYTES_PER_LINE(__i) (((76 - (__i << 3)) >> 2) * 3) + +static const char XML_PLIST_PROLOG[] = "\n\ +\n\ +\n"; +static const char XML_PLIST_EPILOG[] = "\n"; + +#ifdef DEBUG +static int plist_xml_debug = 0; +#define PLIST_XML_ERR(...) if (plist_xml_debug) { fprintf(stderr, "libplist[xmlparser] ERROR: " __VA_ARGS__); } +#else +#define PLIST_XML_ERR(...) +#endif + +void plist_xml_init(void) +{ + /* init XML stuff */ +#ifdef DEBUG + char *env_debug = getenv("PLIST_XML_DEBUG"); + if (env_debug && !strcmp(env_debug, "1")) { + plist_xml_debug = 1; + } +#endif +} + +void plist_xml_deinit(void) +{ + /* deinit XML stuff */ +} + +static size_t dtostr(char *buf, size_t bufsize, double realval) +{ + double f = realval; + double ip = 0.0; + int64_t v; + size_t len; + size_t p; + + f = modf(f, &ip); + len = snprintf(buf, bufsize, "%s%"PRIi64, ((f < 0) && (ip >= 0)) ? "-" : "", (int64_t)ip); + if (len >= bufsize) { + return 0; + } + + if (f < 0) { + f *= -1; + } + f += 0.0000004; + + p = len; + buf[p++] = '.'; + + while (p < bufsize && (p <= len+6)) { + f = modf(f*10, &ip); + v = (int)ip; + buf[p++] = (v + 0x30); + } + buf[p] = '\0'; + return p; +} + +static void node_to_xml(node_t* node, bytearray_t **outbuf, uint32_t depth) +{ + plist_data_t node_data = NULL; + + char isStruct = FALSE; + char tagOpen = FALSE; + + const char *tag = NULL; + size_t tag_len = 0; + char *val = NULL; + size_t val_len = 0; + + uint32_t i = 0; + + if (!node) + return; + + node_data = plist_get_data(node); + + switch (node_data->type) + { + case PLIST_BOOLEAN: + { + if (node_data->boolval) { + tag = XPLIST_TRUE; + tag_len = XPLIST_TRUE_LEN; + } else { + tag = XPLIST_FALSE; + tag_len = XPLIST_FALSE_LEN; + } + } + break; + + case PLIST_UINT: + tag = XPLIST_INT; + tag_len = XPLIST_INT_LEN; + val = (char*)malloc(64); + if (node_data->length == 16) { + val_len = snprintf(val, 64, "%"PRIu64, node_data->intval); + } else { + val_len = snprintf(val, 64, "%"PRIi64, node_data->intval); + } + break; + + case PLIST_REAL: + tag = XPLIST_REAL; + tag_len = XPLIST_REAL_LEN; + val = (char*)malloc(64); + val_len = dtostr(val, 64, node_data->realval); + break; + + case PLIST_STRING: + tag = XPLIST_STRING; + tag_len = XPLIST_STRING_LEN; + /* contents processed directly below */ + break; + + case PLIST_KEY: + tag = XPLIST_KEY; + tag_len = XPLIST_KEY_LEN; + /* contents processed directly below */ + break; + + case PLIST_DATA: + tag = XPLIST_DATA; + tag_len = XPLIST_DATA_LEN; + /* contents processed directly below */ + break; + case PLIST_ARRAY: + tag = XPLIST_ARRAY; + tag_len = XPLIST_ARRAY_LEN; + isStruct = (node->children) ? TRUE : FALSE; + break; + case PLIST_DICT: + tag = XPLIST_DICT; + tag_len = XPLIST_DICT_LEN; + isStruct = (node->children) ? TRUE : FALSE; + break; + case PLIST_DATE: + tag = XPLIST_DATE; + tag_len = XPLIST_DATE_LEN; + { + Time64_T timev = (Time64_T)node_data->realval + MAC_EPOCH; + struct TM _btime; + struct TM *btime = gmtime64_r(&timev, &_btime); + if (btime) { + val = (char*)malloc(24); + memset(val, 0, 24); + struct tm _tmcopy; + copy_TM64_to_tm(btime, &_tmcopy); + val_len = strftime(val, 24, "%Y-%m-%dT%H:%M:%SZ", &_tmcopy); + if (val_len <= 0) { + free (val); + val = NULL; + } + } + } + break; + case PLIST_UID: + tag = XPLIST_DICT; + tag_len = XPLIST_DICT_LEN; + val = (char*)malloc(64); + if (node_data->length == 16) { + val_len = snprintf(val, 64, "%"PRIu64, node_data->intval); + } else { + val_len = snprintf(val, 64, "%"PRIi64, node_data->intval); + } + break; + default: + break; + } + + for (i = 0; i < depth; i++) { + str_buf_append(*outbuf, "\t", 1); + } + + /* append tag */ + str_buf_append(*outbuf, "<", 1); + str_buf_append(*outbuf, tag, tag_len); + if (node_data->type == PLIST_STRING || node_data->type == PLIST_KEY) { + size_t j; + size_t len; + off_t start = 0; + off_t cur = 0; + + str_buf_append(*outbuf, ">", 1); + tagOpen = TRUE; + + /* make sure we convert the following predefined xml entities */ + /* < = < > = > & = & */ + len = node_data->length; + for (j = 0; j < len; j++) { + switch (node_data->strval[j]) { + case '<': + str_buf_append(*outbuf, node_data->strval + start, cur - start); + str_buf_append(*outbuf, "<", 4); + start = cur+1; + break; + case '>': + str_buf_append(*outbuf, node_data->strval + start, cur - start); + str_buf_append(*outbuf, ">", 4); + start = cur+1; + break; + case '&': + str_buf_append(*outbuf, node_data->strval + start, cur - start); + str_buf_append(*outbuf, "&", 5); + start = cur+1; + break; + default: + break; + } + cur++; + } + str_buf_append(*outbuf, node_data->strval + start, cur - start); + } else if (node_data->type == PLIST_DATA) { + str_buf_append(*outbuf, ">", 1); + tagOpen = TRUE; + str_buf_append(*outbuf, "\n", 1); + if (node_data->length > 0) { + uint32_t j = 0; + uint32_t indent = (depth > 8) ? 8 : depth; + uint32_t maxread = MAX_DATA_BYTES_PER_LINE(indent); + size_t count = 0; + size_t amount = (node_data->length / 3 * 4) + 4 + (((node_data->length / maxread) + 1) * (indent+1)); + if ((*outbuf)->len + amount > (*outbuf)->capacity) { + str_buf_grow(*outbuf, amount); + } + while (j < node_data->length) { + for (i = 0; i < indent; i++) { + str_buf_append(*outbuf, "\t", 1); + } + count = (node_data->length-j < maxread) ? node_data->length-j : maxread; + assert((*outbuf)->len + count < (*outbuf)->capacity); + (*outbuf)->len += base64encode((char*)(*outbuf)->data + (*outbuf)->len, node_data->buff + j, count); + str_buf_append(*outbuf, "\n", 1); + j+=count; + } + } + for (i = 0; i < depth; i++) { + str_buf_append(*outbuf, "\t", 1); + } + } else if (node_data->type == PLIST_UID) { + /* special case for UID nodes: create a DICT */ + str_buf_append(*outbuf, ">", 1); + tagOpen = TRUE; + str_buf_append(*outbuf, "\n", 1); + + /* add CF$UID key */ + for (i = 0; i < depth+1; i++) { + str_buf_append(*outbuf, "\t", 1); + } + str_buf_append(*outbuf, "CF$UID", 17); + str_buf_append(*outbuf, "\n", 1); + + /* add UID value */ + for (i = 0; i < depth+1; i++) { + str_buf_append(*outbuf, "\t", 1); + } + str_buf_append(*outbuf, "", 9); + str_buf_append(*outbuf, val, val_len); + str_buf_append(*outbuf, "", 10); + str_buf_append(*outbuf, "\n", 1); + + for (i = 0; i < depth; i++) { + str_buf_append(*outbuf, "\t", 1); + } + } else if (val) { + str_buf_append(*outbuf, ">", 1); + tagOpen = TRUE; + str_buf_append(*outbuf, val, val_len); + } else if (isStruct) { + tagOpen = TRUE; + str_buf_append(*outbuf, ">", 1); + } else { + tagOpen = FALSE; + str_buf_append(*outbuf, "/>", 2); + } + free(val); + + if (isStruct) { + /* add newline for structured types */ + str_buf_append(*outbuf, "\n", 1); + + /* add child nodes */ + if (node_data->type == PLIST_DICT && node->children) { + assert((node->children->count % 2) == 0); + } + node_t *ch; + for (ch = node_first_child(node); ch; ch = node_next_sibling(ch)) { + node_to_xml(ch, outbuf, depth+1); + } + + /* fix indent for structured types */ + for (i = 0; i < depth; i++) { + str_buf_append(*outbuf, "\t", 1); + } + } + + if (tagOpen) { + /* add closing tag */ + str_buf_append(*outbuf, "", 1); + } + str_buf_append(*outbuf, "\n", 1); + + return; +} + +static void parse_date(const char *strval, struct TM *btime) +{ + if (!btime) return; + memset(btime, 0, sizeof(struct tm)); + if (!strval) return; +#ifdef HAVE_STRPTIME + strptime((char*)strval, "%Y-%m-%dT%H:%M:%SZ", btime); +#else +#ifdef USE_TM64 + #define PLIST_SSCANF_FORMAT "%lld-%d-%dT%d:%d:%dZ" +#else + #define PLIST_SSCANF_FORMAT "%d-%d-%dT%d:%d:%dZ" +#endif + sscanf(strval, PLIST_SSCANF_FORMAT, &btime->tm_year, &btime->tm_mon, &btime->tm_mday, &btime->tm_hour, &btime->tm_min, &btime->tm_sec); + btime->tm_year-=1900; + btime->tm_mon--; +#endif + btime->tm_isdst=0; +} + +#define PO10i_LIMIT (INT64_MAX/10) + +/* based on https://stackoverflow.com/a/4143288 */ +static int num_digits_i(int64_t i) +{ + int n; + int64_t po10; + n=1; + if (i < 0) { + i = -i; + n++; + } + po10=10; + while (i>=po10) { + n++; + if (po10 > PO10i_LIMIT) break; + po10*=10; + } + return n; +} + +#define PO10u_LIMIT (UINT64_MAX/10) + +/* based on https://stackoverflow.com/a/4143288 */ +static int num_digits_u(uint64_t i) +{ + int n; + uint64_t po10; + n=1; + po10=10; + while (i>=po10) { + n++; + if (po10 > PO10u_LIMIT) break; + po10*=10; + } + return n; +} + +static void node_estimate_size(node_t *node, uint64_t *size, uint32_t depth) +{ + plist_data_t data; + if (!node) { + return; + } + data = plist_get_data(node); + if (node->children) { + node_t *ch; + for (ch = node_first_child(node); ch; ch = node_next_sibling(ch)) { + node_estimate_size(ch, size, depth + 1); + } + switch (data->type) { + case PLIST_DICT: + *size += (XPLIST_DICT_LEN << 1) + 7; + break; + case PLIST_ARRAY: + *size += (XPLIST_ARRAY_LEN << 1) + 7; + break; + default: + break; + } + *size += (depth << 1); + } else { + uint32_t indent = (depth > 8) ? 8 : depth; + switch (data->type) { + case PLIST_DATA: { + uint32_t req_lines = (data->length / MAX_DATA_BYTES_PER_LINE(indent)) + 1; + uint32_t b64len = data->length + (data->length / 3); + b64len += b64len % 4; + *size += b64len; + *size += (XPLIST_DATA_LEN << 1) + 5 + (indent+1) * (req_lines+1) + 1; + } break; + case PLIST_STRING: + *size += data->length; + *size += (XPLIST_STRING_LEN << 1) + 6; + break; + case PLIST_KEY: + *size += data->length; + *size += (XPLIST_KEY_LEN << 1) + 6; + break; + case PLIST_UINT: + if (data->length == 16) { + *size += num_digits_u(data->intval); + } else { + *size += num_digits_i((int64_t)data->intval); + } + *size += (XPLIST_INT_LEN << 1) + 6; + break; + case PLIST_REAL: + *size += num_digits_i((int64_t)data->realval) + 7; + *size += (XPLIST_REAL_LEN << 1) + 6; + break; + case PLIST_DATE: + *size += 20; /* YYYY-MM-DDThh:mm:ssZ */ + *size += (XPLIST_DATE_LEN << 1) + 6; + break; + case PLIST_BOOLEAN: + *size += ((data->boolval) ? XPLIST_TRUE_LEN : XPLIST_FALSE_LEN) + 4; + break; + case PLIST_DICT: + *size += XPLIST_DICT_LEN + 4; /* */ + break; + case PLIST_ARRAY: + *size += XPLIST_ARRAY_LEN + 4; /* */ + break; + case PLIST_UID: + *size += num_digits_i((int64_t)data->intval); + *size += (XPLIST_DICT_LEN << 1) + 7; + *size += indent + ((indent+1) << 1); + *size += 18; /* CF$UID */ + *size += (XPLIST_INT_LEN << 1) + 6; + break; + default: + break; + } + *size += indent; + } +} + +PLIST_API void plist_to_xml(plist_t plist, char **plist_xml, uint32_t * length) +{ + uint64_t size = 0; + node_estimate_size(plist, &size, 0); + size += sizeof(XML_PLIST_PROLOG) + sizeof(XML_PLIST_EPILOG) - 1; + + strbuf_t *outbuf = str_buf_new(size); + + str_buf_append(outbuf, XML_PLIST_PROLOG, sizeof(XML_PLIST_PROLOG)-1); + + node_to_xml(plist, &outbuf, 0); + + str_buf_append(outbuf, XML_PLIST_EPILOG, sizeof(XML_PLIST_EPILOG)); + + *plist_xml = outbuf->data; + *length = outbuf->len - 1; + + outbuf->data = NULL; + str_buf_free(outbuf); +} + +struct _parse_ctx { + const char *pos; + const char *end; + int err; +}; +typedef struct _parse_ctx* parse_ctx; + +static void parse_skip_ws(parse_ctx ctx) +{ + while (ctx->pos < ctx->end && ((*(ctx->pos) == ' ') || (*(ctx->pos) == '\t') || (*(ctx->pos) == '\r') || (*(ctx->pos) == '\n'))) { + ctx->pos++; + } +} + +static void find_char(parse_ctx ctx, char c, int skip_quotes) +{ + while (ctx->pos < ctx->end && (*(ctx->pos) != c)) { + if (skip_quotes && (c != '"') && (*(ctx->pos) == '"')) { + ctx->pos++; + find_char(ctx, '"', 0); + if (ctx->pos >= ctx->end) { + PLIST_XML_ERR("EOF while looking for matching double quote\n"); + return; + } + if (*(ctx->pos) != '"') { + PLIST_XML_ERR("Unmatched double quote\n"); + return; + } + } + ctx->pos++; + } +} + +static void find_str(parse_ctx ctx, const char *str, size_t len, int skip_quotes) +{ + while (ctx->pos < (ctx->end - len)) { + if (!strncmp(ctx->pos, str, len)) { + break; + } + if (skip_quotes && (*(ctx->pos) == '"')) { + ctx->pos++; + find_char(ctx, '"', 0); + if (ctx->pos >= ctx->end) { + PLIST_XML_ERR("EOF while looking for matching double quote\n"); + return; + } + if (*(ctx->pos) != '"') { + PLIST_XML_ERR("Unmatched double quote\n"); + return; + } + } + ctx->pos++; + } +} + +static void find_next(parse_ctx ctx, const char *nextchars, int numchars, int skip_quotes) +{ + int i = 0; + while (ctx->pos < ctx->end) { + if (skip_quotes && (*(ctx->pos) == '"')) { + ctx->pos++; + find_char(ctx, '"', 0); + if (ctx->pos >= ctx->end) { + PLIST_XML_ERR("EOF while looking for matching double quote\n"); + return; + } + if (*(ctx->pos) != '"') { + PLIST_XML_ERR("Unmatched double quote\n"); + return; + } + } + for (i = 0; i < numchars; i++) { + if (*(ctx->pos) == nextchars[i]) { + return; + } + } + ctx->pos++; + } +} + +typedef struct { + const char *begin; + size_t length; + int is_cdata; + void *next; +} text_part_t; + +static text_part_t* text_part_init(text_part_t* part, const char *begin, size_t length, int is_cdata) +{ + part->begin = begin; + part->length = length; + part->is_cdata = is_cdata; + part->next = NULL; + return part; +} + +static void text_parts_free(text_part_t *tp) +{ + while (tp) { + text_part_t *tmp = tp; + tp = tp->next; + free(tmp); + } +} + +static text_part_t* text_part_append(text_part_t* parts, const char *begin, size_t length, int is_cdata) +{ + text_part_t* newpart = malloc(sizeof(text_part_t)); + assert(newpart); + parts->next = text_part_init(newpart, begin, length, is_cdata); + return newpart; +} + +static text_part_t* get_text_parts(parse_ctx ctx, const char* tag, size_t tag_len, int skip_ws, text_part_t *parts) +{ + const char *p = NULL; + const char *q = NULL; + text_part_t *last = NULL; + + if (skip_ws) { + parse_skip_ws(ctx); + } + do { + p = ctx->pos; + find_char(ctx, '<', 0); + if (ctx->pos >= ctx->end || *ctx->pos != '<') { + PLIST_XML_ERR("EOF while looking for closing tag\n"); + ctx->err++; + return NULL; + } + q = ctx->pos; + ctx->pos++; + if (ctx->pos >= ctx->end) { + PLIST_XML_ERR("EOF while parsing '%s'\n", p); + ctx->err++; + return NULL; + } + if (*ctx->pos == '!') { + ctx->pos++; + if (ctx->pos >= ctx->end-1) { + PLIST_XML_ERR("EOF while parsing err++; + return NULL; + } + if (*ctx->pos == '-' && *(ctx->pos+1) == '-') { + if (last) { + last = text_part_append(last, p, q-p, 0); + } else if (parts) { + last = text_part_init(parts, p, q-p, 0); + } + ctx->pos += 2; + find_str(ctx, "-->", 3, 0); + if (ctx->pos > ctx->end-3 || strncmp(ctx->pos, "-->", 3) != 0) { + PLIST_XML_ERR("EOF while looking for end of comment\n"); + ctx->err++; + return NULL; + } + ctx->pos += 3; + } else if (*ctx->pos == '[') { + ctx->pos++; + if (ctx->pos >= ctx->end - 8) { + PLIST_XML_ERR("EOF while parsing <[ tag\n"); + ctx->err++; + return NULL; + } + if (strncmp(ctx->pos, "CDATA[", 6) == 0) { + if (q-p > 0) { + if (last) { + last = text_part_append(last, p, q-p, 0); + } else if (parts) { + last = text_part_init(parts, p, q-p, 0); + } + } + ctx->pos+=6; + p = ctx->pos; + find_str(ctx, "]]>", 3, 0); + if (ctx->pos > ctx->end-3 || strncmp(ctx->pos, "]]>", 3) != 0) { + PLIST_XML_ERR("EOF while looking for end of CDATA block\n"); + ctx->err++; + return NULL; + } + q = ctx->pos; + if (last) { + last = text_part_append(last, p, q-p, 1); + } else if (parts) { + last = text_part_init(parts, p, q-p, 1); + } + ctx->pos += 3; + } else { + p = ctx->pos; + find_next(ctx, " \r\n\t>", 5, 1); + PLIST_XML_ERR("Invalid special tag <[%.*s> encountered inside <%s> tag\n", (int)(ctx->pos - p), p, tag); + ctx->err++; + return NULL; + } + } else { + p = ctx->pos; + find_next(ctx, " \r\n\t>", 5, 1); + PLIST_XML_ERR("Invalid special tag encountered inside <%s> tag\n", (int)(ctx->pos - p), p, tag); + ctx->err++; + return NULL; + } + } else if (*ctx->pos == '/') { + break; + } else { + p = ctx->pos; + find_next(ctx, " \r\n\t>", 5, 1); + PLIST_XML_ERR("Invalid tag <%.*s> encountered inside <%s> tag\n", (int)(ctx->pos - p), p, tag); + ctx->err++; + return NULL; + } + } while (1); + ctx->pos++; + if (ctx->pos >= ctx->end-tag_len || strncmp(ctx->pos, tag, tag_len)) { + PLIST_XML_ERR("EOF or end tag mismatch\n"); + ctx->err++; + return NULL; + } + ctx->pos+=tag_len; + parse_skip_ws(ctx); + if (ctx->pos >= ctx->end) { + PLIST_XML_ERR("EOF while parsing closing tag\n"); + ctx->err++; + return NULL; + } else if (*ctx->pos != '>') { + PLIST_XML_ERR("Invalid closing tag; expected '>', found '%c'\n", *ctx->pos); + ctx->err++; + return NULL; + } + ctx->pos++; + + if (q-p > 0) { + if (last) { + last = text_part_append(last, p, q-p, 0); + } else if (parts) { + last = text_part_init(parts, p, q-p, 0); + } + } + return parts; +} + +static int unescape_entities(char *str, size_t *length) +{ + size_t i = 0; + size_t len = *length; + while (len > 0 && i < len-1) { + if (str[i] == '&') { + char *entp = str + i + 1; + while (i < len && str[i] != ';') { + i++; + } + if (i >= len) { + PLIST_XML_ERR("Invalid entity sequence encountered (missing terminating ';')\n"); + return -1; + } + if (str+i >= entp+1) { + int entlen = str+i - entp; + int bytelen = 1; + if (!strncmp(entp, "amp", 3)) { + /* the '&' is already there */ + } else if (!strncmp(entp, "apos", 4)) { + *(entp-1) = '\''; + } else if (!strncmp(entp, "quot", 4)) { + *(entp-1) = '"'; + } else if (!strncmp(entp, "lt", 2)) { + *(entp-1) = '<'; + } else if (!strncmp(entp, "gt", 2)) { + *(entp-1) = '>'; + } else if (*entp == '#') { + /* numerical character reference */ + uint64_t val = 0; + char* ep = NULL; + if (entlen > 8) { + PLIST_XML_ERR("Invalid numerical character reference encountered, sequence too long: &%.*s;\n", entlen, entp); + return -1; + } + if (*(entp+1) == 'x' || *(entp+1) == 'X') { + if (entlen < 3) { + PLIST_XML_ERR("Invalid numerical character reference encountered, sequence too short: &%.*s;\n", entlen, entp); + return -1; + } + val = strtoull(entp+2, &ep, 16); + } else { + if (entlen < 2) { + PLIST_XML_ERR("Invalid numerical character reference encountered, sequence too short: &%.*s;\n", entlen, entp); + return -1; + } + val = strtoull(entp+1, &ep, 10); + } + if (val == 0 || val > 0x10FFFF || ep-entp != entlen) { + PLIST_XML_ERR("Invalid numerical character reference found: &%.*s;\n", entlen, entp); + return -1; + } + /* convert to UTF8 */ + if (val >= 0x10000) { + /* four bytes */ + *(entp-1) = (char)(0xF0 + ((val >> 18) & 0x7)); + *(entp+0) = (char)(0x80 + ((val >> 12) & 0x3F)); + *(entp+1) = (char)(0x80 + ((val >> 6) & 0x3F)); + *(entp+2) = (char)(0x80 + (val & 0x3F)); + entp+=3; + bytelen = 4; + } else if (val >= 0x800) { + /* three bytes */ + *(entp-1) = (char)(0xE0 + ((val >> 12) & 0xF)); + *(entp+0) = (char)(0x80 + ((val >> 6) & 0x3F)); + *(entp+1) = (char)(0x80 + (val & 0x3F)); + entp+=2; + bytelen = 3; + } else if (val >= 0x80) { + /* two bytes */ + *(entp-1) = (char)(0xC0 + ((val >> 6) & 0x1F)); + *(entp+0) = (char)(0x80 + (val & 0x3F)); + entp++; + bytelen = 2; + } else { + /* one byte */ + *(entp-1) = (char)(val & 0x7F); + } + } else { + PLIST_XML_ERR("Invalid entity encountered: &%.*s;\n", entlen, entp); + return -1; + } + memmove(entp, str+i+1, len - i); + i -= entlen+1 - bytelen; + len -= entlen+2 - bytelen; + continue; + } else { + PLIST_XML_ERR("Invalid empty entity sequence &;\n"); + return -1; + } + } + i++; + } + *length = len; + return 0; +} + +static char* text_parts_get_content(text_part_t *tp, int unesc_entities, size_t *length, int *requires_free) +{ + char *str = NULL; + size_t total_length = 0; + + if (!tp) { + return NULL; + } + char *p; + if (requires_free && !tp->next) { + if (tp->is_cdata || !unesc_entities) { + *requires_free = 0; + if (length) { + *length = tp->length; + } + return (char*)tp->begin; + } + } + text_part_t *tmp = tp; + while (tp && tp->begin) { + total_length += tp->length; + tp = tp->next; + } + str = malloc(total_length + 1); + assert(str); + p = str; + tp = tmp; + while (tp && tp->begin) { + size_t len = tp->length; + strncpy(p, tp->begin, len); + p[len] = '\0'; + if (!tp->is_cdata && unesc_entities) { + if (unescape_entities(p, &len) < 0) { + free(str); + return NULL; + } + } + p += len; + tp = tp->next; + } + *p = '\0'; + if (length) { + *length = p - str; + } + if (requires_free) { + *requires_free = 1; + } + return str; +} + +static void node_from_xml(parse_ctx ctx, plist_t *plist) +{ + char *tag = NULL; + char *keyname = NULL; + plist_t subnode = NULL; + const char *p = NULL; + plist_t parent = NULL; + int has_content = 0; + + struct node_path_item { + const char *type; + void *prev; + }; + struct node_path_item* node_path = NULL; + + while (ctx->pos < ctx->end && !ctx->err) { + parse_skip_ws(ctx); + if (ctx->pos >= ctx->end) { + break; + } + if (*ctx->pos != '<') { + p = ctx->pos; + find_next(ctx, " \t\r\n", 4, 0); + PLIST_XML_ERR("Expected: opening tag, found: %.*s\n", (int)(ctx->pos - p), p); + ctx->err++; + goto err_out; + } + ctx->pos++; + if (ctx->pos >= ctx->end) { + PLIST_XML_ERR("EOF while parsing tag\n"); + ctx->err++; + goto err_out; + } + + if (*(ctx->pos) == '?') { + find_str(ctx, "?>", 2, 1); + if (ctx->pos > ctx->end-2) { + PLIST_XML_ERR("EOF while looking for err++; + goto err_out; + } + if (strncmp(ctx->pos, "?>", 2)) { + PLIST_XML_ERR("Couldn't find err++; + goto err_out; + } + ctx->pos += 2; + continue; + } else if (*(ctx->pos) == '!') { + /* comment or DTD */ + if (((ctx->end - ctx->pos) > 3) && !strncmp(ctx->pos, "!--", 3)) { + ctx->pos += 3; + find_str(ctx,"-->", 3, 0); + if (ctx->pos > ctx->end-3 || strncmp(ctx->pos, "-->", 3)) { + PLIST_XML_ERR("Couldn't find end of comment\n"); + ctx->err++; + goto err_out; + } + ctx->pos+=3; + } else if (((ctx->end - ctx->pos) > 8) && !strncmp(ctx->pos, "!DOCTYPE", 8)) { + int embedded_dtd = 0; + ctx->pos+=8; + while (ctx->pos < ctx->end) { + find_next(ctx, " \t\r\n[>", 6, 1); + if (ctx->pos >= ctx->end) { + PLIST_XML_ERR("EOF while parsing !DOCTYPE\n"); + ctx->err++; + goto err_out; + } + if (*ctx->pos == '[') { + embedded_dtd = 1; + break; + } else if (*ctx->pos == '>') { + /* end of DOCTYPE found already */ + ctx->pos++; + break; + } else { + parse_skip_ws(ctx); + } + } + if (embedded_dtd) { + find_str(ctx, "]>", 2, 1); + if (ctx->pos > ctx->end-2 || strncmp(ctx->pos, "]>", 2)) { + PLIST_XML_ERR("Couldn't find end of DOCTYPE\n"); + ctx->err++; + goto err_out; + } + ctx->pos += 2; + } + } else { + p = ctx->pos; + find_next(ctx, " \r\n\t>", 5, 1); + PLIST_XML_ERR("Invalid or incomplete special tag <%.*s> encountered\n", (int)(ctx->pos - p), p); + ctx->err++; + goto err_out; + } + continue; + } else { + int is_empty = 0; + int closing_tag = 0; + p = ctx->pos; + find_next(ctx," \r\n\t<>", 6, 0); + if (ctx->pos >= ctx->end) { + PLIST_XML_ERR("Unexpected EOF while parsing XML\n"); + ctx->err++; + goto err_out; + } + int taglen = ctx->pos - p; + tag = malloc(taglen + 1); + strncpy(tag, p, taglen); + tag[taglen] = '\0'; + if (*ctx->pos != '>') { + find_next(ctx, "<>", 2, 1); + } + if (ctx->pos >= ctx->end) { + PLIST_XML_ERR("Unexpected EOF while parsing XML\n"); + ctx->err++; + goto err_out; + } + if (*ctx->pos != '>') { + PLIST_XML_ERR("Missing '>' for tag <%s\n", tag); + ctx->err++; + goto err_out; + } + if (*(ctx->pos-1) == '/') { + int idx = ctx->pos - p - 1; + if (idx < taglen) + tag[idx] = '\0'; + is_empty = 1; + } + ctx->pos++; + if (!strcmp(tag, "plist")) { + free(tag); + tag = NULL; + has_content = 0; + + if (!node_path && *plist) { + /* we don't allow another top-level */ + break; + } + if (is_empty) { + PLIST_XML_ERR("Empty plist tag\n"); + ctx->err++; + goto err_out; + } + + struct node_path_item *path_item = malloc(sizeof(struct node_path_item)); + if (!path_item) { + PLIST_XML_ERR("out of memory when allocating node path item\n"); + ctx->err++; + goto err_out; + } + path_item->type = "plist"; + path_item->prev = node_path; + node_path = path_item; + + continue; + } else if (!strcmp(tag, "/plist")) { + if (!has_content) { + PLIST_XML_ERR("encountered empty plist tag\n"); + ctx->err++; + goto err_out; + } + if (!node_path) { + PLIST_XML_ERR("node path is empty while trying to match closing tag with opening tag\n"); + ctx->err++; + goto err_out; + } + if (strcmp(node_path->type, tag+1) != 0) { + PLIST_XML_ERR("mismatching closing tag <%s> found for opening tag <%s>\n", tag, node_path->type); + ctx->err++; + goto err_out; + } + struct node_path_item *path_item = node_path; + node_path = node_path->prev; + free(path_item); + + free(tag); + tag = NULL; + + continue; + } + + plist_data_t data = plist_new_plist_data(); + subnode = plist_new_node(data); + has_content = 1; + + if (!strcmp(tag, XPLIST_DICT)) { + data->type = PLIST_DICT; + } else if (!strcmp(tag, XPLIST_ARRAY)) { + data->type = PLIST_ARRAY; + } else if (!strcmp(tag, XPLIST_INT)) { + if (!is_empty) { + text_part_t first_part = { NULL, 0, 0, NULL }; + text_part_t *tp = get_text_parts(ctx, tag, taglen, 1, &first_part); + if (!tp) { + PLIST_XML_ERR("Could not parse text content for '%s' node\n", tag); + text_parts_free(first_part.next); + ctx->err++; + goto err_out; + } + if (tp->begin) { + int requires_free = 0; + char *str_content = text_parts_get_content(tp, 0, NULL, &requires_free); + if (!str_content) { + PLIST_XML_ERR("Could not get text content for '%s' node\n", tag); + text_parts_free(first_part.next); + ctx->err++; + goto err_out; + } + char *str = str_content; + int is_negative = 0; + if ((str[0] == '-') || (str[0] == '+')) { + if (str[0] == '-') { + is_negative = 1; + } + str++; + } + data->intval = strtoull((char*)str, NULL, 0); + if (is_negative || (data->intval <= INT64_MAX)) { + uint64_t v = data->intval; + if (is_negative) { + v = -v; + } + data->intval = v; + data->length = 8; + } else { + data->length = 16; + } + if (requires_free) { + free(str_content); + } + } else { + is_empty = 1; + } + text_parts_free(tp->next); + } + if (is_empty) { + data->intval = 0; + data->length = 8; + } + data->type = PLIST_UINT; + } else if (!strcmp(tag, XPLIST_REAL)) { + if (!is_empty) { + text_part_t first_part = { NULL, 0, 0, NULL }; + text_part_t *tp = get_text_parts(ctx, tag, taglen, 1, &first_part); + if (!tp) { + PLIST_XML_ERR("Could not parse text content for '%s' node\n", tag); + text_parts_free(first_part.next); + ctx->err++; + goto err_out; + } + if (tp->begin) { + int requires_free = 0; + char *str_content = text_parts_get_content(tp, 0, NULL, &requires_free); + if (!str_content) { + PLIST_XML_ERR("Could not get text content for '%s' node\n", tag); + text_parts_free(first_part.next); + ctx->err++; + goto err_out; + } + data->realval = atof(str_content); + if (requires_free) { + free(str_content); + } + } + text_parts_free(tp->next); + } + data->type = PLIST_REAL; + data->length = 8; + } else if (!strcmp(tag, XPLIST_TRUE)) { + if (!is_empty) { + get_text_parts(ctx, tag, taglen, 1, NULL); + } + data->type = PLIST_BOOLEAN; + data->boolval = 1; + data->length = 1; + } else if (!strcmp(tag, XPLIST_FALSE)) { + if (!is_empty) { + get_text_parts(ctx, tag, taglen, 1, NULL); + } + data->type = PLIST_BOOLEAN; + data->boolval = 0; + data->length = 1; + } else if (!strcmp(tag, XPLIST_STRING) || !strcmp(tag, XPLIST_KEY)) { + if (!is_empty) { + text_part_t first_part = { NULL, 0, 0, NULL }; + text_part_t *tp = get_text_parts(ctx, tag, taglen, 0, &first_part); + char *str = NULL; + size_t length = 0; + if (!tp) { + PLIST_XML_ERR("Could not parse text content for '%s' node\n", tag); + text_parts_free(first_part.next); + ctx->err++; + goto err_out; + } + str = text_parts_get_content(tp, 1, &length, NULL); + text_parts_free(first_part.next); + if (!str) { + PLIST_XML_ERR("Could not get text content for '%s' node\n", tag); + ctx->err++; + goto err_out; + } + if (!strcmp(tag, "key") && !keyname && parent && (plist_get_node_type(parent) == PLIST_DICT)) { + keyname = str; + free(tag); + tag = NULL; + plist_free(subnode); + subnode = NULL; + continue; + } else { + data->strval = str; + data->length = length; + } + } else { + data->strval = strdup(""); + data->length = 0; + } + data->type = PLIST_STRING; + } else if (!strcmp(tag, XPLIST_DATA)) { + if (!is_empty) { + text_part_t first_part = { NULL, 0, 0, NULL }; + text_part_t *tp = get_text_parts(ctx, tag, taglen, 1, &first_part); + if (!tp) { + PLIST_XML_ERR("Could not parse text content for '%s' node\n", tag); + text_parts_free(first_part.next); + ctx->err++; + goto err_out; + } + if (tp->begin) { + int requires_free = 0; + char *str_content = text_parts_get_content(tp, 0, NULL, &requires_free); + if (!str_content) { + PLIST_XML_ERR("Could not get text content for '%s' node\n", tag); + text_parts_free(first_part.next); + ctx->err++; + goto err_out; + } + size_t size = tp->length; + if (size > 0) { + data->buff = base64decode(str_content, &size); + data->length = size; + } + + if (requires_free) { + free(str_content); + } + } + text_parts_free(tp->next); + } + data->type = PLIST_DATA; + } else if (!strcmp(tag, XPLIST_DATE)) { + if (!is_empty) { + text_part_t first_part = { NULL, 0, 0, NULL }; + text_part_t *tp = get_text_parts(ctx, tag, taglen, 1, &first_part); + if (!tp) { + PLIST_XML_ERR("Could not parse text content for '%s' node\n", tag); + text_parts_free(first_part.next); + ctx->err++; + goto err_out; + } + Time64_T timev = 0; + if (tp->begin) { + int requires_free = 0; + size_t length = 0; + char *str_content = text_parts_get_content(tp, 0, &length, &requires_free); + if (!str_content) { + PLIST_XML_ERR("Could not get text content for '%s' node\n", tag); + text_parts_free(first_part.next); + ctx->err++; + goto err_out; + } + + if ((length >= 11) && (length < 32)) { + /* we need to copy here and 0-terminate because sscanf will read the entire string (whole rest of XML data) which can be huge */ + char strval[32]; + struct TM btime; + strncpy(strval, str_content, length); + strval[tp->length] = '\0'; + parse_date(strval, &btime); + timev = timegm64(&btime); + } else { + PLIST_XML_ERR("Invalid text content in date node\n"); + } + if (requires_free) { + free(str_content); + } + } + text_parts_free(tp->next); + data->realval = (double)(timev - MAC_EPOCH); + } + data->length = sizeof(double); + data->type = PLIST_DATE; + } else if (tag[0] == '/') { + closing_tag = 1; + } else { + PLIST_XML_ERR("Unexpected tag <%s%s> encountered\n", tag, (is_empty) ? "/" : ""); + ctx->pos = ctx->end; + ctx->err++; + goto err_out; + } + if (subnode && !closing_tag) { + if (!*plist) { + /* first node, make this node the parent node */ + *plist = subnode; + if (data->type != PLIST_DICT && data->type != PLIST_ARRAY) { + /* if the first node is not a structered node, we're done */ + subnode = NULL; + goto err_out; + } + parent = subnode; + } else if (parent) { + switch (plist_get_node_type(parent)) { + case PLIST_DICT: + if (!keyname) { + PLIST_XML_ERR("missing key name while adding dict item\n"); + ctx->err++; + goto err_out; + } + plist_dict_set_item(parent, keyname, subnode); + break; + case PLIST_ARRAY: + plist_array_append_item(parent, subnode); + break; + default: + /* should not happen */ + PLIST_XML_ERR("parent is not a structured node\n"); + ctx->err++; + goto err_out; + } + } + if (!is_empty && (data->type == PLIST_DICT || data->type == PLIST_ARRAY)) { + struct node_path_item *path_item = malloc(sizeof(struct node_path_item)); + if (!path_item) { + PLIST_XML_ERR("out of memory when allocating node path item\n"); + ctx->err++; + goto err_out; + } + path_item->type = (data->type == PLIST_DICT) ? XPLIST_DICT : XPLIST_ARRAY; + path_item->prev = node_path; + node_path = path_item; + + parent = subnode; + } + subnode = NULL; + } else if (closing_tag) { + if (!node_path) { + PLIST_XML_ERR("node path is empty while trying to match closing tag with opening tag\n"); + ctx->err++; + goto err_out; + } + if (strcmp(node_path->type, tag+1) != 0) { + PLIST_XML_ERR("unexpected %s found (for opening %s)\n", tag, node_path->type); + ctx->err++; + goto err_out; + } + struct node_path_item *path_item = node_path; + node_path = node_path->prev; + free(path_item); + + parent = ((node_t*)parent)->parent; + if (!parent) { + goto err_out; + } + } + + free(tag); + tag = NULL; + free(keyname); + keyname = NULL; + plist_free(subnode); + subnode = NULL; + } + } + + if (node_path) { + PLIST_XML_ERR("EOF encountered while was expected\n", node_path->type); + ctx->err++; + } + +err_out: + free(tag); + free(keyname); + plist_free(subnode); + + /* clean up node_path if required */ + while (node_path) { + struct node_path_item *path_item = node_path; + node_path = path_item->prev; + free(path_item); + } + + if (ctx->err) { + plist_free(*plist); + *plist = NULL; + } +} + +PLIST_API void plist_from_xml(const char *plist_xml, uint32_t length, plist_t * plist) +{ + if (!plist_xml || (length == 0)) { + *plist = NULL; + return; + } + + struct _parse_ctx ctx = { plist_xml, plist_xml + length, 0 }; + + node_from_xml(&ctx, plist); +} diff --git a/lib/raop.c b/lib/raop.c new file mode 100755 index 0000000..4523a2c --- /dev/null +++ b/lib/raop.c @@ -0,0 +1,380 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include +#include +#include +#include + +#include "raop.h" +#include "raop_rtp.h" +#include "raop_rtp.h" +#include "pairing.h" +#include "httpd.h" + +#include "global.h" +#include "fairplay.h" +#include "netutils.h" +#include "logger.h" +#include "compat.h" +#include "raop_rtp_mirror.h" +#include "raop_ntp.h" + +struct raop_s { + /* Callbacks for audio and video */ + raop_callbacks_t callbacks; + + /* Logger instance */ + logger_t *logger; + + /* Pairing, HTTP daemon and RSA key */ + pairing_t *pairing; + httpd_t *httpd; + + dnssd_t *dnssd; + + unsigned short port; +}; + +struct raop_conn_s { + raop_t *raop; + raop_ntp_t *raop_ntp; + raop_rtp_t *raop_rtp; + raop_rtp_mirror_t *raop_rtp_mirror; + fairplay_t *fairplay; + pairing_session_t *pairing; + + unsigned char *local; + int locallen; + + unsigned char *remote; + int remotelen; + +}; +typedef struct raop_conn_s raop_conn_t; + +#include "raop_handlers.h" + +static void * +conn_init(void *opaque, unsigned char *local, int locallen, unsigned char *remote, int remotelen) { + raop_t *raop = opaque; + raop_conn_t *conn; + + assert(raop); + + conn = calloc(1, sizeof(raop_conn_t)); + if (!conn) { + return NULL; + } + conn->raop = raop; + conn->raop_rtp = NULL; + conn->raop_ntp = NULL; + conn->fairplay = fairplay_init(raop->logger); + + if (!conn->fairplay) { + free(conn); + return NULL; + } + conn->pairing = pairing_session_init(raop->pairing); + if (!conn->pairing) { + fairplay_destroy(conn->fairplay); + free(conn); + return NULL; + } + + if (locallen == 4) { + logger_log(conn->raop->logger, LOGGER_INFO, + "Local: %d.%d.%d.%d", + local[0], local[1], local[2], local[3]); + } else if (locallen == 16) { + logger_log(conn->raop->logger, LOGGER_INFO, + "Local: %02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x", + local[0], local[1], local[2], local[3], local[4], local[5], local[6], local[7], + local[8], local[9], local[10], local[11], local[12], local[13], local[14], local[15]); + } + if (remotelen == 4) { + logger_log(conn->raop->logger, LOGGER_INFO, + "Remote: %d.%d.%d.%d", + remote[0], remote[1], remote[2], remote[3]); + } else if (remotelen == 16) { + logger_log(conn->raop->logger, LOGGER_INFO, + "Remote: %02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x", + remote[0], remote[1], remote[2], remote[3], remote[4], remote[5], remote[6], remote[7], + remote[8], remote[9], remote[10], remote[11], remote[12], remote[13], remote[14], remote[15]); + } + + conn->local = malloc(locallen); + assert(conn->local); + memcpy(conn->local, local, locallen); + + conn->remote = malloc(remotelen); + assert(conn->remote); + memcpy(conn->remote, remote, remotelen); + + conn->locallen = locallen; + conn->remotelen = remotelen; + + if (raop->callbacks.conn_init) { + raop->callbacks.conn_init(raop->callbacks.cls); + } + + return conn; +} + +static void +conn_request(void *ptr, http_request_t *request, http_response_t **response) { + raop_conn_t *conn = ptr; + logger_log(conn->raop->logger, LOGGER_DEBUG, "conn_request"); + const char *method; + const char *url; + const char *cseq; + + char *response_data = NULL; + int response_datalen = 0; + + method = http_request_get_method(request); + url = http_request_get_url(request); + cseq = http_request_get_header(request, "CSeq"); + if (!method || !cseq) { + return; + } + + *response = http_response_init("RTSP/1.0", 200, "OK"); + + http_response_add_header(*response, "CSeq", cseq); + //http_response_add_header(*response, "Apple-Jack-Status", "connected; type=analog"); + http_response_add_header(*response, "Server", "AirTunes/220.68"); + + logger_log(conn->raop->logger, LOGGER_DEBUG, "Handling request %s with URL %s", method, url); + raop_handler_t handler = NULL; + if (!strcmp(method, "GET") && !strcmp(url, "/info")) { + handler = &raop_handler_info; + } else if (!strcmp(method, "POST") && !strcmp(url, "/pair-setup")) { + handler = &raop_handler_pairsetup; + } else if (!strcmp(method, "POST") && !strcmp(url, "/pair-verify")) { + handler = &raop_handler_pairverify; + } else if (!strcmp(method, "POST") && !strcmp(url, "/fp-setup")) { + handler = &raop_handler_fpsetup; + } else if (!strcmp(method, "OPTIONS")) { + handler = &raop_handler_options; + } else if (!strcmp(method, "SETUP")) { + handler = &raop_handler_setup; + } else if (!strcmp(method, "GET_PARAMETER")) { + handler = &raop_handler_get_parameter; + } else if (!strcmp(method, "SET_PARAMETER")) { + handler = &raop_handler_set_parameter; + } else if (!strcmp(method, "POST") && !strcmp(url, "/feedback")) { + handler = &raop_handler_feedback; + } else if (!strcmp(method, "RECORD")) { + handler = &raop_handler_record; + } else if (!strcmp(method, "FLUSH")) { + const char *rtpinfo; + int next_seq = -1; + + rtpinfo = http_request_get_header(request, "RTP-Info"); + if (rtpinfo) { + logger_log(conn->raop->logger, LOGGER_DEBUG, "Flush with RTP-Info: %s", rtpinfo); + if (!strncmp(rtpinfo, "seq=", 4)) { + next_seq = strtol(rtpinfo + 4, NULL, 10); + } + } + if (conn->raop_rtp) { + raop_rtp_flush(conn->raop_rtp, next_seq); + } else { + logger_log(conn->raop->logger, LOGGER_WARNING, "RAOP not initialized at FLUSH"); + } + } else if (!strcmp(method, "TEARDOWN")) { + //http_response_add_header(*response, "Connection", "close"); + if (conn->raop_rtp != NULL && raop_rtp_is_running(conn->raop_rtp)) { + /* Destroy our RTP session */ + raop_rtp_stop(conn->raop_rtp); + } else if (conn->raop_rtp_mirror) { + /* Destroy our sessions */ + raop_rtp_destroy(conn->raop_rtp); + conn->raop_rtp = NULL; + raop_rtp_mirror_destroy(conn->raop_rtp_mirror); + conn->raop_rtp_mirror = NULL; + } + } + if (handler != NULL) { + handler(conn, request, *response, &response_data, &response_datalen); + } + http_response_finish(*response, response_data, response_datalen); + if (response_data) { + free(response_data); + response_data = NULL; + response_datalen = 0; + } +} + +static void +conn_destroy(void *ptr) { + raop_conn_t *conn = ptr; + + logger_log(conn->raop->logger, LOGGER_INFO, "Destroying connection"); + + if (conn->raop->callbacks.conn_destroy) { + conn->raop->callbacks.conn_destroy(conn->raop->callbacks.cls); + } + + if (conn->raop_ntp) { + raop_ntp_destroy(conn->raop_ntp); + } + if (conn->raop_rtp) { + /* This is done in case TEARDOWN was not called */ + raop_rtp_destroy(conn->raop_rtp); + } + if (conn->raop_rtp_mirror) { + /* This is done in case TEARDOWN was not called */ + raop_rtp_mirror_destroy(conn->raop_rtp_mirror); + } + + conn->raop->callbacks.video_flush(conn->raop->callbacks.cls); + + free(conn->local); + free(conn->remote); + pairing_session_destroy(conn->pairing); + fairplay_destroy(conn->fairplay); + free(conn); +} + +raop_t * +raop_init(int max_clients, raop_callbacks_t *callbacks) { + raop_t *raop; + pairing_t *pairing; + httpd_t *httpd; + httpd_callbacks_t httpd_cbs; + + assert(callbacks); + assert(max_clients > 0); + assert(max_clients < 100); + + /* Initialize the network */ + if (netutils_init() < 0) { + return NULL; + } + + /* Validate the callbacks structure */ + if (!callbacks->audio_process || + !callbacks->video_process) { + return NULL; + } + + /* Allocate the raop_t structure */ + raop = calloc(1, sizeof(raop_t)); + if (!raop) { + return NULL; + } + + /* Initialize the logger */ + raop->logger = logger_init(); + pairing = pairing_init_generate(); + if (!pairing) { + free(raop); + return NULL; + } + + /* Set HTTP callbacks to our handlers */ + memset(&httpd_cbs, 0, sizeof(httpd_cbs)); + httpd_cbs.opaque = raop; + httpd_cbs.conn_init = &conn_init; + httpd_cbs.conn_request = &conn_request; + httpd_cbs.conn_destroy = &conn_destroy; + + /* Initialize the http daemon */ + httpd = httpd_init(raop->logger, &httpd_cbs, max_clients); + if (!httpd) { + pairing_destroy(pairing); + free(raop); + return NULL; + } + /* Copy callbacks structure */ + memcpy(&raop->callbacks, callbacks, sizeof(raop_callbacks_t)); + raop->pairing = pairing; + raop->httpd = httpd; + return raop; +} + +void +raop_destroy(raop_t *raop) { + if (raop) { + raop_stop(raop); + pairing_destroy(raop->pairing); + httpd_destroy(raop->httpd); + logger_destroy(raop->logger); + free(raop); + + /* Cleanup the network */ + netutils_cleanup(); + } +} + +int +raop_is_running(raop_t *raop) { + assert(raop); + + return httpd_is_running(raop->httpd); +} + +void +raop_set_log_level(raop_t *raop, int level) { + assert(raop); + + logger_set_level(raop->logger, level); +} + +void +raop_set_port(raop_t *raop, unsigned short port) { + assert(raop); + raop->port = port; +} + +unsigned short +raop_get_port(raop_t *raop) { + assert(raop); + return raop->port; +} + +void * +raop_get_callback_cls(raop_t *raop) { + assert(raop); + return raop->callbacks.cls; +} + +void +raop_set_log_callback(raop_t *raop, raop_log_callback_t callback, void *cls) { + assert(raop); + + logger_set_callback(raop->logger, callback, cls); +} + +void +raop_set_dnssd(raop_t *raop, dnssd_t *dnssd) { + assert(dnssd); + raop->dnssd = dnssd; +} + + +int +raop_start(raop_t *raop, unsigned short *port) { + assert(raop); + assert(port); + return httpd_start(raop->httpd, port); +} + +void +raop_stop(raop_t *raop) { + assert(raop); + httpd_stop(raop->httpd); +} \ No newline at end of file diff --git a/lib/raop.h b/lib/raop.h new file mode 100755 index 0000000..cfd703e --- /dev/null +++ b/lib/raop.h @@ -0,0 +1,69 @@ +#ifndef RAOP_H +#define RAOP_H + +#include "dnssd.h" +#include "stream.h" +#include "raop_ntp.h" + +#if defined (WIN32) && defined(DLL_EXPORT) +# define RAOP_API __declspec(dllexport) +#else +# define RAOP_API +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Define syslog style log levels */ +#define RAOP_LOG_EMERG 0 /* system is unusable */ +#define RAOP_LOG_ALERT 1 /* action must be taken immediately */ +#define RAOP_LOG_CRIT 2 /* critical conditions */ +#define RAOP_LOG_ERR 3 /* error conditions */ +#define RAOP_LOG_WARNING 4 /* warning conditions */ +#define RAOP_LOG_NOTICE 5 /* normal but significant condition */ +#define RAOP_LOG_INFO 6 /* informational */ +#define RAOP_LOG_DEBUG 7 /* debug-level messages */ + + +typedef struct raop_s raop_t; + +typedef void (*raop_log_callback_t)(void *cls, int level, const char *msg); + +struct raop_callbacks_s { + void* cls; + + void (*audio_process)(void *cls, raop_ntp_t *ntp, aac_decode_struct *data); + void (*video_process)(void *cls, raop_ntp_t *ntp, h264_decode_struct *data); + + /* Optional but recommended callback functions */ + void (*conn_init)(void *cls); + void (*conn_destroy)(void *cls); + void (*audio_flush)(void *cls); + void (*video_flush)(void *cls); + void (*audio_set_volume)(void *cls, float volume); + void (*audio_set_metadata)(void *cls, const void *buffer, int buflen); + void (*audio_set_coverart)(void *cls, const void *buffer, int buflen); + void (*audio_remote_control_id)(void *cls, const char *dacp_id, const char *active_remote_header); + void (*audio_set_progress)(void *cls, unsigned int start, unsigned int curr, unsigned int end); +}; +typedef struct raop_callbacks_s raop_callbacks_t; + +RAOP_API raop_t *raop_init(int max_clients, raop_callbacks_t *callbacks); + +RAOP_API void raop_set_log_level(raop_t *raop, int level); +RAOP_API void raop_set_log_callback(raop_t *raop, raop_log_callback_t callback, void *cls); +RAOP_API void raop_set_port(raop_t *raop, unsigned short port); +RAOP_API unsigned short raop_get_port(raop_t *raop); +RAOP_API void *raop_get_callback_cls(raop_t *raop); +RAOP_API int raop_start(raop_t *raop, unsigned short *port); +RAOP_API int raop_is_running(raop_t *raop); +RAOP_API void raop_stop(raop_t *raop); +RAOP_API void raop_set_dnssd(raop_t *raop, dnssd_t *dnssd); +RAOP_API void raop_destroy(raop_t *raop); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/lib/raop_buffer.c b/lib/raop_buffer.c new file mode 100755 index 0000000..1352e93 --- /dev/null +++ b/lib/raop_buffer.c @@ -0,0 +1,332 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "raop_buffer.h" +#include "raop_rtp.h" + +#include "crypto.h" +#include "compat.h" +#include "stream.h" + +#define RAOP_BUFFER_LENGTH 32 + +typedef struct { + /* Data available */ + int filled; + + /* RTP header */ + unsigned short seqnum; + uint64_t timestamp; + + /* Payload data */ + unsigned int payload_size; + void *payload_data; +} raop_buffer_entry_t; + +struct raop_buffer_s { + logger_t *logger; + /* Key and IV used for decryption */ + unsigned char aeskey[RAOP_AESKEY_LEN]; + unsigned char aesiv[RAOP_AESIV_LEN]; + + /* First and last seqnum */ + int is_empty; + unsigned short first_seqnum; + unsigned short last_seqnum; + + /* RTP buffer entries */ + raop_buffer_entry_t entries[RAOP_BUFFER_LENGTH]; +}; + +void +raop_buffer_init_key_iv(raop_buffer_t *raop_buffer, + const unsigned char *aeskey, + const unsigned char *aesiv, + const unsigned char *ecdh_secret) +{ + + // Initialization key + unsigned char eaeskey[64]; + memcpy(eaeskey, aeskey, 16); + + sha_ctx_t *ctx = sha_init(); + sha_update(ctx, eaeskey, 16); + sha_update(ctx, ecdh_secret, 32); + sha_final(ctx, eaeskey, NULL); + sha_destroy(ctx); + + memcpy(raop_buffer->aeskey, eaeskey, 16); + memcpy(raop_buffer->aesiv, aesiv, RAOP_AESIV_LEN); + +#ifdef DUMP_AUDIO + if (file_keyiv != NULL) { + fwrite(raop_buffer->aeskey, 16, 1, file_keyiv); + fwrite(raop_buffer->aesiv, 16, 1, file_keyiv); + fclose(file_keyiv); + } +#endif +} + +raop_buffer_t * +raop_buffer_init(logger_t *logger, + const unsigned char *aeskey, + const unsigned char *aesiv, + const unsigned char *ecdh_secret) +{ + raop_buffer_t *raop_buffer; + assert(aeskey); + assert(aesiv); + assert(ecdh_secret); + raop_buffer = calloc(1, sizeof(raop_buffer_t)); + if (!raop_buffer) { + return NULL; + } + raop_buffer->logger = logger; + raop_buffer_init_key_iv(raop_buffer, aeskey, aesiv, ecdh_secret); + + for (int i = 0; i < RAOP_BUFFER_LENGTH; i++) { + raop_buffer_entry_t *entry = &raop_buffer->entries[i]; + entry->payload_data = NULL; + entry->payload_size = 0; + } + + raop_buffer->is_empty = 1; + + return raop_buffer; +} + +void +raop_buffer_destroy(raop_buffer_t *raop_buffer) +{ + for (int i = 0; i < RAOP_BUFFER_LENGTH; i++) { + raop_buffer_entry_t *entry = &raop_buffer->entries[i]; + if (entry->payload_data != NULL) { + free(entry->payload_data); + } + } + + if (raop_buffer) { + free(raop_buffer); + } + +#ifdef DUMP_AUDIO + if (file_aac != NULL) { + fclose(file_aac); + } + if (file_source != NULL) { + fclose(file_source); + } +#endif + +} + +static short +seqnum_cmp(unsigned short s1, unsigned short s2) +{ + return (s1 - s2); +} + +//#define DUMP_AUDIO + +#ifdef DUMP_AUDIO +static FILE* file_aac = NULL; +static FILE* file_source = NULL; +static FILE* file_keyiv = NULL; +#endif + + +int +raop_buffer_decrypt(raop_buffer_t *raop_buffer, unsigned char *data, unsigned char* output, unsigned int payload_size, unsigned int *outputlen) +{ + assert(raop_buffer); + int encryptedlen; +#ifdef DUMP_AUDIO + if (file_aac == NULL) { + file_aac = fopen("/home/pi/Airplay.aac", "wb"); + file_source = fopen("/home/pi/Airplay.source", "wb"); + file_keyiv = fopen("/home/pi/Airplay.keyiv", "wb"); + } + // Undecrypted file + if (file_source != NULL) { + fwrite(&data[12], payloadsize, 1, file_source); + } +#endif + + encryptedlen = payload_size / 16*16; + memset(output, 0, payload_size); + // Need to be initialized internally + aes_ctx_t *aes_ctx_audio = aes_cbc_init(raop_buffer->aeskey, raop_buffer->aesiv, AES_DECRYPT); + aes_cbc_decrypt(aes_ctx_audio, &data[12], output, encryptedlen); + aes_cbc_destroy(aes_ctx_audio); + + memcpy(output + encryptedlen, &data[12 + encryptedlen], payload_size - encryptedlen); + *outputlen = payload_size; + +#ifdef DUMP_AUDIO + // Decrypted file + if (file_aac != NULL) { + fwrite(output, payloadsize, 1, file_aac); + } +#endif + + return 1; +} + +int +raop_buffer_enqueue(raop_buffer_t *raop_buffer, unsigned char *data, unsigned short datalen, uint64_t timestamp, int use_seqnum) { + assert(raop_buffer); + + /* Check packet data length is valid */ + if (datalen < 12 || datalen > RAOP_PACKET_LEN) { + return -1; + } + if (datalen == 16 && data[12] == 0x0 && data[13] == 0x68 && data[14] == 0x34 && data[15] == 0x0) { + return 0; + } + int payload_size = datalen - 12; + + /* Get correct seqnum for the packet */ + unsigned short seqnum; + if (use_seqnum) { + seqnum = (data[2] << 8) | data[3]; + } else { + seqnum = raop_buffer->first_seqnum; + } + + /* If this packet is too late, just skip it */ + if (!raop_buffer->is_empty && seqnum_cmp(seqnum, raop_buffer->first_seqnum) < 0) { + return 0; + } + + /* Check that there is always space in the buffer, otherwise flush */ + if (seqnum_cmp(seqnum, raop_buffer->first_seqnum + RAOP_BUFFER_LENGTH) >= 0) { + raop_buffer_flush(raop_buffer, seqnum); + } + + /* Get entry corresponding our seqnum */ + raop_buffer_entry_t *entry = &raop_buffer->entries[seqnum % RAOP_BUFFER_LENGTH]; + if (entry->filled && seqnum_cmp(entry->seqnum, seqnum) == 0) { + /* Packet resend, we can safely ignore */ + return 0; + } + + /* Update the raop_buffer entry header */ + entry->seqnum = seqnum; + entry->timestamp = timestamp; + entry->filled = 1; + + entry->payload_data = malloc(payload_size); + int decrypt_ret = raop_buffer_decrypt(raop_buffer, data, entry->payload_data, payload_size, &entry->payload_size); + assert(decrypt_ret >= 0); + assert(entry->payload_size <= payload_size); + + /* Update the raop_buffer seqnums */ + if (raop_buffer->is_empty) { + raop_buffer->first_seqnum = seqnum; + raop_buffer->last_seqnum = seqnum; + raop_buffer->is_empty = 0; + } + if (seqnum_cmp(seqnum, raop_buffer->last_seqnum) > 0) { + raop_buffer->last_seqnum = seqnum; + } + return 1; +} + +void * +raop_buffer_dequeue(raop_buffer_t *raop_buffer, unsigned int *length, uint64_t *timestamp, int no_resend) { + assert(raop_buffer); + + /* Calculate number of entries in the current buffer */ + short entry_count = seqnum_cmp(raop_buffer->last_seqnum, raop_buffer->first_seqnum)+1; + + /* Cannot dequeue from empty buffer */ + if (raop_buffer->is_empty || entry_count <= 0) { + return NULL; + } + + /* Get the first buffer entry for inspection */ + raop_buffer_entry_t *entry = &raop_buffer->entries[raop_buffer->first_seqnum % RAOP_BUFFER_LENGTH]; + if (no_resend) { + /* If we do no resends, always return the first entry */ + } else if (!entry->filled) { + /* Check how much we have space left in the buffer */ + if (entry_count < RAOP_BUFFER_LENGTH) { + /* Return nothing and hope resend gets on time */ + return NULL; + } + /* Risk of buffer overrun, return empty buffer */ + } + + /* Update buffer and validate entry */ + raop_buffer->first_seqnum += 1; + if (!entry->filled) { + return NULL; + } + entry->filled = 0; + + /* Return entry payload buffer */ + *timestamp = entry->timestamp; + *length = entry->payload_size; + entry->payload_size = 0; + void* data = entry->payload_data; + entry->payload_data = NULL; + return data; +} + +void raop_buffer_handle_resends(raop_buffer_t *raop_buffer, raop_resend_cb_t resend_cb, void *opaque) { + assert(raop_buffer); + assert(resend_cb); + + if (seqnum_cmp(raop_buffer->first_seqnum, raop_buffer->last_seqnum) < 0) { + int seqnum, count; + + for (seqnum = raop_buffer->first_seqnum; seqnum_cmp(seqnum, raop_buffer->last_seqnum) < 0; seqnum++) { + raop_buffer_entry_t *entry = &raop_buffer->entries[seqnum % RAOP_BUFFER_LENGTH]; + if (entry->filled) { + break; + } + } + if (seqnum_cmp(seqnum, raop_buffer->first_seqnum) == 0) { + return; + } + count = seqnum_cmp(seqnum, raop_buffer->first_seqnum); + resend_cb(opaque, raop_buffer->first_seqnum, count); + } +} + +void raop_buffer_flush(raop_buffer_t *raop_buffer, int next_seq) { + assert(raop_buffer); + + for (int i = 0; i < RAOP_BUFFER_LENGTH; i++) { + if (raop_buffer->entries[i].payload_data) { + free(raop_buffer->entries[i].payload_data); + raop_buffer->entries[i].payload_size = 0; + } + raop_buffer->entries[i].filled = 0; + } + if (next_seq < 0 || next_seq > 0xffff) { + raop_buffer->is_empty = 1; + } else { + raop_buffer->first_seqnum = next_seq; + raop_buffer->last_seqnum = next_seq - 1; + } +} diff --git a/lib/raop_buffer.h b/lib/raop_buffer.h new file mode 100755 index 0000000..b03ed5d --- /dev/null +++ b/lib/raop_buffer.h @@ -0,0 +1,38 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef RAOP_BUFFER_H +#define RAOP_BUFFER_H + +#include "logger.h" +#include "raop_rtp.h" + +typedef struct raop_buffer_s raop_buffer_t; + +typedef int (*raop_resend_cb_t)(void *opaque, unsigned short seqno, unsigned short count); + +raop_buffer_t *raop_buffer_init(logger_t *logger, + const unsigned char *aeskey, + const unsigned char *aesiv, + const unsigned char *ecdh_secret); +int raop_buffer_enqueue(raop_buffer_t *raop_buffer, unsigned char *data, unsigned short datalen, uint64_t timestamp, int use_seqnum); +void *raop_buffer_dequeue(raop_buffer_t *raop_buffer, unsigned int *length, uint64_t *timestamp, int no_resend); +void raop_buffer_handle_resends(raop_buffer_t *raop_buffer, raop_resend_cb_t resend_cb, void *opaque); +void raop_buffer_flush(raop_buffer_t *raop_buffer, int next_seq); + +int raop_buffer_decrypt(raop_buffer_t *raop_buffer, unsigned char *data, unsigned char* output, + unsigned int datalen, unsigned int *outputlen); +void raop_buffer_destroy(raop_buffer_t *raop_buffer); + +#endif diff --git a/lib/raop_handlers.h b/lib/raop_handlers.h new file mode 100755 index 0000000..16214e1 --- /dev/null +++ b/lib/raop_handlers.h @@ -0,0 +1,574 @@ +/** + * Copyright (C) 2018 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +/* This file should be only included from raop.c as it defines static handler + * functions and depends on raop internals */ + +#include "plist/plist/plist.h" +#include "dnssdint.h" +#include "utils.h" +#include +#include + +typedef void (*raop_handler_t)(raop_conn_t *, http_request_t *, + http_response_t *, char **, int *); + +static void +raop_handler_info(raop_conn_t *conn, + http_request_t *request, http_response_t *response, + char **response_data, int *response_datalen) +{ + assert(conn->raop->dnssd); + + int airplay_txt_len = 0; + const char *airplay_txt = dnssd_get_airplay_txt(conn->raop->dnssd, &airplay_txt_len); + + int name_len = 0; + const char *name = dnssd_get_name(conn->raop->dnssd, &name_len); + + int hw_addr_raw_len = 0; + const char *hw_addr_raw = dnssd_get_hw_addr(conn->raop->dnssd, &hw_addr_raw_len); + + char *hw_addr = calloc(1, 3 * hw_addr_raw_len); + int hw_addr_len = utils_hwaddr_airplay(hw_addr, 3 * hw_addr_raw_len, hw_addr_raw, hw_addr_raw_len); + + int pk_len = 0; + char *pk = utils_parse_hex(AIRPLAY_PK, strlen(AIRPLAY_PK), &pk_len); + + plist_t r_node = plist_new_dict(); + + plist_t txt_airplay_node = plist_new_data(airplay_txt, airplay_txt_len); + plist_dict_set_item(r_node, "txtAirPlay", txt_airplay_node); + + plist_t features_node = plist_new_uint((uint64_t) 0x1E << 32 | 0x5A7FFFF7); + plist_dict_set_item(r_node, "features", features_node); + + plist_t name_node = plist_new_string(name); + plist_dict_set_item(r_node, "name", name_node); + + plist_t audio_formats_node = plist_new_array(); + plist_t audio_format_0_node = plist_new_dict(); + plist_t audio_format_0_type_node = plist_new_uint(100); + plist_t audio_format_0_audio_input_formats_node = plist_new_uint(67108860); + plist_t audio_format_0_audio_output_formats_node = plist_new_uint(67108860); + plist_dict_set_item(audio_format_0_node, "type", audio_format_0_type_node); + plist_dict_set_item(audio_format_0_node, "audioInputFormats", audio_format_0_audio_input_formats_node); + plist_dict_set_item(audio_format_0_node, "audioOutputFormats", audio_format_0_audio_output_formats_node); + plist_array_append_item(audio_formats_node, audio_format_0_node); + plist_t audio_format_1_node = plist_new_dict(); + plist_t audio_format_1_type_node = plist_new_uint(101); + plist_t audio_format_1_audio_input_formats_node = plist_new_uint(67108860); + plist_t audio_format_1_audio_output_formats_node = plist_new_uint(67108860); + plist_dict_set_item(audio_format_1_node, "type", audio_format_1_type_node); + plist_dict_set_item(audio_format_1_node, "audioInputFormats", audio_format_1_audio_input_formats_node); + plist_dict_set_item(audio_format_1_node, "audioOutputFormats", audio_format_1_audio_output_formats_node); + plist_array_append_item(audio_formats_node, audio_format_1_node); + plist_dict_set_item(r_node, "audioFormats", audio_formats_node); + + plist_t pi_node = plist_new_string(AIRPLAY_PI); + plist_dict_set_item(r_node, "pi", pi_node); + + plist_t vv_node = plist_new_uint(strtol(AIRPLAY_VV, NULL, 10)); + plist_dict_set_item(r_node, "vv", vv_node); + + plist_t status_flags_node = plist_new_uint(68); + plist_dict_set_item(r_node, "statusFlags", status_flags_node); + + plist_t keep_alive_low_power_node = plist_new_bool(1); + plist_dict_set_item(r_node, "keepAliveLowPower", keep_alive_low_power_node); + + plist_t source_version_node = plist_new_string(AIRPLAY_SRCVERS); + plist_dict_set_item(r_node, "sourceVersion", source_version_node); + + plist_t pk_node = plist_new_data(pk, pk_len); + plist_dict_set_item(r_node, "pk", pk_node); + + plist_t keep_alive_send_stats_as_body_node = plist_new_bool(1); + plist_dict_set_item(r_node, "keepAliveSendStatsAsBody", keep_alive_send_stats_as_body_node); + + plist_t device_id_node = plist_new_string(hw_addr); + plist_dict_set_item(r_node, "deviceID", device_id_node); + + plist_t audio_latencies_node = plist_new_array(); + plist_t audio_latencies_0_node = plist_new_dict(); + plist_t audio_latencies_0_output_latency_micros_node = plist_new_uint(0); + plist_t audio_latencies_0_type_node = plist_new_uint(100); + plist_t audio_latencies_0_audio_type_node = plist_new_string("default"); + plist_t audio_latencies_0_input_latency_micros_node = plist_new_uint(0); + plist_dict_set_item(audio_latencies_0_node, "outputLatencyMicros", audio_latencies_0_output_latency_micros_node); + plist_dict_set_item(audio_latencies_0_node, "type", audio_latencies_0_type_node); + plist_dict_set_item(audio_latencies_0_node, "audioType", audio_latencies_0_audio_type_node); + plist_dict_set_item(audio_latencies_0_node, "inputLatencyMicros", audio_latencies_0_input_latency_micros_node); + plist_array_append_item(audio_latencies_node, audio_latencies_0_node); + plist_t audio_latencies_1_node = plist_new_dict(); + plist_t audio_latencies_1_output_latency_micros_node = plist_new_uint(0); + plist_t audio_latencies_1_type_node = plist_new_uint(101); + plist_t audio_latencies_1_audio_type_node = plist_new_string("default"); + plist_t audio_latencies_1_input_latency_micros_node = plist_new_uint(0); + plist_dict_set_item(audio_latencies_1_node, "outputLatencyMicros", audio_latencies_1_output_latency_micros_node); + plist_dict_set_item(audio_latencies_1_node, "type", audio_latencies_1_type_node); + plist_dict_set_item(audio_latencies_1_node, "audioType", audio_latencies_1_audio_type_node); + plist_dict_set_item(audio_latencies_1_node, "inputLatencyMicros", audio_latencies_1_input_latency_micros_node); + plist_array_append_item(audio_latencies_node, audio_latencies_1_node); + plist_dict_set_item(r_node, "audioLatencies", audio_latencies_node); + + plist_t model_node = plist_new_string(GLOBAL_MODEL); + plist_dict_set_item(r_node, "model", model_node); + + plist_t mac_address_node = plist_new_string(hw_addr); + plist_dict_set_item(r_node, "macAddress", mac_address_node); + + plist_t displays_node = plist_new_array(); + plist_t displays_0_node = plist_new_dict(); + plist_t displays_0_uuid_node = plist_new_string("e0ff8a27-6738-3d56-8a16-cc53aacee925"); + plist_t displays_0_width_physical_node = plist_new_uint(0); + plist_t displays_0_height_physical_node = plist_new_uint(0); + plist_t displays_0_width_node = plist_new_uint(1920); + plist_t displays_0_height_node = plist_new_uint(1080); + plist_t displays_0_width_pixels_node = plist_new_uint(1920); + plist_t displays_0_height_pixels_node = plist_new_uint(1080); + plist_t displays_0_rotation_node = plist_new_bool(0); + plist_t displays_0_refresh_rate_node = plist_new_real(1.0 / 60.0); + plist_t displays_0_overscanned_node = plist_new_bool(1); + plist_t displays_0_features = plist_new_uint(14); + + plist_dict_set_item(displays_0_node, "uuid", displays_0_uuid_node); + plist_dict_set_item(displays_0_node, "widthPhysical", displays_0_width_physical_node); + plist_dict_set_item(displays_0_node, "heightPhysical", displays_0_height_physical_node); + plist_dict_set_item(displays_0_node, "width", displays_0_width_node); + plist_dict_set_item(displays_0_node, "height", displays_0_height_node); + plist_dict_set_item(displays_0_node, "widthPixels", displays_0_width_pixels_node); + plist_dict_set_item(displays_0_node, "heightPixels", displays_0_height_pixels_node); + plist_dict_set_item(displays_0_node, "rotation", displays_0_rotation_node); + plist_dict_set_item(displays_0_node, "refreshRate", displays_0_refresh_rate_node); + plist_dict_set_item(displays_0_node, "overscanned", displays_0_overscanned_node); + plist_dict_set_item(displays_0_node, "features", displays_0_features); + plist_array_append_item(displays_node, displays_0_node); + plist_dict_set_item(r_node, "displays", displays_node); + + plist_to_bin(r_node, response_data, (uint32_t *) response_datalen); + logger_log(conn->raop->logger, LOGGER_DEBUG, "INFO len = %d", response_datalen); + http_response_add_header(response, "Content-Type", "application/x-apple-binary-plist"); + free(pk); + free(hw_addr); +} + +static void +raop_handler_pairsetup(raop_conn_t *conn, + http_request_t *request, http_response_t *response, + char **response_data, int *response_datalen) +{ + unsigned char public_key[32]; + const char *data; + int datalen; + + data = http_request_get_data(request, &datalen); + if (datalen != 32) { + logger_log(conn->raop->logger, LOGGER_ERR, "Invalid pair-setup data"); + return; + } + + pairing_get_public_key(conn->raop->pairing, public_key); + pairing_session_set_setup_status(conn->pairing); + + *response_data = malloc(sizeof(public_key)); + if (*response_data) { + http_response_add_header(response, "Content-Type", "application/octet-stream"); + memcpy(*response_data, public_key, sizeof(public_key)); + *response_datalen = sizeof(public_key); + } +} + +static void +raop_handler_pairverify(raop_conn_t *conn, + http_request_t *request, http_response_t *response, + char **response_data, int *response_datalen) +{ + if (pairing_session_check_handshake_status(conn->pairing)) { + return; + } + unsigned char public_key[32]; + unsigned char signature[64]; + const unsigned char *data; + int datalen; + + data = (unsigned char *) http_request_get_data(request, &datalen); + if (datalen < 4) { + logger_log(conn->raop->logger, LOGGER_ERR, "Invalid pair-verify data"); + return; + } + switch (data[0]) { + case 1: + if (datalen != 4 + 32 + 32) { + logger_log(conn->raop->logger, LOGGER_ERR, "Invalid pair-verify data"); + return; + } + /* We can fall through these errors, the result will just be garbage... */ + if (pairing_session_handshake(conn->pairing, data + 4, data + 4 + 32)) { + logger_log(conn->raop->logger, LOGGER_ERR, "Error initializing pair-verify handshake"); + } + if (pairing_session_get_public_key(conn->pairing, public_key)) { + logger_log(conn->raop->logger, LOGGER_ERR, "Error getting ECDH public key"); + } + if (pairing_session_get_signature(conn->pairing, signature)) { + logger_log(conn->raop->logger, LOGGER_ERR, "Error getting ED25519 signature"); + } + *response_data = malloc(sizeof(public_key) + sizeof(signature)); + if (*response_data) { + http_response_add_header(response, "Content-Type", "application/octet-stream"); + memcpy(*response_data, public_key, sizeof(public_key)); + memcpy(*response_data + sizeof(public_key), signature, sizeof(signature)); + *response_datalen = sizeof(public_key) + sizeof(signature); + } + break; + case 0: + if (datalen != 4 + 64) { + logger_log(conn->raop->logger, LOGGER_ERR, "Invalid pair-verify data"); + return; + } + + if (pairing_session_finish(conn->pairing, data + 4)) { + logger_log(conn->raop->logger, LOGGER_ERR, "Incorrect pair-verify signature"); + http_response_set_disconnect(response, 1); + return; + } + http_response_add_header(response, "Content-Type", "application/octet-stream"); + break; + } +} + +static void +raop_handler_fpsetup(raop_conn_t *conn, + http_request_t *request, http_response_t *response, + char **response_data, int *response_datalen) +{ + const unsigned char *data; + int datalen; + + data = (unsigned char *) http_request_get_data(request, &datalen); + if (datalen == 16) { + *response_data = malloc(142); + if (*response_data) { + http_response_add_header(response, "Content-Type", "application/octet-stream"); + if (!fairplay_setup(conn->fairplay, data, (unsigned char *) *response_data)) { + *response_datalen = 142; + } else { + // Handle error? + free(*response_data); + *response_data = NULL; + } + } + } else if (datalen == 164) { + *response_data = malloc(32); + if (*response_data) { + http_response_add_header(response, "Content-Type", "application/octet-stream"); + if (!fairplay_handshake(conn->fairplay, data, (unsigned char *) *response_data)) { + *response_datalen = 32; + } else { + // Handle error? + free(*response_data); + *response_data = NULL; + } + } + } else { + logger_log(conn->raop->logger, LOGGER_ERR, "Invalid fp-setup data length"); + return; + } +} + +static void +raop_handler_options(raop_conn_t *conn, + http_request_t *request, http_response_t *response, + char **response_data, int *response_datalen) +{ + http_response_add_header(response, "Public", "SETUP, RECORD, PAUSE, FLUSH, TEARDOWN, OPTIONS, GET_PARAMETER, SET_PARAMETER"); +} + +static void +raop_handler_setup(raop_conn_t *conn, + http_request_t *request, http_response_t *response, + char **response_data, int *response_datalen) +{ + unsigned short remote_cport = 0; + + const char *transport; + int use_udp; + const char *dacp_id; + const char *active_remote_header; + + const char *data; + int data_len; + + data = http_request_get_data(request, &data_len); + + dacp_id = http_request_get_header(request, "DACP-ID"); + active_remote_header = http_request_get_header(request, "Active-Remote"); + + if (dacp_id && active_remote_header) { + logger_log(conn->raop->logger, LOGGER_DEBUG, "DACP-ID: %s", dacp_id); + logger_log(conn->raop->logger, LOGGER_DEBUG, "Active-Remote: %s", active_remote_header); + if (conn->raop_rtp) { + raop_rtp_remote_control_id(conn->raop_rtp, dacp_id, active_remote_header); + } + } + + transport = http_request_get_header(request, "Transport"); + if (transport) { + logger_log(conn->raop->logger, LOGGER_DEBUG, "Transport: %s", transport); + use_udp = strncmp(transport, "RTP/AVP/TCP", 11); + } else { + logger_log(conn->raop->logger, LOGGER_DEBUG, "Transport: null"); + use_udp = 0; + } + + // Parsing bplist + plist_t req_root_node = NULL; + plist_from_bin(data, data_len, &req_root_node); + plist_t req_streams_node = plist_dict_get_item(req_root_node, "streams"); + plist_t req_eiv_node = plist_dict_get_item(req_root_node, "eiv"); + plist_t req_ekey_node = plist_dict_get_item(req_root_node, "ekey"); + + // For the response + plist_t res_root_node = plist_new_dict(); + + if (PLIST_IS_DATA(req_eiv_node) && PLIST_IS_DATA(req_ekey_node)) { + // The first SETUP call that initializes keys and timing + + unsigned char aesiv[16]; + unsigned char aeskey[16]; + logger_log(conn->raop->logger, LOGGER_DEBUG, "SETUP 1"); + + // First setup + char* eiv = NULL; + uint64_t eiv_len = 0; + plist_get_data_val(req_eiv_node, &eiv, &eiv_len); + memcpy(aesiv, eiv, 16); + logger_log(conn->raop->logger, LOGGER_DEBUG, "eiv_len = %llu", eiv_len); + char* ekey = NULL; + uint64_t ekey_len = 0; + plist_get_data_val(req_ekey_node, &ekey, &ekey_len); + logger_log(conn->raop->logger, LOGGER_DEBUG, "ekey_len = %llu", ekey_len); + + // ekey is 72 bytes, aeskey is 16 bytes + int ret = fairplay_decrypt(conn->fairplay, (unsigned char*) ekey, aeskey); + logger_log(conn->raop->logger, LOGGER_DEBUG, "fairplay_decrypt ret = %d", ret); + unsigned char ecdh_secret[32]; + pairing_get_ecdh_secret_key(conn->pairing, ecdh_secret); + + // Time port + uint64_t timing_rport; + plist_t time_note = plist_dict_get_item(req_root_node, "timingPort"); + plist_get_uint_val(time_note, &timing_rport); + logger_log(conn->raop->logger, LOGGER_DEBUG, "timing_rport = %llu", timing_rport); + + unsigned short timing_lport; + conn->raop_ntp = raop_ntp_init(conn->raop->logger, conn->remote, conn->remotelen, timing_rport); + raop_ntp_start(conn->raop_ntp, &timing_lport); + + conn->raop_rtp = raop_rtp_init(conn->raop->logger, &conn->raop->callbacks, conn->raop_ntp, conn->remote, conn->remotelen, aeskey, aesiv, ecdh_secret); + conn->raop_rtp_mirror = raop_rtp_mirror_init(conn->raop->logger, &conn->raop->callbacks, conn->raop_ntp, conn->remote, conn->remotelen, aeskey, ecdh_secret); + + plist_t res_event_port_node = plist_new_uint(conn->raop->port); + plist_t res_timing_port_node = plist_new_uint(timing_lport); + plist_dict_set_item(res_root_node, "timingPort", res_timing_port_node); + plist_dict_set_item(res_root_node, "eventPort", res_event_port_node); + + logger_log(conn->raop->logger, LOGGER_DEBUG, "eport = %d, tport = %d", conn->raop->port, timing_lport); + } + + // Process stream setup requests + if (PLIST_IS_ARRAY(req_streams_node)) { + plist_t res_streams_node = plist_new_array(); + + int count = plist_array_get_size(req_streams_node); + for (int i = 0; i < count; i++) { + plist_t req_stream_node = plist_array_get_item(req_streams_node, i); + plist_t req_stream_type_node = plist_dict_get_item(req_stream_node, "type"); + uint64_t type; + plist_get_uint_val(req_stream_type_node, &type); + logger_log(conn->raop->logger, LOGGER_DEBUG, "type = %llu", type); + + switch (type) { + case 110: { + // Mirroring + unsigned short dport = 0; + plist_t stream_id_node = plist_dict_get_item(req_stream_node, "streamConnectionID"); + uint64_t stream_connection_id; + plist_get_uint_val(stream_id_node, &stream_connection_id); + logger_log(conn->raop->logger, LOGGER_DEBUG, "streamConnectionID = %llu", stream_connection_id); + + if (conn->raop_rtp_mirror) { + raop_rtp_init_mirror_aes(conn->raop_rtp_mirror, stream_connection_id); + raop_rtp_start_mirror(conn->raop_rtp_mirror, use_udp, &dport); + logger_log(conn->raop->logger, LOGGER_DEBUG, "Mirroring initialized successfully"); + } else { + logger_log(conn->raop->logger, LOGGER_ERR, "Mirroring not initialized at SETUP, playing will fail!"); + http_response_set_disconnect(response, 1); + } + + plist_t res_stream_node = plist_new_dict(); + plist_t res_stream_data_port_node = plist_new_uint(dport); + plist_t res_stream_type_node = plist_new_uint(110); + plist_dict_set_item(res_stream_node, "dataPort", res_stream_data_port_node); + plist_dict_set_item(res_stream_node, "type", res_stream_type_node); + plist_array_append_item(res_streams_node, res_stream_node); + + break; + } case 96: { + // Audio + + unsigned short cport = 0, dport = 0; + + if (conn->raop_rtp) { + raop_rtp_start_audio(conn->raop_rtp, use_udp, remote_cport, &cport, &dport); + logger_log(conn->raop->logger, LOGGER_DEBUG, "RAOP initialized success"); + } else { + logger_log(conn->raop->logger, LOGGER_ERR, "RAOP not initialized at SETUP, playing will fail!"); + http_response_set_disconnect(response, 1); + } + + plist_t res_stream_node = plist_new_dict(); + plist_t res_stream_data_port_node = plist_new_uint(dport); + plist_t res_stream_control_port_node = plist_new_uint(cport); + plist_t res_stream_type_node = plist_new_uint(96); + plist_dict_set_item(res_stream_node, "dataPort", res_stream_data_port_node); + plist_dict_set_item(res_stream_node, "controlPort", res_stream_control_port_node); + plist_dict_set_item(res_stream_node, "type", res_stream_type_node); + plist_array_append_item(res_streams_node, res_stream_node); + + break; + } + + default: + logger_log(conn->raop->logger, LOGGER_ERR, "SETUP tries to setup stream of unknown type %llu", type); + http_response_set_disconnect(response, 1); + break; + } + } + + plist_dict_set_item(res_root_node, "streams", res_streams_node); + } + + plist_to_bin(res_root_node, response_data, (uint32_t*) response_datalen); + http_response_add_header(response, "Content-Type", "application/x-apple-binary-plist"); +} + +static void +raop_handler_get_parameter(raop_conn_t *conn, + http_request_t *request, http_response_t *response, + char **response_data, int *response_datalen) +{ + const char *content_type; + const char *data; + int datalen; + + content_type = http_request_get_header(request, "Content-Type"); + data = http_request_get_data(request, &datalen); + if (!strcmp(content_type, "text/parameters")) { + const char *current = data; + + while (current) { + const char *next; + int handled = 0; + + /* This is a bit ugly, but seems to be how airport works too */ + if (!strncmp(current, "volume\r\n", 8)) { + const char volume[] = "volume: 0.0\r\n"; + + http_response_add_header(response, "Content-Type", "text/parameters"); + *response_data = strdup(volume); + if (*response_data) { + *response_datalen = strlen(*response_data); + } + handled = 1; + } + + next = strstr(current, "\r\n"); + if (next && !handled) { + logger_log(conn->raop->logger, LOGGER_WARNING, + "Found an unknown parameter: %.*s", (next - current), current); + current = next + 2; + } else if (next) { + current = next + 2; + } else { + current = NULL; + } + } + } +} + +static void +raop_handler_set_parameter(raop_conn_t *conn, + http_request_t *request, http_response_t *response, + char **response_data, int *response_datalen) +{ + const char *content_type; + const char *data; + int datalen; + + content_type = http_request_get_header(request, "Content-Type"); + data = http_request_get_data(request, &datalen); + if (!strcmp(content_type, "text/parameters")) { + char *datastr; + datastr = calloc(1, datalen+1); + if (data && datastr && conn->raop_rtp) { + memcpy(datastr, data, datalen); + if (!strncmp(datastr, "volume: ", 8)) { + float vol = 0.0; + sscanf(datastr+8, "%f", &vol); + raop_rtp_set_volume(conn->raop_rtp, vol); + } else if (!strncmp(datastr, "progress: ", 10)) { + unsigned int start, curr, end; + sscanf(datastr+10, "%u/%u/%u", &start, &curr, &end); + raop_rtp_set_progress(conn->raop_rtp, start, curr, end); + } + } else if (!conn->raop_rtp) { + logger_log(conn->raop->logger, LOGGER_WARNING, "RAOP not initialized at SET_PARAMETER"); + } + free(datastr); + } else if (!strcmp(content_type, "image/jpeg") || !strcmp(content_type, "image/png")) { + logger_log(conn->raop->logger, LOGGER_INFO, "Got image data of %d bytes", datalen); + if (conn->raop_rtp) { + raop_rtp_set_coverart(conn->raop_rtp, data, datalen); + } else { + logger_log(conn->raop->logger, LOGGER_WARNING, "RAOP not initialized at SET_PARAMETER coverart"); + } + } else if (!strcmp(content_type, "application/x-dmap-tagged")) { + logger_log(conn->raop->logger, LOGGER_INFO, "Got metadata of %d bytes", datalen); + if (conn->raop_rtp) { + raop_rtp_set_metadata(conn->raop_rtp, data, datalen); + } else { + logger_log(conn->raop->logger, LOGGER_WARNING, "RAOP not initialized at SET_PARAMETER metadata"); + } + } +} + + +static void +raop_handler_feedback(raop_conn_t *conn, + http_request_t *request, http_response_t *response, + char **response_data, int *response_datalen) +{ + logger_log(conn->raop->logger, LOGGER_DEBUG, "raop_handler_feedback"); +} + +static void +raop_handler_record(raop_conn_t *conn, + http_request_t *request, http_response_t *response, + char **response_data, int *response_datalen) +{ + logger_log(conn->raop->logger, LOGGER_DEBUG, "raop_handler_record"); + http_response_add_header(response, "Audio-Latency", "11025"); + http_response_add_header(response, "Audio-Jack-Status", "connected; type=analog"); +} diff --git a/lib/raop_ntp.c b/lib/raop_ntp.c new file mode 100644 index 0000000..214d5cd --- /dev/null +++ b/lib/raop_ntp.c @@ -0,0 +1,446 @@ +/* + * Copyright (c) 2019 dsafa22 and 2014 Joakim Plate, modified by Florian Draschbacher, + * All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +// Some of the code in here comes from https://github.com/juhovh/shairplay/pull/25/files + +#include +#include +#include +#include +#include + +#include "raop_ntp.h" +#include "threads.h" +#include "compat.h" +#include "netutils.h" +#include "byteutils.h" + +#define RAOP_NTP_DATA_COUNT 8 +#define RAOP_NTP_PHI_PPM 15ull // PPM +#define RAOP_NTP_R_RHO ((1ull << 32) / 1000u) // packet precision +#define RAOP_NTP_S_RHO ((1ull << 32) / 1000u) // system clock precision +#define RAOP_NTP_MAX_DIST ((1500ull << 32) / 1000u) // maximum allowed distance +#define RAOP_NTP_MAX_DISP ((16ull << 32)) // maximum dispersion + +#define RAOP_NTP_CLOCK_BASE (2208988800ull << 32) + +typedef struct raop_ntp_data_s { + uint64_t time; // The local wall clock time at time of ntp packet arrival + uint64_t dispersion; + int64_t delay; // The round trip delay + int64_t offset; // The difference between remote and local wall clock time +} raop_ntp_data_t; + +struct raop_ntp_s { + logger_t *logger; + + thread_handle_t thread; + mutex_handle_t run_mutex; + + mutex_handle_t wait_mutex; + cond_handle_t wait_cond; + + raop_ntp_data_t data[RAOP_NTP_DATA_COUNT]; + int data_index; + + // The clock sync params are periodically updated to the AirPlay client's NTP clock + mutex_handle_t sync_params_mutex; + int64_t sync_offset; + int64_t sync_dispersion; + int64_t sync_delay; + + // Socket address of the AirPlay client + struct sockaddr_storage remote_saddr; + socklen_t remote_saddr_len; + + // The remote port of the NTP server on the AirPlay client + unsigned short timing_rport; + + // The local port of the NTP client on the AirPlay server + unsigned short timing_lport; + + /* MUTEX LOCKED VARIABLES START */ + /* These variables only edited mutex locked */ + int running; + int joined; + + // UDP socket + int tsock; +}; + + +/* + * Used for sorting the data array by delay + */ +static int +raop_ntp_compare(const void* av, const void* bv) +{ + const raop_ntp_data_t* a = (const raop_ntp_data_t*)av; + const raop_ntp_data_t* b = (const raop_ntp_data_t*)bv; + if (a->delay < b->delay) { + return -1; + } else if(a->delay > b->delay) { + return 1; + } else { + return 0; + } +} + +static int +raop_ntp_parse_remote_address(raop_ntp_t *raop_ntp, const unsigned char *remote_addr, int remote_addr_len) +{ + char current[25]; + int family; + int ret; + assert(raop_ntp); + if (remote_addr_len == 4) { + family = AF_INET; + } else if (remote_addr_len == 16) { + family = AF_INET6; + } else { + return -1; + } + memset(current, 0, sizeof(current)); + sprintf(current, "%d.%d.%d.%d", remote_addr[0], remote_addr[1], remote_addr[2], remote_addr[3]); + logger_log(raop_ntp->logger, LOGGER_DEBUG, "raop_ntp parse remote ip = %s", current); + ret = netutils_parse_address(family, current, + &raop_ntp->remote_saddr, + sizeof(raop_ntp->remote_saddr)); + if (ret < 0) { + return -1; + } + raop_ntp->remote_saddr_len = ret; + return 0; +} + +raop_ntp_t *raop_ntp_init(logger_t *logger, const unsigned char *remote_addr, int remote_addr_len, unsigned short timing_rport) { + raop_ntp_t *raop_ntp; + + assert(logger); + + raop_ntp = calloc(1, sizeof(raop_ntp_t)); + if (!raop_ntp) { + return NULL; + } + raop_ntp->logger = logger; + raop_ntp->timing_rport = timing_rport; + + if (raop_ntp_parse_remote_address(raop_ntp, remote_addr, remote_addr_len) < 0) { + free(raop_ntp); + return NULL; + } + + // Set port on the remote address struct + ((struct sockaddr_in *) &raop_ntp->remote_saddr)->sin_port = htons(timing_rport); + + raop_ntp->running = 0; + raop_ntp->joined = 1; + + uint64_t time = raop_ntp_get_local_time(raop_ntp); + + for (int i = 0; i < RAOP_NTP_DATA_COUNT; ++i) { + raop_ntp->data[i].offset = 0ll; + raop_ntp->data[i].delay = RAOP_NTP_MAX_DISP; + raop_ntp->data[i].dispersion = RAOP_NTP_MAX_DISP; + raop_ntp->data[i].time = time; + } + + raop_ntp->sync_delay = 0; + raop_ntp->sync_dispersion = 0; + raop_ntp->sync_offset = 0; + + MUTEX_CREATE(raop_ntp->run_mutex); + MUTEX_CREATE(raop_ntp->wait_mutex); + COND_CREATE(raop_ntp->wait_cond); + MUTEX_CREATE(raop_ntp->sync_params_mutex); + return raop_ntp; +} + +void +raop_ntp_destroy(raop_ntp_t *raop_ntp) +{ + if (raop_ntp) { + raop_ntp_stop(raop_ntp); + MUTEX_DESTROY(raop_ntp->run_mutex); + MUTEX_DESTROY(raop_ntp->wait_mutex); + COND_DESTROY(raop_ntp->wait_cond); + MUTEX_DESTROY(raop_ntp->sync_params_mutex); + free(raop_ntp); + } +} + +unsigned short raop_ntp_get_port(raop_ntp_t *raop_ntp) { + return raop_ntp->timing_lport; +} + +static int +raop_ntp_init_socket(raop_ntp_t *raop_ntp, int use_ipv6) +{ + int tsock = -1; + unsigned short tport = 0; + + assert(raop_ntp); + + tsock = netutils_init_socket(&tport, use_ipv6, 1); + + if (tsock == -1) { + goto sockets_cleanup; + } + + // We're calling recvfrom without knowing whether there is any data, so we need a timeout + struct timeval tv; + tv.tv_sec = 0; + tv.tv_usec = 3000; + if (setsockopt(tsock, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) < 0) { + goto sockets_cleanup; + } + + /* Set socket descriptors */ + raop_ntp->tsock = tsock; + + /* Set port values */ + raop_ntp->timing_lport = tport; + return 0; + + sockets_cleanup: + if (tsock != -1) closesocket(tsock); + return -1; +} + +static THREAD_RETVAL +raop_ntp_thread(void *arg) +{ + raop_ntp_t *raop_ntp = arg; + assert(raop_ntp); + unsigned char response[128]; + int response_len; + unsigned char request[32] = {0x80, 0xd2, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + raop_ntp_data_t data_sorted[RAOP_NTP_DATA_COUNT]; + const unsigned two_pow_n[RAOP_NTP_DATA_COUNT] = {2, 4, 8, 16, 32, 64, 128, 256}; + + while (1) { + MUTEX_LOCK(raop_ntp->run_mutex); + if (!raop_ntp->running) { + MUTEX_UNLOCK(raop_ntp->run_mutex); + break; + } + MUTEX_UNLOCK(raop_ntp->run_mutex); + + // Send request + uint64_t send_time = raop_ntp_get_local_time(raop_ntp); + byteutils_put_ntp_timestamp(request, 24, send_time); + int send_len = sendto(raop_ntp->tsock, (char *)request, sizeof(request), 0, + (struct sockaddr *) &raop_ntp->remote_saddr, raop_ntp->remote_saddr_len); + logger_log(raop_ntp->logger, LOGGER_DEBUG, "raop_ntp send_len = %d", send_len); + if (send_len < 0) { + logger_log(raop_ntp->logger, LOGGER_ERR, "raop_ntp error sending request"); + break; + } + + // Read response + response_len = recvfrom(raop_ntp->tsock, (char *)response, sizeof(response), 0, + (struct sockaddr *) &raop_ntp->remote_saddr, &raop_ntp->remote_saddr_len); + if (response_len < 0) { + logger_log(raop_ntp->logger, LOGGER_ERR, "raop_ntp receive timeout"); + break; + } + logger_log(raop_ntp->logger, LOGGER_DEBUG, "raop_ntp receive time type_t packetlen = %d", response_len); + + int64_t t3 = (int64_t) raop_ntp_get_local_time(raop_ntp); + // Local time of the client when the NTP request packet leaves the client + int64_t t0 = (int64_t) byteutils_get_ntp_timestamp(response, 8); + // Local time of the server when the NTP request packet arrives at the server + int64_t t1 = (int64_t) byteutils_get_ntp_timestamp(response, 16); + // Local time of the server when the response message leaves the server + int64_t t2 = (int64_t) byteutils_get_ntp_timestamp(response, 24); + + // The iOS device sends its time in micro seconds relative to an arbitrary Epoch (the last boot). + // For a little bonus confusion, they add SECONDS_FROM_1900_TO_1970 * 1000000 us. + // This means we have to expect some rather huge offset, but its growth or shrink over time should be small. + + raop_ntp->data_index = (raop_ntp->data_index + 1) % RAOP_NTP_DATA_COUNT; + raop_ntp->data[raop_ntp->data_index].time = t3; + raop_ntp->data[raop_ntp->data_index].offset = ((t1 - t0) + (t2 - t3)) / 2; + raop_ntp->data[raop_ntp->data_index].delay = ((t3 - t0) - (t2 - t1)); + raop_ntp->data[raop_ntp->data_index].dispersion = RAOP_NTP_R_RHO + RAOP_NTP_S_RHO + (t3 - t0) * RAOP_NTP_PHI_PPM / 1000000u; + + // Sort by delay + memcpy(data_sorted, raop_ntp->data, sizeof(data_sorted)); + qsort(data_sorted, RAOP_NTP_DATA_COUNT, sizeof(data_sorted[0]), raop_ntp_compare); + + uint64_t dispersion = 0ull; + int64_t offset = data_sorted[0].offset; + int64_t delay = data_sorted[RAOP_NTP_DATA_COUNT - 1].delay; + + // Calculate dispersion + for(int i = 0; i < RAOP_NTP_DATA_COUNT; ++i) { + unsigned long long disp = raop_ntp->data[i].dispersion + (t3 - raop_ntp->data[i].time) * RAOP_NTP_PHI_PPM / 1000000u; + dispersion += disp / two_pow_n[i]; + } + + MUTEX_LOCK(raop_ntp->sync_params_mutex); + + int64_t correction = offset - raop_ntp->sync_offset; + raop_ntp->sync_offset = offset; + raop_ntp->sync_dispersion = dispersion; + raop_ntp->sync_delay = delay; + MUTEX_UNLOCK(raop_ntp->sync_params_mutex); + + logger_log(raop_ntp->logger, LOGGER_DEBUG, "raop_ntp sync correction = %lld", correction); + + // Sleep for 3 seconds + struct timeval now; + struct timespec wait_time; + MUTEX_LOCK(raop_ntp->wait_mutex); + gettimeofday(&now, NULL); + wait_time.tv_sec = now.tv_sec + 3; + wait_time.tv_nsec = now.tv_usec * 1000; + pthread_cond_timedwait(&raop_ntp->wait_cond, &raop_ntp->wait_mutex, &wait_time); + MUTEX_UNLOCK(raop_ntp->wait_mutex); + } + + // Ensure running reflects the actual state + MUTEX_LOCK(raop_ntp->run_mutex); + raop_ntp->running = false; + MUTEX_UNLOCK(raop_ntp->run_mutex); + + logger_log(raop_ntp->logger, LOGGER_DEBUG, "raop_ntp exiting thread"); + return 0; +} + +void +raop_ntp_start(raop_ntp_t *raop_ntp, unsigned short *timing_lport) +{ + logger_log(raop_ntp->logger, LOGGER_DEBUG, "raop_ntp starting time"); + int use_ipv6 = 0; + + assert(raop_ntp); + + MUTEX_LOCK(raop_ntp->run_mutex); + if (raop_ntp->running || !raop_ntp->joined) { + MUTEX_UNLOCK(raop_ntp->run_mutex); + return; + } + + /* Initialize ports and sockets */ + if (raop_ntp->remote_saddr.ss_family == AF_INET6) { + use_ipv6 = 1; + } + use_ipv6 = 0; + if (raop_ntp_init_socket(raop_ntp, use_ipv6) < 0) { + logger_log(raop_ntp->logger, LOGGER_ERR, "raop_ntp initializing timing socket failed"); + MUTEX_UNLOCK(raop_ntp->run_mutex); + return; + } + if (timing_lport) *timing_lport = raop_ntp->timing_lport; + + /* Create the thread and initialize running values */ + raop_ntp->running = 1; + raop_ntp->joined = 0; + + THREAD_CREATE(raop_ntp->thread, raop_ntp_thread, raop_ntp); + MUTEX_UNLOCK(raop_ntp->run_mutex); +} + +void +raop_ntp_stop(raop_ntp_t *raop_ntp) +{ + assert(raop_ntp); + + /* Check that we are running and thread is not + * joined (should never be while still running) */ + MUTEX_LOCK(raop_ntp->run_mutex); + if (!raop_ntp->running || raop_ntp->joined) { + MUTEX_UNLOCK(raop_ntp->run_mutex); + return; + } + raop_ntp->running = 0; + MUTEX_UNLOCK(raop_ntp->run_mutex); + + logger_log(raop_ntp->logger, LOGGER_DEBUG, "raop_ntp stopping time thread"); + + MUTEX_LOCK(raop_ntp->wait_mutex); + COND_SIGNAL(raop_ntp->wait_cond); + MUTEX_UNLOCK(raop_ntp->wait_mutex); + + if (raop_ntp->tsock != -1) { + closesocket(raop_ntp->tsock); + raop_ntp->tsock = -1; + } + + THREAD_JOIN(raop_ntp->thread); + + logger_log(raop_ntp->logger, LOGGER_DEBUG, "raop_ntp stopped time thread"); + + /* Mark thread as joined */ + MUTEX_LOCK(raop_ntp->run_mutex); + raop_ntp->joined = 1; + MUTEX_UNLOCK(raop_ntp->run_mutex); +} + +/** + * Converts from a little endian ntp timestamp to micro seconds since the Unix epoch. + * Does the same thing as byteutils_get_ntp_timestamp, except its input is an uint64_t + * and expected to already be in little endian. + * Please note this just converts to a different representation, the clock remains the + * same. + */ +uint64_t raop_ntp_timestamp_to_micro_seconds(uint64_t ntp_timestamp, bool account_for_epoch_diff) { + uint64_t seconds = ((ntp_timestamp >> 32) & 0xffffffff) - (account_for_epoch_diff ? SECONDS_FROM_1900_TO_1970 : 0); + uint64_t fraction = (ntp_timestamp & 0xffffffff); + return (seconds * 1000000) + ((fraction * 1000000) >> 32); +} + +/** + * Returns the current time in micro seconds according to the local wall clock. + * The system Unix time is used as the local wall clock. + */ +uint64_t raop_ntp_get_local_time(raop_ntp_t *raop_ntp) { + struct timespec time; + clock_gettime(CLOCK_REALTIME, &time); + return (uint64_t)time.tv_sec * 1000000L + (uint64_t)(time.tv_nsec / 1000); +} + +/** + * Returns the current time in micro seconds according to the remote wall clock. + */ +uint64_t raop_ntp_get_remote_time(raop_ntp_t *raop_ntp) { + MUTEX_LOCK(raop_ntp->sync_params_mutex); + int64_t offset = raop_ntp->sync_offset; + MUTEX_UNLOCK(raop_ntp->sync_params_mutex); + return (uint64_t) ((int64_t) raop_ntp_get_local_time(raop_ntp)) + ((int64_t) offset); +} + +/** + * Returns the local wall clock time in micro seconds for the given point in remote clock time + */ +uint64_t raop_ntp_convert_remote_time(raop_ntp_t *raop_ntp, uint64_t remote_time) { + MUTEX_LOCK(raop_ntp->sync_params_mutex); + uint64_t offset = raop_ntp->sync_offset; + MUTEX_UNLOCK(raop_ntp->sync_params_mutex); + return (uint64_t) ((int64_t) remote_time) - ((int64_t) offset); +} + +/** + * Returns the remote wall clock time in micro seconds for the given point in local clock time + */ +uint64_t raop_ntp_convert_local_time(raop_ntp_t *raop_ntp, uint64_t local_time) { + MUTEX_LOCK(raop_ntp->sync_params_mutex); + uint64_t offset = raop_ntp->sync_offset; + MUTEX_UNLOCK(raop_ntp->sync_params_mutex); + return (uint64_t) ((int64_t) local_time) + ((int64_t) offset); +} \ No newline at end of file diff --git a/lib/raop_ntp.h b/lib/raop_ntp.h new file mode 100644 index 0000000..1a4cfb0 --- /dev/null +++ b/lib/raop_ntp.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2019 dsafa22, modified by Florian Draschbacher, + * All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef RAOP_NTP_H +#define RAOP_NTP_H + +#include +#include +#include "logger.h" + +typedef struct raop_ntp_s raop_ntp_t; + +raop_ntp_t *raop_ntp_init(logger_t *logger, const unsigned char *remote_addr, int remote_addr_len, unsigned short timing_rport); + +void raop_ntp_start(raop_ntp_t *raop_ntp, unsigned short *timing_lport); + +void raop_ntp_stop(raop_ntp_t *raop_ntp); + +unsigned short raop_ntp_get_port(raop_ntp_t *raop_ntp); + +void raop_ntp_destroy(raop_ntp_t *raop_rtp); + +uint64_t raop_ntp_timestamp_to_micro_seconds(uint64_t ntp_timestamp, bool account_for_epoch_diff); + +uint64_t raop_ntp_get_local_time(raop_ntp_t *raop_ntp); +uint64_t raop_ntp_get_remote_time(raop_ntp_t *raop_ntp); +uint64_t raop_ntp_convert_remote_time(raop_ntp_t *raop_ntp, uint64_t remote_time); +uint64_t raop_ntp_convert_local_time(raop_ntp_t *raop_ntp, uint64_t local_time); + +#endif //RAOP_NTP_H diff --git a/lib/raop_rtp.c b/lib/raop_rtp.c new file mode 100755 index 0000000..d31cfef --- /dev/null +++ b/lib/raop_rtp.c @@ -0,0 +1,699 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include +#include +#include +#include +#include +#include + +#include "raop_rtp.h" +#include "raop.h" +#include "raop_buffer.h" +#include "netutils.h" +#include "compat.h" +#include "logger.h" +#include "byteutils.h" +#include "mirror_buffer.h" +#include "stream.h" + +#define NO_FLUSH (-42) + +#define RAOP_RTP_SAMPLE_RATE (44100.0 / 1000000.0) +#define RAOP_RTP_SYNC_DATA_COUNT 8 + +typedef struct raop_rtp_sync_data_s { + uint64_t ntp_time; // The local wall clock time at the time of rtp_time + uint32_t rtp_time; // The remote rtp clock time corresponding to ntp_time +} raop_rtp_sync_data_t; + +struct raop_rtp_s { + logger_t *logger; + raop_callbacks_t callbacks; + + // Time and sync + raop_ntp_t *ntp; + double rtp_sync_scale; + int64_t rtp_sync_offset; + raop_rtp_sync_data_t sync_data[RAOP_RTP_SYNC_DATA_COUNT]; + int sync_data_index; + + // Transmission Stats, could be used if a playout buffer is needed + // float interarrival_jitter; // As defined by RTP RFC 3550, Section 6.4.1 + // unsigned int last_packet_transit_time; + //int transit = (packet_receive_time - packet_send_time); + // int d = transit - last_packet_transit_time; + // if (d < 0) d = -d; + // interarrival_jitter = (1.f / 16.f) * ((double) d - interarrival_jitter); + + /* Buffer to handle all resends */ + raop_buffer_t *buffer; + + /* Remote address as sockaddr */ + struct sockaddr_storage remote_saddr; + socklen_t remote_saddr_len; + + /* MUTEX LOCKED VARIABLES START */ + /* These variables only edited mutex locked */ + int running; + int joined; + + float volume; + int volume_changed; + unsigned char *metadata; + int metadata_len; + unsigned char *coverart; + int coverart_len; + char *dacp_id; + char *active_remote_header; + unsigned int progress_start; + unsigned int progress_curr; + unsigned int progress_end; + int progress_changed; + + int flush; + thread_handle_t thread; + mutex_handle_t run_mutex; + /* MUTEX LOCKED VARIABLES END */ + + /* Remote control and timing ports */ + unsigned short control_rport; + + /* Sockets for control and data */ + int csock, dsock; + + /* Local control, timing and data ports */ + unsigned short control_lport; + unsigned short data_lport; + + /* Initialized after the first control packet */ + struct sockaddr_storage control_saddr; + socklen_t control_saddr_len; + unsigned short control_seqnum; +}; + +static int +raop_rtp_parse_remote(raop_rtp_t *raop_rtp, const unsigned char *remote, int remotelen) +{ + char current[25]; + int family; + int ret; + assert(raop_rtp); + if (remotelen == 4) { + family = AF_INET; + } else if (remotelen == 16) { + family = AF_INET6; + } else { + return -1; + } + memset(current, 0, sizeof(current)); + sprintf(current, "%d.%d.%d.%d", remote[0], remote[1], remote[2], remote[3]); + logger_log(raop_rtp->logger, LOGGER_DEBUG, "raop_rtp parse remote ip = %s", current); + ret = netutils_parse_address(family, current, + &raop_rtp->remote_saddr, + sizeof(raop_rtp->remote_saddr)); + if (ret < 0) { + return -1; + } + raop_rtp->remote_saddr_len = ret; + return 0; +} + +raop_rtp_t * +raop_rtp_init(logger_t *logger, raop_callbacks_t *callbacks, raop_ntp_t *ntp, const unsigned char *remote, int remotelen, + const unsigned char *aeskey, const unsigned char *aesiv, const unsigned char *ecdh_secret) +{ + raop_rtp_t *raop_rtp; + + assert(logger); + assert(callbacks); + + raop_rtp = calloc(1, sizeof(raop_rtp_t)); + if (!raop_rtp) { + return NULL; + } + raop_rtp->logger = logger; + raop_rtp->ntp = ntp; + + raop_rtp->rtp_sync_offset = 0; + raop_rtp->rtp_sync_scale = RAOP_RTP_SAMPLE_RATE; + raop_rtp->sync_data_index = 0; + for (int i = 0; i < RAOP_RTP_SYNC_DATA_COUNT; ++i) { + raop_rtp->sync_data[i].ntp_time = 0; + raop_rtp->sync_data[i].rtp_time = 0; + } + + memcpy(&raop_rtp->callbacks, callbacks, sizeof(raop_callbacks_t)); + raop_rtp->buffer = raop_buffer_init(logger, aeskey, aesiv, ecdh_secret); + if (!raop_rtp->buffer) { + free(raop_rtp); + return NULL; + } + if (raop_rtp_parse_remote(raop_rtp, remote, remotelen) < 0) { + free(raop_rtp); + return NULL; + } + + raop_rtp->running = 0; + raop_rtp->joined = 1; + raop_rtp->flush = NO_FLUSH; + + MUTEX_CREATE(raop_rtp->run_mutex); + return raop_rtp; +} + + +void +raop_rtp_destroy(raop_rtp_t *raop_rtp) +{ + if (raop_rtp) { + raop_rtp_stop(raop_rtp); + MUTEX_DESTROY(raop_rtp->run_mutex); + raop_buffer_destroy(raop_rtp->buffer); + free(raop_rtp->metadata); + free(raop_rtp->coverart); + free(raop_rtp->dacp_id); + free(raop_rtp->active_remote_header); + free(raop_rtp); + } +} + +static int +raop_rtp_resend_callback(void *opaque, unsigned short seqnum, unsigned short count) +{ + raop_rtp_t *raop_rtp = opaque; + unsigned char packet[8]; + unsigned short ourseqnum; + struct sockaddr *addr; + socklen_t addrlen; + int ret; + + addr = (struct sockaddr *)&raop_rtp->control_saddr; + addrlen = raop_rtp->control_saddr_len; + + logger_log(raop_rtp->logger, LOGGER_DEBUG, "raop_rtp got resend request %d %d", seqnum, count); + ourseqnum = raop_rtp->control_seqnum++; + + /* Fill the request buffer */ + packet[0] = 0x80; + packet[1] = 0x55|0x80; + packet[2] = (ourseqnum >> 8); + packet[3] = ourseqnum; + packet[4] = (seqnum >> 8); + packet[5] = seqnum; + packet[6] = (count >> 8); + packet[7] = count; + + ret = sendto(raop_rtp->csock, (const char *)packet, sizeof(packet), 0, addr, addrlen); + if (ret == -1) { + logger_log(raop_rtp->logger, LOGGER_WARNING, "raop_rtp resend failed: %d", SOCKET_GET_ERROR()); + } + + return 0; +} + +static int +raop_rtp_init_sockets(raop_rtp_t *raop_rtp, int use_ipv6, int use_udp) +{ + int csock = -1, dsock = -1; + unsigned short cport = 0, dport = 0; + + assert(raop_rtp); + + csock = netutils_init_socket(&cport, use_ipv6, 1); + dsock = netutils_init_socket(&dport, use_ipv6, 1); + + if (csock == -1 || dsock == -1) { + goto sockets_cleanup; + } + + /* Set socket descriptors */ + raop_rtp->csock = csock; + raop_rtp->dsock = dsock; + + /* Set port values */ + raop_rtp->control_lport = cport; + raop_rtp->data_lport = dport; + return 0; + + sockets_cleanup: + if (csock != -1) closesocket(csock); + if (dsock != -1) closesocket(dsock); + return -1; +} + +static int +raop_rtp_process_events(raop_rtp_t *raop_rtp, void *cb_data) +{ + int flush; + float volume; + int volume_changed; + unsigned char *metadata; + int metadata_len; + unsigned char *coverart; + int coverart_len; + char *dacp_id; + char *active_remote_header; + unsigned int progress_start; + unsigned int progress_curr; + unsigned int progress_end; + int progress_changed; + + assert(raop_rtp); + + MUTEX_LOCK(raop_rtp->run_mutex); + if (!raop_rtp->running) { + MUTEX_UNLOCK(raop_rtp->run_mutex); + return 1; + } + + /* Read the volume level */ + volume = raop_rtp->volume; + volume_changed = raop_rtp->volume_changed; + raop_rtp->volume_changed = 0; + + /* Read the flush value */ + flush = raop_rtp->flush; + raop_rtp->flush = NO_FLUSH; + + /* Read the metadata */ + metadata = raop_rtp->metadata; + metadata_len = raop_rtp->metadata_len; + raop_rtp->metadata = NULL; + raop_rtp->metadata_len = 0; + + /* Read the coverart */ + coverart = raop_rtp->coverart; + coverart_len = raop_rtp->coverart_len; + raop_rtp->coverart = NULL; + raop_rtp->coverart_len = 0; + + /* Read DACP remote control data */ + dacp_id = raop_rtp->dacp_id; + active_remote_header = raop_rtp->active_remote_header; + raop_rtp->dacp_id = NULL; + raop_rtp->active_remote_header = NULL; + + /* Read the progress values */ + progress_start = raop_rtp->progress_start; + progress_curr = raop_rtp->progress_curr; + progress_end = raop_rtp->progress_end; + progress_changed = raop_rtp->progress_changed; + raop_rtp->progress_changed = 0; + + MUTEX_UNLOCK(raop_rtp->run_mutex); + + /* Call set_volume callback if changed */ + if (volume_changed) { + raop_buffer_flush(raop_rtp->buffer, flush); + if (raop_rtp->callbacks.audio_set_volume) { + raop_rtp->callbacks.audio_set_volume(raop_rtp->callbacks.cls, volume); + } + } + + /* Handle flush if requested */ + if (flush != NO_FLUSH) { + if (raop_rtp->callbacks.audio_flush) { + raop_rtp->callbacks.audio_flush(raop_rtp->callbacks.cls); + } + } + + if (metadata != NULL) { + if (raop_rtp->callbacks.audio_set_metadata) { + raop_rtp->callbacks.audio_set_metadata(raop_rtp->callbacks.cls, metadata, metadata_len); + } + free(metadata); + metadata = NULL; + } + + if (coverart != NULL) { + if (raop_rtp->callbacks.audio_set_coverart) { + raop_rtp->callbacks.audio_set_coverart(raop_rtp->callbacks.cls, coverart, coverart_len); + } + free(coverart); + coverart = NULL; + } + if (dacp_id && active_remote_header) { + if (raop_rtp->callbacks.audio_remote_control_id) { + raop_rtp->callbacks.audio_remote_control_id(raop_rtp->callbacks.cls, dacp_id, active_remote_header); + } + free(dacp_id); + free(active_remote_header); + dacp_id = NULL; + active_remote_header = NULL; + } + + if (progress_changed) { + if (raop_rtp->callbacks.audio_set_progress) { + raop_rtp->callbacks.audio_set_progress(raop_rtp->callbacks.cls, progress_start, progress_curr, progress_end); + } + } + return 0; +} + +void raop_rtp_sync_clock(raop_rtp_t *raop_rtp, uint32_t rtp_time, uint64_t ntp_time) { + raop_rtp->sync_data_index = (raop_rtp->sync_data_index + 1) % RAOP_RTP_SYNC_DATA_COUNT; + raop_rtp->sync_data[raop_rtp->sync_data_index].rtp_time = rtp_time; + raop_rtp->sync_data[raop_rtp->sync_data_index].ntp_time = ntp_time; + + uint32_t valid_data_count = 0; + valid_data_count = 0; + int64_t total_offsets = 0; + for (int i = 0; i < RAOP_RTP_SYNC_DATA_COUNT; ++i) { + if (raop_rtp->sync_data[i].ntp_time == 0) continue; + total_offsets += (int64_t) (((double) raop_rtp->sync_data[i].rtp_time) / raop_rtp->rtp_sync_scale) - raop_rtp->sync_data[i].ntp_time; + valid_data_count++; + } + int64_t avg_offset = total_offsets / valid_data_count; + int64_t correction = avg_offset - raop_rtp->rtp_sync_offset; + raop_rtp->rtp_sync_offset = avg_offset; + + logger_log(raop_rtp->logger, LOGGER_DEBUG, "raop_rtp sync correction=%lld", correction); +} + +uint64_t raop_rtp_convert_rtp_time(raop_rtp_t *raop_rtp, uint32_t rtp_time) { + return (uint64_t) (((double) rtp_time) / raop_rtp->rtp_sync_scale) - raop_rtp->rtp_sync_offset; +} + +static THREAD_RETVAL +raop_rtp_thread_udp(void *arg) +{ + raop_rtp_t *raop_rtp = arg; + unsigned char packet[RAOP_PACKET_LEN]; + unsigned int packetlen; + struct sockaddr_storage saddr; + socklen_t saddrlen; + assert(raop_rtp); + + while(1) { + fd_set rfds; + struct timeval tv; + int nfds, ret; + + /* Check if we are still running and process callbacks */ + if (raop_rtp_process_events(raop_rtp, NULL)) { + break; + } + + /* Set timeout value to 5ms */ + tv.tv_sec = 0; + tv.tv_usec = 5000; + + /* Get the correct nfds value */ + nfds = raop_rtp->csock+1; + if (raop_rtp->dsock >= nfds) + nfds = raop_rtp->dsock+1; + + /* Set rfds and call select */ + FD_ZERO(&rfds); + FD_SET(raop_rtp->csock, &rfds); + FD_SET(raop_rtp->dsock, &rfds); + + ret = select(nfds, &rfds, NULL, NULL, &tv); + if (ret == 0) { + /* Timeout happened */ + continue; + } else if (ret == -1) { + logger_log(raop_rtp->logger, LOGGER_ERR, "raop_rtp error in select"); + break; + } + + if (FD_ISSET(raop_rtp->csock, &rfds)) { + saddrlen = sizeof(saddr); + packetlen = recvfrom(raop_rtp->csock, (char *)packet, sizeof(packet), 0, + (struct sockaddr *)&saddr, &saddrlen); + + memcpy(&raop_rtp->control_saddr, &saddr, saddrlen); + raop_rtp->control_saddr_len = saddrlen; + int type_c = packet[1] & ~0x80; + logger_log(raop_rtp->logger, LOGGER_DEBUG, "raop_rtp type_c 0x%02x, packetlen = %d", type_c, packetlen); + if (type_c == 0x56) { + /* Handle resent data packet */ + uint32_t rtp_timestamp = (packet[4 + 4] << 24) | (packet[4 + 5] << 16) | (packet[4 + 6] << 8) | packet[4 + 7]; + uint64_t ntp_timestamp = raop_rtp_convert_rtp_time(raop_rtp, rtp_timestamp); + uint64_t ntp_now = raop_ntp_get_local_time(raop_rtp->ntp); + logger_log(raop_rtp->logger, LOGGER_DEBUG, "raop_rtp audio resent: ntp = %llu, now = %llu, latency=%lld, rtp=%u", + ntp_timestamp, ntp_now, ((int64_t) ntp_now) - ((int64_t) ntp_timestamp), rtp_timestamp); + int result = raop_buffer_enqueue(raop_rtp->buffer, packet + 4, packetlen - 4, ntp_timestamp, 1); + assert(result >= 0); + } else if (type_c == 0x54 && packetlen >= 20) { + // The unit for the rtp clock is 1 / sample rate = 1 / 44100 + uint32_t sync_rtp = byteutils_get_int_be(packet, 4) - 11025; + uint64_t sync_ntp_raw = byteutils_get_long_be(packet, 8); + uint64_t sync_ntp_remote = raop_ntp_timestamp_to_micro_seconds(sync_ntp_raw, true); + uint64_t sync_ntp_local = raop_ntp_convert_remote_time(raop_rtp->ntp, sync_ntp_remote); + // It's not clear what the additional rtp timestamp indicates + uint32_t next_rtp = byteutils_get_int_be(packet, 16); + logger_log(raop_rtp->logger, LOGGER_DEBUG, "raop_rtp sync: ntp=%llu, local ntp: %llu, rtp=%u, rtp_next=%u", + sync_ntp_remote, sync_ntp_local, sync_rtp, next_rtp); + raop_rtp_sync_clock(raop_rtp, sync_rtp, sync_ntp_local); + } else { + logger_log(raop_rtp->logger, LOGGER_DEBUG, "raop_rtp unknown packet"); + } + } + + if (FD_ISSET(raop_rtp->dsock, &rfds)) { + //logger_log(raop_rtp->logger, LOGGER_INFO, "Would have data packet in queue"); + // Receiving audio data here + saddrlen = sizeof(saddr); + packetlen = recvfrom(raop_rtp->dsock, (char *)packet, sizeof(packet), 0, + (struct sockaddr *)&saddr, &saddrlen); + // rtp payload type + int type_d = packet[1] & ~0x80; + //logger_log(raop_rtp->logger, LOGGER_DEBUG, "raop_rtp_thread_udp type_d 0x%02x, packetlen = %d", type_d, packetlen); + + // Len = 16 appears if there is no time + if (packetlen >= 12) { + int no_resend = (raop_rtp->control_rport == 0);// false + + uint32_t rtp_timestamp = (packet[4] << 24) | (packet[5] << 16) | (packet[6] << 8) | packet[7]; + uint64_t ntp_timestamp = raop_rtp_convert_rtp_time(raop_rtp, rtp_timestamp); + uint64_t ntp_now = raop_ntp_get_local_time(raop_rtp->ntp); + logger_log(raop_rtp->logger, LOGGER_DEBUG, "raop_rtp audio: ntp = %llu, now = %llu, latency=%lld, rtp=%u", + ntp_timestamp, ntp_now, ((int64_t) ntp_now) - ((int64_t) ntp_timestamp), rtp_timestamp); + + int result = raop_buffer_enqueue(raop_rtp->buffer, packet, packetlen, ntp_timestamp, 1); + assert(result >= 0); + + // Render continuous buffer entries + void *payload = NULL; + unsigned int payload_size; + uint64_t timestamp; + while ((payload = raop_buffer_dequeue(raop_rtp->buffer, &payload_size, ×tamp, no_resend))) { + aac_decode_struct aac_data; + aac_data.data_len = payload_size; + aac_data.data = payload; + aac_data.pts = timestamp; + raop_rtp->callbacks.audio_process(raop_rtp->callbacks.cls, raop_rtp->ntp, &aac_data); + free(payload); + } + + /* Handle possible resend requests */ + if (!no_resend) { + raop_buffer_handle_resends(raop_rtp->buffer, raop_rtp_resend_callback, raop_rtp); + } + } + + } + } + + // Ensure running reflects the actual state + MUTEX_LOCK(raop_rtp->run_mutex); + raop_rtp->running = false; + MUTEX_UNLOCK(raop_rtp->run_mutex); + + logger_log(raop_rtp->logger, LOGGER_DEBUG, "raop_rtp exiting thread"); + + return 0; +} + +// Start rtp service, three udp ports +void +raop_rtp_start_audio(raop_rtp_t *raop_rtp, int use_udp, unsigned short control_rport, + unsigned short *control_lport, unsigned short *data_lport) +{ + logger_log(raop_rtp->logger, LOGGER_INFO, "raop_rtp starting audio"); + int use_ipv6 = 0; + + assert(raop_rtp); + + MUTEX_LOCK(raop_rtp->run_mutex); + if (raop_rtp->running || !raop_rtp->joined) { + MUTEX_UNLOCK(raop_rtp->run_mutex); + return; + } + + /* Initialize ports and sockets */ + raop_rtp->control_rport = control_rport; + if (raop_rtp->remote_saddr.ss_family == AF_INET6) { + use_ipv6 = 1; + } + use_ipv6 = 0; + if (raop_rtp_init_sockets(raop_rtp, use_ipv6, use_udp) < 0) { + logger_log(raop_rtp->logger, LOGGER_ERR, "raop_rtp initializing sockets failed"); + MUTEX_UNLOCK(raop_rtp->run_mutex); + return; + } + if (control_lport) *control_lport = raop_rtp->control_lport; + if (data_lport) *data_lport = raop_rtp->data_lport; + /* Create the thread and initialize running values */ + raop_rtp->running = 1; + raop_rtp->joined = 0; + + THREAD_CREATE(raop_rtp->thread, raop_rtp_thread_udp, raop_rtp); + MUTEX_UNLOCK(raop_rtp->run_mutex); +} + +void +raop_rtp_set_volume(raop_rtp_t *raop_rtp, float volume) +{ + assert(raop_rtp); + + if (volume > 0.0f) { + volume = 0.0f; + } else if (volume < -144.0f) { + volume = -144.0f; + } + + /* Set volume in thread instead */ + MUTEX_LOCK(raop_rtp->run_mutex); + raop_rtp->volume = volume; + raop_rtp->volume_changed = 1; + MUTEX_UNLOCK(raop_rtp->run_mutex); +} + +void +raop_rtp_set_metadata(raop_rtp_t *raop_rtp, const char *data, int datalen) +{ + unsigned char *metadata; + + assert(raop_rtp); + + if (datalen <= 0) { + return; + } + metadata = malloc(datalen); + assert(metadata); + memcpy(metadata, data, datalen); + + /* Set metadata in thread instead */ + MUTEX_LOCK(raop_rtp->run_mutex); + raop_rtp->metadata = metadata; + raop_rtp->metadata_len = datalen; + MUTEX_UNLOCK(raop_rtp->run_mutex); +} + +void +raop_rtp_set_coverart(raop_rtp_t *raop_rtp, const char *data, int datalen) +{ + unsigned char *coverart; + + assert(raop_rtp); + + if (datalen <= 0) { + return; + } + coverart = malloc(datalen); + assert(coverart); + memcpy(coverart, data, datalen); + + /* Set coverart in thread instead */ + MUTEX_LOCK(raop_rtp->run_mutex); + raop_rtp->coverart = coverart; + raop_rtp->coverart_len = datalen; + MUTEX_UNLOCK(raop_rtp->run_mutex); +} + +void +raop_rtp_remote_control_id(raop_rtp_t *raop_rtp, const char *dacp_id, const char *active_remote_header) +{ + assert(raop_rtp); + + if (!dacp_id || !active_remote_header) { + return; + } + + /* Set dacp stuff in thread instead */ + MUTEX_LOCK(raop_rtp->run_mutex); + raop_rtp->dacp_id = strdup(dacp_id); + raop_rtp->active_remote_header = strdup(active_remote_header); + MUTEX_UNLOCK(raop_rtp->run_mutex); +} + +void +raop_rtp_set_progress(raop_rtp_t *raop_rtp, unsigned int start, unsigned int curr, unsigned int end) +{ + assert(raop_rtp); + + /* Set progress in thread instead */ + MUTEX_LOCK(raop_rtp->run_mutex); + raop_rtp->progress_start = start; + raop_rtp->progress_curr = curr; + raop_rtp->progress_end = end; + raop_rtp->progress_changed = 1; + MUTEX_UNLOCK(raop_rtp->run_mutex); +} + +void +raop_rtp_flush(raop_rtp_t *raop_rtp, int next_seq) +{ + assert(raop_rtp); + + /* Call flush in thread instead */ + MUTEX_LOCK(raop_rtp->run_mutex); + raop_rtp->flush = next_seq; + MUTEX_UNLOCK(raop_rtp->run_mutex); +} + +void +raop_rtp_stop(raop_rtp_t *raop_rtp) +{ + assert(raop_rtp); + + /* Check that we are running and thread is not + * joined (should never be while still running) */ + MUTEX_LOCK(raop_rtp->run_mutex); + if (!raop_rtp->running || raop_rtp->joined) { + MUTEX_UNLOCK(raop_rtp->run_mutex); + return; + } + raop_rtp->running = 0; + MUTEX_UNLOCK(raop_rtp->run_mutex); + + /* Join the thread */ + THREAD_JOIN(raop_rtp->thread); + + if (raop_rtp->csock != -1) closesocket(raop_rtp->csock); + if (raop_rtp->dsock != -1) closesocket(raop_rtp->dsock); + + /* Flush buffer into initial state */ + raop_buffer_flush(raop_rtp->buffer, -1); + + /* Mark thread as joined */ + MUTEX_LOCK(raop_rtp->run_mutex); + raop_rtp->joined = 1; + MUTEX_UNLOCK(raop_rtp->run_mutex); +} + +int +raop_rtp_is_running(raop_rtp_t *raop_rtp) +{ + assert(raop_rtp); + MUTEX_LOCK(raop_rtp->run_mutex); + int running = raop_rtp->running; + MUTEX_UNLOCK(raop_rtp->run_mutex); + return running; +} + diff --git a/lib/raop_rtp.h b/lib/raop_rtp.h new file mode 100755 index 0000000..5d66b67 --- /dev/null +++ b/lib/raop_rtp.h @@ -0,0 +1,45 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef RAOP_RTP_H +#define RAOP_RTP_H + +/* For raop_callbacks_t */ +#include "raop.h" +#include "logger.h" +#include "raop_ntp.h" + +#define RAOP_AESIV_LEN 16 +#define RAOP_AESKEY_LEN 16 +#define RAOP_PACKET_LEN 32768 + +typedef struct raop_rtp_s raop_rtp_t; + +raop_rtp_t *raop_rtp_init(logger_t *logger, raop_callbacks_t *callbacks, raop_ntp_t *ntp, const unsigned char *remote, int remotelen, + const unsigned char *aeskey, const unsigned char *aesiv, const unsigned char *ecdh_secret); + +void raop_rtp_start_audio(raop_rtp_t *raop_rtp, int use_udp, unsigned short control_rport, + unsigned short *control_lport, unsigned short *data_lport); + +void raop_rtp_set_volume(raop_rtp_t *raop_rtp, float volume); +void raop_rtp_set_metadata(raop_rtp_t *raop_rtp, const char *data, int datalen); +void raop_rtp_set_coverart(raop_rtp_t *raop_rtp, const char *data, int datalen); +void raop_rtp_remote_control_id(raop_rtp_t *raop_rtp, const char *dacp_id, const char *active_remote_header); +void raop_rtp_set_progress(raop_rtp_t *raop_rtp, unsigned int start, unsigned int curr, unsigned int end); +void raop_rtp_flush(raop_rtp_t *raop_rtp, int next_seq); +void raop_rtp_stop(raop_rtp_t *raop_rtp); +int raop_rtp_is_running(raop_rtp_t *raop_rtp); +void raop_rtp_destroy(raop_rtp_t *raop_rtp); + +#endif diff --git a/lib/raop_rtp_mirror.c b/lib/raop_rtp_mirror.c new file mode 100755 index 0000000..8ccdcda --- /dev/null +++ b/lib/raop_rtp_mirror.c @@ -0,0 +1,513 @@ +/* + * Copyright (c) 2019 dsafa22, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include "raop_rtp_mirror.h" + +#include +#include +#include +#include +#include +#include + +#include "raop.h" +#include "netutils.h" +#include "compat.h" +#include "logger.h" +#include "byteutils.h" +#include "mirror_buffer.h" +#include "stream.h" + + +struct h264codec_s { + unsigned char compatibility; + short pps_size; + short sps_size; + unsigned char level; + unsigned char number_of_pps; + unsigned char* picture_parameter_set; + unsigned char profile_high; + unsigned char reserved_3_and_sps; + unsigned char reserved_6_and_nal; + unsigned char* sequence_parameter_set; + unsigned char version; +}; + +struct raop_rtp_mirror_s { + logger_t *logger; + raop_callbacks_t callbacks; + raop_ntp_t *ntp; + + /* Buffer to handle all resends */ + mirror_buffer_t *buffer; + + /* Remote address as sockaddr */ + struct sockaddr_storage remote_saddr; + socklen_t remote_saddr_len; + + /* MUTEX LOCKED VARIABLES START */ + /* These variables only edited mutex locked */ + int running; + int joined; + + int flush; + thread_handle_t thread_mirror; + mutex_handle_t run_mutex; + + /* MUTEX LOCKED VARIABLES END */ + int mirror_data_sock; + + unsigned short mirror_data_lport; +}; + +static int +raop_rtp_parse_remote(raop_rtp_mirror_t *raop_rtp_mirror, const unsigned char *remote, int remotelen) +{ + char current[25]; + int family; + int ret; + assert(raop_rtp_mirror); + if (remotelen == 4) { + family = AF_INET; + } else if (remotelen == 16) { + family = AF_INET6; + } else { + return -1; + } + memset(current, 0, sizeof(current)); + sprintf(current, "%d.%d.%d.%d", remote[0], remote[1], remote[2], remote[3]); + logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "raop_rtp_mirror parse remote ip = %s", current); + ret = netutils_parse_address(family, current, + &raop_rtp_mirror->remote_saddr, + sizeof(raop_rtp_mirror->remote_saddr)); + if (ret < 0) { + return -1; + } + raop_rtp_mirror->remote_saddr_len = ret; + return 0; +} + +#define NO_FLUSH (-42) +raop_rtp_mirror_t *raop_rtp_mirror_init(logger_t *logger, raop_callbacks_t *callbacks, raop_ntp_t *ntp, + const unsigned char *remote, int remotelen, + const unsigned char *aeskey, const unsigned char *ecdh_secret) +{ + raop_rtp_mirror_t *raop_rtp_mirror; + + assert(logger); + assert(callbacks); + + raop_rtp_mirror = calloc(1, sizeof(raop_rtp_mirror_t)); + if (!raop_rtp_mirror) { + return NULL; + } + raop_rtp_mirror->logger = logger; + raop_rtp_mirror->ntp = ntp; + + memcpy(&raop_rtp_mirror->callbacks, callbacks, sizeof(raop_callbacks_t)); + raop_rtp_mirror->buffer = mirror_buffer_init(logger, aeskey, ecdh_secret); + if (!raop_rtp_mirror->buffer) { + free(raop_rtp_mirror); + return NULL; + } + if (raop_rtp_parse_remote(raop_rtp_mirror, remote, remotelen) < 0) { + free(raop_rtp_mirror); + return NULL; + } + raop_rtp_mirror->running = 0; + raop_rtp_mirror->joined = 1; + raop_rtp_mirror->flush = NO_FLUSH; + + MUTEX_CREATE(raop_rtp_mirror->run_mutex); + return raop_rtp_mirror; +} + +void +raop_rtp_init_mirror_aes(raop_rtp_mirror_t *raop_rtp_mirror, uint64_t streamConnectionID) +{ + mirror_buffer_init_aes(raop_rtp_mirror->buffer, streamConnectionID); +} + +//#define DUMP_H264 + +#define RAOP_PACKET_LEN 32768 +/** + * Mirror + */ +static THREAD_RETVAL +raop_rtp_mirror_thread(void *arg) +{ + raop_rtp_mirror_t *raop_rtp_mirror = arg; + assert(raop_rtp_mirror); + + int stream_fd = -1; + unsigned char packet[128]; + memset(packet, 0 , 128); + unsigned char* payload = NULL; + unsigned int readstart = 0; + +#ifdef DUMP_H264 + // C decrypted + FILE* file = fopen("/home/pi/Airplay.h264", "wb"); + // Encrypted source file + FILE* file_source = fopen("/home/pi/Airplay.source", "wb"); + FILE* file_len = fopen("/home/pi/Airplay.len", "wb"); +#endif + + while (1) { + fd_set rfds; + struct timeval tv; + int nfds, ret; + MUTEX_LOCK(raop_rtp_mirror->run_mutex); + if (!raop_rtp_mirror->running) { + MUTEX_UNLOCK(raop_rtp_mirror->run_mutex); + break; + } + MUTEX_UNLOCK(raop_rtp_mirror->run_mutex); + + /* Set timeout value to 5ms */ + tv.tv_sec = 0; + tv.tv_usec = 5000; + + /* Get the correct nfds value and set rfds */ + FD_ZERO(&rfds); + if (stream_fd == -1) { + FD_SET(raop_rtp_mirror->mirror_data_sock, &rfds); + nfds = raop_rtp_mirror->mirror_data_sock+1; + } else { + FD_SET(stream_fd, &rfds); + nfds = stream_fd+1; + } + ret = select(nfds, &rfds, NULL, NULL, &tv); + if (ret == 0) { + /* Timeout happened */ + continue; + } else if (ret == -1) { + logger_log(raop_rtp_mirror->logger, LOGGER_ERR, "raop_rtp_mirror error in select"); + break; + } + + if (stream_fd == -1 && FD_ISSET(raop_rtp_mirror->mirror_data_sock, &rfds)) { + struct sockaddr_storage saddr; + socklen_t saddrlen; + + logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "raop_rtp_mirror accepting client"); + saddrlen = sizeof(saddr); + stream_fd = accept(raop_rtp_mirror->mirror_data_sock, (struct sockaddr *)&saddr, &saddrlen); + if (stream_fd == -1) { + logger_log(raop_rtp_mirror->logger, LOGGER_ERR, "raop_rtp_mirror error in accept %d %s", errno, strerror(errno)); + break; + } + + // We're calling recv for a certain amount of data, so we need a timeout + struct timeval tv; + tv.tv_sec = 0; + tv.tv_usec = 5000; + if (setsockopt(stream_fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) < 0) { + logger_log(raop_rtp_mirror->logger, LOGGER_ERR, "raop_rtp_mirror could not set stream socket timeout %d %s", errno, strerror(errno)); + break; + } + + readstart = 0; + } + + if (stream_fd != -1 && FD_ISSET(stream_fd, &rfds)) { + + // The first 128 bytes are some kind of header for the payload that follows + while (payload == NULL && readstart < 128) { + ret = recv(stream_fd, packet + readstart, 128 - readstart, 0); + if (ret <= 0) break; + readstart = readstart + ret; + } + + if (payload == NULL && ret == 0) { + logger_log(raop_rtp_mirror->logger, LOGGER_ERR, "raop_rtp_mirror tcp socket closed"); + FD_CLR(stream_fd, &rfds); + stream_fd = -1; + continue; + } else if (payload == NULL && ret == -1) { + if (errno == EAGAIN || errno == EWOULDBLOCK) continue; // Timeouts can happen even if the connection is fine + logger_log(raop_rtp_mirror->logger, LOGGER_ERR, "raop_rtp_mirror error in header recv: %d", errno); + break; + } + + int payload_size = byteutils_get_int(packet, 0); + unsigned short payload_type = byteutils_get_short(packet, 4) & 0xff; + unsigned short payload_option = byteutils_get_short(packet, 6); + + if (payload == NULL) { + payload = malloc(payload_size); + readstart = 0; + } + + while (readstart < payload_size) { + // Payload data + ret = recv(stream_fd, payload + readstart, payload_size - readstart, 0); + if (ret <= 0) break; + readstart = readstart + ret; + } + + if (ret == 0) { + logger_log(raop_rtp_mirror->logger, LOGGER_ERR, "raop_rtp_mirror tcp socket closed"); + break; + } else if (ret == -1) { + if (errno == EAGAIN || errno == EWOULDBLOCK) continue; // Timeouts can happen even if the connection is fine + logger_log(raop_rtp_mirror->logger, LOGGER_ERR, "raop_rtp_mirror error in recv: %d", errno); + break; + } + + if (payload_type == 0) { + // Normal video data (VCL NAL) + + // Conveniently, the video data is already stamped with the remote wall clock time, + // so no additional clock syncing needed. The only thing odd here is that the video + // ntp time stamps don't include the SECONDS_FROM_1900_TO_1970, so it's really just + // counting micro seconds since last boot. + uint64_t ntp_timestamp_raw = byteutils_get_long(packet, 8); + uint64_t ntp_timestamp_remote = raop_ntp_timestamp_to_micro_seconds(ntp_timestamp_raw, false); + uint64_t ntp_timestamp = raop_ntp_convert_remote_time(raop_rtp_mirror->ntp, ntp_timestamp_remote); + + uint64_t ntp_now = raop_ntp_get_local_time(raop_rtp_mirror->ntp); + logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "raop_rtp_mirror video ntp = %llu, now = %llu, latency = %lld", + ntp_timestamp, ntp_now, ((int64_t) ntp_now) - ((int64_t) ntp_timestamp)); + +#ifdef DUMP_H264 + fwrite(payload, payload_size, 1, file_source); + fwrite(&readstart, sizeof(readstart), 1, file_len); +#endif + + // Decrypt data + unsigned char* payload_decrypted = malloc(payload_size); + mirror_buffer_decrypt(raop_rtp_mirror->buffer, payload, payload_decrypted, payload_size); + + int nalu_type = payload[4] & 0x1f; + int nalu_size = 0; + int nalus_count = 0; + + // It seems the AirPlay protocol prepends NALs with their size, which we're replacing with the 4-byte + // start code for the NAL Byte-Stream Format. + while (nalu_size < payload_size) { + int nc_len = (payload_decrypted[nalu_size + 0] << 24) | (payload_decrypted[nalu_size + 1] << 16) | + (payload_decrypted[nalu_size + 2] << 8) | (payload_decrypted[nalu_size + 3]); + assert(nc_len > 0); + + payload_decrypted[nalu_size + 0] = 0; + payload_decrypted[nalu_size + 1] = 0; + payload_decrypted[nalu_size + 2] = 0; + payload_decrypted[nalu_size + 3] = 1; + nalu_size += nc_len + 4; + nalus_count++; + } + + // logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "nalutype = %d", nalu_type); + // logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "nalu_size = %d, payloadsize = %d nalus_count = %d", + // nalu_size, payload_size, nalus_count); + +#ifdef DUMP_H264 + fwrite(payload_decrypted, payload_size, 1, file); +#endif + + h264_decode_struct h264_data; + h264_data.data_len = payload_size; + h264_data.data = payload_decrypted; + h264_data.frame_type = 1; + h264_data.pts = ntp_timestamp; + + raop_rtp_mirror->callbacks.video_process(raop_rtp_mirror->callbacks.cls, raop_rtp_mirror->ntp, &h264_data); + free(payload_decrypted); + + } else if ((payload_type & 255) == 1) { + // The information in the payload contains an SPS and a PPS NAL + + float width_source = byteutils_get_float(packet, 40); + float height_source = byteutils_get_float(packet, 44); + float width = byteutils_get_float(packet, 56); + float height = byteutils_get_float(packet, 60); + logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "raop_rtp_mirror width_source = %f height_source = %f width = %f height = %f", + width_source, height_source, width, height); + + // The sps_pps is not encrypted + h264codec_t h264; + h264.version = payload[0]; + h264.profile_high = payload[1]; + h264.compatibility = payload[2]; + h264.level = payload[3]; + h264.reserved_6_and_nal = payload[4]; + h264.reserved_3_and_sps = payload[5]; + h264.sps_size = (short) (((payload[6] & 255) << 8) + (payload[7] & 255)); + logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "raop_rtp_mirror sps size = %d", h264.sps_size); + h264.sequence_parameter_set = malloc(h264.sps_size); + memcpy(h264.sequence_parameter_set, payload + 8, h264.sps_size); + h264.number_of_pps = payload[h264.sps_size + 8]; + h264.pps_size = (short) (((payload[h264.sps_size + 9] & 2040) + payload[h264.sps_size + 10]) & 255); + h264.picture_parameter_set = malloc(h264.pps_size); + logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "raop_rtp_mirror pps size = %d", h264.pps_size); + memcpy(h264.picture_parameter_set, payload + h264.sps_size + 11, h264.pps_size); + + if (h264.sps_size + h264.pps_size < 102400) { + // Copy the sps and pps into a buffer to hand to the decoder + int sps_pps_len = (h264.sps_size + h264.pps_size) + 8; + unsigned char sps_pps[sps_pps_len]; + sps_pps[0] = 0; + sps_pps[1] = 0; + sps_pps[2] = 0; + sps_pps[3] = 1; + memcpy(sps_pps + 4, h264.sequence_parameter_set, h264.sps_size); + sps_pps[h264.sps_size + 4] = 0; + sps_pps[h264.sps_size + 5] = 0; + sps_pps[h264.sps_size + 6] = 0; + sps_pps[h264.sps_size + 7] = 1; + memcpy(sps_pps + h264.sps_size + 8, h264.picture_parameter_set, h264.pps_size); + +#ifdef DUMP_H264 + fwrite(sps_pps, sps_pps_len, 1, file); +#endif + + h264_decode_struct h264_data; + h264_data.data_len = sps_pps_len; + h264_data.data = sps_pps; + h264_data.frame_type = 0; + h264_data.pts = 0; + raop_rtp_mirror->callbacks.video_process(raop_rtp_mirror->callbacks.cls, raop_rtp_mirror->ntp, &h264_data); + } + free(h264.picture_parameter_set); + free(h264.sequence_parameter_set); + } + + free(payload); + payload = NULL; + memset(packet, 0, 128); + readstart = 0; + } + } + + /* Close the stream file descriptor */ + if (stream_fd != -1) { + closesocket(stream_fd); + } + +#ifdef DUMP_H264 + fclose(file); + fclose(file_source); + fclose(file_len); +#endif + + // Ensure running reflects the actual state + MUTEX_LOCK(raop_rtp_mirror->run_mutex); + raop_rtp_mirror->running = false; + MUTEX_UNLOCK(raop_rtp_mirror->run_mutex); + + logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "raop_rtp_mirror exiting TCP thread"); + + return 0; +} + +void +raop_rtp_start_mirror(raop_rtp_mirror_t *raop_rtp_mirror, int use_udp, unsigned short *mirror_data_lport) +{ + logger_log(raop_rtp_mirror->logger, LOGGER_INFO, "raop_rtp_mirror starting mirroring"); + int use_ipv6 = 0; + + assert(raop_rtp_mirror); + + MUTEX_LOCK(raop_rtp_mirror->run_mutex); + if (raop_rtp_mirror->running || !raop_rtp_mirror->joined) { + MUTEX_UNLOCK(raop_rtp_mirror->run_mutex); + return; + } + + if (raop_rtp_mirror->remote_saddr.ss_family == AF_INET6) { + use_ipv6 = 1; + } + use_ipv6 = 0; + if (raop_rtp_init_mirror_sockets(raop_rtp_mirror, use_ipv6) < 0) { + logger_log(raop_rtp_mirror->logger, LOGGER_ERR, "raop_rtp_mirror initializing sockets failed"); + MUTEX_UNLOCK(raop_rtp_mirror->run_mutex); + return; + } + if (mirror_data_lport) *mirror_data_lport = raop_rtp_mirror->mirror_data_lport; + + /* Create the thread and initialize running values */ + raop_rtp_mirror->running = 1; + raop_rtp_mirror->joined = 0; + + THREAD_CREATE(raop_rtp_mirror->thread_mirror, raop_rtp_mirror_thread, raop_rtp_mirror); + MUTEX_UNLOCK(raop_rtp_mirror->run_mutex); +} + +void raop_rtp_mirror_stop(raop_rtp_mirror_t *raop_rtp_mirror) { + assert(raop_rtp_mirror); + + /* Check that we are running and thread is not + * joined (should never be while still running) */ + MUTEX_LOCK(raop_rtp_mirror->run_mutex); + if (!raop_rtp_mirror->running || raop_rtp_mirror->joined) { + MUTEX_UNLOCK(raop_rtp_mirror->run_mutex); + return; + } + raop_rtp_mirror->running = 0; + MUTEX_UNLOCK(raop_rtp_mirror->run_mutex); + + if (raop_rtp_mirror->mirror_data_sock != -1) { + closesocket(raop_rtp_mirror->mirror_data_sock); + raop_rtp_mirror->mirror_data_sock = -1; + } + + /* Join the thread */ + THREAD_JOIN(raop_rtp_mirror->thread_mirror); + + /* Mark thread as joined */ + MUTEX_LOCK(raop_rtp_mirror->run_mutex); + raop_rtp_mirror->joined = 1; + MUTEX_UNLOCK(raop_rtp_mirror->run_mutex); +} + +void raop_rtp_mirror_destroy(raop_rtp_mirror_t *raop_rtp_mirror) { + if (raop_rtp_mirror) { + raop_rtp_mirror_stop(raop_rtp_mirror); + MUTEX_DESTROY(raop_rtp_mirror->run_mutex); + mirror_buffer_destroy(raop_rtp_mirror->buffer); + free(raop_rtp_mirror); + } +} + +static int +raop_rtp_init_mirror_sockets(raop_rtp_mirror_t *raop_rtp_mirror, int use_ipv6) +{ + int dsock = -1; + unsigned short dport = 0; + + assert(raop_rtp_mirror); + + dsock = netutils_init_socket(&dport, use_ipv6, 0); + if (dsock == -1) { + goto sockets_cleanup; + } + + /* Listen to the data socket if using TCP */ + if (listen(dsock, 1) < 0) { + goto sockets_cleanup; + } + + /* Set socket descriptors */ + raop_rtp_mirror->mirror_data_sock = dsock; + + /* Set port values */ + raop_rtp_mirror->mirror_data_lport = dport; + return 0; + + sockets_cleanup: + if (dsock != -1) closesocket(dsock); + return -1; +} diff --git a/lib/raop_rtp_mirror.h b/lib/raop_rtp_mirror.h new file mode 100755 index 0000000..c465ee5 --- /dev/null +++ b/lib/raop_rtp_mirror.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2019 dsafa22, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef RAOP_RTP_MIRROR_H +#define RAOP_RTP_MIRROR_H + +#include +#include "raop.h" +#include "logger.h" +#include "raop_ntp.h" + +typedef struct raop_rtp_mirror_s raop_rtp_mirror_t; +typedef struct h264codec_s h264codec_t; + +raop_rtp_mirror_t *raop_rtp_mirror_init(logger_t *logger, raop_callbacks_t *callbacks, raop_ntp_t *ntp, + const unsigned char *remote, int remotelen, + const unsigned char *aeskey, const unsigned char *ecdh_secret); +void raop_rtp_init_mirror_aes(raop_rtp_mirror_t *raop_rtp_mirror, uint64_t streamConnectionID); +void raop_rtp_start_mirror(raop_rtp_mirror_t *raop_rtp_mirror, int use_udp, unsigned short *mirror_data_lport); + +static int raop_rtp_init_mirror_sockets(raop_rtp_mirror_t *raop_rtp_mirror, int use_ipv6); + +void raop_rtp_mirror_stop(raop_rtp_mirror_t *raop_rtp_mirror); +void raop_rtp_mirror_destroy(raop_rtp_mirror_t *raop_rtp_mirror); +#endif //RAOP_RTP_MIRROR_H diff --git a/lib/sockets.h b/lib/sockets.h new file mode 100755 index 0000000..ece6d68 --- /dev/null +++ b/lib/sockets.h @@ -0,0 +1,49 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef SOCKETS_H +#define SOCKETS_H + +#if defined(WIN32) +typedef int socklen_t; + +#ifndef SHUT_RD +# define SHUT_RD SD_RECEIVE +#endif +#ifndef SHUT_WR +# define SHUT_WR SD_SEND +#endif +#ifndef SHUT_RDWR +# define SHUT_RDWR SD_BOTH +#endif + +#define SOCKET_GET_ERROR() WSAGetLastError() +#define SOCKET_SET_ERROR(value) WSASetLastError(value) +#define SOCKET_ERRORNAME(name) WSA##name + +#define WSAEAGAIN WSAEWOULDBLOCK +#define WSAENOMEM WSA_NOT_ENOUGH_MEMORY + +#else + +#define closesocket close +#define ioctlsocket ioctl + +#define SOCKET_GET_ERROR() (errno) +#define SOCKET_SET_ERROR(value) (errno = (value)) +#define SOCKET_ERRORNAME(name) name + +#endif + +#endif diff --git a/lib/stream.h b/lib/stream.h new file mode 100755 index 0000000..a801f4c --- /dev/null +++ b/lib/stream.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2019 dsafa22, All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef AIRPLAYSERVER_STREAM_H +#define AIRPLAYSERVER_STREAM_H + +#include + +typedef struct { + int n_gop_index; + int frame_type; + int n_frame_poc; + unsigned char *data; + int data_len; + unsigned int n_time_stamp; + uint64_t pts; +} h264_decode_struct; + +typedef struct { + unsigned char *data; + int data_len; + uint64_t pts; +} aac_decode_struct; + +#endif //AIRPLAYSERVER_STREAM_H diff --git a/lib/threads.h b/lib/threads.h new file mode 100755 index 0000000..0d923cc --- /dev/null +++ b/lib/threads.h @@ -0,0 +1,66 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#ifndef THREADS_H +#define THREADS_H + +#if defined(WIN32) +#include + +#define sleepms(x) Sleep(x) + +typedef HANDLE thread_handle_t; + +#define THREAD_RETVAL DWORD WINAPI +#define THREAD_CREATE(handle, func, arg) \ + handle = CreateThread(NULL, 0, func, arg, 0, NULL) +#define THREAD_JOIN(handle) do { WaitForSingleObject(handle, INFINITE); CloseHandle(handle); } while(0) + +typedef HANDLE mutex_handle_t; + +#define MUTEX_CREATE(handle) handle = CreateMutex(NULL, FALSE, NULL) +#define MUTEX_LOCK(handle) WaitForSingleObject(handle, INFINITE) +#define MUTEX_UNLOCK(handle) ReleaseMutex(handle) +#define MUTEX_DESTROY(handle) CloseHandle(handle) + +#else /* Use pthread library */ + +#include +#include + +#define sleepms(x) usleep((x)*1000) + +typedef pthread_t thread_handle_t; + +#define THREAD_RETVAL void * +#define THREAD_CREATE(handle, func, arg) \ + if (pthread_create(&(handle), NULL, func, arg)) handle = 0 +#define THREAD_JOIN(handle) pthread_join(handle, NULL) + +typedef pthread_mutex_t mutex_handle_t; + +typedef pthread_cond_t cond_handle_t; + +#define MUTEX_CREATE(handle) pthread_mutex_init(&(handle), NULL) +#define MUTEX_LOCK(handle) pthread_mutex_lock(&(handle)) +#define MUTEX_UNLOCK(handle) pthread_mutex_unlock(&(handle)) +#define MUTEX_DESTROY(handle) pthread_mutex_destroy(&(handle)) + +#define COND_CREATE(handle) pthread_cond_init(&(handle), NULL) +#define COND_SIGNAL(handle) pthread_cond_signal(&(handle)) +#define COND_DESTROY(handle) pthread_cond_destroy(&(handle)) + +#endif + +#endif /* THREADS_H */ diff --git a/lib/utils.c b/lib/utils.c new file mode 100644 index 0000000..7cdda94 --- /dev/null +++ b/lib/utils.c @@ -0,0 +1,181 @@ +/** + * Copyright (C) 2011-2012 Juho Vähä-Herttua + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ + +#include +#include +#include +#include + +char * +utils_strsep(char **stringp, const char *delim) +{ + char *original; + char *strptr; + + if (*stringp == NULL) { + return NULL; + } + + original = *stringp; + strptr = strstr(*stringp, delim); + if (strptr == NULL) { + *stringp = NULL; + return original; + } + *strptr = '\0'; + *stringp = strptr+strlen(delim); + return original; +} + +int +utils_read_file(char **dst, const char *filename) +{ + FILE *stream; + int filesize; + char *buffer; + int read_bytes; + + /* Open stream for reading */ + stream = fopen(filename, "rb"); + if (!stream) { + return -1; + } + + /* Find out file size */ + fseek(stream, 0, SEEK_END); + filesize = ftell(stream); + fseek(stream, 0, SEEK_SET); + + /* Allocate one extra byte for zero */ + buffer = malloc(filesize+1); + if (!buffer) { + fclose(stream); + return -2; + } + + /* Read data in a loop to buffer */ + read_bytes = 0; + do { + int ret = fread(buffer+read_bytes, 1, + filesize-read_bytes, stream); + if (ret == 0) { + break; + } + read_bytes += ret; + } while (read_bytes < filesize); + + /* Add final null byte and close stream */ + buffer[read_bytes] = '\0'; + fclose(stream); + + /* If read didn't finish, return error */ + if (read_bytes != filesize) { + free(buffer); + return -3; + } + + /* Return buffer */ + *dst = buffer; + return filesize; +} + +int +utils_hwaddr_raop(char *str, int strlen, const char *hwaddr, int hwaddrlen) +{ + int i,j; + + /* Check that our string is long enough */ + if (strlen == 0 || strlen < 2*hwaddrlen+1) + return -1; + + /* Convert hardware address to hex string */ + for (i=0,j=0; i>4) & 0x0f; + int lo = hwaddr[i] & 0x0f; + + if (hi < 10) str[j++] = '0' + hi; + else str[j++] = 'A' + hi-10; + if (lo < 10) str[j++] = '0' + lo; + else str[j++] = 'A' + lo-10; + } + + /* Add string terminator */ + str[j++] = '\0'; + return j; +} + +int +utils_hwaddr_airplay(char *str, int strlen, const char *hwaddr, int hwaddrlen) +{ + int i,j; + + /* Check that our string is long enough */ + if (strlen == 0 || strlen < 2*hwaddrlen+hwaddrlen) + return -1; + + /* Convert hardware address to hex string */ + for (i=0,j=0; i>4) & 0x0f; + int lo = hwaddr[i] & 0x0f; + + if (hi < 10) str[j++] = '0' + hi; + else str[j++] = 'a' + hi-10; + if (lo < 10) str[j++] = '0' + lo; + else str[j++] = 'a' + lo-10; + + str[j++] = ':'; + } + + /* Add string terminator */ + if (j != 0) j--; + str[j++] = '\0'; + return j; +} + +char *utils_parse_hex(const char *str, int str_len, int *data_len) { + assert(str_len % 2 == 0); + + char *data = malloc(str_len / 2); + + for (int i = 0; i < (str_len / 2); i++) { + char c_1 = str[i * 2]; + if (c_1 >= 97 && c_1 <= 102) { + c_1 -= (97 - 10); + } else if (c_1 >= 65 && c_1 <= 70) { + c_1 -= (65 - 10); + } else if (c_1 >= 48 && c_1 <= 57) { + c_1 -= 48; + } else { + free(data); + return NULL; + } + + char c_2 = str[(i * 2) + 1]; + if (c_2 >= 97 && c_2 <= 102) { + c_2 -= (97 - 10); + } else if (c_2 >= 65 && c_2 <= 70) { + c_2 -= (65 - 10); + } else if (c_2 >= 48 && c_2 <= 57) { + c_2 -= 48; + } else { + free(data); + return NULL; + } + + data[i] = (c_1 << 4) | c_2; + } + + *data_len = (str_len / 2); + return data; +} \ No newline at end of file diff --git a/log.h b/log.h old mode 100644 new mode 100755 diff --git a/uxplay.cpp b/uxplay.cpp old mode 100644 new mode 100755

@f6Z^*8yG$J{3x&8P^{w}Scp&enUs6LzM%)$y^(mLaSeRXodk@kH zw*Yw@%cQh#$>+V25O5d(WE4{#H_8!EDW|Z^IjL0XE3o|PPj)Oyl2ZzPDl?FiS?<7{ z2KlYx#x&Ou)Y%bfbJ)9uz%X15>Ab{iGBne18zkZ#M3>qk?6(#gluAwKr4vT|CW~oD zX>!6yapH?h)cBo(jzY)*^?hacugE98L*}r z#=g2oi^x7xS2fHC$l}nA#zXy{(wVYg9R+fYv9p#JD zi3!AB#1dG+oOFmKTAT{f0n)`0I42!prE+}x*=+6f)@tVfq-*Eg_-^8i1nlyo3<3MXd1rFg)8XFfM`9b4=DYTngsG*74OdukWcPq?`r@wXg6SUVKi)5y-kEXm2q3-I4^JSYsBhy~ns4(?X%ok(Jc#nD_|f zoKx3v58N3n!3{!mW{@a;<`zBrCVOV{BuAa}yyIV@!|Oyo40CYt5dwyV1>p9XY3I~1 zspO9d`uww43~&Ygg3ADDG8;A=A{MEda7_d!kTksAI-Daajjr=LFvCtZsp{Ma2nl{w zXB>ck3|p#T-qF23tK+$4UWbEDq0BwR#Lio2ONjTq>XUr(ENQeMH--dUj0=V7gh_luUvvn74U97uMW})3`h5T|H{5pbk>upeEjS6A*Kb>h$+c4sKl}TC|M74C502bhvavvToSjm^ zPJ=)YJ+ogiX%kZ{X{6O&sNNe79`r_#tgtPc(uKfcil+bW;IbALVvMJSdGp@PyqPH% zQCh_eHl>WYkc;Gjkf{z%@|4y)%8NxZA>=*dG3=RO1(hs3usSTGgvC|LW|b)UUa%OV zgcjG(U`I?UI87a>PjwU9V0(sa$;y&vqLDXMvowCDIqLPpM`X}F+lm3w zYCW=Amx=0V*zH@IMTft&`4OJ7!sPQ|<*bqp#--9OHU0E&I$K3YHy&`JjC6DK42t*QQU>xf^HPz8xXSV~Qxpnv z5-ZaZGmGL=Qj?1+3raLf^NKUm^HNh3k~0#Ev=nkvi;EM}Q;l^L&?J&G3o=rRLQ*SA zFr>0mEB#ALG_AR~lvDFkGSj#K_*XGez0m=9oTXN6Z{s!${+?e!T(QBvIz7MTrAXVM zNt@w-tp^MPHX!R2PNXDieRAQKI_WL{eH10zNt(6;E=UxaA|FzZNXkb-&fD#9A-%&bG!Au1pq0}i&TPT(K?)+nN|21+|_(; z!@ppbD#67CSpBxv8nia(8ZiU^E+?<6A9LIIJK#uDm_?6w%P3p!kqFZ`nLT`#`{cj_ zUwmccn#^@4412D|D>ksngl-~&`8^_{Ixi}{?V?!RIZ zt_jlbG=vXn6GMF*bTp@WqvZBdj}*8^`mWp1plR!n&WPkg!oMcDN5~=Bj(Yk)RXqv! zPDsXA6HiB_jzcAaudE!v*gUieP!ga=4@Exy2kxd$?LHQ5>8zZ!^W301a8D2F_vsV- zmP8ElCD)a#R1$jBlqjWnl48wb1nvL?oS_#rIX<@4B2}G6`iq0)$S4A2W%Q^~);R|( zE1p7>Vx?nwCm_&GM$4&KEOX$JiAYMGWg5#s)_q4vDou=FtEeZ~Ti_??hW5pUZ|g(d zGa~2bs^4gP)o`q!O?Dx+BJ4_mU3J0=pei1rI5!})wlRd=@Kp{GWV1B-HjRZ`9O9@S zzRJ-udg6*Bmefh8PO&{jTD~Q$h!Y1HgObC7=fqN(CUSwXFfrqq!CEOcOsL32+v{|y zo#>B^o2(lEe%5;io!;B}&-)I7xAn_yeetGhO|g-yGol-9jahBOv3Yt%T5R|Vr44O; z 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 literal 0 HcmV?d00001 diff --git a/AirplayServer.git/packed-refs b/AirplayServer.git/packed-refs new file mode 100644 index 0000000..a19b7bf --- /dev/null +++ b/AirplayServer.git/packed-refs @@ -0,0 +1,2 @@ +# pack-refs with: peeled fully-peeled sorted +a35a331876114c0158083529e2496cb5253883d4 refs/heads/master diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/build/AirplayServer b/build/AirplayServer new file mode 100755 index 0000000000000000000000000000000000000000..6ff7622f20bdf94ebcbe3609b33f5977ce66964d GIT binary patch literal 805664 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%0Dc6K7Zx*9eD5NohAfdcD5oU{87 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